聚豐項目 > 基于 CH32V103R8 與 WS2812B 點陣顯示屏
基于 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*8) LED
單元組成一個中單元, 最后由 4 個中單元最后組成一個 48*48 的大單元。
CH32V103R8 軟件實現
1, 初始化串口 :
串口使用 USAR1, 引腳為 PA9, PA10 采用 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 的方式驅動顯示。 使用 TIM3, DMA1_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(選擇自己使用的串口)。
3. 設置串口波特率為1Mbps。4.設置視頻的播放幀率為10幀/S,注意這個幀率的大小和串口通信的波特率以及采樣分別率相關,這幾個參數的設置組合不能超過串口通信的最大傳輸帶寬。
5.設置幀格式RGB888。
6. 設置采樣分辨率行48,列48,采樣分辨率為屏幕的大小,是8*8的整數倍。VideoPixelPicke播放軟件會把打開的視頻或者GIF動畫按照設置的分辨率采樣并把數據發送給CH32V103R8開發板。
7. 設置數據塊的發送順序,數據塊以 8*8 個 LED 大小為一包數據發送。 數據塊的發送順序設置和 WS2812B 的接線順序有關。
8. 打開要播放的視頻, 視頻支持播放 MP4、FLV、MKV 等格式。
9. 也可以打開需要播放的 GIF 動圖,GIF動圖可以循環播放。
(0.40 MB)下載