• 
    

    
    

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

      ?

      開源硬件編程實現(xiàn)“手勢操控”三例

      2021-11-17 17:14牟曉東
      電腦報 2021年43期
      關(guān)鍵詞:燈帶翻頁圖形化

      牟曉東

      在Arduino、樹莓派、掌控板等常見的開源硬件編程中,我們可以通過功能豐富的外接或內(nèi)置式傳感器,借助于代碼編程或圖形化編程,最終可以制作出非常多創(chuàng)意十足的創(chuàng)客作品。以“手勢操控”為例,根據(jù)“捕捉”到的不同手勢(比如不同方向的揮手動作、順時針或逆時針畫圈動作等),做出預(yù)先設(shè)置的不同響應(yīng)動作,比如控制PPT課件的上下翻頁、燈帶中不同燈珠的亮滅、OLED顯示屏出現(xiàn)對應(yīng)的信息提示等。

      一、樹莓派+Python“手勢操控”PPT課件翻頁

      實驗器材包括:樹莓派3B+和古德微擴展板各一塊,HC-SR04超聲波傳感器一個,綠色和紅色LED燈各一支。

      1.實驗裝置連接

      首先,將古德微擴展板正確安裝在樹莓派上,注意四周小心均勻用力;接著,將超聲波傳感器安裝于擴展板的20號和21號插孔,注意VCC、Trig、Echo和GND引腳要一一對應(yīng),負責超聲波發(fā)射和接收的兩個“圓孔”方向朝外;然后,將綠色LED燈插入5號插孔,將紅色LED燈插入6號插孔,注意“長腿正、短腿負”的規(guī)則;最后,給樹莓派通電,啟動操作系統(tǒng)(如圖1)。

      2.安裝PyAutoGUI庫模塊

      運行Windows的“遠程桌面連接”,輸入樹莓派的IP地址(比如:192.168.1.116)登錄進入樹莓派的操作系統(tǒng)。由于手勢操控是通過將超聲波傳感器所檢測到的測距數(shù)據(jù)作為輸入控制信號,然后“驅(qū)動”系統(tǒng)的鍵盤上下方向鍵(或者鼠標的左鍵單擊),因此需要安裝PyAutoGUI庫模塊——點擊運行樹莓派的“LX終端”進入命令行模式,輸入“pip3 install pyautogui”命令進行安裝(如圖2)。

      3.進行Python代碼編程

      運行Thonny Python IDE,新建文件hand_PPT.py,輸入代碼開始編程:

      首先,通過四行import代碼導(dǎo)入待用的庫模塊:“from gpiozero import DistanceSensor,LED”、“import pyautogui”、“from signal import pause”和“from time import sleep”;接著,分別為插接在5號、6號、20和21號引腳的綠色和紅色LED燈、超聲波傳感器建立對應(yīng)的變量:“green = LED(5)”、“red = LED(6)”、“sensor = DistanceSensor(21, 20)”;然后建立“while True:”循環(huán)結(jié)構(gòu),為變量dis進行超聲波傳感器測距賦值(取兩位小數(shù)):“dis = round(sensor.distance,2)”,并且打印輸出:“print(dis)”;接著通過if語句進行測距值是否在0.2-0.5米區(qū)間內(nèi)的判斷:“if (dis > 0.2 and dis <= 0.5):”,如果條件成立,則先調(diào)用PyAutoGUI庫執(zhí)行按下鍵盤的向下方向鍵操作——對應(yīng)PPT課件播放時的向下翻頁操作:“pyautogui.press('down')”,再亮綠色LED燈進行提醒:“green.on()”,0.2秒鐘之后再將其關(guān)閉:“sleep(0.2)”、“green.off()”;再建立elif判斷語句,對測距值是否在0.2米內(nèi)進行判斷:“elif dis <= 0.2:”,條件成立的話則先按下鍵盤的向上方向鍵——對應(yīng)PPT播放時的“回翻”操作:“pyautogui.press('up')”,然后亮紅色LED燈,持續(xù)0.2秒鐘后關(guān)閉:“red.on()”、“sleep(0.2)”、“red.off()”;最后,為循環(huán)結(jié)構(gòu)再添加一個等待0.5秒鐘的語句:“sleep(0.5)”(如圖3)。

      4.測試PPT課件播放時的手勢操控

      程序代碼保存后點擊“運行”按鈕,接著打開待測試的“Python數(shù)據(jù)分析基礎(chǔ).pptx”文件播放(如圖4)。

      此時在Python IDE下方的Shell區(qū)每隔0.5秒鐘就會生成一個測距值,如果在超聲波傳感器前方0.2-0.5米的區(qū)間范圍內(nèi)揮手,PPT課件就會向下翻頁,揮一次手就會翻一頁PPT,與使用鼠標點擊或是翻頁筆遙控的效果是完全一致的;如果翻頁錯誤,想“回翻”的話,則在0.2米內(nèi)的范圍內(nèi)揮手,PPT課件就會切換至上一頁;在超過0.5米的范圍外,手勢操控是“無效”的不響應(yīng)狀態(tài)。

      二、樹莓派+圖形化編程“手勢操控”交通多變燈帶

      實驗器材包括:樹莓派3B+和古德微擴展板各一塊,GY-PAJ7620手勢傳感器一個,60個燈珠的可編程ws281x燈帶一條。

      1.實驗裝置連接

      保持擴展板插接在樹莓派上不動,將手勢傳感器插接至擴展板的I2C引腳區(qū),注意VIN接VCC電源正極、GND接地、SCL與CLK連接、SDA與DATA連接;然后將燈帶的輸入端插入擴展板的18號引腳,注意檢查三根引線的標注(+5V、GND和Din)與擴展板的VCC、GND和D端必須一一對應(yīng);最后,給樹莓派通電,啟動操作系統(tǒng)(如圖5)。

      2.在古德微機器人網(wǎng)站進行圖形化編程

      在瀏覽器中訪問古德微機器人網(wǎng)站(http://www.gdwrobot.cn/),登錄賬號后進入“積木”編程區(qū),開始拖動對應(yīng)的功能模塊語句進行圖形化編程:

      首先,分別新建六個最“底層”的功能函數(shù),分別是“左右方向”、“上下方向”、“順時針”、“逆時針”、“靠近”和“遠離”,對應(yīng)的手勢操控動作分別是向左或向右、向上或向下四個方向的揮手動作,順時針、逆時針轉(zhuǎn)動和靠近與遠離動作,顯示效果分別是:左右兩組共30個燈珠發(fā)綠光、上下兩組的其他30個燈珠發(fā)紅光——“左右綠燈通行、上下紅燈禁行”,上下兩組的30個燈珠發(fā)綠光、左右兩組的30個燈珠發(fā)紅光——“上下綠燈通行、左右紅燈禁行”,“順時針”和“逆時針”函數(shù)則是分別控制四組燈珠從第一個燈珠同時出現(xiàn)(發(fā)黃光)“跑馬燈”的順時針、逆時針效果,而“靠近”和“遠離”函數(shù)分別控制隨機色的“花燈”效果和熄滅所有燈珠的效果(如圖6)。

      接著,在主程序中先對燈帶和PAJ7620超聲波傳感器進行初始化操作;然后,添加一個名為“燈帶顯示”的子線程,對應(yīng)的同名函數(shù)是一個六分支選擇結(jié)構(gòu),實現(xiàn)的功能是對在“重復(fù)當‘真”循環(huán)結(jié)構(gòu)中每隔0.1秒鐘就檢測一次的變量“手勢信息”進行判斷,并且根據(jù)其返回的數(shù)據(jù)值進行對應(yīng)函數(shù)的調(diào)用,比如當其值為“l(fā)eft”或“right”時,說明手勢傳感器檢測到用戶發(fā)出了向左或向右的揮手指令,此時便調(diào)用“左右方向”函數(shù),出現(xiàn)“左右綠燈通行、上下紅燈禁行”的燈帶顯示效果(如圖7)。

      3.測試“手勢操控”交通多變燈帶

      將程序保存為“‘手勢操控交通多變燈帶”,點擊“連接設(shè)備”后再點擊“運行”按鈕,對程序進行各種手勢操控的測試,燈帶會隨之顯示出各種預(yù)設(shè)的效果(如圖8)。

      三、掌控板Mind+圖形化編程:“手勢操控”交通信號

      實驗器材包括:掌控板2.0和百靈鴿擴展板各一塊,GY-PAJ7620手勢傳感器一個,小型面包板一個,公對母異色杜邦線四根。

      1.實驗裝置連接

      首先,將手勢傳感器插接至面包板上;接著,從百靈鴿擴展板(與掌控板已經(jīng)插接好)的I2C區(qū)域接出四根杜邦線,根據(jù)G(接地)、V(電源正極)、SCL(控制線)和SDA(數(shù)據(jù)線)的標注分別插接至面包板,與手勢傳感器的GND、VIN、SCL和SDA一一對應(yīng);最后,通過數(shù)據(jù)線將掌控板與電腦的USB接口連接(如圖9)。

      2.在Mind+中進行圖形化編程

      運行Mind+,首先通過點擊左下角的“擴展”按鈕將“掌控板”和“PAJ7620U2手勢傳感器”庫添加至左側(cè)模塊區(qū)域;接著,在“ESP32主程序”和“循環(huán)執(zhí)行”之間進行初始化設(shè)置,包括關(guān)閉全部的LED燈、屏幕第2行顯示“‘手勢操控交通信號”提示信息、設(shè)置手勢傳感器的運行模式為“高速”;然后,在循環(huán)體中控制手勢傳感器進行“獲取一次數(shù)據(jù)”的動作,并且對該動作的返回數(shù)據(jù)進行判斷:當用戶發(fā)出“向左揮手”或“向右揮手”動作時,程序調(diào)用執(zhí)行“左右方向”函數(shù);當用戶發(fā)出“向上揮手”或“向下?lián)]手”動作時,程序則調(diào)用執(zhí)行“上下方向”函數(shù);兩個函數(shù)的代碼非常相似,執(zhí)行的動作分別是在掌控板的OLED屏上顯示“紅燈,停!”、“綠燈,行!”文字信息,三支LED燈發(fā)紅光、發(fā)綠光,蜂鳴器發(fā)出“滴”的提醒音。

      值得注意的是,在Mind+的窗口右側(cè)會自動生成與圖形化編程對應(yīng)的Arduino C代碼,比如程序先是通過“#include ”和“#include ”導(dǎo)入庫文件,然后就像是在Arduino的IDE中進行編程一樣,有“void setup()”和“void loop()”函數(shù),分別對應(yīng)程序的初始化設(shè)置和循環(huán)體執(zhí)行(如圖10)。

      3.測試“手勢操控”個性交通信號

      將程序保存后點擊“連接設(shè)備”按鈕,出現(xiàn)類似于“COM8-CP210x”的掌控板設(shè)備名稱后再點擊“上傳到設(shè)備”按鈕,右下角的窗口就會提示開始向掌控板中寫入代碼(同時有上傳進度條)。當代碼寫入完畢后,在掌控板的OLED屏上先顯示有“‘手勢操控交通信號”的文字提示信息;接著,嘗試在手勢傳感器的上方感應(yīng)區(qū)進行向左或向右揮手、向上或向下?lián)]手,掌控板就會隨之做出不同的亮燈、顯示提示信息和蜂鳴器提醒音的響應(yīng)(如圖11)。

      猜你喜歡
      燈帶翻頁圖形化
      LED COB燈帶在LED燈帶中演繹及應(yīng)用
      基于Arduino圖形化編程的教學(xué)應(yīng)用研究
      淺談圖形化編程在小學(xué)教育中的作用
      LED燈串顯示屏的設(shè)計與應(yīng)用
      自動翻頁裝置
      樹莓派自定義“燈帶函數(shù)”
      打字機
      便攜式可收放LED燈帶
      Mixly米思齊:優(yōu)秀的國產(chǎn)創(chuàng)客教育工具
      每日一學(xué)
      察雅县| 红安县| 巴东县| 德安县| 阿拉善右旗| 栾川县| 铁岭市| 道孚县| 明水县| 迭部县| 望都县| 益阳市| 延边| 宁化县| 昭觉县| 原平市| 体育| 来安县| 若尔盖县| 白沙| 云梦县| 寿宁县| 衡阳县| 都匀市| 湖南省| 晴隆县| 革吉县| 扶风县| 汉中市| 尼木县| 黄陵县| 福贡县| 麻江县| 邻水| 青川县| 霍山县| 商洛市| 夹江县| 阳西县| 湖州市| 宝丰县|