Kadence

Smart 自走車 ( 超音波避障 )

在之前「Smart 自走車 – 網頁操控」範例中,已經了解基本的操作方式,這篇範例將利用「超音波傳感器」,為自走車加上「避障」的功能,讓我們在一般操作控制之外,當偵測到前方有障礙物,自走車能夠自動遠離障礙物並改道,一起完成自動避障車的成果吧!

其他教學可以參考:Smart 自走車 ( 網頁遙控器操控 )

接線與實作

因為超音波傳感器與自走車上的雙馬達驅動板,同時都會用到 GND 的腳位,所以使用麵包板來連接,超音波 VCC 接 Smart 開發板的 VCC 腳位,Trig 接 13,Echo 接 15,超音波傳感器的 GND 與馬達驅動板的一號針腳都連接到 Smart 開發板的 GND 腳位。

接線示意圖:

Webduino Smart 自走車

實際接線照片:

超音波避障實際接線照片

操作解析

打開 Webduino 雲端平台,並選擇 Blockly 編輯工具 ( https://blocklypro.webduino.io/ ),你可以建立一個積木程式專案,並命名為 Smart 自走車 ( 超音波避障 )

建立專案

使用雲端平台之前須先註冊並登入,首次註冊教學請點此:註冊與登入

Webduino Blockly 操作解析

進入專案 Blockly 畫面,打開網頁互動區域,因為這個範例將會使用「顯示文字」來顯示超音波偵測到的距離。當我們選擇下拉選單選擇「顯示文字」,此時在左側積木列的最下方將會出現對應的積木功能可以選擇。

Webduino Smart 自走車

接著會進入 Blockly 畫面,在畫面中放入開發板積木,開發板下拉選單選擇「Smart」,連線方式選擇「Wi-Fi」,填入 Device ID,在開發板內放入自走車積木,腳位設定右前 14、右後 16、左前 2、左後 5。再放入超音波傳感器積木,Trig 腳位設定 13,Echo 腳位設定 15。

自走車積木在「玩具及馬達 > 自走車」目錄下。

超音波傳感器的積木在「環境偵測 > 超音波」目錄下。

超音波腳位設定

放入 ultrasonic 擷取距離的積木,設定每 1200 毫秒 ( 1.2 秒 ) 偵測一次,並且透過「顯示」積木將距離數值顯示在網頁上。

顯示偵測距離

實作避障車程式

有了距離之後可以使用「邏輯」積木做到自動避障,將邏輯積木放到 ultrasonic 擷取距離的積木內,點擊藍色小齒輪,設定兩個邏輯判斷。

邏輯積木在「基本功能 > 邏輯」目錄下。

邏輯判斷小齒輪操作

透過邏輯判斷,設定與障礙物的距離,當超音波偵測的距離小於 10 公分,意味著自走車與障礙物的距離很近。

大於小於的積木在「基本功能 > 邏輯」目錄下。

數字積木在「基本功能 > 數學式」目錄下。

偵測距離遠近判斷

開始設定自走車的行進方向,當偵測到的距離小於 10 公分的時候,自走車向後退 1 秒鐘,接著向右轉 1 秒鐘;當偵測到與前方障礙物的距離大於 10 公分,開始直線前進。

等待的積木在「進階功能 > 等待」目錄下。

自走車積木在「玩具及馬達 > 自走車」目錄下。

避障車程式

最後,我們將使用到「流程」積木,將自動避障程式碼加入流程中。

流程,程式碼裡就是 function,在寫程式的時候,常常會遇到需要重複執行的程式碼,為避免過多程式碼重複出現,我們可以設定一個流程,並將「需要被重複執行的程式碼」寫進這個流程中,如此一來,當我們需要重複用到這些程式碼的時候,只要呼叫這段流程,就可以重複執行對應的程式。

相關教學參考:流程

加入流程的避障車程式

將自走車一開始的狀態設定為「停止」,讓程式開始執行後自走車停止 1 秒,開始執行避障功能。

自走車最初停止狀態

以上是自動避障車的實行步驟,做好之後,填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,就可以體驗無人車的威力囉!

範例解答:https://blocklypro.webduino.io/?demo=demo-area-01#XBBq1x4ozE

相關參考

分享