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
主站蜘蛛池模板: 一本大道视频精品人妻| 亚洲高清在线天堂精品| 在线精品自拍| 欧美精品H在线播放| 大陆精大陆国产国语精品1024| 亚洲一区二区三区国产精品 | 国产日韩欧美黄色片免费观看| 亚洲欧美自拍一区| 幺女国产一级毛片| 日韩精品毛片| 成人福利在线观看| 亚洲综合在线网| 日韩欧美国产区| 99久久国产综合精品女同| 久久国产精品夜色| 在线va视频| www.亚洲一区| 国产午夜小视频| 欧美日韩动态图| 亚洲综合片| 亚洲男人天堂2020| 国产免费人成视频网| 中文字幕 91| 国产在线八区| 国产精品偷伦在线观看| 88国产经典欧美一区二区三区| 亚洲精品欧美重口| 成人伊人色一区二区三区| 波多野结衣AV无码久久一区| 日本午夜精品一本在线观看| 白浆免费视频国产精品视频| 日韩在线欧美在线| 亚洲青涩在线| 久久黄色影院| 日韩精品无码免费一区二区三区| 永久毛片在线播| 中文字幕日韩久久综合影院| 欧洲亚洲欧美国产日本高清| 自拍欧美亚洲| 亚洲天堂久久| 国产毛片高清一级国语| 最新日本中文字幕| 欧美国产日韩在线播放| 高清久久精品亚洲日韩Av| 日本精品一在线观看视频| 成人国产精品2021| 激情无码视频在线看| 五月天久久婷婷| 无码一区中文字幕| 久久久波多野结衣av一区二区| 国内毛片视频| 欧美精品啪啪| 亚洲欧美日韩视频一区| 五月天丁香婷婷综合久久| 香蕉99国内自产自拍视频| 国产av无码日韩av无码网站| 亚洲无码视频一区二区三区| 在线播放精品一区二区啪视频| 人妻无码中文字幕第一区| 日韩最新中文字幕| 国产精品视频白浆免费视频| 黄片在线永久| 无码内射中文字幕岛国片| a毛片基地免费大全| 亚洲人在线| 小说 亚洲 无码 精品| 日韩福利在线观看| 又粗又大又爽又紧免费视频| 精品欧美一区二区三区久久久| 国产精品自拍合集| 18禁黄无遮挡免费动漫网站| 国产乱人视频免费观看| 日韩精品视频久久| 免费国产不卡午夜福在线观看| 国产精品无码一区二区桃花视频| 天天色综网| 91丝袜在线观看| 91精品国产综合久久香蕉922 | 国产成人精品2021欧美日韩| 免费无遮挡AV| 在线观看欧美国产| 国产成人精品第一区二区|