亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        樹(shù)莓派滑桿映射操控“流水燈帶”

        2022-09-09 23:34:26牟曉東
        電腦報(bào) 2022年34期
        關(guān)鍵詞:滑桿燈珠燈帶

        牟曉東

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

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

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

        登錄進(jìn)入古德微機(jī)器人“積木”界面,開(kāi)始圖形化編程。

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

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

        通過(guò)Windows的“遠(yuǎn)程桌面連接”登錄進(jìn)入樹(shù)莓派操作系統(tǒng),打開(kāi)IDE開(kāi)始Python代碼編程。

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

        接著,建立一個(gè)“while 1:”循環(huán)結(jié)構(gòu),通過(guò)變量Sliding_Bar來(lái)實(shí)現(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通過(guò)print()均打印輸出;再建立一個(gè)點(diǎn)亮對(duì)應(yīng)數(shù)量燈珠的for循環(huán),在range()函數(shù)中將終值設(shè)置為變量numbers,循環(huán)語(yǔ)句為“strip.setPixelColor(i,ws.Color(0,255,0))”,作用是設(shè)置對(duì)應(yīng)燈珠的RGB顏色為“0,255,0”,即綠色;然后,通過(guò)語(yǔ)句“strip.show()”對(duì)燈帶進(jìn)行刷新操作;第二個(gè)for循環(huán)實(shí)現(xiàn)的功能是熄滅剛剛點(diǎn)亮的燈珠,因此其中設(shè)置的RGB顏色為“0,0,0”;最后,添加延時(shí)0.01秒的語(yǔ)句“time.sleep(0.01)”。

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

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

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

        猜你喜歡
        滑桿燈珠燈帶
        生活中的周期問(wèn)題
        電路狀態(tài)展示教具制作
        圖形化編程與炫彩多變的燈珠矩陣
        一種硅橡膠絕緣子成品的頂出設(shè)備
        LED 成品燈具中鋁基板通用不同品牌3030-LED燈珠焊盤的設(shè)計(jì)
        追魂
        壹讀(2020年1期)2020-12-08 17:04:34
        便攜式可收放LED燈帶
        變速器滑桿失效分析
        隱形燈帶點(diǎn)亮家的光芒
        小米雜貨鋪又添新品:支持1600萬(wàn)種色彩的燈帶
        流行色(2016年8期)2016-10-20 00:09:30
        日本av一区二区三区四区| 乱码午夜-极品国产内射| 亚洲AV秘 无码一区二区三区1| 亚洲av网站首页在线观看| 日本少妇一区二区三区四区| 精品国产免费一区二区三区| 久久久久久久女国产乱让韩| 国产精品自线在线播放| 特级国产一区二区三区| 又紧又大又爽精品一区二区| 亚洲中久无码永久在线观看同| 99国产综合精品-久久久久| 日本一区二区三区清视频| 亚洲熟妇色自偷自拍另类| www插插插无码免费视频网站 | 国产熟妇搡bbbb搡bb七区| 日韩免费高清视频网站| 日韩五码一区二区三区地址| 亚洲av无码久久| 精品久久综合亚洲伊人| 国产美女胸大一区二区三区| 在线精品首页中文字幕亚洲| 亚洲av无码精品蜜桃| 在线免费观看韩国a视频| 亚洲色图少妇熟女偷拍自拍| 久久无码潮喷a片无码高潮| 大香伊蕉国产av| 久久精品美女久久| 婷婷久久av综合一区二区三区| 色777狠狠狠综合| 国产精品麻豆成人AV电影艾秋| 免费国产自拍视频在线观看| 久久久久99人妻一区二区三区| 欧美freesex黑人又粗又大| 免费a级毛片无码a∨免费| 手机在线播放av网址| 天天做天天爱天天综合网2021| 熟妇无码AV| 亚洲一区中文字幕视频| 亚洲精品乱码久久久久久中文字幕 | 在线亚洲妇色中文色综合|