# 4. マイクロマックイーン プラス (micro:Maqueen Plus) モーターのコントロール
# 4.1. 目標
マイクロマックイーン プラス (micro:Maqueen Plus)の金属製ギアモーターをコントロールするためのプログラミング方法を学習します。
# 4.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アクセス用 |
# タブレット・スマートフォン利用時に必要な機材
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アプリ操作用 |
# 4.3. MakeCodeブロックの概要
No. | ブロック | 概要 | 機能 |
---|---|---|---|
01 | モーターコントロール用ブロック | 車体の前進・後退・左折・右折及びスピードをコントロール ・ 対象モーターの選択:左、右、すべて ・ 回転方向:前、後 ・ スピード:0〜255 | |
02 | モーター停止用ブロック | 車体の停止 ※ 「モーターコントロール用ブロック」のスピードを「0」に設定するのと同機能 ・ 対象モーターの選択:左、右、すべて |
# 4.4. 動作イメージ
以下の流れでマイクロマクイーン (micro:Maqueen)の車体を動かす。
- 車体前進1秒
- 右折1秒
- 左折1秒
- 後退1秒
- 後退且つ右折1秒
- 停止1秒
# 4.5. プログラミング例
# MakeCodeプログラミング例(サンプルプログラムの画像)
# MakeCodeプログラミング例(サンプルプログラムのリンク)
https://makecode.microbit.org/_7Fg9mCfX0hbV (opens new window)
# MakeCodeプログラミング例(JavaScript)
maqueenPlusV2.I2CInit()
basic.forever(function () {
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Forward, 100)
basic.pause(1000)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Forward, 100)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Forward, 0)
basic.pause(1000)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Forward, 0)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Forward, 100)
basic.pause(1000)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Backward, 100)
basic.pause(1000)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Backward, 100)
maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Backward, 0)
basic.pause(1000)
})
# MakeCodeプログラミング例(python)
def on_forever():
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
maqueenPlusV2.MyEnumDir.FORWARD,
100)
basic.pause(1000)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
maqueenPlusV2.MyEnumDir.FORWARD,
100)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
maqueenPlusV2.MyEnumDir.FORWARD,
0)
basic.pause(1000)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
maqueenPlusV2.MyEnumDir.FORWARD,
0)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
maqueenPlusV2.MyEnumDir.FORWARD,
100)
basic.pause(1000)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
maqueenPlusV2.MyEnumDir.BACKWARD,
100)
basic.pause(1000)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
maqueenPlusV2.MyEnumDir.BACKWARD,
100)
maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
maqueenPlusV2.MyEnumDir.BACKWARD,
0)
basic.pause(1000)
basic.forever(on_forever)
# MakeCodeプログラミング例のQRコード