# マイクロマクイーン(micro:Maqueen) 自動運転(ライントラッキング)




# 10.1. 目標




ライントラッキング機能を使って、黒い路線が書かれているマップの上で、マイクロマクイーン (micro:Maqueen)を自律的に運転させるためのプログラミング方法を把握します。


# 10.2. 必要な機材




# PC利用時に必要な機材

No. 名称 個数 HW/SW 用途 補足
01 micro:bit(v2)本体 1 HW マイクロマクイーンのコントロール用とプログラミング
02 micro:bit用 ケース 1 HW micro:bit保護
03 micro:bit用 USBケーブル 1 HW micro:bitとPCの接続
03 マイクロマクイーン(micro:Maqueen) 1 HW 車体本体
04 単4型乾電池 3 HW マイクロマクイーンとmicro:bitへの電源供給
05 Chromebook、MacOS、WindowsのPC 1 HW MakeCode操作用
06 Google Chrome 1 SW MakeCodeアクセス用
07 USB変換アダプタ 1 HW PC接続用 PCのUSBポートがType-Cのみの場合、TypeC ⇄ TypeA変換アダプタが必要
08 路線マップ 1 車体が走る路線として利用 自作でも可能

# タブレット・スマートフォン利用時に必要な機材

No. 名称 個数 HW/SW 用途 補足
01 micro:bit(v2)本体 1 HW マイクロマクイーンのコントロール用とプログラミング
02 micro:bit用 ケース 1 HW micro:bit保護
03 マイクロマクイーン(micro:Maqueen) 1 HW 車体本体
04 単4型乾電池 3 HW マイクロマクイーンとmicro:bitへの電源供給
05 タブレット・スマートフォン 1 HW micro:bitアプリ操作用
06 micro:bit アプリ 1 SW micro:bitアプリ操作用
07 路線マップ 1 車体が走る路線として利用 自作でも可能



# 10.3. MakeCodeブロックの概要




No. ブロック 概要 機能
01 ROB0148-iftiny-Micro-Maqueen-Tutorial-Ultrasonic-Obstacle-Avoiding-291 ライントラッキングセンサー用ブロック 車体底部の2つのライントラッキングセンサーのデータを取得。
具体的には、黒い線を検知した場合、インジケータをOFFにしたうえ、0を出力。白い部分を検知した場合、インジケータをONにしたうえ、1を出力。

・ センサーの選択:左、右
・ 戻り値:0、1



# 10.4. 動作イメージ




黒い路線に沿って、マイクロマクイーン (micro:Maqueen)が自動運転します。 マップを自作することも可能です。黒いテープなどである程度太い線を作ることが必要です。

参考情報


  • マップを自作することも可能です。黒いテープなどである程度太い線を作ることが必要です。

ROB0148 Micro:Maqueen イントラッキングによる自動運転 プログラム 動作イメージ


# 10.5. プログラミング例




# MakeCodeプログラミング例(ブロック)





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

basic.forever(function () {
    if (maqueen.readPatrol(maqueen.Patrol.PatrolLeft) == 0 && maqueen.readPatrol(maqueen.Patrol.PatrolRight) == 0) {
        maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CW, 200)
    } else if (maqueen.readPatrol(maqueen.Patrol.PatrolLeft) == 1 && maqueen.readPatrol(maqueen.Patrol.PatrolRight) == 0) {
        maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 255)
        maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 50)
    } else if (maqueen.readPatrol(maqueen.Patrol.PatrolLeft) == 0 && maqueen.readPatrol(maqueen.Patrol.PatrolRight) == 1) {
        maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 50)
        maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 255)
    }
})




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

def on_forever():
    if maqueen.read_patrol(maqueen.Patrol.PATROL_LEFT) == 0 and maqueen.read_patrol(maqueen.Patrol.PATROL_RIGHT) == 0:
        maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CW, 200)
    elif maqueen.read_patrol(maqueen.Patrol.PATROL_LEFT) == 1 and maqueen.read_patrol(maqueen.Patrol.PATROL_RIGHT) == 0:
        maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 255)
        maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 50)
    elif maqueen.read_patrol(maqueen.Patrol.PATROL_LEFT) == 0 and maqueen.read_patrol(maqueen.Patrol.PATROL_RIGHT) == 1:
        maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 50)
        maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 255)
basic.forever(on_forever)




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

ROB0148 Micro:Maqueen イントラッキングによる自動運転 プログラムサンプル QRコード





Last Updated: 4/23/2022, 1:45:58 PM