999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2022-09-09 23:34:26牟曉東
電腦報 2022年34期
關鍵詞:流水設置

牟曉東

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

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

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

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

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

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

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

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

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

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

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

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

猜你喜歡
流水設置
傣家跟著流水走
云南畫報(2021年8期)2021-12-02 02:46:08
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
流水
文苑(2020年10期)2020-11-07 03:15:26
7招教你手動設置參數
流水有心
天津詩人(2017年2期)2017-11-29 01:24:12
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
前身寄予流水,幾世修到蓮花?
視野(2015年6期)2015-10-13 00:43:11
艦船人員編制的設置與控制
落紅只逐東流水
海峽姐妹(2014年5期)2014-02-27 15:09:38
主站蜘蛛池模板: 红杏AV在线无码| 国产成人啪视频一区二区三区| 99热亚洲精品6码| 二级特黄绝大片免费视频大片| 欧美一区国产| 99精品福利视频| 国产女人爽到高潮的免费视频| 久久国产黑丝袜视频| 午夜国产精品视频| 五月天久久婷婷| 亚洲高清在线播放| 亚洲v日韩v欧美在线观看| 国产99视频精品免费视频7| 在线国产你懂的| 一区二区偷拍美女撒尿视频| 亚洲精品天堂在线观看| 99精品免费欧美成人小视频 | 91精品视频在线播放| 国产成人精品一区二区不卡| 美女无遮挡拍拍拍免费视频| 亚洲欧州色色免费AV| 欧美不卡二区| 亚洲a免费| 91久久精品国产| 亚洲第一成人在线| 香港一级毛片免费看| 国产噜噜在线视频观看| 在线观看视频99| 午夜免费视频网站| 日韩免费成人| 伊人成人在线| 精品91视频| 欧美日韩另类国产| 亚洲精品成人片在线播放| 国产精品va| 国产全黄a一级毛片| 成人国产一区二区三区| 欧美精品成人| 欧美色香蕉| 精品国产中文一级毛片在线看| 欧美三级视频在线播放| 精品国产自在在线在线观看| 国产特级毛片| 人妻21p大胆| 国产9191精品免费观看| 一级成人a毛片免费播放| 国产区网址| 亚洲第一区欧美国产综合| 在线无码私拍| 在线免费无码视频| 激情综合网激情综合| 精品人妻AV区| 伊人精品视频免费在线| 国内精品伊人久久久久7777人| 亚洲国产天堂在线观看| 国产激情无码一区二区APP| 啪啪啪亚洲无码| 一级片免费网站| 欧洲成人免费视频| 999在线免费视频| 中文字幕欧美成人免费| 国产成人免费手机在线观看视频 | 国产视频一二三区| 欧美特黄一级大黄录像| 婷婷在线网站| 国产精品尤物铁牛tv| 欧美日韩午夜视频在线观看| 99re视频在线| 午夜小视频在线| 国产在线观看第二页| 日韩色图区| 呦视频在线一区二区三区| 国产凹凸视频在线观看| 国产精品免费电影| 国产色婷婷| 黄色片中文字幕| 91九色视频网| 欧美亚洲网| 久久久久亚洲AV成人网站软件| AV熟女乱| 成年人国产网站| 国产亚洲精品资源在线26u|