智能辨認小馬

內容介紹 :

透過 Mu Vision Sensor 偵測到不同 Traffic Card  來向旋轉木馬發出運行指令,

當偵測到「Traffic Card Type = Left 」 代表旋轉木馬以順時針轉動 ,

當偵測到「Traffic Card Type =  Right」 代表旋轉木馬以逆時針轉動 ,

當偵測到「Traffic Card Type = P」 代表旋轉木馬將停止運行 。

所需物料:

  • micro:bit x 1
  • I/O board x 1
  • DC motor x 1
  • 12" M/M Jumper Wires x 4
  • Mu Vision Connecter x 1
  • Mu Vision Sensor x 1
  • 旋轉木馬模型

電線接駁方法:

Mu Vision Sensor 的 「V」 --> I/O board 的 3.3V OUT 「+」

Mu Vision Sensor 的 「G」 --> I/O board 的 3.3V OUT 「-」

Mu Vision Sensor 的 「SDA」 --> I/O board 的 「SDA」

Mu Vision Sensor 的 「SCL」 --> I/O board 的  「SCL」

DC Motor --> I/O board 的 P15/P16

編程教學:

Microsoft MakeCode for micro:bit — Mozilla Firefox

1. 在「Advanced」中選取「Extensions」以加入「Mu Vision」的package。

Microsoft MakeCode for micro:bit — Mozilla Firefox

2.輸入「muvision」並選取「muvision」的extension package。

編程概覽:

1. 安裝 Mu Vision的I2C port以使它能在I/O board上運行 ;

然後再啟動 algorithm "Traffic Card" 來偵測各種駕駛/行動指令。

Microsoft MakeCode for micro:bit — Mozilla Firefox

initialize MU00 port I2C 可在「Muvision」的「Setting」找到 ,

設為「I2C」 的原因是我們將電線接駁到I/O board 的 I2C port 上。

MU00 enable algorithm Traffic 亦可在「Muvision」的「Setting」找到 ,

把它拖拉到「on start」後再將default 的「Color Block」改為「Traffic Card」。

** 這次我們要使用的是Traffic Card 而不是 Color Block!

Microsoft MakeCode for micro:bit — Mozilla Firefox

利用 forever loop 來使Mu Vision Sensor 可以無間斷地重覆檢測 Traffic Card ,

然後加入 while loop 和 「not MU00 detected Traffic Card」 ,

這個步驟非常重要 , 如果不加入這段code , Mu Vision Sensor 在非讀取到 Traffic Card 的狀態是將無法運作 , 並會困死在 else-statement 中無法運行並讀取資訊(Traffic Card)。

當它讀取到 Traffic Card 便會立即離開while loop 進入接下來的 "if-statement"!

show icon "X" 的作用為指示用家 Mu Vision 正處於待機狀態,正等待指令。

Mu00 detected Traffic Card 可在 「Muvision」的「Functions」找出。

Microsoft MakeCode for micro:bit — Mozilla Firefox

利用 if then else if statement 來處理讀取到不同 Traffic Card 的情況 ,

讀取到「Left」代表旋轉木馬以順時針轉動 , 因此 P15 = 1 (Motor順時針轉動) ,

show string "C" 則代表 clockwise (順時針) 的意思 ;

讀取到「Right」代表旋轉木馬以逆時針轉動 , 因此 P16 = 1 (Motor逆時針轉動) ,

show string "A" 則代表 anti-clockwise (逆時針) 的意思 ;

讀取到「Park」代表旋轉木馬將停止運行 , 因此 P15/P16 = 0 (Motor停止轉動) ,

show string "S" 則代表 Stop 的意思 。

線上編程檔案: