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| 亚洲成a人在线观看| 欧美日韩资源| 日韩乱码免费一区二区三区| 欧美高清国产| 国产一级小视频| 免费看美女自慰的网站| AV天堂资源福利在线观看| 老司国产精品视频| 日本黄色a视频| 青青草久久伊人| 四虎永久免费地址在线网站| yjizz视频最新网站在线| 亚洲国模精品一区| 国产精品一区二区不卡的视频| 婷婷六月综合网| 熟女成人国产精品视频| 草逼视频国产| 亚洲综合片| 欧美A级V片在线观看| 国产成人久久综合一区| 国产精品自在线拍国产电影| 亚洲国产成人无码AV在线影院L| 久久99久久无码毛片一区二区| 精品久久国产综合精麻豆| 97在线免费| 亚洲欧洲免费视频| 黄色a一级视频| 国产a在视频线精品视频下载| 欧美另类精品一区二区三区| 操美女免费网站| 青青草原国产| 免费在线一区| 亚洲AV一二三区无码AV蜜桃| 国产欧美日韩另类精彩视频| 三上悠亚精品二区在线观看| a天堂视频在线| 国产福利小视频在线播放观看| 亚洲精品无码高潮喷水A| 欧美精品高清| 欧美成在线视频| 成人va亚洲va欧美天堂| 天堂成人av| 蜜桃视频一区二区| 久久中文无码精品| 丝袜高跟美脚国产1区| www.99在线观看| 国产成人精品视频一区视频二区| 91丨九色丨首页在线播放| 国产h视频在线观看视频| 亚洲午夜片| 亚洲区第一页| 亚洲精品第1页| 国产精品成人免费综合| 国内精品久久九九国产精品| 久久精品人人做人人综合试看| 人妻丰满熟妇αv无码| 九色视频一区| 国产永久在线观看| 精品国产成人国产在线| 91黄色在线观看| a在线亚洲男人的天堂试看| 国产精品冒白浆免费视频| 国产一级毛片网站| 97国内精品久久久久不卡| 亚洲视频黄| 成人在线第一页| 国产亚卅精品无码| 91毛片网| 亚洲美女一区二区三区| 国产精品妖精视频| h网站在线播放| 亚洲欧美一区二区三区蜜芽| 久久亚洲黄色视频| 久久久久人妻一区精品色奶水 |