# マイクロマクイーン ライト(micro:Maqueen Lite)赤外線リモコンでの車体コントロール
# 9.1. 目標
赤外線リモコンでマイクロマクイーン ライト(micro:Maqueen Lite)をコントロールするためのプログラミング方法を把握します。
# 9.2. 必要な機材
# PC利用時に必要な機材
No. | 名称 | 個数 | HW/SW | 用途 | 補足 |
---|---|---|---|---|---|
01 | micro:bit(v2)本体 | 1 | HW | マイクロマクイーンのコントロール用とプログラミング | - |
02 | micro:bit保護ケース | 1 | HW | micro:bit保護 | - |
03 | micro:bit用 USBケーブル | 1 | HW | micro:bitとPCの接続 | - |
03 | マイクロマクイーン ライト(micro:Maqueen Lite) | 1 | HW | 車体本体 | - |
04 | 単4型乾電池 | 3 | HW | マイクロマクイーンとmicro:bitへの電源供給 | - |
05 | Chromebook、MacOS、WindowsのPC | 1 | HW | MakeCode操作用 | - |
06 | Google Chrome | 1 | SW | MakeCodeアクセス用 | - |
07 | USB変換アダプタ | 1 | HW | PC接続用 | PCのUSBポートがType-Cのみの場合、TypeC ⇄ TypeA変換アダプタが必要 |
08 | 赤外線リモコン | 1 | HW | 赤外線信号発信用 | - |
# タブレット・スマートフォン利用時に必要な機材
No. | 名称 | 個数 | HW/SW | 用途 | 補足 |
---|---|---|---|---|---|
01 | micro:bit(v2)本体 | 1 | HW | マイクロマクイーンのコントロール用とプログラミング | - |
02 | micro:bit保護ケース | 1 | HW | micro:bit保護 | - |
03 | マイクロマクイーン ライト(micro:Maqueen Lite) | 1 | HW | 車体本体 | - |
04 | 単4型乾電池 | 3 | HW | マイクロマクイーンとmicro:bitへの電源供給 | - |
05 | タブレット・スマートフォン | 1 | HW | micro:bitアプリ操作用 | - |
06 | micro:bit アプリ | 1 | SW | micro:bitプログラミング用 | - |
07 | 赤外線リモコン | 1 | HW | 赤外線信号発信用 | - |
# 9.3. MakeCodeブロックの概要
No. | ブロック | 概要 | 機能 |
---|---|---|---|
01 | 赤外線受信イベントトリガーブロック | 赤外線の受信をきっかけに意図した動作を開始させる。 具体的には、赤外線を受信した場合、変換した10進数整数を所定の変数(デフォルトはmessage)に代入し、ブロック内に追加した処理を実行する。 ・ データタイプ:10進数整数(受信た16進数の値を受信し、下2桁を読み取り、10進数に変換する) ・ プロトコルタイプ:NEC |
# 9.4. 動作イメージ
赤外線リモートコントローラーの「+」(前進)、「-」(後退)、「⏭」(左折)、「⏮」(右折)、「▶️」(停止)のキーを押すと、マイクロマクイーン ライト(micro:Maqueen Lite) の車体がそれにコントロールされ動作します。
# 9.5. プログラミング例
# MakeCodeプログラミング例(ブロック)
# MakeCodeプログラミング例(JavaScript)
IR.IR_callbackUser(function (infrared) {
if (infrared == 64) {
maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CW, 150)
} else if (infrared == 25) {
maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CCW, 150)
} else if (infrared == 7) {
maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 0)
maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 150)
} else if (infrared == 9) {
maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 150)
maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 0)
} else if (infrared == 21) {
maqueen.motorStop(maqueen.Motors.All)
} else {
basic.showIcon(IconNames.Happy)
}
})
# MakeCodeプログラミング例(python)
def on_ir_callbackuser(infrared):
if infrared == 64:
maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CW, 150)
elif infrared == 25:
maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CCW, 150)
elif infrared == 7:
maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 0)
maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 150)
elif infrared == 9:
maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 150)
maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 0)
elif infrared == 21:
maqueen.motor_stop(maqueen.Motors.ALL)
else:
basic.show_icon(IconNames.HAPPY)
IR.IR_callbackUser(on_ir_callbackuser)
# MakeCodeプログラミング例のQRコード