# 14. マイクロマックイーン プラス V2(micro:Maqueen plus V2) 無線ゲームパットでのコントロール



# 14.1. 目標

micro:bit用ゲームパッド(micro:GamePad)を使って、マイクロマックイーン プラス V2 (micro:Maqueen plus V2)をコントロールするためのプログラミング方法を把握します。



# 14.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 マイクロゲームパッド(マイクロビット用)(micro: Game Pad for micro:bit) (opens new window) 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プログラミング用
06 マイクロゲームパッド(マイクロビット用)(micro: Game Pad for micro:bit) (opens new window) 1 HW 赤外線信号発信用


参考:マイクロゲームパッド (micro:Game Pad)は、当社ウェブストアにてご購入いただけます。



当社はmicro:bitの公認正規販売店です。国内のmicro:bit利用推進を行っております。

micro:bit専門ストア「イフティニー ストア(iftiny store)」 (opens new window)にて、各種micro:bit関連製品の販売をしております。

micro:bit専門ストア (opens new window)



# 14.3. 動作イメージ

micro:bit用ゲームパッド(micro:GamePad)のジョイスティックを使って、マイクロマックイーン プラス V2 (micro:Maqueen plus V2)をラジコンのように動かします。

マイクロマックイーン プラス V2 無線ゲームパットでのコントロール プログラム 動画イメージ

マイクロマックイーン プラス V2 無線ゲームパットでのコントロール プログラム 動画イメージ
※ 本イメージ動画は旧モデルのマイクロゲームパッドです。

注意事項

  • マイクロマックイーン プラス V2 (micro:Maqueen plus V2)とマイクロゲームパッド(micro:GamePad)には、それぞれ1枚のマイクロビット(micro:bit)を挿入する必要があります。
  • それぞれのマイクロビット(micro:bit)に対してプログラミングする必要があります。
  • マイクロマックイーン プラス V2 (micro:Maqueen plus V2)側のパッケージのインポートは、「3.1. Makecode用パッケージをインポート」 (opens new window)の記載の通りで可能です。
  • マイクロゲームパッド(micro:GamePad)側は、MekeCodeのブロックを使ってプログラミングします。

# 14.4. プログラミング例



# MakeCodeプログラミング例(サンプルプログラムの画像)



# マイクロマックイーン プラス V2 (micro:Maqueen plus V2)側

PPDF-MBT0021-Micro-Maqueen-Plus-Tutorial-Wireless-Remote-Control-1303

# マイクロゲームパッド(micro:GamePad)側

PPDF-MBT0021-Micro-Maqueen-Plus-Tutorial-Wireless-Remote-Control-1304

# MakeCodeプログラミング例(サンプルプログラムのリンク)


# マイクロマックイーン プラス V2 (micro:Maqueen plus V2)側

https://makecode.microbit.org/_Vep859Ptd0bT (opens new window)

# マイクロゲームパッド(micro:GamePad)側

https://makecode.microbit.org/_PiLUDA1zTUU9 (opens new window)

# MakeCodeプログラミング例(JavaScript)


# マイクロマックイーン プラス V2 (micro:Maqueen plus V2)側


radio.onReceivedString(function (receivedString) {
    if (receivedString == "F") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Forward, 250)
        basic.showString("F")
    } else if (receivedString == "B") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Backward, 250)
        basic.showString("B")
    } else if (receivedString == "L") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Forward, 0)
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Forward, 250)
        basic.showString("L")
    } else if (receivedString == "R") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Forward, 250)
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Forward, 0)
        basic.showString("R")
    } else if (receivedString == "S") {
        maqueenPlusV2.controlMotorStop(maqueenPlusV2.MyEnumMotor.AllMotor)
        basic.showString("S")
    } else {
        maqueenPlusV2.controlMotorStop(maqueenPlusV2.MyEnumMotor.AllMotor)
    }
})
radio.setGroup(1)


# マイクロゲームパッド(micro:GamePad)側



radio.setGroup(1)
basic.forever(function () {
    if (pins.analogReadPin(AnalogPin.P2) > 550 && (pins.analogReadPin(AnalogPin.P1) > 400 && pins.analogReadPin(AnalogPin.P1) < 600)) {
        radio.sendString("F")
        basic.showString("F")
    } else if (pins.analogReadPin(AnalogPin.P2) < 450 && (pins.analogReadPin(AnalogPin.P1) > 400 && pins.analogReadPin(AnalogPin.P1) < 600)) {
        radio.sendString("B")
        basic.showString("B")
    } else if (pins.analogReadPin(AnalogPin.P1) < 450 && (pins.analogReadPin(AnalogPin.P2) > 400 && pins.analogReadPin(AnalogPin.P2) < 600)) {
        radio.sendString("L")
        basic.showString("L")
    } else if (pins.analogReadPin(AnalogPin.P1) > 550 && (pins.analogReadPin(AnalogPin.P2) > 400 && pins.analogReadPin(AnalogPin.P2) < 600)) {
        radio.sendString("R")
        basic.showString("R")
    } else {
        radio.sendString("S")
        basic.showString("S")
    }
})


# MakeCodeプログラミング例(python)


# マイクロマックイーン プラス V2 (micro:Maqueen plus V2)側


def on_received_string(receivedString):
    if receivedString == "F":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            250)
        basic.show_string("F")
    elif receivedString == "B":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
            maqueenPlusV2.MyEnumDir.BACKWARD,
            250)
        basic.show_string("B")
    elif receivedString == "L":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            0)
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            250)
        basic.show_string("L")
    elif receivedString == "R":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            250)
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            0)
        basic.show_string("R")
    elif receivedString == "S":
        maqueenPlusV2.control_motor_stop(maqueenPlusV2.MyEnumMotor.ALL_MOTOR)
        basic.show_string("S")
    else:
        maqueenPlusV2.control_motor_stop(maqueenPlusV2.MyEnumMotor.ALL_MOTOR)
radio.on_received_string(on_received_string)

radio.set_group(1)


# マイクロゲームパッド(micro:GamePad)側


radio.set_group(1)

def on_forever():
    if pins.analog_read_pin(AnalogPin.P2) > 550 and (pins.analog_read_pin(AnalogPin.P1) > 400 and pins.analog_read_pin(AnalogPin.P1) < 600):
        radio.send_string("F")
        basic.show_string("F")
    elif pins.analog_read_pin(AnalogPin.P2) < 450 and (pins.analog_read_pin(AnalogPin.P1) > 400 and pins.analog_read_pin(AnalogPin.P1) < 600):
        radio.send_string("B")
        basic.show_string("B")
    elif pins.analog_read_pin(AnalogPin.P1) < 450 and (pins.analog_read_pin(AnalogPin.P2) > 400 and pins.analog_read_pin(AnalogPin.P2) < 600):
        radio.send_string("L")
        basic.show_string("L")
    elif pins.analog_read_pin(AnalogPin.P1) > 550 and (pins.analog_read_pin(AnalogPin.P2) > 400 and pins.analog_read_pin(AnalogPin.P2) < 600):
        radio.send_string("R")
        basic.show_string("R")
    else:
        radio.send_string("S")
        basic.show_string("S")
basic.forever(on_forever)


# MakeCodeプログラミング例のQRコード


# マイクロマックイーン プラス V2 (micro:Maqueen plus V2)側


マイクロマックイーン プラス V2(micro:Maqueen plus V2) 無線ゲームパットでのコントロール プログラムサンプル QRコード



# マイクロゲームパッド(micro:GamePad)側


マイクロマックイーン プラス V2(micro:Maqueen plus V2) 無線ゲームパットでのコントロール プログラムサンプル QRコード





Last Updated: 9/15/2023, 12:18:39 PM