Arduino UnoとBluetoothでラジコンカーを遠隔操作:ステップバイステップガイド
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | メインマイコンボード |
| SparkFun Dual H-Bridge モータードライバー L298 | 1 | DCモーター2台を制御可能 |
必要な工具と機器
- 3Dプリンター(筐体製作用)
使用するアプリとオンラインサービス
- MIT App Inventor 2(Androidアプリ作成)
- Arduino IDE(ファームウェア開発)
プロジェクト概要
Bluetoothを利用してラジコンカーをスマートフォンから遠隔操作するプロジェクトです。Arduino UnoとL298モータードライバーを組み合わせ、左右のモーターを独立制御することで、前進・後進・左右旋回・速度調整を実現しています。操作用アプリはMIT App Inventor 2で作成し、Bluetoothシリアル通信でコマンドを送信します。
回路図と配線
モータードライバーの入力ピン(IN1〜IN4)をArduinoのデジタルピン2〜7に、ENA/ENBをPWM対応のピン9, 10に接続します。Bluetoothモジュール(HC-05等)のTX/RXをArduinoのRX/TX(ピン0/1)にクロス接続し、電源は共通の5V/GNDから供給します。
Arduinoスケッチ
受信した文字コマンド(A〜U)に応じてモーターの回転方向とPWM値を切り替えます。主なコマンドは以下の通りです。
- A: 前進左旋回(低速)
- B, M, N, P, L: 後進(速度5段階)
- C: 前進右旋回(低速)
- D, H, I, K, L: 前進(速度5段階)
- U: 停止
- E: 低速前進
- F: 低速後進
char buffer[67];
byte Pino02 = 2, Pino03 = 3, Pino04 = 4, Pino05 = 5;
byte Pino06 = 6, Pino07 = 7, Pino12 = 12, Pino13 = 13;
void setup() {
Serial.begin(9600);
Serial.flush();
for (int p = 2; p <= 7; p++) pinMode(p, OUTPUT);
pinMode(9, OUTPUT); pinMode(10, OUTPUT);
pinMode(12, OUTPUT); pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int index = 0; delay(100);
int numChar = Serial.available();
if (numChar > 65) numChar = 65;
while (numChar--) buffer[index++] = Serial.read();
splitString(buffer);
}
}
void splitString(char* data) {
Serial.print("受信: "); Serial.println(data);
char* parameter = strtok(data, " ,");
while (parameter != NULL) {
setMotor(parameter);
parameter = strtok(NULL, " ,");
}
for (int x = 0; x < 66; x++) buffer[x] = '\0';
Serial.flush();
}
void setMotor(char* cmd) {
// コマンドに応じたモーター制御ロジック(省略)
// analogWrite(9, speed); analogWrite(10, speed);
// digitalWrite(PinoXX, HIGH/LOW) で方向制御
}
アプリ側の実装(MIT App Inventor)
BluetoothClientコンポーネントを使用し、ボタン押下時に対応する文字('A'〜'U')を送信するシンプルなUIを作成します。ペアリング済みデバイス一覧からHC-05を選択し、接続確立後に操作可能になります。
3Dプリント筐体
モーター、Arduino、バッテリーを収納する専用ケースを3Dプリントで製作。STLファイルはプロジェクトページからダウンロード可能です。
製造プロセス
- QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
- Samsung SAMI、Arduino UNO、Raspberry Piで高速・信頼性の高い火災検知システムを構築
- Arduino で作るイスラム教礼拝時刻付きリアルタイムクロック
- スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- Arduino Nanoとジョイスティックで2軸ステッピングモーターを制御:Visuinoで簡単プログラミング
- Arduino Unoで8×8 LEDマトリックスを制御:ステップバイステップガイド
- Arduino Unoと1Sheeldで作る4x4x4 LEDキューブ – インタラクティブLEDプロジェクト
- Bluetooth対応8×8 LEDマトリックス スクロール文字表示 Arduinoプロジェクト
- Arduino Nanoで作るBluetooth対応スマートコーヒーメーカー 〜温度グラフ表示と自動開始機能付き〜
- Arduino Unoで25kHz 4ピンPWMファンを制御 – 製作・コード・テスト