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

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

2021-11-17 17:14:30牟曉東
電腦報 2021年43期

牟曉東

在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ù)責(zé)超聲波發(fā)射和接收的兩個“圓孔”方向朝外;然后,將綠色LED燈插入5號插孔,將紅色LED燈插入6號插孔,注意“長腿正、短腿負(fù)”的規(guī)則;最后,給樹莓派通電,啟動操作系統(tǒng)(如圖1)。

2.安裝PyAutoGUI庫模塊

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

3.進(jìn)行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進(jìn)行超聲波傳感器測距賦值(取兩位小數(shù)):“dis = round(sensor.distance,2)”,并且打印輸出:“print(dis)”;接著通過if語句進(jìn)行測距值是否在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燈進(jìn)行提醒:“green.on()”,0.2秒鐘之后再將其關(guān)閉:“sleep(0.2)”、“green.off()”;再建立elif判斷語句,對測距值是否在0.2米內(nèi)進(jìn)行判斷:“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,與使用鼠標(biāo)點擊或是翻頁筆遙控的效果是完全一致的;如果翻頁錯誤,想“回翻”的話,則在0.2米內(nèi)的范圍內(nèi)揮手,PPT課件就會切換至上一頁;在超過0.5米的范圍外,手勢操控是“無效”的不響應(yīng)狀態(tài)。

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

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

1.實驗裝置連接

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

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

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

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

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

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

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

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

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

1.實驗裝置連接

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

2.在Mind+中進(jìn)行圖形化編程

運行Mind+,首先通過點擊左下角的“擴展”按鈕將“掌控板”和“PAJ7620U2手勢傳感器”庫添加至左側(cè)模塊區(qū)域;接著,在“ESP32主程序”和“循環(huán)執(zhí)行”之間進(jìn)行初始化設(shè)置,包括關(guān)閉全部的LED燈、屏幕第2行顯示“‘手勢操控交通信號”提示信息、設(shè)置手勢傳感器的運行模式為“高速”;然后,在循環(huán)體中控制手勢傳感器進(jìn)行“獲取一次數(shù)據(jù)”的動作,并且對該動作的返回數(shù)據(jù)進(jìn)行判斷:當(dāng)用戶發(fā)出“向左揮手”或“向右揮手”動作時,程序調(diào)用執(zhí)行“左右方向”函數(shù);當(dāng)用戶發(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中進(jìn)行編程一樣,有“void setup()”和“void loop()”函數(shù),分別對應(yīng)程序的初始化設(shè)置和循環(huán)體執(zhí)行(如圖10)。

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

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

主站蜘蛛池模板: 一级毛片免费不卡在线| 精品无码专区亚洲| 67194成是人免费无码| 亚洲成年人片| 欧美成人第一页| 18禁不卡免费网站| 欧美在线精品怡红院| 手机精品视频在线观看免费| 欧美精品啪啪一区二区三区| 狠狠操夜夜爽| 伊人激情综合网| 免费 国产 无码久久久| 特黄日韩免费一区二区三区| 亚洲综合亚洲国产尤物| 天天色综网| 国产精品密蕾丝视频| 国产一级α片| 中文字幕一区二区人妻电影| 青青草91视频| 国产真实二区一区在线亚洲 | 欧美在线视频不卡第一页| 第九色区aⅴ天堂久久香| 国产成人精品2021欧美日韩 | 亚洲天堂2014| 国产亚洲精品无码专| 国产精品永久免费嫩草研究院| 伦精品一区二区三区视频| 五月婷婷精品| 久久情精品国产品免费| 亚洲激情区| 2021国产v亚洲v天堂无码| 亚洲最新网址| 亚洲天堂成人| 中文字幕首页系列人妻| 福利国产微拍广场一区视频在线 | 亚洲天堂网视频| 97se亚洲综合在线| 国产拍在线| 欧美色图第一页| 99久久亚洲综合精品TS| 57pao国产成视频免费播放| 91区国产福利在线观看午夜| 亚洲高清中文字幕| 国产素人在线| 免费人欧美成又黄又爽的视频| 91精品国产一区| 国产精品女主播| 亚洲成a人片77777在线播放| 国产精品第页| 亚洲黄色成人| 免费无码在线观看| 亚洲色成人www在线观看| 国产亚洲精品97AA片在线播放| 国产美女在线观看| 手机在线国产精品| 美女内射视频WWW网站午夜 | 国产黑丝一区| 亚洲精品大秀视频| 国产精品一区在线麻豆| 国产精品网曝门免费视频| 国产靠逼视频| 国产成本人片免费a∨短片| 国产福利拍拍拍| 国产精品乱偷免费视频| 国产AV无码专区亚洲精品网站| 国产精品成人免费综合| 无码精品国产dvd在线观看9久| 全免费a级毛片免费看不卡| 经典三级久久| 色哟哟色院91精品网站| 午夜三级在线| 福利视频99| 亚洲乱码在线视频| 日本欧美视频在线观看| 亚洲天堂视频网| 国产精品污视频| 国产白丝av| 五月天天天色| 国产成人精品一区二区| 日韩国产一区二区三区无码| 免费AV在线播放观看18禁强制| 99精品国产高清一区二区|