2017年8月11日 星期五

mBot 入門教學:紅外線遙控器

簡介

早前在網上看到有位老師想模擬 mBot 的原廠程式,但由於原廠程式需要用紅外線遙控器,所以未能成功。因此,我找到了 mBot 原廠程式的 Arduino 程式檔,借這個機會教導一下如何使用紅外線遙控器控制 mBot。

mBot 的原廠程式有三個模式:

  • A 鍵:正常行走模式
  • B 鍵:避障模式
  • C 鍵:巡線模式

另外,按下數字鍵可以改變速度。但功能強大仍要保留學習空間,因此我會抽取正常行走模式作範例說明。

認識紅外線感應器與紅外線 mBlock 積木

紅外線感應器分成紅外線發射(IR_T: Infrared Remote Transmitting)與紅外線接收(IR_R: Infrared Remote Receive)。紅外線發射主要功能是傳送紅外線訊號;而紅外線接收主要功能是接收紅外線遙控器發射的訊號,依照訊號控制機械人的動作,紅外線接收的最佳距離在 3 米以內,紅外線發射與接收在 mCore 主板上。


而紅外線感應器的 mBlock 積木能夠偵測紅外線遙控器是否按下按鍵。

  

功能:偵測紅外線遙控器是否按下A鍵(A ~ F鍵、上、下、左、右鍵與 R0 ~ R9)。
回傳:偵測結果為真(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 的程式了。

沒有留言:

張貼留言