簡介
早前在網上看到有位老師想模擬 mBot 的原廠程式,但由於原廠程式需要用紅外線遙控器,所以未能成功。因此,我找到了 mBot 原廠程式的 Arduino 程式檔,借這個機會教導一下如何使用紅外線遙控器控制 mBot。mBot 的原廠程式有三個模式:
- A 鍵:正常行走模式
- B 鍵:避障模式
- C 鍵:巡線模式
另外,按下數字鍵可以改變速度。但功能強大仍要保留學習空間,因此我會抽取正常行走模式作範例說明。
認識紅外線感應器與紅外線 mBlock 積木
紅外線感應器分成紅外線發射(IR_T: Infrared Remote Transmitting)與紅外線接收(IR_R: Infrared Remote Receive)。紅外線發射主要功能是傳送紅外線訊號;而紅外線接收主要功能是接收紅外線遙控器發射的訊號,依照訊號控制機械人的動作,紅外線接收的最佳距離在 3 米以內,紅外線發射與接收在 mCore 主板上。而紅外線感應器的 mBlock 積木能夠偵測紅外線遙控器是否按下按鍵。
回傳:偵測結果為真(True)或假(False)。(真:已按下按鍵;假:未按下按鍵。)
範例
首先,我們會完成控制方向的部份。當我們按下 4 個方向鍵時,mBot 會相對地前進、後退或轉向,例如我們按下上箭咀時,想要 mBot 前進 1 秒,我們會這樣做:「移動速度」刻意用了變數,因為我們接著就要將「按下數字鍵改變移動速度」的部份加入程式。
「移動速度」總共有九個檔次,按下數字 9 鍵會是最快的速度 255,但按下數字1鍵時速度不可以是 0,因為速度 0 車子就會停下來。
而 mBot 最低速度需要約 75,才會看到有明顯移動。
75 至 255 之間分成 8 個檔次,每個檔次就會有 22.5 的分別((255-75)÷8=22.5),我們就直接23作遞增級數,所以基本速度就是 48((255-23×9)=48)。
例如,按下數字 5 鍵時,我們會這樣做:
所以,完成所有按鍵後,我們就會得出一個可以利用紅外線遙控器控制 mBot 的程式了。
沒有留言:
張貼留言