# マイクロマクイーン ライト(micro:Maqueen Lite)自動運転(超音波による障害物の回避)




# 11.1. 目標




超音波距離センサーを使って、前の障害物を検知し、マイクロマクイーン (micro:Maqueen)を自律的に運転させるためのプログラミング方法を把握します。


# 11.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 Lite) 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変換アダプタが必要

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

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



# 11.3. 動作イメージ




超音波センサーを使って、マイクロマクイーン ライト(micro:Maqueen Lite)と前方の障害物との距離を常に検出し、30cm以下になるとMaqueenは障害物を避けるためにランダムに左または右に曲がり、6cm以下になるとバックすることで、自動運転をさせます。

参考情報


  • 付属の超音波距離センサーを装着する必要があります。

ROB0148 Micro:Maqueen 超音波距離センサー 障害物回避よる自動運転 プログラム 動作イメージ


# 11.4. プログラミング例




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





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

let turn = false
basic.forever(function () {
    if (maqueen.Ultrasonic(PingUnit.Centimeters) < 30 && maqueen.Ultrasonic(PingUnit.Centimeters) > 6) {
        turn = Math.randomBoolean()
        if (turn == true) {
            maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 255)
            maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 0)
            basic.pause(800)
        }
        if (turn == false) {
            maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 0)
            maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 255)
            basic.pause(800)
        }
    } else if (maqueen.Ultrasonic(PingUnit.Centimeters) <= 6 && maqueen.Ultrasonic(PingUnit.Centimeters) != 0) {
        maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CCW, 255)
        basic.pause(800)
    } else {
        maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CW, 255)
    }
})




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

turn = False

def on_forever():
    global turn
    if maqueen.ultrasonic(PingUnit.CENTIMETERS) < 30 and maqueen.ultrasonic(PingUnit.CENTIMETERS) > 6:
        turn = Math.random_boolean()
        if turn == True:
            maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 255)
            maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 0)
            basic.pause(800)
        if turn == False:
            maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 0)
            maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 255)
            basic.pause(800)
    elif maqueen.ultrasonic(PingUnit.CENTIMETERS) <= 6 and maqueen.ultrasonic(PingUnit.CENTIMETERS) != 0:
        maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CCW, 255)
        basic.pause(800)
    else:
        maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CW, 255)
basic.forever(on_forever)




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

ROB0148 Micro:Maqueen 超音波距離センサー 障害物回避よる自動運転 プログラムサンプル QRコード





Last Updated: 10/4/2023, 6:22:02 AM