Hover:bit 遙控 編程

Hover:bit 遙控 會用到 ART Rules ,就是Arm (開關) 、Roll(側滾) 、Throttle (油門)
Arm (開關) 會用到1 和0 表示開關
Roll (側滾) 會用到度數 -45 到 45 度 表示左右
Throttle (油門) 會用到0 到 100 表示大小

Lesson 1 Radio

Radio 是指無線電波,日常的電台廣播、對講機 等 都會用到無線電波。發放和接收訊號可以傳遞到很遠,但壞處是很容易受到干擾。

* micro:bit radio 最遠可傳送的距離是70米

makecode 中會看到 radio 功能,作用是把micro:bit A 的訊號/數據 傳送到 micro:bit B ,而 micro:bit B 亦可以傳送訊號/數據 傳送到 micro:bit A 。

1. 先使用variable 設定 radioChannel
2. 設定radio 頻道,在on start 中 set radioChannel to 7(如果有不同組別請設定其他頻道 0-255)
3. 開機時會顯示radio 頻道,防止有多於一個遙控時做成混亂,show number radioChannel
4. 在radio 功能中找 radio set group ,然後把variable RadioChannel 放進去

Lesson 2 ART

1. 設定3個Variables ,分別是 Arm, roll 和 throttle
2. 使用on button A 控制油門減速,on button B 控制油門加速。所以我們用change throttle by (不是set) -10 and 10
3. 用 button A+B 控制 Arm 的開關(1=開,0=關),利用if then else 判斷 當arm=1時 set arm=0, 當arm=0時 set arm=1 ,每次按A+B都會重置油門(安全措施)

測試!

可以在forever 中 放show number Arm 去測試 A+B button 有沒有效果(會改變0和1),測試完可以刪除show number Arm 。

Lesson 3 Roll

Roll 側滾:主要控制船尾的擺動(servo)
1. 我們會在input功能中找到 rotation , 然後選擇roll
2. 在forever 中 set roll to  rotation roll

Lesson 4 使用LED 顯示Arm

我們會使用LED 功能 的 plot x y 去控制led 燈上的每一個點

arm 是機翼的開關,就算油門提升到最高,沒有開arm 的話也不能飛行。所以我們第一步要利用led 造出arm 的提示燈,我們會在x 0 y 0上顯示。

我們的目標: 開 arm時亮著紅燈,關 arm時熄掉紅燈

好像剛才一樣,希望知道Arm 開關的情況,我們會用到左上角的led 顯示
1. 利用basic 中 的clear screen , 保持更新led畫面
2. 利用if then else 判斷 arm =1 , plot x0y0 (led功能) 會開 , 你可以改變plot 去設計另一種顯示方法

Lesson 5 使用LED 顯示 roll and throttle

** mapping 功能在 math 中

作用是為了把micro:bit 收集到的數據(0-1023 這些沒有單位的數據) 轉化為 可用的數據

顯示Throttle:因為油門預設在左邊(0,4開始),所以在plot x=0 , y 利用mapping 去調整
mapping 部份:map throttle 最低是0 最高是100 (throttle 數字0-100) , to 最低是4 最高是0(led 座標只有0-4 , 而且由下(低)而上(高))

顯示roll : 因為roll 只有左右,plot y =2是把roll 放到中間位方便觀看,x 利用mapping 去調整
mapping 部份 map roll 最低是-45 最高是45 (roll 角度-45到45), to 最低是0 最高是4(led 座標只有0-4 , 而且由左(低)至右(高)

安全裝置:當搖晃遙控時,主機會停止
set throttle =0
set arm =0

測試!

可以用滑鼠在micro:bit 模擬器中左右移動,模仿遙控左右轉向,可以按button A+B 開關arm,可以按button B 加速油門,button A 減慢油門 ,最後是按shark 把 arm 跟 throttle 停止。

Lesson 6 利用radio 把數據傳送到主機

我們會用到radio 功能 的 radio send value 去傳送數據

Radio send value"name"= "0" 中 "name"是給予這個數據一個名字,例如:"Arm "可簡稱為 "A" 等, 然後"0"是給予數據。 所以我們可以直接把variable 放進去

Hover:bit 遙控 完整編程

下載程式方法

注意使用完記得關上電源

電量不足會顯示骷髏頭圖示