# マイクロマックイーン プラス (micro:Maqueen Plus) LEDライトのコントロール(前面)
# 6.1. 目標
マイクロマックイーン プラス (micro:Maqueen Plus) の前面LEDライトをコントロールするためのプログラミング方法を学習します。
# 6.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アクセス用 | - |
# タブレット・スマートフォン利用時に必要な機材
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アプリ操作用 | - |
# 6.3. MakeCodeブロックの概要
No. | ブロック | 概要 | 機能 |
---|---|---|---|
01 | ![]() | LEDライトのコントロール用ブロック | 車体の前方にある2つのLEDライトをコントロール ・ 対象LEDライトの選択:左、右 ・ 動作:つける、消す |
# 6.4. 動作イメージ
マイクロビット(micro:bit)のAボタンを押すと、
車体前方にある左右2つのLEDは、0.5秒の間隔で交互に点滅します。点滅するLEDに合わせて、ブザーで2種類の音を出します。
マイクロビット(micro:bit)のBボタンを押すと、LED点滅とブザーが止まります。
# 6.5. プログラミング例
# MakeCodeプログラミング例(ブロック)
# MakeCodeプログラミング例(JavaScript)
input.onButtonPressed(Button.A, function on_button_pressed_a() {
patrol_mode_switch = 1
})
input.onButtonPressed(Button.B, function on_button_pressed_b() {
patrol_mode_switch = 0
})
let patrol_mode_switch = 0
DFRobotMaqueenPlusV2.I2CInit()
basic.forever(function on_forever() {
if (patrol_mode_switch == 1) {
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eLeftLed, MyEnumSwitch.eOpen)
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eRightLed, MyEnumSwitch.eClose)
music.playTone(262, music.beat(BeatFraction.Whole))
basic.pause(500)
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eLeftLed, MyEnumSwitch.eClose)
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eRightLed, MyEnumSwitch.eOpen)
music.playTone(262, music.beat(BeatFraction.Whole))
basic.pause(500)
} else {
DFRobotMaqueenPlusV2.controlLED(MyEnumLed.eAllLed, MyEnumSwitch.eClose)
}
})
# MakeCodeプログラミング例(python)
def on_button_pressed_a():
global patrol_mode_switch
patrol_mode_switch = 1
input.on_button_pressed(Button.A, on_button_pressed_a)
def on_button_pressed_b():
global patrol_mode_switch
patrol_mode_switch = 0
input.on_button_pressed(Button.B, on_button_pressed_b)
patrol_mode_switch = 0
DFRobotMaqueenPlusV2.i2c_init()
def on_forever():
if patrol_mode_switch == 1:
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_LEFT_LED, MyEnumSwitch.E_OPEN)
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_RIGHT_LED, MyEnumSwitch.E_CLOSE)
music.play_tone(262, music.beat(BeatFraction.WHOLE))
basic.pause(500)
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_LEFT_LED, MyEnumSwitch.E_CLOSE)
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_RIGHT_LED, MyEnumSwitch.E_OPEN)
music.play_tone(262, music.beat(BeatFraction.WHOLE))
basic.pause(500)
else:
DFRobotMaqueenPlusV2.control_led(MyEnumLed.E_ALL_LED, MyEnumSwitch.E_CLOSE)
basic.forever(on_forever)
# MakeCodeプログラミング例のQRコード