[mbot] 超音波感測器(2/2) 結合馬達的簡單應用

URL Link //n.sfs.tw/10899

2017-03-14 07:38:45 By zfang

這篇只結合超音波感測器與馬達的應用,做簡單的練習。(尚未教到:光線感應器與紅外線感應循線感測。為求簡化,暫不加入聲光控制。)

關於超音波偵測與非關馬達的應用,請見前篇 [mbot] 超音波感測器(1/2) 幾個無馬達的簡單應用:超音波琴、計數器@精讚


 

超音波模組簡單介紹:

超音波模組預設接到mCore連接埠3,回傳數值到小數第三位,單位是公分,範圍:3cm~400cm。量測角度為30度。

超音波感測器:偵測距離的遠近。應用-倒車雷達、自動避障、自動跟隨、繞障礙物、偵測形體。

左邊為發射端超音波,標示著T。右邊則為接收端超音波,標示著R。

 

使用前須自我檢查超音波功能:

用手掌在超音波模組前方移動,觀察數值變化情形。提問學生:最大多大?最小多小?數值是用什麼單位呢?

 簡單程式說出數值,作為檢驗學生手上的機器人是否正常,能做到~才進行下一步驟。

如果不能正常執行,重新檢查連接、程式與驅動。

 

學習積木:

使用條件判斷"如果"mBot距離障礙物太近,則強制轉彎或退後,"否則"就前進。
學習如果否則
 

 

練習(一)緊急煞車

按下按鈕後,mBot開始前進,在障礙物前方5公分時,緊急煞車。

要注意反應時間與緩衝距離。如果否則~如果前方沒有障礙物,就會前進,否則停止。

其他寫法:當按下按鈕時,機器人往前走,直到偵測到障礙物,才會停止。

或 

還有很多寫法,例如使用 來做為條件判斷。

 

練習(二)避障轉彎

按下按鈕後,mBot開始前進,超音波偵測到前方5公分有障礙物時,先後退再直角右轉繼續走。

遇到障礙物之後是左轉還是右轉?一開始學生會寫右轉,但很容易一直在空間中打轉。所以~要讓機器人車可以改變轉彎方向。如果經費夠,當然是裝置三組超音波感測器,判斷前面與左右,不然就是利用這種,增加一個舵機來操控超音波,讓它可以左右轉頭,做更精準的選擇。

(圖片來源為官網http://www.gmii.tw/makeblock/mbot3978551

 

練習(三)遇到障礙物隨機左右轉

偵測到前方10公分有障礙物,則停下來後退,隨機左右轉。如何做到隨機呢?方法好幾種。

參考一:利用隨機選擇數字做個條件,搭配如果否則。

參考二:也可以用比大小做為條件,例如這樣,小於50右轉,否則左轉。

參考三:學生方彥寫的,已經成功能過迷宮。雖然有點繞路,但是成功囉!(他說~有些等待時間因車子而異,他的程式未必通用每台車,使用者要自己微調。)

 

 

練習(四)避障練習~繞過障礙物

偵測到前方10公分有障礙物,自動右轉前進再左轉,繞過障礙物,然後持續前進。

這個需要事先知道障礙物的大小,車子不能碰到障礙物。

中間看起來很長,所以用自訂積木來操作閃避繞過(Dodge around)障礙物的動作。

 

 

練習(五)自動跟隨並保持距離

車子原本靜止,在手掌移到車子前方距離20公分處,進入跟隨模式,調整前進後退,太近就後退,拉遠就前進,始終與手掌保持10公分的距離。(先不考慮跟隨轉彎)

變化:可以用車子帶著另一台車子前進。第一台車在前方慢慢走,第二台車走較快,接近第一台車之後,就放慢速度跟著第一台車前進了。)

第二台車可以怎麼寫呢?(我自己的想法是在偵測距離之內維持前進轉速100,所以在前方加一個積木,最後的如果否則變成轉速100。但並未經過測試。)

 

練習(六)配合超音波感測距離來調整馬達速度和等待時間

用超音波感應器來控制馬達速度的快與慢。

 與 

將超音波距離設為變數,可以控制~越接近障礙物發出的警示音與燈光的頻率(等待時間)變快。例如距離越近,車速越慢。

補充:馬達轉速絕對值為255,超音波偵測距離400,400/255=1.6

以此類推,之後用光線感應器,也可以類似方式,利用偵測出的光直來控制馬達行走快慢。

光感偵測值為0-1023 值越高,代表亮度越高。1023/255=4

參考資料:

  1. scratch(mblock)程式設計 使用mbot機器人。   李春雄、柳家祥、李暐詒(台科大圖書)
  2. mbot入門與實習 吳志宏(翰吉出版)
  3. 南開科大吳錫修老師的投影片資料很完整。mBot 教學5 超音波感測應用 https://www.slideshare.net/sshiouwu/mbot5