• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      樹莓派滑桿映射操控“流水燈帶”

      2022-09-09 23:34:26牟曉東
      電腦報 2022年34期
      關鍵詞:滑桿燈珠燈帶

      牟曉東

      對于許多經(jīng)常進行開源硬件編程的中小學創(chuàng)客而言,具備扎實的學科知識是入門的基礎技能,比如算法的設計與程序代碼調(diào)試、物理電學部分基礎理論和一定的實驗動手能力等等。通常從一個創(chuàng)意的設想到實驗過程的設計,再到圖形化或Python代碼編程的運行測試,以及最終的實驗改進與程序升級,每個環(huán)節(jié)幾乎都離不開各種知識的綜合應用。以樹莓派滑桿映射操控“流水燈帶”為例,需要設計者對模數(shù)轉(zhuǎn)換器、滑桿傳感器和燈帶等設備比較熟悉,同時又要具備一定的數(shù)學知識應用(比如數(shù)字范圍的映射、取整等),最終實現(xiàn)燈帶隨滑桿所處的不同位置而點亮對應不同數(shù)量燈珠的動態(tài)“流水”效果。

      實驗器材包括樹莓派和古德微擴展板各一塊,滑桿傳感器模塊一個,WS281x燈帶一條,ADS1115模數(shù)轉(zhuǎn)換器一個,杜邦線若干。

      首先,將古德微擴展板正確安裝于樹莓派上,并且將模數(shù)轉(zhuǎn)換器插入擴展板的Up引腳列;接著,通過杜邦線將滑桿的VCC端、GND端和OTB(或OTA)端分別連接至擴展板24號引腳的VCC端、GND端和A0模擬端,再將燈帶的起始端插入18號引腳,注意三根引線的標注要正確對應;最后,給樹莓派連接數(shù)據(jù)線,通電啟動操作系統(tǒng)(如圖1)。

      登錄進入古德微機器人“積木”界面,開始圖形化編程。

      首先對燈帶進行初始化設置,從“智能硬件”—“燈帶”中找到“設置GPIO”模塊,將參數(shù)設置為燈帶與擴展板連接的引腳號18,并且將可控制燈珠的個數(shù)設置為60,亮度為50;然后建立一個“重復當‘真’”的循環(huán)結(jié)構(gòu),將變量滑桿值賦值為從A0模擬端獲取的滑桿位置數(shù)據(jù)進行“先映射、后取整”,因為其原始數(shù)據(jù)范圍是從0到32767,而燈帶的燈珠數(shù)量是60(編號為從0到59),所以要進行數(shù)據(jù)范圍的重新映射;對映射后得到的數(shù)據(jù)再進行“取整”處理,目的是防止出現(xiàn)非整數(shù)而不能正確對應編號為整數(shù)范圍的燈珠序號;接著再建立一個循環(huán)結(jié)構(gòu),變量i的初值為0,終值為變量滑桿值,步長為1,執(zhí)行的操作是設置燈帶的前i個燈珠顏色均為紅色,注意一定要添加“燈帶刷新顯示”模塊;為了實現(xiàn)燈帶燈珠發(fā)光后再隨滑桿的滑動而動態(tài)顯示滑桿的對應位置,需要再添加一個循環(huán)結(jié)構(gòu)來完成熄滅剛剛點亮的所有燈珠功能,對應的RGB值均設置為0即可;最后,在循環(huán)結(jié)構(gòu)中添加一條“等待0.01秒”的延時等待模塊(如圖2)。

      程序編寫完畢后,點擊“保存”按鈕將程序保存為“滑桿映射操控‘流水燈帶’”;點擊“連接設備”后再點擊“運行”按鈕(記得打開LOG調(diào)試區(qū)),此時調(diào)節(jié)滑桿的位置,燈帶上就會亮起對應位置的紅燈,同時會在調(diào)試區(qū)顯示有滑桿值。比如當滑桿處于大約中間位置時,調(diào)試區(qū)會顯示數(shù)字29(或30),此時也會亮起30個發(fā)紅光的燈珠;多次測試均會實現(xiàn)滑桿映射操控“流水燈帶”的效果(如圖3)。

      通過Windows的“遠程桌面連接”登錄進入樹莓派操作系統(tǒng),打開IDE開始Python代碼編程。

      首先,仍是導入相關的庫模塊并進行初始化設置:為了防止出現(xiàn)“SyntaxError: Non-ASCII character ‘\xe5’ in file”之類的編碼提示錯誤,建議先添加一行“# -*- coding: utf-8 -*-”代碼;導入模數(shù)轉(zhuǎn)換器庫模塊:“import Adafruit_ADS1x15”,導入能夠控制燈帶的rpi_ws281x 庫:“import rpi_ws281x as ws”,導入時間庫:“import time”;然后,新建變量adc生成模數(shù)轉(zhuǎn)換器的具體實例:“adc = Adafruit_ADS1x15.ADS1115()”;新建變量LED_COUNT和LED_PIN,分別賦值為60和18,對應標準燈帶的60個燈珠數(shù)量和連接擴展板的引腳號18;創(chuàng)建燈帶對象strip并進行實例化:“strip = ws.PixelStrip(LED_COUNT,LED_PIN)”,將變量LED_COUNT和LED_PIN的數(shù)據(jù)作為參數(shù)傳遞進去;“strip.begin()”代碼的作用是對燈帶進行初始化。

      接著,建立一個“while 1:”循環(huán)結(jié)構(gòu),通過變量Sliding_Bar來實現(xiàn)從A0模擬端讀取滑桿位置數(shù)據(jù),為其賦值為:“adc.read_adc(0, gain=1)”;再新建變量numbers,賦值為“int(Sliding_Bar/547)”,完成從0-32767范圍到0-59范圍的映射及取整(其中的547作為除數(shù)的目的是將32767映射為59,等等),并且將變量Sliding_Bar和numbers通過print()均打印輸出;再建立一個點亮對應數(shù)量燈珠的for循環(huán),在range()函數(shù)中將終值設置為變量numbers,循環(huán)語句為“strip.setPixelColor(i,ws.Color(0,255,0))”,作用是設置對應燈珠的RGB顏色為“0,255,0”,即綠色;然后,通過語句“strip.show()”對燈帶進行刷新操作;第二個for循環(huán)實現(xiàn)的功能是熄滅剛剛點亮的燈珠,因此其中設置的RGB顏色為“0,0,0”;最后,添加延時0.01秒的語句“time.sleep(0.01)”。

      將程序保存為“滑桿映射操控‘流水燈帶’.py”,但需要注意的是,此時如果直接在IDE界面中點擊Run按鈕進行程序的測試,會出現(xiàn)“Can’t open /dev/mem:Permission denied”的拒絕訪問錯誤提示(如圖4)。

      此時,可以到命令行模式下使用超級用戶權(quán)限sudo來運行程序——先通過“cd pycode”命令進入程序的保存目錄,再輸入“sudo python 滑桿映射操控‘流水燈帶’.py”命令后回車,然后再不斷調(diào)節(jié)滑桿的位置,命令行窗口開始有一對一對的數(shù)據(jù)產(chǎn)生,也就是變量Sliding_Bar和numbers的值;同時,燈帶也會對應亮起相關數(shù)量的燈珠,發(fā)光顏色是綠色(如圖5)。

      效果與圖形化編程所實現(xiàn)的滑桿映射操控“流水燈帶”幾乎是一樣的,大家不妨一試。值得注意的是,由于在Python代碼編程時使用了“while 1:”循環(huán)結(jié)構(gòu),其中并未設置任何跳出循環(huán)的動作響應,因此中止程序的運行方式可直接在命令行模式下按“Ctrl+C”組合鍵來強行中斷程序。

      猜你喜歡
      滑桿燈珠燈帶
      生活中的周期問題
      電路狀態(tài)展示教具制作
      今日自動化(2022年7期)2022-09-08 04:18:12
      圖形化編程與炫彩多變的燈珠矩陣
      一種硅橡膠絕緣子成品的頂出設備
      LED 成品燈具中鋁基板通用不同品牌3030-LED燈珠焊盤的設計
      追魂
      壹讀(2020年1期)2020-12-08 17:04:34
      便攜式可收放LED燈帶
      變速器滑桿失效分析
      隱形燈帶點亮家的光芒
      小米雜貨鋪又添新品:支持1600萬種色彩的燈帶
      流行色(2016年8期)2016-10-20 00:09:30
      自贡市| 滦平县| 南投县| 金寨县| 哈密市| 韶山市| 介休市| 海丰县| 盐亭县| 页游| 阜新市| 鲁甸县| 永康市| 名山县| 松桃| 高邮市| 珠海市| 惠州市| 长葛市| 商城县| 井冈山市| 镇远县| 民丰县| 陵水| 巍山| 高青县| 榕江县| 水城县| 鹤山市| 丽水市| 苏尼特右旗| 北流市| 揭东县| 武平县| 松江区| 东乌珠穆沁旗| 闽侯县| 出国| 工布江达县| 天气| 清镇市|