# メカニックパーツ - フォークリフト (マイクロマックイーン用) (micro:Maqueen Mechanic-Forklift) 利用マニュアル



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



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


  • メカニックパーツ - フォークリフト (Mechanic-Forklift) の概要説明
  • メカニックパーツ - フォークリフト (Mechanic-Forklift) の仕様説明
  • メカニックパーツ - フォークリフト (Mechanic-Forklift) に関する利用方法の説明


# 2.概要


メカニックパーツ - フォークリフト (Mechanic-Forklift)は、DFRobot社が提供しているマイクロビット用ロボットカー「マイクロマックイーン (micro:Maqueen)」の追加パーツです。
このキットには、メタルサーボ、メカパーツ、ネジなどが含まれており、簡単にロボットカーに装着できます。
お手持ちのマイクロマックイーン ライト (micro:Maqueen Lite)やマイクロマックイーン プラス (micro:Maqueen Plus)に、メカニックパーツ - フォークリフト (Mechanic-Forklift)を装着すると、工場で使われている本物のフォークリフトのように、物を持ち上げたり、フォークで運ぶようにプログラムできます。
遊びながら、実践的なプログラミング学習を経験することで、学びを深めていくことが期待できます。



# 3.ご購入の方法


参考:メカニックパーツ - フォークリフト (Mechanic-Forklift)は、当社ウェブストアにてご購入いただけます。



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

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

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



# 4.特徴


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


# 5.仕様


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


# 6.付属品


画像 項目 個数
付属品 9gメタルギア・サーボ
(9g Metal Gear Servo)
1
付属品 メタル・アーム・サーボ・ベース
(Metal Arm Servo Base)
1
付属品 メタル・アーム・ベースプレート
(Metal Arm Baseplate)
1
付属品 メタル・アーム・リンケージ
(Metal Arm Linkage)
3
付属品 メタル・アーム・プレート
(Metal Arm Plate)
1
付属品 メタル・サーボ・アーム・リンケージ
(Metal Servo Arm Linkage)
1
付属品 メタル・フォーク・プレート
(Metal Forklift Plate)
1
付属品 M3 * 15mm ピラー(銅)
(M3*15mm Copper Pilla)
2
付属品 M2.5 * 5mm ネジ
(M2.5 * 5mm Screws)
5
付属品 M3 * 5mm ネジ
(M3 * 5mm Screws)
18

※ マイクロビット (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-Forklift) (opens new window) 1 HW 本製品
03 マイクロマックイーン ライト (micro:Maqueen Lite) (opens new window) 1 HW メカニックパーツ - フォークリフト (Mechanic-Forklift) 装着用
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-Forklift) (opens new window) 1 HW 本製品
03 マイクロマックイーン ライト (micro:Maqueen Lite) (opens new window) 1 HW メカニックパーツ - フォークリフト (Mechanic-Forklift) 装着用
04 単4型乾電池 3 HW マイクロマックイーン ライト (micro:Maqueen Lite) と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では、標準でインストールされています。


# 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 メタル・アーム・リンケージをメタル・アーム・ベースプレートとメタル・アーム・プレートに装着。
05 フォークリフトの組み立て05 サーボメタル・アーム・リンケージに丸型サーボホーンを装着。
06 フォークリフトの組み立て06 サーボモーターのシャフトに丸型サーボホーンを装着。

※丸型サーボホーンのM3*5mmネジが装着してあるネジ穴2箇所が水平になる角度で装着する。

※サーボの原点合わせを行った状態なので、シャフトを手で回さないように注意する。

サーボメタル・アーム・リンケージをメタル・アーム・プレートに装着。
07 フォークリフトの組み立て07 メタル・アーム・プレートにメタル・フォーク・プレートを装着。
08 フォークリフトの組み立て08 M3 * 15mm ピラー(銅)2本をマイクロマックイーン ライト (micro:Maqueen Lite)に装着する。

メタル・アーム・ベースプレートをM3 * 15mm ピラー(銅)に装着。
09 フォークリフトの組み立て09 メタルギア・サーボのワイヤー(3pin)をマイクロマックイーンのS1ポートに差し込む。

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

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


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


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

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


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



# 7.3.1.フォークを上下に動かす


マイクロビット (micro:bit v2.2) のボタンを押すことでサーボを回転させてフォークを上下に動かします。
操作 動き
ボタン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-Forklift)をコントロールする方法を説明します。
操作(マイクロゲームパッド) 動き(マイクロマックイーン ライト、フォークリフト)
方向キー(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 > 23) {
            maqueen.servoRun(maqueen.Servos.S1, angle)
            angle += -1
        }
    } else if (receivedString == "Down") {
        if (angle < 115) {
            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 P1 = 0
let P2 = 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 > 23:
            maqueen.servo_run(maqueen.Servos.S1, angle)
            angle += -1
    elif receivedString == "Down":
        if angle < 115:
            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)側
P1 = 0
P2 = 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-Forklift) (opens new window) 1 HW 本製品
03 マイクロマックイーン プラス (micro:Maqueen Plus) (opens new window) 1 HW メカニックパーツ - フォークリフト (Mechanic-Forklift) 装着用
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-Forklift) (opens new window) 1 HW 本製品
03 マイクロマックイーン プラス (micro:Maqueen Plus) (opens new window) 1 HW メカニックパーツ - フォークリフト (Mechanic-Forklift) 装着用
04 単3型乾電池 4 HW マイクロマックイーン プラス (micro:Maqueen Plus)と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では、標準でインストールされています。


# 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に接続。

※3pinコネクターの向きに注意する(茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続)。
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 メタル・アーム・リンケージをメタル・アーム・ベースプレートとメタル・アーム・プレートに装着。
05 フォークリフトの組み立て05 サーボメタル・アーム・リンケージに丸型サーボホーンを装着。
06 フォークリフトの組み立て06 サーボモーターのシャフトに丸型サーボホーンを装着。

※丸型サーボホーンのM3 * 5mmネジが装着してあるネジ穴2箇所が水平になる角度で行う。

※サーボの原点合わせを行った状態なので、シャフトを手で回さないように注意する。

サーボメタル・アーム・リンケージをメタル・アーム・プレートに装着。
07 フォークリフトの組み立て07 メタル・アーム・プレートにメタル・フォーク・プレートを装着。
08 フォークリフトの組み立て08 M3 * 15mm ピラー(銅)2本をマイクロマックイーン プラス (micro:Maqueen Plus)に装着する。
09 フォークリフトの組み立て09 メタル・アーム・ベースプレートをM3 * 15mm ピラー(銅)に装着。
10 マイクロマックイーン プラス(micro:Maqueen Plus)コネクター 9gメタルギア・サーボの3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子P1に接続。

※3pinコネクターの向きに注意する(茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続)。

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


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


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

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


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



# 8.3.1.フォークを上下に動かす


マイクロビット (micro:bit v2.2) のボタンを押すことでサーボを回転させてフォークを上下に動かします。
操作 動き
ボタン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-Forklift)をコントロールする。
操作(マイクロゲームパッド) 動き(マイクロマックイーン プラス、フォークリフト)
方向キー(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 > 18) {
            pins.servoWritePin(AnalogPin.P1, angle)
            angle += -1
        }
    } else if (receivedString == "Down") {
        if (angle < 120) {
            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 > 18:
            pins.servo_write_pin(AnalogPin.P1, angle)
            angle += -1
    elif receivedString == "Down":
        if angle < 120:
            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)側
P1 = 0
P2 = 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: 11/22/2024, 1:31:41 PM