# マイクロマックイーン プラス (micro:Maqueen Plus) 光での車体コントロール
# 10.1. 目標
光を検知し、明るい時だけマイクロマックイーン プラス (micro:Maqueen Plus)を前方に進行させるためのプログラミング方法を学習します。
# 10.2. 必要な機材
# PC利用時に必要な機材
No. | 名称 | 個数 | HW/SW | 用途 | 補足 |
---|---|---|---|---|---|
01 | micro:bit(v2)本体 | 1 | HW | マイクロマックイーン プラス (micro:Maqueen Plus)のコントロール用。 プログラミングはmicro:biに対して行う | - |
02 | micro:bit用 ケース | 1 | HW | micro:bit保護 | ※ 必須ではない |
03 | micro:bit用 USBケーブル | 1 | HW | micro:bitとPCの接続 | Type-AとType-C両方対応できると様々な端末で利用しやすい |
04 | マイクロマックイーン プラス (micro:Maqueen Plus) | 1 | HW | 車体本体 | - |
05 | 単3型乾電池 | 4 | HW | マイクロマックイーン プラスとmicro:bitへの電源供給 | - |
06 | Chromebook、MacOS、WindowsのPC | 1 | HW | MakeCode操作用 | - |
07 | Google Chrome | 1 | SW | MakeCodeアクセス用 | - |
08 | 懐中電灯 | 1 | HW | 光源 | 動作テストに利用 |
# タブレット・スマートフォン利用時に必要な機材
No. | 名称 | 個数 | HW/SW | 用途 | 補足 |
---|---|---|---|---|---|
01 | micro:bit(v2)本体 | 1 | HW | マイクロマックイーン プラスのコントロール用。 プログラミングはmicro:biに対して行う | - |
02 | micro:bit用 ケース | 1 | HW | micro:bit保護 | ※ 必須ではない |
03 | マイクロマックイーン プラス (micro:Maqueen Plus) | 1 | HW | 車体本体 | - |
04 | 単3型乾電池 | 4 | HW | マイクロマックイーン プラスとmicro:bitへの電源供給 | - |
05 | タブレット・スマートフォン | 1 | HW | micro:bitアプリ操作用 | - |
06 | micro:bit アプリ | 1 | SW | micro:bitアプリ操作用 | - |
07 | 懐中電灯 | 1 | HW | 光源 | 動作テストに利用 |
# 10.3. 動作イメージ
暗い環境では、マイクロマックイーン プラス (micro:Maqueen Plus)の底にあるRGBライトが点灯します。
懐中電灯でマイクロマックイーン プラス (micro:Maqueen Plus)のLEDを照らすと、RGBライトを消灯し、前方LEDライトを点灯したうえ、車体が前進します。
※ 環境光はマイクロビットの機能で検知しています。
# 12.4. プログラミング例
# MakeCodeプログラミング例(ブロック)
# MakeCodeプログラミング例(JavaScript)
DFRobotMaqueenPlusV2.init()
basic.forever(function () {
if (input.lightLevel() > 100) {
DFRobotMaqueenPlusV2.controlMotor(MyEnumMotor.eAllMotor, MyEnumDir.eForward, 0)
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eAllLed, MyEnumSwitch.eOpen)
DFRobotMaqueenPlusV2.ledBlank()
} else {
DFRobotMaqueenPlusV2.controlMotorStop(MyEnumMotor.eAllMotor)
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eAllLed, MyEnumSwitch.eClose)
DFRobotMaqueenPlusV2.ledRainbow(1, 360)
}
})
# MakeCodeプログラミング例(python)
DFRobotMaqueenPlusV2.init()
def on_forever():
if input.light_level() > 100:
DFRobotMaqueenPlusV2.control_motor(MyEnumMotor.E_ALL_MOTOR, MyEnumDir.E_FORWARD, 0)
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_ALL_LED, MyEnumSwitch.E_OPEN)
DFRobotMaqueenPlusV2.led_blank()
else:
DFRobotMaqueenPlusV2.control_motor_stop(MyEnumMotor.E_ALL_MOTOR)
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_ALL_LED, MyEnumSwitch.E_CLOSE)
DFRobotMaqueenPlusV2.led_rainbow(1, 360)
basic.forever(on_forever)
# MakeCodeプログラミング例のQRコード