超音波 ( 倒車雷達 )

透過超音波的偵測,可以測量距離並顯示在網頁上,如果再加上蜂鳴器的警示音,就能夠實現日常生活中常見的「倒車雷達」,當越接近障礙物,蜂鳴器就會發出越急促的聲音,越遠離障礙物,蜂鳴器的聲音就會趨緩。

接線與實作

因為超音波傳感器與蜂鳴器同時都會用到 GND 的腳位,所以使用麵包板來連接,超音波 VCC 接 3.3V 或 VCC,Trig 接 16,Echo 接 14,GND 與蜂鳴器的其中一支針腳都連接到 Smart 開發板的 GND,蜂鳴器的另外一隻針腳連接 5 號腳位。

Webduino Smart、蜂鳴器與超音波接線圖

Webduino Blockly 操作解析

打開 Webduino Blockly 編輯工具 ( https://blockly.webduino.io ),在畫面中放入開發板積木,開發板下拉選單選擇「Smart」,連線方式選擇「Wi-Fi」,填入 Device ID,在開發板內放入超音波傳感器的積木,Trig 腳位設定 16,Echo 腳位設定 14,接著放入蜂鳴器的積木,腳位設定為 5。

取得 Device ID、使用 IP 來進行 WebSocket 操控,請參考:Webduino Smart ( 初始化設定 )

Webduino Smart、蜂鳴器與超音波積木

因為要使用超音波的距離,操控蜂鳴器播放聲音的「間隔時間」,所以使用一個「變數」來當作變化的間隔時間,預設值為 1,接著放入一個「無窮迴圈」,每次蜂鳴器播放聲音後,會再等待固定的間隔時間才會再進行播放。

變數積木在「變數」目錄下,無窮迴圈的積木在「基本功能 > 迴圈」目錄下,等待的積木在「進階功能 > 等待」目錄下。

利用迴圈設定蜂鳴器播放時間

由於使用了「迴圈 + 等待」,表示在迴圈停止之前,不會進行迴圈外的其他動作,所以必須使用「流程」將迴圈放在裡頭,避免其他的動作 ( 偵測距離 ) 無法順利進行,完成後將流程命名為 a。

流程的積木在「流程」目錄下,當我們定義了一個流程 ( Function ),在程式內就可以重複使用這個流程。

使用流程積木

接著使用超音波偵測距離,設定每 500 毫秒偵測一次,並透過網頁互動測試區的顯示文字,將距離顯示出來。

顯示超音波偵測距離數值

最後使用邏輯的積木,判斷距離在 0~10 公分的時候,蜂鳴器的聲音間隔為 0.2 秒,11~20 公分的時候為 0.5 秒,20~30 公分為 0.8 秒,大於 30 公分就是 1 秒。

邏輯、大於小於的積木在「基本功能 > 邏輯」的目錄下,數字的積木在「基本功能 > 數學式」的目錄下。

設定超音波偵測距離啟動播放蜂鳴器

填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,就可以看到超音波偵測距離越靠近,蜂鳴器發音就越急促,也真實模擬倒車雷達的狀況了。

解答:https://goo.gl/vOG2qs

相關參考