# 10. マイクロマックイーン プラス (micro:Maqueen Plus) 光での車体コントロール
# 10.1. 目標
光を検知し、明るい時だけマイクロマックイーン プラス (micro:Maqueen Plus)を前方に進行させるためのプログラミング方法を学習します。
# 10.2. 必要な機材
# PC利用時に必要な機材
No. | 名称 | 個数 | HW/SW | 用途 |
---|---|---|---|---|
01 | マイクロビット セレクト ベースキット (opens new window) | 1 | HW | マイクロマックイーンのコントロール用とプログラミング |
02 | マイクロマックイーン プラス V2(micro:Maqueen Plus V2) (opens new window) | 1 | HW | 車体本体 |
03 | 単3型乾電池 | 4 | HW | マイクロマックイーン プラスとmicro:bitへの電源供給 |
04 | Chromebook、MacOS、WindowsのPC | 1 | HW | MakeCode操作用 |
05 | Google Chrome | 1 | SW | MakeCodeアクセス用 |
06 | 懐中電灯 | 1 | HW | 光源 |
# タブレット・スマートフォン利用時に必要な機材
No. | 名称 | 個数 | HW/SW | 用途 |
---|---|---|---|---|
01 | マイクロビット セレクト ベースキット (opens new window) | 1 | HW | マイクロマックイーンのコントロール用とプログラミング |
02 | マイクロマックイーン プラス V2(micro:Maqueen Plus V2) (opens new window) | 1 | HW | 車体本体 |
03 | 単3型乾電池 | 4 | HW | マイクロマックイーン プラスとmicro:bitへの電源供給 |
04 | タブレット・スマートフォン | 1 | HW | micro:bitアプリ操作用 |
05 | micro:bit アプリ | 1 | SW | micro:bitプログラミング用 |
07 | 懐中電灯 | 1 | HW | 光源 |
# 10.3. 動作イメージ
暗い環境では、マイクロマックイーン プラス (micro:Maqueen Plus)の底にあるRGBライトが点灯します。
懐中電灯でマイクロマックイーン プラス (micro:Maqueen Plus)のLEDを照らすと、RGBライトを消灯し、前方LEDライトを点灯したうえ、車体が前進します。
※ 環境光はマイクロビットの機能で検知しています。
# 10.4. プログラミング例
# MakeCodeプログラミング例(サンプルプログラムの画像)
# MakeCodeプログラミング例(サンプルプログラムのリンク)
https://makecode.microbit.org/_VFKMEzFetbco (opens new window)
# MakeCodeプログラミング例(JavaScript)
maqueenPlusV2.I2CInit()
basic.forever(function () {
if (input.lightLevel() >= 100) {
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Forward, 100)
maqueenPlusV2.controlLED(maqueenPlusV2.MyEnumLed.AllLed, maqueenPlusV2.MyEnumSwitch.Open)
maqueenPlusV2.ledBlank()
} else {
maqueenPlusV2.controlMotorStop(maqueenPlusV2.MyEnumMotor.AllMotor)
maqueenPlusV2.controlLED(maqueenPlusV2.MyEnumLed.AllLed, maqueenPlusV2.MyEnumSwitch.Close)
maqueenPlusV2.ledRainbow(1, 360)
}
})
# MakeCodeプログラミング例(python)
maqueenPlusV2.i2c_init()
def on_forever():
if input.light_level() >= 100:
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
maqueenPlusV2.MyEnumDir.FORWARD,
100)
maqueenPlusV2.control_led(maqueenPlusV2.MyEnumLed.ALL_LED,
maqueenPlusV2.MyEnumSwitch.OPEN)
maqueenPlusV2.led_blank()
else:
maqueenPlusV2.control_motor_stop(maqueenPlusV2.MyEnumMotor.ALL_MOTOR)
maqueenPlusV2.control_led(maqueenPlusV2.MyEnumLed.ALL_LED,
maqueenPlusV2.MyEnumSwitch.CLOSE)
maqueenPlusV2.led_rainbow(1, 360)
basic.forever(on_forever)
# MakeCodeプログラミング例のQRコード