# メカニックパーツ - フォークリフト (マイクロマックイーン用) (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関連製品の販売をしております。
# 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 | 9gメタルギア・サーボの3pinコネクターをマイクロマックイーン ライト (micro:Maqueen Lite)のサーボ端子S1に接続。 ※3pinコネクターの向きに注意する(茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続)。 | |
02 | マイクロ マックイーンライト (micro:Maqueen Lite)の電源を入れる。 | |
03 | ー | プログラムの実行で9gメタルギア・サーボのシャフトが回転したことを確認する。 ※原点合わせ後は、手でシャフトを回さないように注意する。 |
04 | ー | マイクロ マックイーンライト (micro:Maqueen Lite)の電源を切る。 |
05 | ー | 3pinコネクターをマイクロマックイーンライト (micro:Maqueen Lite)のサーボモーター端子から抜く。 |
# 7.2.2.フォークリフトの組み立て
No. | 画像 | 手順 |
---|---|---|
01 | メタル・アーム・サーボ・ベースにメタルギア・サーボを装着。 | |
02 | メタル・アーム・サーボ・ベースにメタル・アーム・ベースプレートを装着。 | |
03 | メタル・アーム・リンケージをメタル・アーム・サーボ・ベースとメタル・アーム・プレートに装着。 | |
04 | メタル・アーム・リンケージをメタル・アーム・ベースプレートとメタル・アーム・プレートに装着。 | |
05 | サーボメタル・アーム・リンケージに丸型サーボホーンを装着。 | |
06 | サーボモーターのシャフトに丸型サーボホーンを装着。 ※丸型サーボホーンのM3*5mmネジが装着してあるネジ穴2箇所が水平になる角度で装着する。 ※サーボの原点合わせを行った状態なので、シャフトを手で回さないように注意する。 サーボメタル・アーム・リンケージをメタル・アーム・プレートに装着。 | |
07 | メタル・アーム・プレートにメタル・フォーク・プレートを装着。 | |
08 | M3 * 15mm ピラー(銅)2本をマイクロマックイーン ライト (micro:Maqueen Lite)に装着する。 メタル・アーム・ベースプレートをM3 * 15mm ピラー(銅)に装着。 | |
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関連製品の販売をしております。
# 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 | 9gメタルギア・サーボの3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子P1に接続。 ※3pinコネクターの向きに注意する(茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続)。 | |
02 | マイクロ マックイーンプラス (micro:Maqueen Plus)の電源を入れる。 | |
03 | ー | プログラムの実行で9gメタルギア・サーボのシャフトが回転したことを確認する。 ※原点合わせ後は、手でシャフトを回さないように注意する。 |
04 | ー | マイクロ マックイーンプラス (micro:Maqueen Plus)の電源を切る。 |
05 | ー | 3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子から抜く。 |
# 8.2.2.フォークリフトの組み立て
No. | 画像 | 手順 |
---|---|---|
01 | メタル・アーム・サーボ・ベースにメタルギア・サーボを装着。 | |
02 | メタル・アーム・サーボ・ベースにメタル・アーム・ベースプレートを装着。 | |
03 | メタル・アーム・リンケージをメタル・アーム・サーボ・ベースとメタル・アーム・プレートに装着。 | |
04 | メタル・アーム・リンケージをメタル・アーム・ベースプレートとメタル・アーム・プレートに装着。 | |
05 | サーボメタル・アーム・リンケージに丸型サーボホーンを装着。 | |
06 | サーボモーターのシャフトに丸型サーボホーンを装着。 ※丸型サーボホーンのM3 * 5mmネジが装着してあるネジ穴2箇所が水平になる角度で行う。 ※サーボの原点合わせを行った状態なので、シャフトを手で回さないように注意する。 サーボメタル・アーム・リンケージをメタル・アーム・プレートに装着。 | |
07 | メタル・アーム・プレートにメタル・フォーク・プレートを装着。 | |
08 | M3 * 15mm ピラー(銅)2本をマイクロマックイーン プラス (micro:Maqueen Plus)に装着する。 | |
09 | メタル・アーム・ベースプレートをM3 * 15mm ピラー(銅)に装着。 | |
10 | 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関連製品の販売をしております。
# 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)