聚丰项目 > 基于 CH32V103R8 与 WS2812B 点阵显示屏

基于 CH32V103R8 与 WS2812B 点阵显示屏

基于 CH32V103R8 开发板与 WS2812B 点阵模块实现的一个点阵显示屏, 通过 CH343G 高速 USB 转串口与电脑连接, 可以实时显示上位机软件 VideoPixelPicker 播放的视频内容。 因为 WS2812B 不能发出黑色的光, 所以为了提高显示屏的对比度, 在 WS2812B 显示屏 的 LED 灯表面用双面胶贴了一层正反面均打印成黑色的 A4 纸做简单的处理, 这样使 WS2812B 显示屏的显示效果提高了很多, 同时也降低了 WS2812B 的亮度, 让眼睛看起来不 会那么刺眼。

快乐攻城狮 快乐攻城狮

分享
0 喜欢这个项目
团队介绍

快乐攻城狮 快乐攻城狮

团队成员

王志青 队长

袁宏 成员

分享
项目简介
基于 CH32V103R8 开发板与 WS2812B 点阵模块实现的一个点阵显示屏, 通过 CH343G 高速 USB 转串口与电脑连接, 可以实时显示上位机软件 VideoPixelPicker 播放的视频内容。 因为 WS2812B 不能发出黑色的光, 所以为了提高显示屏的对比度, 在 WS2812B 显示屏 的 LED 灯表面用双面胶贴了一层正反面均打印成黑色的 A4 纸做简单的处理, 这样使 WS2812B 显示屏的显示效果提高了很多, 同时也降低了 WS2812B 的亮度, 让眼睛看起来不 会那么刺眼。
硬件说明

       CH32V103RB 开发板+WS2812B+CH343G 高速 USB 转串口, CH343G 高速 USB 转串口的最
大波特率可以达到
6Mbps, WS2812B 组成的屏幕分辨率为 48*48, 这个传输带宽可以显示
一个低分辨率的视频图像。
  WS2812B 的连接方式: 首先由 8*8 LED 组成一个最小单元, 再由 3*3 个(8*8LED
单元组成一个中单元, 最后由 4 个中单元最后组成一个 48*48 的大单元。

软件说明

CH32V103R8 软件实现


1初始化串口 :
        串口使用
USAR1, 引脚为 PA9PA10 采用 DAM 的方式(DMA1_Channel5)接收上位机
软件发送过来的数据。
波特率设置
1Mbps 8 N 1,传输速率为 100000Bytes/S, 48*48点阵屏一帧数据大小为 48*48*3
RGB888= 6912Bytes , 100000Bytes/S 的传输速度可以满足播放视频的最大帧率为
100000/6912>14 帧, 这个带宽能够把把视频的帧率降为 14 帧以下播放。


2, 初始化定时器:
        WS2812B 采用定时器 PWM+DAM 的方式驱动显示。 使用 TIM3DMA1_Channel3.
使 用 TIM3_CH1(PA6),TIM3_CH2(PA7),TIM3_CH3(PB0),TIM3_CH4(PB1) 来 分 别 驱 动
WS2812B 显示屏的的四个中单元。


上位机播放软件
VideoPixelPicker
        VideoPixelPicker 的功能是对视频文件进行采样, 将采样后的像素数据发送到下位机进行显
示。
        VideoPixelPicker 使用 C# WinForm 开发, 用 OpenCVSharp 解码视频文件, 使用指定采样分辨
率和采样间隔对视频图像进行采样, 然后将采样的
RGB 数据进行打包, 之后通过串口发送到下
位机进行处理显示。 像素数据发送时分块进行发送, 并且可以更改像素块的发送顺序。 方便下位
机将不同的像素块发送到不同通道的
WS2812B 子屏上。
        VideoPixelPicker 与下位机传输的像素数据具有两种格式 RGB888 RGB565。 使用 RGB565
有效降低帧数据量, 提高传输速度, 适应更高分辨率的
WS2812B 点阵屏。
VideoPixelPicker 可修改采样分辨率, 以适应不同分辨率的 WS2812 点阵屏。 可修改帧率, 以
改变播放速度。 可修改串口波特率适应不同的传输速率。 在播放时可以显示采样点, 可以方便查
看, 对哪些位置进行采样的。
        VideoPixelPicker 支持多种视频格式文件, 并且支持 Gif 图片文件播放

演示效果

其中 CH32V103R8 和 VideoPixelPicker 的代码均已开源上传到了 Gitee 仓库中,
链接地址: 
https://gitee.com/happylion/ws2812b_array_display
显示屏演示效果连接:https://www.bilibili.com/video/BV1W44y1E7jA/


演示视频:


上位机播放软件软件 VideoPixelPicker 使用方法

1. 双击 VideoPixelPicker.exe 打开上位机软件
2. 设置所使用的串口把鼠标指针移动到 VideoPixelPicker 串口中, 单击鼠标右键, 选择串口->COM(选择自己使用的串口)。
image.png

3. 设置串口波特率为1Mbps。image.png4.设置视频的播放帧率为10帧/S,注意这个帧率的大小和串口通信的波特率以及采样分别率相关,这几个参数的设置组合不能超过串口通信的最大传输带宽。image.png

5.设置帧格式RGB888。image.png

6. 设置采样分辨率行48,列48,采样分辨率为屏幕的大小,是8*8的整数倍。VideoPixelPicke播放软件会把打开的视频或者GIF动画按照设置的分辨率采样并把数据发送给CH32V103R8开发板。

image.png

7. 设置数据块的发送顺序,数据块以 8*8 LED 大小为一包数据发送。 数据块的发送顺序设置和 WS2812B 的接线顺序有关。

image.png

8. 打开要播放的视频, 视频支持播放 MP4、FLVMKV 等格式。
9. 也可以打开需要播放的 GIF 动图,GIF动图可以循环播放。



附件

(0.40 MB)下载

评论区(0 )