工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

4輪ArduinoロボットをDabbleアプリでBluetooth制御しよう

必要な部品と材料

部品数量備考
Arduino UNO1
ブレッドボード1
シャーシ(ロボットフレーム)1
モーターマウント4M3ボルト・ナットで固定
DCモーター4左右各2個ずつ並列接続
車輪4モーターシャフトに取り付け
L293D デュアルHブリッジドライバー14モーター駆動用
HC-05 Bluetoothモジュール1スマホと通信
DCターミナルブロック/ジャック1外部バッテリー接続用
ジャンパーワイヤー1セット
バッテリー(7.4V〜12V推奨)1モーター駆動用外部電源

使用するアプリ

プロジェクト概要

Arduino UNOとL293Dモータードライバー、HC-05 Bluetoothモジュールを搭載した4輪ロボットを、スマートフォンアプリ「Dabble」のゲームパッド機能で直感的に操作できるプロジェクトです。左右のモーターをそれぞれ並列接続し、差動駆動で前進・後進・左右旋回を実現します。年末のDIYプロジェクトとして、プレゼントにも最適な楽しい工作です。

組み立て手順

ステップ1: ボディの組み立て

  1. シャーシを裏返し、4箇所にモーターマウントをM3ボルト・ナットで固定
  2. DCモーターをマウントにM2ボルト・ナットで取り付け
  3. 各モーターシャフトに車輪を装着
  4. シャーシを表向きに戻す

ステップ2: Arduino搭載とブレッドボード配置

Arduino UNOをシャーシ上部に固定し、隣にブレッドボードを配置。すべての配線はブレッドボード上で行います。

ステップ3: モータードライバー(L293D)配線

L293Dは2つのHブリッジを内蔵し、最大4つのDCモーターを制御可能。左右のモーターをそれぞれ並列接続し、2チャンネルで駆動します。

接続ピン割り当て:

左側2モーターをOUT1/OUT2、右側2モーターをOUT3/OUT4に並列接続。

ステップ4: HC-05 Bluetoothモジュール接続

ステップ5: 外部バッテリー接続

DCターミナルブロック経由で外部バッテリーをL293DのVCC2/GNDに接続。ArduinoにはUSBまたは別途5Vレギュレーター経由で給電。

Arduinoスケッチ

Dabbleライブラリが必要です。ライブラリマネージャで「Dabble」を検索・インストール、またはGitHubから取得してください。

/* 
 * Dabbleアプリのゲームパッドモジュールで4輪ロボットを制御
 * HC-05 Bluetoothモジュール使用、UNOの場合ボーレート38400以下推奨
 * 接続: HC-05 TX→D2, RX→D3
 * Written by Punit Chotaliya, STEMpedia
 */

#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_MODULE
#include <Dabble.h>
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3); // RX, TX

#define motor1_en 10  // 左モーターPWM
#define motor2_en 11  // 右モーターPWM
#define motor1_dir1 4 // 左モーター方向1
#define motor1_dir2 5 // 左モーター方向2
#define motor2_dir1 6 // 右モーター方向1
#define motor2_dir2 7 // 右モーター方向2

void setup() {
  Serial.begin(9600);
  BTSerial.begin(38400);
  Dabble.begin(BTSerial); // SoftwareSerial渡し
  
  for (unsigned int i = 4; i < 8; i++) {
    pinMode(i, OUTPUT);
  }
  pinMode(motor1_en, OUTPUT);
  pinMode(motor2_en, OUTPUT);
}

void loop() {
  Dabble.processInput(); // アプリからのデータ更新
  
  if (GamePad.isUpPressed()) {
    Serial.println("UP");
    forward();
  } else if (GamePad.isDownPressed()) {
    Serial.println("DOWN");
    backward();
  } else if (GamePad.isLeftPressed()) {
    Serial.println("Left");
    left();
  } else if (GamePad.isRightPressed()) {
    Serial.println("Right");
    right();
  } else {
    Serial.println("Stop");
    Stop();
  }
}

void forward() {
  analogWrite(motor1_en, 255);
  analogWrite(motor2_en, 255);
  digitalWrite(motor1_dir1, HIGH);
  digitalWrite(motor1_dir2, LOW);
  digitalWrite(motor2_dir1, HIGH);
  digitalWrite(motor2_dir2, LOW);
}

void backward() {
  analogWrite(motor1_en, 255);
  analogWrite(motor2_en, 255);
  digitalWrite(motor1_dir1, LOW);
  digitalWrite(motor1_dir2, HIGH);
  digitalWrite(motor2_dir1, LOW);
  digitalWrite(motor2_dir2, HIGH);
}

void left() {
  analogWrite(motor1_en, 255);
  analogWrite(motor2_en, 255);
  digitalWrite(motor1_dir1, LOW);
  digitalWrite(motor1_dir2, HIGH);
  digitalWrite(motor2_dir1, HIGH);
  digitalWrite(motor2_dir2, LOW);
}

void right() {
  analogWrite(motor1_en, 255);
  analogWrite(motor2_en, 255);
  digitalWrite(motor1_dir1, HIGH);
  digitalWrite(motor1_dir2, LOW);
  digitalWrite(motor2_dir1, LOW);
  digitalWrite(motor2_dir2, HIGH);
}

void Stop() {
  analogWrite(motor1_en, 0);
  analogWrite(motor2_en, 0);
  digitalWrite(motor1_dir1, LOW);
  digitalWrite(motor1_dir2, LOW);
  digitalWrite(motor2_dir1, LOW);
  digitalWrite(motor2_dir2, LOW);
}

Dabbleアプリでの操作方法

  1. スマホでGoogle Playから「Dabble」をインストール
  2. アプリ起動 → Bluetoothアイコンタップ → HC-05とペアリング・接続
  3. モジュール一覧から「Gamepad」を選択
  4. 左側の方向ボタンで操作:
    • ↑ 前進
    • ↓ 後進
    • ← 左旋回
    • → 右旋回
  5. ボタン離すと自動停止

トラブルシューティング

拡張アイデア

参考リンク

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. Arduino & Raspberry Pi でインターネット制御ビデオストリーミングロボットを構築
  3. Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
  4. Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
  5. Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
  6. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  7. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  8. Arduinoベースのヌンチャク操作6自由度ロボットアームキット
  9. Arduino Nanoで音声制御ロボットを自作
  10. MobBob:Arduino製ロボットをAndroidスマホでシームレスに制御
  11. PiBot:Arduino駆動の精密ピアノ演奏ロボット