聚豐項(xiàng)目 > 基于 CH32V103R8 與 WS2812B 點(diǎn)陣顯示屏
基于 CH32V103R8 開發(fā)板與 WS2812B 點(diǎn)陣模塊實(shí)現(xiàn)的一個(gè)點(diǎn)陣顯示屏, 通過 CH343G 高速 USB 轉(zhuǎn)串口與電腦連接, 可以實(shí)時(shí)顯示上位機(jī)軟件 VideoPixelPicker 播放的視頻內(nèi)容。 因?yàn)?WS2812B 不能發(fā)出黑色的光, 所以為了提高顯示屏的對(duì)比度, 在 WS2812B 顯示屏 的 LED 燈表面用雙面膠貼了一層正反面均打印成黑色的 A4 紙做簡(jiǎn)單的處理, 這樣使 WS2812B 顯示屏的顯示效果提高了很多, 同時(shí)也降低了 WS2812B 的亮度, 讓眼睛看起來不 會(huì)那么刺眼。
快樂攻城獅
分享快樂攻城獅
團(tuán)隊(duì)成員
王志青 隊(duì)長(zhǎng)
袁宏 成員
CH32V103RB 開發(fā)板+WS2812B+CH343G 高速 USB 轉(zhuǎn)串口, CH343G 高速 USB 轉(zhuǎn)串口的最
大波特率可以達(dá)到 6Mbps, WS2812B 組成的屏幕分辨率為 48*48, 這個(gè)傳輸帶寬可以顯示
一個(gè)低分辨率的視頻圖像。
??WS2812B 的連接方式: 首先由 8*8 個(gè) LED 組成一個(gè)最小單元, 再由 3*3 個(gè)(8*8) LED
單元組成一個(gè)中單元, 最后由 4 個(gè)中單元最后組成一個(gè) 48*48 的大單元。
CH32V103R8 軟件實(shí)現(xiàn)
1, 初始化串口 :
串口使用 USAR1, 引腳為 PA9, PA10 采用 DAM 的方式(DMA1_Channel5)接收上位機(jī)
軟件發(fā)送過來的數(shù)據(jù)。
波特率設(shè)置 1Mbps 8 N 1,傳輸速率為 100000Bytes/S, 48*48點(diǎn)陣屏一幀數(shù)據(jù)大小為 48*48*3
(RGB888) = 6912Bytes , 100000Bytes/S 的傳輸速度可以滿足播放視頻的最大幀率為
100000/6912>14 幀, 這個(gè)帶寬能夠把把視頻的幀率降為 14 幀以下播放。
2, 初始化定時(shí)器:
WS2812B 采用定時(shí)器 PWM+DAM 的方式驅(qū)動(dòng)顯示。 使用 TIM3, DMA1_Channel3.
使 用 TIM3_CH1(PA6),TIM3_CH2(PA7),TIM3_CH3(PB0),TIM3_CH4(PB1) 來 分 別 驅(qū) 動(dòng)
WS2812B 顯示屏的的四個(gè)中單元。
上位機(jī)播放軟件 VideoPixelPicker
VideoPixelPicker 的功能是對(duì)視頻文件進(jìn)行采樣, 將采樣后的像素?cái)?shù)據(jù)發(fā)送到下位機(jī)進(jìn)行顯
示。
VideoPixelPicker 使用 C# WinForm 開發(fā), 用 OpenCVSharp 解碼視頻文件, 使用指定采樣分辨
率和采樣間隔對(duì)視頻圖像進(jìn)行采樣, 然后將采樣的 RGB 數(shù)據(jù)進(jìn)行打包, 之后通過串口發(fā)送到下
位機(jī)進(jìn)行處理顯示。 像素?cái)?shù)據(jù)發(fā)送時(shí)分塊進(jìn)行發(fā)送, 并且可以更改像素塊的發(fā)送順序。 方便下位
機(jī)將不同的像素塊發(fā)送到不同通道的 WS2812B 子屏上。
VideoPixelPicker 與下位機(jī)傳輸?shù)南袼財(cái)?shù)據(jù)具有兩種格式 RGB888 和 RGB565。 使用 RGB565 可
有效降低幀數(shù)據(jù)量, 提高傳輸速度, 適應(yīng)更高分辨率的 WS2812B 點(diǎn)陣屏。
VideoPixelPicker 可修改采樣分辨率, 以適應(yīng)不同分辨率的 WS2812 點(diǎn)陣屏。 可修改幀率, 以
改變播放速度。 可修改串口波特率適應(yīng)不同的傳輸速率。 在播放時(shí)可以顯示采樣點(diǎn), 可以方便查
看, 對(duì)哪些位置進(jìn)行采樣的。
VideoPixelPicker 支持多種視頻格式文件, 并且支持 Gif 圖片文件播放
其中 CH32V103R8 和 VideoPixelPicker 的代碼均已開源上傳到了 Gitee 倉(cāng)庫(kù)中,
鏈接地址: https://gitee.com/happylion/ws2812b_array_display
顯示屏演示效果連接:https://www.bilibili.com/video/BV1W44y1E7jA/
演示視頻:
上位機(jī)播放軟件軟件 VideoPixelPicker 使用方法
1. 雙擊 VideoPixelPicker.exe 打開上位機(jī)軟件
2. 設(shè)置所使用的串口把鼠標(biāo)指針移動(dòng)到 VideoPixelPicker 串口中, 單擊鼠標(biāo)右鍵, 選擇串口->COM(選擇自己使用的串口)。
3. 設(shè)置串口波特率為1Mbps。4.設(shè)置視頻的播放幀率為10幀/S,注意這個(gè)幀率的大小和串口通信的波特率以及采樣分別率相關(guān),這幾個(gè)參數(shù)的設(shè)置組合不能超過串口通信的最大傳輸帶寬。
5.設(shè)置幀格式RGB888。
6. 設(shè)置采樣分辨率行48,列48,采樣分辨率為屏幕的大小,是8*8的整數(shù)倍。VideoPixelPicke播放軟件會(huì)把打開的視頻或者GIF動(dòng)畫按照設(shè)置的分辨率采樣并把數(shù)據(jù)發(fā)送給CH32V103R8開發(fā)板。
7. 設(shè)置數(shù)據(jù)塊的發(fā)送順序,數(shù)據(jù)塊以 8*8 個(gè) LED 大小為一包數(shù)據(jù)發(fā)送。 數(shù)據(jù)塊的發(fā)送順序設(shè)置和 WS2812B 的接線順序有關(guān)。
8. 打開要播放的視頻, 視頻支持播放 MP4、FLV、MKV 等格式。
9. 也可以打開需要播放的 GIF 動(dòng)圖,GIF動(dòng)圖可以循環(huán)播放。
(0.40 MB)下載