# メカニックパーツ - クワガタ (マイクロマックイーン用) (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関連製品の販売をしております。
# 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 | 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 | メタルグリッパー・パネルに9gメタルギア・サーボを装着。 | |
05 | グリッパーサーボフォアアームに丸型サーボホーンと9gメタルギア・サーボを装着。 ※ グリッパーがマイクロマックイーン ライト (micro:Maqueen Lite)の正面方向を向くように(組み立て完成時にはグリッパーが閉じた状態になるように)取り付けを行う。 ※ 取り付けの際、サーボの軸を手で回さないように注意する。 | |
06 | メタルグリッパー・パネルにM3*17mm ピラー(銅)を装着。 | |
07 | M3*17mm ピラー(銅)にメタルグリッパー・ボトム・パネルを装着。 | |
08 | メカニックパーツ - クワガタ ( Mechanic-Beetle) をM3*15mm ピラー(銅)でマイクロマックイーン ライト (micro:Maqueen Lite)に装着する。 | |
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関連製品の販売をしております。
# 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 | 9gメタルギア・サーボの3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子P1に接続。 ※茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続。 | |
02 | マイクロ マックイーンプラス (micro:Maqueen Plus)の電源を入れる。 | |
03 | ー | プログラムの実行で9gメタルギア・サーボのシャフトが回転したことを確認する。 ※原点合わせ後は、手でシャフトを回さないように注意する。 |
04 | ー | マイクロ マックイーンプラス (micro:Maqueen Plus)の電源を切る。 |
05 | ー | 3pinコネクターをマイクロマックイーン プラス (micro:Maqueen Plus)の5V端子から抜く。 |
# 8.2.2.クワガタの組み立て
No. | 画像 | 手順 |
---|---|---|
01 | メタルグリッパー・ボトム・パネルにメタルグリッパー・ドリブン・フォアアームとメタルグリッパー・アッパー・アームを装着。 | |
02 | メタルグリッパー・サーボ・フォアアームに丸型サーボホーンを装着。 | |
03 | メタルグリッパー・サーボ・フォアアームにグリッパーアッパーアームを装着。 | |
04 | メタルグリッパー・パネルに9gメタルギア・サーボを装着。 | |
05 | グリッパーサーボフォアアームに丸型サーボホーンと9gメタルギア・サーボを装着。 ※ グリッパーがマイクロマックイーン ライト (micro:Maqueen Lite)の正面方向を向くように(組み立て完成時にはグリッパーが閉じた状態になるように)取り付けを行う。 ※ 取り付けの際、サーボの軸を手で回さないように注意する。 | |
06 | メタルグリッパー・パネルにM3 * 17mm ピラー(銅)を装着。 | |
07 | M3 * 17mm ピラー(銅)にメタルグリッパー・ボトム・パネルを装着。 | |
08 | メカニックパーツ - クワガタ ( Mechanic-Beetle) をM3*15mm ピラー(銅)でマイクロマックイーン プラス (micro:Maqueen Plus)に装着する。 | |
09 | 9gメタルギア・サーボのワイヤー(3pin)をマイクロマックイーン プラス (micro:Maqueen Plus)のS1ポートに差し込む。 ※茶色ワイヤーを黒ピン、赤色ワイヤーをピンクピン、オレンジ色ワイヤーを緑ピンに接続。 | |
10 | M3 * 15mm ピラー(銅)をマイクロマックイーン プラス (micro:Maqueen Plus)に装着する。 | |
11 | メタルグリッパー・ボトム・パネルを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関連製品の販売をしております。
# 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)