本文來源電子發燒友社區,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2287630_1_1.html
流水燈效果(開發板體驗視頻,詳見作者原文鏈接)
賽昉科技昉·星光RISC-V單板計算機上,為我們提供了40Pin接口,其中就要SPI接口。
今天的實例分享,就是使用SPI來驅動WS2812B炫彩燈珠。
WS2812B是個好東西,在很多場合,都能使用。
節假日,有很多地方,也用到了上面這種炫彩燈帶裝點氣氛。
另外,還有下面這種點陣炫彩燈板:
作為技術宅男,情人節or七夕做一個,保準抱得美人夜歸!
另外,在很多開發板上,也提供了一顆WS2812B燈珠,方便測試使用:
除了上面的單顆、點陣、條帶等,還能根據自己需要,給整成各種各樣的形狀。
因為,它本質上,都是有一顆顆小燈珠給連起來的:
可以單顆使用,也可以上千顆使用。
今天不玩復雜的,就先分享,驅動WS2812B燈板上的單顆燈珠(第一顆)的方法。
首先,請參考官方文檔,啟用SPI:
啟用成功后,登錄系統,執行命令 ls -lh /dev/spi*,就能看到/dev/spidev0.0:
然后設置/dev/spidev0.0可被普通用戶使用:
WS2812B的電源,需要單獨的5V供電,不要使用40Pin的接口,輸出電流有限制,避免產生副作用。
我使用的是用USB接口接了一個USB2TTL,把其中的電源+給WS2812B燈板供電。
參考官方文檔,后,具體的連線如下:
連好后如下:
然后,就可以使用python進行編程,通過spi控制WS2812B燈珠了。
首先,需要安裝spidev:
安裝后spidev后,我們就在python中,通過spidev控制WS2812B了。
其次,通過網上眾多的WS2812B資料,了解到,要控制一顆燈珠,需要發送24bits的數據,每8bits為一組,分別用于控制GRB三種顏色。
而控制設備發送數據的時候,通常需要發送24bytes,具體如下:
第一行,WS2812B自身的控制器收到后,每byte會解析為0或者1,以上0x80解析為0,0xf8解析為1,最終為8bits:00000001,表示G的亮度為0x01。
如果第一行,全部為0xf8,則最終為11111111,表示G的亮度為0xff,也就是255。
如果第一行,全部為0x80,則最終為00000000,表示G的亮度為0x00,也就是0,熄滅。
以上的0x80和0xf8為經驗數值,大家可以查看網上的資料了解。
除了發送的數據,SPI還需要設置發送的速度,經驗值為6.4MHz,也就是6400000。
最終的代碼如下:
上面的代碼,重點只有下面三條:
- spidev.SpiDev():實例化一個spidev設備
- spi.open(0, 0):打開/dev/spi0.0
- spi.xfer(ledArray, speed_hz):以指定的速率發送需要的數據
然后,就是交替發送[0,0,0]和[1,0,0]來控制第一顆燈珠GRB,從而形成亮滅效果了。
在發送數據的定義數組中:
前面說了,可以通過設置0x80和0xf8,來控制G的亮度。
同樣的,還可以設置第二行、第三行,來控制GRB三中顏色的力度,從而達到炫彩的目的。
具體的顏色數目:255 * 255 * 255 = 16581375,160多萬,真得很炫彩。
以上展示的,是控制第一顆燈珠,需要24bytes的數據;而發送2組24bytes數據,就可以控制兩顆;以此類推,要控制更多的,就發送24倍數組bytes了。
附帶的視頻,就是控制了64顆,形成了簡單流水燈的效果。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
RISC-V
+關注
關注
45文章
2334瀏覽量
46716 -
賽昉科技
+關注
關注
3文章
158瀏覽量
14356
發布評論請先 登錄
相關推薦
預售啟動!昉·星光 2 AI套件正式發布,基于RISC-V構建AI算力
10月24日,昉·星光2(VisionFive2)AI套件正式開啟預售。該套件由中國RISC-V軟硬件生態領導者賽昉科技攜手邊緣人工智能(A
賽昉科技產品亮相RISC-V開源創新中心,雙方達成戰略合作
RISC-V開源創新中心:“我們非常高興能與賽昉科技公司建立戰略合作伙伴關系。賽昉科技的技術創新,結合中心的教育資源,將為雙方帶來巨大的協同效應?!?b class='flag-5'>
Ubuntu現已適配RISC-V單板計算機Milk-V Mars
近期,Canonical宣布優化的Ubuntu24.04鏡像已可用于RISC-V單板計算機Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載
信用卡大小的 RISC-V 單板計算機介紹
信用卡大小的 RISC-V 單板計算機 —— Mars
Mars 由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載賽昉科技
發表于 04-12 16:39
賽昉科技VisionFive 2生態進展雙周報(2.1-2.29)
Image for VisionFive 2)
社區開發者發布4篇【昉·星光 2高性能RISC-V單板計算機體驗】系列文章,內容包括:為Ubuntu安裝Docker及常用軟件;以容器
發表于 02-29 15:45
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
下載并啟動容器
HomeAssisatant 官方并沒有提供基于
發表于 02-21 18:07
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
目的
為了更好的利用星光2,決定使用容器
發表于 02-21 17:54
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
前言
很感謝賽
發表于 02-21 17:49
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接 一、官方資料 RISC-V官網: [https://rvspace.org]
評論