# メカニックパーツ - クワガタ (マイクロマックイーン用) (micro:Maqueen Mechanic-Beetle) 利用マニュアル



本ドキュメントは、メカニックパーツ - クワガタ ( Mechanic-Beetle) の概要、特徴、利用方法について説明します。



# 1.本ドキュメントの目的


  • メカニックパーツ - クワガタ (Mechanic-Beetle) の概要説明
  • メカニックパーツ - クワガタ (Mechanic-Beetle) の仕様説明
  • メカニックパーツ - クワガタ (Mechanic-Beetle) に関する利用方法の説明


# 2.概要


メカニックパーツ - クワガタ (Mechanic-Beetle)は、DFRobot社が提供しているマイクロビット用ロボットカー「マイクロマックイーン (micro:Maqueen)」の追加パーツです。
このキットには、メタルサーボ、メカパーツ、ネジなどが含まれており、簡単にロボットカーに装着できます。
お手持ちのマイクロマックイーン ライト (micro:Maqueen Lite)やマイクロマックイーン プラス (micro:Maqueen Plus)に、メカニックパーツ - クワガタ (Mechanic-Beetle)を装着し、グリッパーの開閉を制御することで、物を運ぶことができます。
物の受け渡しや仕分けなどを遊びながら、実践的なプログラミング学習を経験することで、学びを深めていくことが期待できます。

# 3.ご購入の方法


参考:メカニックパーツ - クワガタ (Mechanic-Beetle)は、当社ウェブストアにてご購入が可能です。



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

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

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



# 4.特徴


  • マイクロマックイーン ライト (micro:Maqueen Lite)4.0以降に対応
  • マイクロマックイーン プラス V2 (micro:Maqueen Plus V2)に対応
  • 高品質メタルギアサーボ
  • 金属製のサーボ接続プレートで簡単に取り付けることが可能
  • サーボ制御角度0~180度
  • 高品質アルミ合金素材


# 5.仕様


項目 詳細
型番 PPDF-ROB0156-B
サーボ重量 12g±1g
サーボの種類 メタルギアサーボ
サーボ制御角度 0 ~ 180 度
サーボ接続プレート メタルサーボ接続プレート
コントロールポート (micro:Maqueen Lite) S1、S2
コントロールポート (micro:Maqueen Plus) P0、P1、P2
スタンバイ電流 <45mA
重量 92.5g(袋を含む)
製品パッケージ パッケージなし、袋のみ。260 x 160 x 25mm(目安)


# 6.付属品


画像 項目 個数
付属品 9gメタルギア・サーボ
(9g Metal Gear Servo)
1
付属品 メタルグリッパー・アッパー・アーム
(Metal Gripper Upper Arm)
2
付属品 メタルグリッパー・ドリブン・フォアアーム
(Metal Gripper Driven Forearm)
1
付属品 メタルグリッパー・サーボ・フォアアーム
(Metal Gripper Driven Forearm)
1
付属品 メタルグリッパー・パネル
(Metal Gripper Panel )
1
付属品 メタルグリッパー・ボトム・パネル
(Metal Gripper Bottom Panel )
1
付属品 M3 * 15mm ピラー(銅)
(M3 * 15mm Copper Pillar)
2
付属品 M3 * 17mm ピラー(銅)
(M3 * 17mm Copper Pillar)
3
付属品 M2.5 * 5mm ネジ
(M2.5 * 5mm Screws)
5
付属品 M3 * 5mm ネジ
(M3 * 5mm Screws)
20

※ マイクロビット (micro:bit)、マイクロマックイーン ライト (micro:Maqueen Lite)、マイクロマックイーン プラス (micro:Maqueen Plus)は付属しておりません。ご利用するには、別途ご購入する必要がございます。



# 7.利用方法(マイクロマックイーン ライト (micro:Maqueen Lite)用)


# 7.1.必要な機材


# PC利用時に必要な機材

No. 名称 個数 HW/SW 用途
01 マイクロビット セレクト ベースキット (opens new window) 1 HW micro:bit本体、micro:bit用ケース、マルチUSBケーブル
02 メカニックパーツ - クワガタ (Mechanic-Beetle) (opens new window) 1 HW 本製品
03 マイクロマックイーン ライト (micro:Maqueen Lite) (opens new window) 1 HW メカニックパーツ - クワガタ (Mechanic-Beetle)装着用
04 単4型乾電池 3 HW マイクロマックイーン ライト (micro:Maqueen Lite)とmicro:bitへの電源供給
05 Chromebook、MacOS、WindowsのPC 1 HW MakeCode操作用
06 Google Chrome 1 SW MakeCodeアクセス用


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

No. 名称 個数 HW/SW 用途
01 マイクロビット セレクト ベースキット (opens new window) 1 HW micro:bit本体、micro:bit用ケース、マルチUSBケーブル
02 メカニックパーツ - クワガタ (Mechanic-Beetle) (opens new window) 1 HW 本製品
03 マイクロマックイーン ライト (micro:Maqueen Lite) (opens new window) 1 HW メカニックパーツ - クワガタ (Mechanic-Beetle)装着用
04 単4型乾電池 3 HW マイクロマックイーン ライト (micro:Maqueen Lite) とmicro:bitへの電源供給
05 タブレット・スマートフォン 1 HW micro:bitアプリ操作用
06 micro:bit アプリ 1 SW micro:bitプログラミング用

※ HW:ハードウェア、SW:ソフトウェア
※ Google Chromeは、Google社が提供しているブラウザ。ダウンロードは[Google Chromeの公式ウェブページ](https://www.google.com/intl/ja_jp/chrome/)で可能です。Chromebookでは、標準でインストールされています。


# 7.2.組立方法


# 7.2.1.サーボの原点合わせ


各パーツを取り付ける前にサーボの原点合わせを行います。原点とはサーボが動作する際に基準となる位置です。
本マニュアルでは、原点合わせとして、サーボのシャフトを90度の位置に合わせます。

# 7.2.1.1.プログラムを作成する

サーボをコントロールして90度の位置に合わせるプログラムを作成します。

※ 本マニュアルでは、MakeCodeを利用したプログラミング例を使用します。 MakeCodeを使ってのmicro:bitプログラミングを経験していない方は、当社ドキュメント 「1.2. micro:bitの利用方法」 (opens new window)の各ドキュメントをご確認ください。

※MakeCodeプログラミング例(ブロック)にはマイクロマックイーン ライト (micro:Maqueen Lite)のMakecode用パッケージが予めインポートされています。

MakeCode画面で初めからプログラミングを作成する場合やMakeCodeプログラミング例(JavaScript)、MakeCodeプログラミング例(python)を使用する場合には、「マイクロマクイーン (micro:Maqueen)MakeCode用パッケージのインポート」 (opens new window) をご参照ください。

※作成したプログラムはマイクロマックイーン ライト (micro:Maqueen Lite)に装着するマイクロビット (micro:bit v2.2)に書き込み(ダウンロード)します。


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



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

maqueen.servoRun(maqueen.Servos.S1, 90)



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

maqueen.servo_run(maqueen.Servos.S1, 90)



# 7.2.1.2.作成したプログラムを実行する


No. 画像 手順
01 マイクロマックイーン ライト(micro:Maqueen Lite)コネクター 9gメタルギア・サーボの3pinコネクターをマイクロマックイーン ライト (micro:Maqueen Lite)のサーボ端子S1に接続。

※3pinコネクターの向きに注意する(茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続)。
02 マイクロマックイーン ライト(micro:Maqueen Lite)電源ON マイクロ マックイーンライト (micro:Maqueen Lite)の電源を入れる。
03 プログラムの実行で9gメタルギア・サーボのシャフトが回転したことを確認する。

※原点合わせ後は、手でシャフトを回さないように注意する。
04 マイクロ マックイーンライト (micro:Maqueen Lite)の電源を切る。
05 3pinコネクターをマイクロマックイーンライト (micro:Maqueen Lite)のサーボモーター端子から抜く。


# 7.2.2.フォークリフトの組み立て



No. 画像 手順
01 クワガタの組み立て01 メタルグリッパー・ボトム・パネルにメタルグリッパー・ドリブン・フォアアームとメタルグリッパー・アッパー・アームを装着。
02 クワガタの組み立て02 メタルグリッパー・サーボ・フォアアームに丸型サーボホーンを装着。
03 クワガタの組み立て03 メタルグリッパー・サーボ・フォアアームにグリッパーアッパーアームを装着。
04 クワガタの組み立て04 メタルグリッパー・パネルに9gメタルギア・サーボを装着。
05 クワガタの組み立て05 グリッパーサーボフォアアームに丸型サーボホーンと9gメタルギア・サーボを装着。

※ グリッパーがマイクロマックイーン ライト (micro:Maqueen Lite)の正面方向を向くように(組み立て完成時にはグリッパーが閉じた状態になるように)取り付けを行う。

※ 取り付けの際、サーボの軸を手で回さないように注意する。
06 クワガタの組み立て06 メタルグリッパー・パネルにM3*17mm ピラー(銅)を装着。
07 クワガタの組み立て07 M3*17mm ピラー(銅)にメタルグリッパー・ボトム・パネルを装着。
08 クワガタの組み立て08 メカニックパーツ - クワガタ ( Mechanic-Beetle) をM3*15mm ピラー(銅)でマイクロマックイーン ライト (micro:Maqueen Lite)に装着する。
09 クワガタの組み立て09 9gメタルギア・サーボのワイヤー(3pin)をマイクロマックイーンのS1ポートに差し込む。

※茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続。

以上でプログラミングの事前準備は完了です。


# 7.3.プログラミング方法


本マニュアルでは、MakeCodeを使用して、ククワガタ単体で動かす方法とマイクロゲームパッド (micro:GamePad)でクワガタを動かす方法を説明します。

あらかじめ用意されたパッケージを利用することで、プログラミンがより簡単に行えますので、本マニュアルでは、メーカーが用意したパッケージを利用する前提でマイクロマックイーン ライト (micro:Maqueen Lite)のプログラミング例を記載しています。


パッケージのインポート方法については、「マイクロマクイーン (micro:Maqueen)MakeCode用パッケージのインポート」 (opens new window) をご参照ください。



# 7.3.1.クワガタのグリッパーを開閉する


マイクロビット (micro:bit v2.2) のボタンを押すことでサーボを回転させてメカニックパーツ - クワガタ (Mechanic-Beetle)のグリッパーを開閉します。
操作 動き
ボタンAを押す クワガタのグリッパーを5度閉じる
ボタンBを押す クワガタのグリッパーを5度開く
ボタンA+Bを押す グリッパーを初期位置(90度)に戻す


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



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

input.onButtonPressed(Button.A, function () {
    angle += 5
    maqueen.servoRun(maqueen.Servos.S1, angle)
})
input.onButtonPressed(Button.AB, function () {
    angle = 90
    maqueen.servoRun(maqueen.Servos.S1, angle)
})
input.onButtonPressed(Button.B, function () {
    angle += -5
    maqueen.servoRun(maqueen.Servos.S1, angle)
})
let angle = 0
angle = 90
maqueen.servoRun(maqueen.Servos.S1, angle)



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

def on_button_pressed_a():
    global angle
    angle += 5
    maqueen.servo_run(maqueen.Servos.S1, angle)
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_ab():
    global angle
    angle = 90
    maqueen.servo_run(maqueen.Servos.S1, angle)
input.on_button_pressed(Button.AB, on_button_pressed_ab)

def on_button_pressed_b():
    global angle
    angle += -5
    maqueen.servo_run(maqueen.Servos.S1, angle)
input.on_button_pressed(Button.B, on_button_pressed_b)

angle = 0
angle = 90
maqueen.servo_run(maqueen.Servos.S1, angle)


# 7.3.2.マイクロゲームパッド(micro:GamePad)を使用してクワガタを動かす


マイクロゲームパッド (micro:Game Pad)を使い、マイクロマックイーン ライト (micro:Maqueen Lite)とメカニックパーツ - クワガタ (Mechanic-Beetle)をコントロールする方法を説明します。
操作(マイクロゲームパッド) 動き(マイクロマックイーン ライト、クワガタ)
方向キー(P1、P2)を動かす マイクロマックイーン ライト (micro:Maqueen Lite)を前後左右に動かす
E(P15)ボタンを押す ビートルのグリッパーを開く
C(P13)ボタンを押す ビートルのグリッパーを閉じる


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



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

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

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



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

マイクロマックイーン ライト (micro:Maqueen Lite)側

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

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

マイクロマックイーン ライト (micro:Maqueen Lite)側
radio.onReceivedString(function (receivedString) {
    if (receivedString == "Up") {
        if (angle > 25) {
            maqueen.servoRun(maqueen.Servos.S1, angle)
            angle += -1
        }
    } else if (receivedString == "Down") {
        if (angle < 90) {
            maqueen.servoRun(maqueen.Servos.S1, angle)
            angle += 1
        }
    } else if (receivedString == "Stop") {
        maqueen.motorStop(maqueen.Motors.All)
    }
})
radio.onReceivedValue(function (name, value) {
    if (name == "F") {
        maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CW, 255)
    } else if (name == "B") {
        maqueen.motorRun(maqueen.Motors.All, maqueen.Dir.CCW, 255)
    } else if (name == "L") {
        maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 0)
        maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 255)
    } else if (name == "R") {
        maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, 255)
        maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, 0)
    }
})
let angle = 0
radio.setGroup(1)
angle = 90
maqueen.servoRun(maqueen.Servos.S1, angle)

マイクロゲームパッド(micro:GamePad)側
let P2 = 0
let P1 = 0
let P13 = 0
let P15 = 0
radio.setGroup(1)
pins.setPull(DigitalPin.P13, PinPullMode.PullNone)
pins.setPull(DigitalPin.P15, PinPullMode.PullNone)
basic.forever(function () {
    P15 = pins.digitalReadPin(DigitalPin.P15)
    P13 = pins.digitalReadPin(DigitalPin.P13)
    P1 = pins.analogReadPin(AnalogPin.P1)
    P2 = pins.analogReadPin(AnalogPin.P2)
    if (P15 == 0) {
        radio.sendString("Up")
    } else if (P13 == 0) {
        radio.sendString("Down")
    } else {
        if (P2 > 550 && (P1 > 400 && P1 < 600)) {
            radio.sendValue("F", P2)
        } else if (P2 < 450 && (P1 > 400 && P1 < 600)) {
            radio.sendValue("B", P2)
        } else if (P1 < 450 && (P2 > 400 && P2 < 600)) {
            radio.sendValue("L", P1)
        } else if (P1 > 550 && (P2 > 400 && P2 < 600)) {
            radio.sendValue("R", P1)
        } else {
            radio.sendString("Stop")
        }
    }
})

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

マイクロマックイーン ライト (micro:Maqueen Lite)側
def on_received_string(receivedString):
    global angle
    if receivedString == "Up":
        if angle > 25:
            maqueen.servo_run(maqueen.Servos.S1, angle)
            angle += -1
    elif receivedString == "Down":
        if angle < 90:
            maqueen.servo_run(maqueen.Servos.S1, angle)
            angle += 1
    elif receivedString == "Stop":
        maqueen.motor_stop(maqueen.Motors.ALL)
radio.on_received_string(on_received_string)

def on_received_value(name, value):
    if name == "F":
        maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CW, 255)
    elif name == "B":
        maqueen.motor_run(maqueen.Motors.ALL, maqueen.Dir.CCW, 255)
    elif name == "L":
        maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 0)
        maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 255)
    elif name == "R":
        maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 255)
        maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 0)
radio.on_received_value(on_received_value)

angle = 0
radio.set_group(1)
angle = 90
maqueen.servo_run(maqueen.Servos.S1, angle)

マイクロゲームパッド(micro:GamePad)側
P2 = 0
P1 = 0
P13 = 0
P15 = 0
radio.set_group(1)
pins.set_pull(DigitalPin.P13, PinPullMode.PULL_NONE)
pins.set_pull(DigitalPin.P15, PinPullMode.PULL_NONE)

def on_forever():
    global P15, P13, P1, P2
    P15 = pins.digital_read_pin(DigitalPin.P15)
    P13 = pins.digital_read_pin(DigitalPin.P13)
    P1 = pins.analog_read_pin(AnalogPin.P1)
    P2 = pins.analog_read_pin(AnalogPin.P2)
    if P15 == 0:
        radio.send_string("Up")
    elif P13 == 0:
        radio.send_string("Down")
    else:
        if P2 > 550 and (P1 > 400 and P1 < 600):
            radio.send_value("F", P2)
        elif P2 < 450 and (P1 > 400 and P1 < 600):
            radio.send_value("B", P2)
        elif P1 < 450 and (P2 > 400 and P2 < 600):
            radio.send_value("L", P1)
        elif P1 > 550 and (P2 > 400 and P2 < 600):
            radio.send_value("R", P1)
        else:
            radio.send_string("Stop")
basic.forever(on_forever)



# 8.利用方法(マイクロマックイーン プラス (micro:Maqueen Plus)用)


# 8.1.必要な機材


# PC利用時に必要な機材


No. 名称 個数 HW/SW 用途 補足
01 マイクロビット セレクト ベースキット (opens new window) 1 HW micro:bit本体、micro:bit用ケース、マルチUSBケーブル
02 メカニックパーツ - クワガタ (Mechanic-Beetle) (opens new window) 1 HW 本製品
03 マイクロマックイーン プラス (micro:Maqueen Plus) (opens new window) 1 HW メカニックパーツ - クワガタ (Mechanic-Beetle)装着用
04 単3型乾電池 4 HW マイクロマックイーン プラス (micro:Maqueen Plus)とmicro:bitへの電源供給
05 Chromebook、MacOS、WindowsのPC 1 HW MakeCode操作用
06 Google Chrome 1 SW MakeCodeアクセス用


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


No. 名称 個数 HW/SW 用途
01 マイクロビット セレクト ベースキット (opens new window) 1 HW micro:bit本体、micro:bit用ケース、マルチUSBケーブル
02 メカニックパーツ - クワガタ (Mechanic-Beetle) (opens new window) 1 HW 本製品
03 マイクロマックイーン プラス (micro:Maqueen Plus) (opens new window) 1 HW メカニックパーツ - クワガタ (Mechanic-Beetle) 装着用
04 単3型乾電池 4 HW マイクロマックイーン プラス (micro:Maqueen Plus)とmicro:bitへの電源供給
05 タブレット・スマートフォン 1 HW micro:bitアプリ操作用
06 micro:bit アプリ 1 SW プログラム作成用


※ HW:ハードウェア、SW:ソフトウェア
※ Google Chromeは、Google社が提供しているブラウザ。ダウンロードは[Google Chromeの公式ウェブページ](https://www.google.com/intl/ja_jp/chrome/)で可能です。Chromebookでは、標準でインストールされています。


# 8.2.組立方法


# 8.2.1.サーボの原点合わせ


各パーツを取り付ける前にサーボの原点合わせを行います。原点とは、サーボが動作する際の基準位置です。
本マニュアルでは、原点合わせとしてシャフトを90度の位置に合わせます。

# 8.2.1.1.プログラムを作成する

サーボをコントロールして90度の位置に合わせるプログラムを作成します。

※ 本マニュアルでは、MakeCodeを利用したプログラミング例を使用します。 MakeCodeを使ってのmicro:bitプログラミングを経験していない方は、当社ドキュメント 「1.2. micro:bitの利用方法」 (opens new window)の各ドキュメントをご確認ください。

※MakeCodeプログラミング例(ブロック)にはマイクロマックイーン プラス (micro:Maqueen Pluss)のMakecode用パッケージが予めインポートされています。
MakeCode画面で初めからプログラミングを作成する場合やMakeCodeプログラミング例(JavaScript)、MakeCodeプログラミング例(python)を使用する場合には、「マイクロマックイーン プラス (micro:Maqueen Plus) MakeCode用パッケージのインポート」 (opens new window) をご参照ください。

※作成したプログラムはマイクロマックイーン プラス (micro:Maqueen Plus)に装着するマイクロビット (micro:bit v2.2)に書き込み(ダウンロード)します。

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



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

pins.servoWritePin(AnalogPin.P1, 90)



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

pins.servo_write_pin(AnalogPin.P1, 90)



# 8.2.1.2.作成したプログラムを実行する



No. 画像 手順
01 マイクロマックイーン プラス(micro:Maqueen Plus)コネクター 9gメタルギア・サーボの3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子P1に接続。

※茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続。
02 マイクロマックイーン プラス(micro:Maqueen Plus)電源ON マイクロ マックイーンプラス (micro:Maqueen Plus)の電源を入れる。
03 プログラムの実行で9gメタルギア・サーボのシャフトが回転したことを確認する。

※原点合わせ後は、手でシャフトを回さないように注意する。
04 マイクロ マックイーンプラス (micro:Maqueen Plus)の電源を切る。
05 3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子から抜く。


# 8.2.2.クワガタの組み立て



No. 画像 手順
01 クワガタの組み立て01 メタルグリッパー・ボトム・パネルにメタルグリッパー・ドリブン・フォアアームとメタルグリッパー・アッパー・アームを装着。
02 クワガタの組み立て02 メタルグリッパー・サーボ・フォアアームに丸型サーボホーンを装着。
03 クワガタの組み立て03 メタルグリッパー・サーボ・フォアアームにグリッパーアッパーアームを装着。
04 クワガタの組み立て04 メタルグリッパー・パネルに9gメタルギア・サーボを装着。
05 クワガタの組み立て05 グリッパーサーボフォアアームに丸型サーボホーンと9gメタルギア・サーボを装着。

※ グリッパーがマイクロマックイーン ライト (micro:Maqueen Lite)の正面方向を向くように(組み立て完成時にはグリッパーが閉じた状態になるように)取り付けを行う。

※ 取り付けの際、サーボの軸を手で回さないように注意する。
06 クワガタの組み立て06 メタルグリッパー・パネルにM3 * 17mm ピラー(銅)を装着。
07 クワガタの組み立て07 M3 * 17mm ピラー(銅)にメタルグリッパー・ボトム・パネルを装着。
08 クワガタの組み立て08 メカニックパーツ - クワガタ ( Mechanic-Beetle) をM3*15mm ピラー(銅)でマイクロマックイーン プラス (micro:Maqueen Plus)に装着する。
09 クワガタの組み立て09 9gメタルギア・サーボのワイヤー(3pin)をマイクロマックイーン プラス (micro:Maqueen Plus)のS1ポートに差し込む。

※茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続。
10 クワガタの組み立て08 M3 * 15mm ピラー(銅)をマイクロマックイーン プラス (micro:Maqueen Plus)に装着する。
11 クワガタの組み立て09 メタルグリッパー・ボトム・パネルをM3 * 15mm ピラー(銅)に装着。

以上でプログラミングの事前準備は完了です。

# 8.3.プログラミング方法


本マニュアルでは、MakeCodeを使用して、クワガタを単体で動かす方法とマイクロゲームパッド (micro:GamePad)でクワガタを動かす方法を説明します。

あらかじめ用意されたパッケージを利用することで、プログラミンがより簡単に行えますので、本マニュアルでは、メーカーが用意したパッケージを利用する前提でマイクロマックイーン ライト (micro:Maqueen Lite)のプログラミング例を記載しています。


パッケージのインポート方法については、「マイクロマックイーン プラス (micro:Maqueen Plus) MakeCode用パッケージのインポート」 (opens new window) をご参照ください。



# 8.3.1.クワガタのグリッパーを開閉する

マイクロビット (micro:bit v2.2)のAボタンBボタンを押すことでサーボを回転させてメカニックパーツ - クワガタ (Mechanic-Beetle)のグリッパーを開閉します。
操作 動き
ボタンAを押す クワガタのグリッパーを5度閉じる
ボタンBを押す クワガタのグリッパーを5度開く
ボタンA+Bを押す グリッパーを初期位置(90度)に戻す


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


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


input.onButtonPressed(Button.A, function () {
    angle += 5
    pins.servoWritePin(AnalogPin.P1, angle)
})
input.onButtonPressed(Button.AB, function () {
    angle = 90
    pins.servoWritePin(AnalogPin.P1, angle)
})
input.onButtonPressed(Button.B, function () {
    angle += -5
    pins.servoWritePin(AnalogPin.P1, angle)
})
let angle = 0
angle = 90
pins.servoWritePin(AnalogPin.P1, angle)



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


def on_button_pressed_a():
    global angle
    angle += 5
    pins.servo_write_pin(AnalogPin.P1, angle)
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_ab():
    global angle
    angle = 90
    pins.servo_write_pin(AnalogPin.P1, angle)
input.on_button_pressed(Button.AB, on_button_pressed_ab)

def on_button_pressed_b():
    global angle
    angle += -5
    pins.servo_write_pin(AnalogPin.P1, angle)
input.on_button_pressed(Button.B, on_button_pressed_b)

angle = 0
angle = 90
pins.servo_write_pin(AnalogPin.P1, angle)



# 8.3.2.マイクロゲームパッド (micro:GamePad)を使用してフォークリフトを動かす


マイクロゲームパッド (micro:GamePad)を使って、マイクロマックイーン プラス (micro:Maqueen Plus)とメカニックパーツ - クワガタ (Mechanic-Beetle)をコントロールします。

操作(マイクロゲームパッド) 動き(マイクロマックイーン プラス、クワガタ)
方向キー(P1、P2)を動かす マイクロマックイーン プラス (micro:Maqueen Plus)が前後左右に動く
E(P15)ボタンを押す クワガタのグリッパーを開く
C(P13)ボタンを押す クワガタのグリッパーを閉じる


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



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

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

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



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

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


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

# MakeCode JavaScriptコード



マイクロマックイーン プラス (micro:Maqueen Plus)側
radio.onReceivedString(function (receivedString) {
    if (receivedString == "Up") {
        if (angle > 25) {
            pins.servoWritePin(AnalogPin.P1, angle)
            angle += -1
        }
    } else if (receivedString == "Down") {
        if (angle < 90) {
            pins.servoWritePin(AnalogPin.P1, angle)
            angle += 1
        }
    } else if (receivedString == "Stop") {
        maqueenPlusV2.controlMotorStop(maqueenPlusV2.MyEnumMotor.AllMotor)
    }
})
radio.onReceivedValue(function (name, value) {
    if (name == "F") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Forward, 100)
    } else if (name == "B") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.AllMotor, maqueenPlusV2.MyEnumDir.Backward, 100)
    } else if (name == "L") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Forward, 0)
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Forward, 255)
    } else if (name == "R") {
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.LeftMotor, maqueenPlusV2.MyEnumDir.Forward, 255)
        maqueenPlusV2.controlMotor(maqueenPlusV2.MyEnumMotor.RightMotor, maqueenPlusV2.MyEnumDir.Forward, 0)
    }
})
let angle = 0
radio.setGroup(1)
angle = 90
pins.servoWritePin(AnalogPin.P1, angle)


マイクロゲームパッド(micro:GamePad)側
let P2 = 0
let P1 = 0
let P13 = 0
let P15 = 0
radio.setGroup(1)
pins.setPull(DigitalPin.P13, PinPullMode.PullNone)
pins.setPull(DigitalPin.P15, PinPullMode.PullNone)
basic.forever(function () {
    P15 = pins.digitalReadPin(DigitalPin.P15)
    P13 = pins.digitalReadPin(DigitalPin.P13)
    P1 = pins.analogReadPin(AnalogPin.P1)
    P2 = pins.analogReadPin(AnalogPin.P2)
    if (P15 == 0) {
        radio.sendString("Up")
    } else if (P13 == 0) {
        radio.sendString("Down")
    } else {
        if (P2 > 550 && (P1 > 400 && P1 < 600)) {
            radio.sendValue("F", P2)
        } else if (P2 < 450 && (P1 > 400 && P1 < 600)) {
            radio.sendValue("B", P2)
        } else if (P1 < 450 && (P2 > 400 && P2 < 600)) {
            radio.sendValue("L", P1)
        } else if (P1 > 550 && (P2 > 400 && P2 < 600)) {
            radio.sendValue("R", P1)
        } else {
            radio.sendString("Stop")
        }
    }
})



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


マイクロマックイーン プラス (micro:Maqueen Plus)側
def on_received_string(receivedString):
    global angle
    if receivedString == "Up":
        if angle > 25:
            pins.servo_write_pin(AnalogPin.P1, angle)
            angle += -1
    elif receivedString == "Down":
        if angle < 90:
            pins.servo_write_pin(AnalogPin.P1, angle)
            angle += 1
    elif receivedString == "Stop":
        maqueenPlusV2.control_motor_stop(maqueenPlusV2.MyEnumMotor.ALL_MOTOR)
radio.on_received_string(on_received_string)

def on_received_value(name, value):
    if name == "F":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            100)
    elif name == "B":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.ALL_MOTOR,
            maqueenPlusV2.MyEnumDir.BACKWARD,
            100)
    elif name == "L":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            0)
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            255)
    elif name == "R":
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.LEFT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            255)
        maqueenPlusV2.control_motor(maqueenPlusV2.MyEnumMotor.RIGHT_MOTOR,
            maqueenPlusV2.MyEnumDir.FORWARD,
            0)
radio.on_received_value(on_received_value)

angle = 0
radio.set_group(1)
angle = 90
pins.servo_write_pin(AnalogPin.P1, angle)


マイクロゲームパッド(micro:GamePad)側
P2 = 0
P1 = 0
P13 = 0
P15 = 0
radio.set_group(1)
pins.set_pull(DigitalPin.P13, PinPullMode.PULL_NONE)
pins.set_pull(DigitalPin.P15, PinPullMode.PULL_NONE)

def on_forever():
    global P15, P13, P1, P2
    P15 = pins.digital_read_pin(DigitalPin.P15)
    P13 = pins.digital_read_pin(DigitalPin.P13)
    P1 = pins.analog_read_pin(AnalogPin.P1)
    P2 = pins.analog_read_pin(AnalogPin.P2)
    if P15 == 0:
        radio.send_string("Up")
    elif P13 == 0:
        radio.send_string("Down")
    else:
        if P2 > 550 and (P1 > 400 and P1 < 600):
            radio.send_value("F", P2)
        elif P2 < 450 and (P1 > 400 and P1 < 600):
            radio.send_value("B", P2)
        elif P1 < 450 and (P2 > 400 and P2 < 600):
            radio.send_value("L", P1)
        elif P1 > 550 and (P2 > 400 and P2 < 600):
            radio.send_value("R", P1)
        else:
            radio.send_string("Stop")
basic.forever(on_forever)
Last Updated: 10/4/2023, 2:30:38 AM