国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

樹莓派“絲桿”創(chuàng)意智造二例

2021-12-30 22:44牟曉東
電腦報 2021年48期
關鍵詞:小度樹莓電機

牟曉東

在中小學階段的開源硬件編程創(chuàng)意智造中,有時會用到一種叫作“絲桿”(微型)的輸出設備,常見的“滾珠絲桿”能夠將圓周運動轉化為直線運動,也就是依靠設定內(nèi)部的微型步進電機精準的正轉或反轉的圈數(shù),最終帶動絲桿上的“滑臺”產(chǎn)生直線位移。利用絲桿的這一特征,我們可以在樹莓派中使用圖形化編程進行各種創(chuàng)意智造,開發(fā)出一些有趣好玩兒的創(chuàng)客項目。

案例1? 按鈕控制絲桿精準升旗

一、實驗器材及連接

實驗器材包括樹莓派3B+和古德微擴展板各一塊,微型滾珠絲桿(包括電機驅動板)一個,按鈕一個,杜邦線若干,國旗徽章一枚。

絲桿的內(nèi)部步進電機有四根引線,首先將它們分別連接至電機驅動板的L1、L2、L3和L4端,再將電機驅動板底部標注有5V、GND和VCC的引腳通過杜邦線分別連接至擴展板左下角的5V、GND和3.3V引腳,將電機驅動板中間的IN1、IN2、IN3和IN4引腳通過杜邦線分別連接至擴展板的5號、6號、12號和16號引腳的正極;接著,將按鈕插入擴展板的25號引腳,注意VCC、OUT和GND同樣要一一對應;最后,借助于熱熔膠槍將國旗徽章粘貼于絲桿的滑臺上,并且給樹莓派通電,啟動操作系統(tǒng)(如圖1)。

二、圖形化編程

雖然絲桿的連接方式較為復雜,但使用“積木”進行圖形化編程來控制卻非常簡單。在瀏覽器中訪問古德微機器人網(wǎng)站并進行賬號登錄后,首先,從“智能硬件”-“常用”區(qū)域將絲桿的初始化模塊語句拖至編程區(qū),即“設置步進電機GPIO口分別為‘步進電機輸入端”,對應的GPIO接口分別是5、6、12和16;接著,建立一個“重復當‘真”的循環(huán)結構,嵌套一個“如果…執(zhí)行…”的選擇結構,判斷條件為“獲取25號按鈕檢測結果”,當檢測到按鈕有“被按下”的動作時,執(zhí)行下面的模塊語句:

先是在LOG調(diào)試信息區(qū)輸出調(diào)試信息:“奏國歌,升國旗!”然后是一個重復執(zhí)行600次的循環(huán),每次均控制絲桿的步進電機以“慢速”的速度正轉1圈、等待0.038秒后再進入下一次循環(huán)。這是因為國歌的正常播放時長是46秒,經(jīng)測試——絲桿的步進電機如果不加等待時間進行“慢速”正轉600圈的話,大約是23秒鐘,對應滑臺從預設的“地面”到預設的“旗桿頂部”(不要設置為絲桿的最頂端以防損壞),冗余的23秒鐘(46-23)就要在600次循環(huán)中進行均勻拆解來“消耗”掉,才能整體實現(xiàn)精準升旗的效果。循環(huán)結束后,LOG調(diào)試信息區(qū)輸出“禮畢!”,再加一個“等待0.001秒”的按鈕“消抖”時間等待模塊即可(如圖2)。

三、程序的運行測試

將程序保存為“按鈕控制絲桿精準升旗”后點擊“運行”按鈕,將絲桿豎直后按一次按鈕,就會實現(xiàn)在奏國歌的46秒時間內(nèi)精準升旗的效果(如圖3)。

此時還有個小“問題”,那就是絲桿控制滑臺帶動國旗完成升旗后,如何復位以進行下一次的升旗呢?非常簡單,可以在程序中的整個“重復當‘真”循環(huán)結構上點擊右鍵,選擇“禁用塊”(變灰);然后,在后面添加一條“控制步進電機以‘快速的速度反轉‘600圈”的模塊語句,執(zhí)行一次程序即可控制滑臺復位。

同樣,程序中也可以使用“多線程”方式來調(diào)用音樂播放模塊語句——演奏《義勇軍進行曲》,實現(xiàn)“奏國歌”與“升國旗”同步進行的效果。

案例2? 絲桿“聲控”推拉門

一、實驗器材及連接

實驗器材包括樹莓派3B+和古德微擴展板各一塊,絲桿一個,USB接口麥克風一個,音箱一個,杜邦線若干,硬紙片一張(模擬推拉門)。

絲桿的連接方法與案例1完全相同,再將麥克風插入樹莓派的一個USB接口中;然后,將音箱插入樹莓派的音頻輸出插孔,再用熱熔膠槍將帶有“我是‘推拉門,聲控噢!”標記的硬紙片粘貼于絲桿的滑臺上,給樹莓派通電,啟動操作系統(tǒng)(如圖4)。

二、圖形化編程

由于用到了麥克風要進行語音喚醒和識別,因此先要從“人工智能”-“語音識別”中將“小度小度關鍵詞語音喚醒,請創(chuàng)建一個Wakeup新函數(shù)”功能模塊拖至中央編程區(qū);然后,仍然是對絲桿的步進電機進行初始化;接著,建立一個名為Wakeup的函數(shù),用來響應被語音喚醒時觸發(fā)的一系列動作:

先是播放“叮”的一聲(在樹莓派SD卡中:/home/pi/temp/ding.mp3)作為喚醒回應,并且在LOG調(diào)試信息區(qū)輸出調(diào)試信息:“Hello”;然后,建立變量“語音輸入”,為其賦值為“將3秒的語音輸入保存到‘/home/pi/temp/record.mp3”,再建立變量“語音文字”,賦值為“把語音‘語音輸入轉換為文字”,實現(xiàn)將用戶的語音指令轉換成文字信息的功能;接著,建立一個三分支選擇結構,前兩個分支的判斷條件類似——“語音文字”中是否包含有“開門”(或“關門”)的關鍵字,條件成立,則在LOG調(diào)試信息區(qū)輸出該關鍵字,并且控制絲桿的步進電機以“中速”(可自行設置“快速”或“慢速”等)正轉或反轉600圈,正轉對應開門、反轉對應關門;第三個分支用來匹配用戶的語音指令中未包含“開門”或“關門”時的情況,則語音提醒用戶“請發(fā)正確的指令!”(包括LOG調(diào)試信息區(qū)也同步顯示)。

最后,加一個“等待0.1秒”的功能模塊,作用是防止占用過多系統(tǒng)資源而“死機”(如圖5)。

三、程序的運行測試

將程序保存為“絲桿‘聲控推拉門”后點擊“運行”按鈕,開始對麥克風發(fā)出語音指令進行測試(注意每次語音指令的喚醒詞必須是“小度小度”):當說“小度小度,關門”時,絲桿會將推拉門緩緩關閉;當說“小度小度,開門”時,推拉門則會緩緩打開;當說“小度小度,就這樣吧”(或者其他不包括“開門”“關門”的語音指令)時,音箱會發(fā)出“請發(fā)正確的指令”的語音提醒(如圖6)。

同時,在LOG調(diào)試信息區(qū)也會輸出對應的文字信息,提醒用戶程序的運行進程。需要特別注意的是,如果推拉門已經(jīng)處于“開門”的狀態(tài)時,就不要發(fā)出“小度小度,開門”的重復語音指令,否則絲桿的步進電機又會做出“響應”——繼續(xù)“開門”,但無法控制滑塊推拉門移動,反之亦然。

猜你喜歡
小度樹莓電機
說服自己早起的理由
小番茄發(fā)電機
苦澀的蛋撻
Arduino 入門之步進電機試驗
百度發(fā)布兩款人工智能硬件新品
小度智能音箱發(fā)布 搭載DuerOS 2.0系統(tǒng)
黃金水果紅樹莓
樹莓紅了 游人醉了
e絡盟率先推出第三代樹莓派
X2412S多旋翼專用電機