Bluetooth制御 ピックアンドプレースロボットキット:Arduino UNO + 2自由度アーム & スマートカーチャッシ
必要なコンポーネントと用品
| パーツ | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | |
| 2自由度ロボットアーム(グリッパー・ベース付き) | 1 | |
| HC-05 Bluetoothモジュール | 1 | |
| Adafruit Motor Shield | 1 | |
| 2WD スマートロボットカーチャッシキット | 1 | |
| NiMH充電池 (5V-1500mAh) | 1 | |
| 7.4V バッテリー | 1 | |
| ミニブレッドボード | 1 | |
| ジャンパーワイヤー(汎用) | 1 |
必要な工具
- はんだごて(汎用)
アプリとオンラインサービス
- Arduino IDE
- MIT App Inventor
プロジェクト概要
イントロ
Androidスマートフォンで制御するピックアンドプレースロボットの作り方を解説します。MIT App Inventorでモバイルアプリを自作します。以下のトピックを順に説明します:
- サーボモーターの制御
- DCモーターの制御
- Bluetoothモジュールの使用
- スマホでロボットを操作
このチュートリアルでロボット製作に必要なすべてがカバーされています。
シナリオ
ロボットはBluetoothモジュール経由でスマホアプリから命令を受け取ります。まずはその仕組みを理解しましょう。
ハードウェア
キットには簡単な組み立てが必要です(付属説明書に従ってください)。完成すると以下のようになります。
モーターシールド はモーターとArduinoの仲介役です。モーターを直接Arduinoピンに繋ぐと発火の危険があります(モーターは最低80mA必要だが、Arduinoピンは最大40mAしか供給できないため)。
- モーターシールドでモーターの方向制御(前進、後退、停止)が可能。
- 最大4つの双方向DCモーターを個別に8ビット速度制御(約0.5%分解能)で駆動可能。
シールド上部にピンヘッダーをハンダ付けすればArduinoピンも使用可能。
モーターシールドをArduinoの上にスタックします。
Bluetoothモジュール(HC-05) は操縦者とロボットの間の通信チャネルです。
6ピンありますが、中央4ピン(RX、TX、GND、+5V)のみ使用。接続は以下の通り:
- Bluetooth +5V → Arduino 5V
- Bluetooth GND → Arduino GND
- Bluetooth RX → Arduino TX
- Bluetooth TX → Arduino RX
なぜRX↔TXをクロスするのか? Bluetoothがデータを送信(TX)し、Arduinoが受信(RX)するためです。一方が送信、他方が受信という関係です。
サーボモーターの接続
サーボは赤(+)、茶(-)、黄/橙(信号)の3線。サーボの電源線をArduinoの5V/GNDに繋ぐと発火する ため、必ず外部電池を使用してください。
- 赤線 → 外部電池 +
- 茶線 → 外部電池 -
- 橙線 → Arduinoの任意のPWM対応デジタルピン
重要:外部電池のGNDとArduinoのGNDを必ず共通接続(共通グランド)してください。
DCモーターの接続
モーター端子にリード線をハンダ付け。DCモーターに極性はなく、接続を逆にすると回転方向が逆になります。
ハンダ付け後、モーターシールドのM1、M2端子に接続(コードではM1、M2を使用、M3、M4は未使用)。
回路図まとめ
ロボットモーターとバッテリーのモータードライバー接続:
アームサーボモーターとバッテリーのArduino接続:
BluetoothモジュールとArduinoの接続:
注意:Arduinoへコードをアップロードする際は、Bluetoothモジュールの赤線(+5Vピン)を外してください。アップロード完了後、再接続してください。
Arduinoコード
#include
#include
AF_DCMotor motorR(1);
AF_DCMotor motorL(2);
Servo elbowServo;
Servo gripperServo;
int command;
void setup() {
gripperServo.attach(9);
elbowServo.attach(10);
Serial.begin(9600);
motorR.setSpeed(255);
motorL.setSpeed(255);
}
void loop() {
command = Serial.read();
/* アーム制御 */
if (command >= 1 && command <= 180) { // 肘サーボをアプリのスライダー位置(0-180)に追従
elbowServo.write(command);
} else if (command == 205) { // グリッパー 0度
gripperServo.write(0);
} else if (command == 206) { // グリッパー 90度
gripperServo.write(90);
} else if (command == 207) { // グリッパー 180度
gripperServo.write(180);
}
/* 車体制御 */
else if (command == 200) { // 前進
motorR.run(FORWARD);
motorL.run(FORWARD);
} else if (command == 201) { // 右旋回
motorR.run(FORWARD);
motorL.run(BACKWARD);
} else if (command == 202) { // 停止
motorR.run(RELEASE);
motorL.run(RELEASE);
} else if (command == 203) { // 左旋回
motorR.run(BACKWARD);
motorL.run(FORWARD);
} else if (command == 204) { // 後退
motorR.run(BACKWARD);
motorL.run(BACKWARD);
} else if (command == 0) { // 停止(念のため)
motorR.run(RELEASE);
motorL.run(RELEASE);
}
}
回路図・アプリ
このアプリはAndroid専用です。使用前にスマホのBluetoothをオンにし、設定でBluetoothモジュールとペアリングしてからアプリでモジュールを選択してください。
ieee_aast_aswan_test1_xVVlPTtt8n.apk
製造プロセス
- Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
- Arduino & Raspberry Pi でインターネット制御ビデオストリーミングロボットを構築
- Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
- 3Dプリント製カスタム燃料インジェクタグリッパー:ピックアンドプレース効率の向上
- ピックアンドプレースロボットの動作原理:製造現場の効率化を強化
- ピックアンドプレース自動化で効率向上:EasyWorkによるシームレスなロボット統合
- エンドオブアームツーリング:ロボットのピックアンドプレース性能を向上
- インドの主要ピックアンドプレースロボットメーカー7社
- ピックアンドプレースロボット サプライヤー トップ10:産業自動化を加速する信頼のパートナー
- ピックアンドプレースロボットアームの高性能コンポーネント:効率的な自動化のために
- ロボット自動化がEV需要急増に対応しバッテリー生産を加速