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

Arduino Nanoで音声制御ロボットを自作

必要な部品と用品

部品 数量 備考
Arduino Nano R3 1
L298Nモータードライバー 1
HC-05 Bluetoothモジュール 1

必要な工具と機械

使用アプリとオンラインサービス

このプロジェクトについて

ロボットはかっこいい。音声コマンドで動き回るロボットならもっとかっこいい。Arduinoでそんな音声制御ロボットを作るのは、もっともっとかっこいい。なぜならArduinoは安価でカスタマイズしやすいからです。

作り始めましょう。動画チュートリアルもご覧いただけます。

ステップ1:必要なパーツ

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

このロボットはPCBベースです。様々なロボットで使えるよう設計したPCBを使用しています。他に使用したコンポーネントは以下の通り:

電子部品:

ボディ製作用:

ソフトウェア:

ステップ2:原理 - どう動くか

実際に手を動かす前に、何をするか明確に理解しておくのは常に良いことです。私がミスをするタイプだからかもしれませんが。

Arduinoはマイクロコントローラー(小型コンピュータ)です。現時点では音声認識を行うほどのパワーや能力はありません。しかし幸運なことに、私のPCBボードにはBluetoothモジュール接続用のポートがあります。つまり、Arduinoを他のデバイスと無線接続できます。これを活用します。AndroidアプリでGoogle APIを使って「音声→テキスト」変換を行い(インターネット接続必須)、変換されたテキストをBluetooth経由でArduinoに送信します。

つまり、「前進」と言えばロボットは'F'を受信して前進します。これがコンセプトです。早速作ってみましょう。

ステップ3:ボディを作る

ロボットのシャーシ/ボディは13cm×13.5cmのPVCシートで作りました。カッターナイフで簡単に切れ、接着も良好です。

動画の通り、2つのモーターとホイールをボードエリア内にマウントするためのピースを切り出し、接着しました。

皆さんが作る時は、これと全く同じ見た目にする必要はありません。あなたのボット、あなたのチョイスです。

ステップ4:回路を組むかPCBを使うか

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

ここでも完全にあなたの選択です。しかし、このような回路を組むには大量の配線が必要で、ブレッドボードで作ると一箇所の配線ミスでプロジェクト全体が台無しになります。だから私はプロジェクトでPCBを使うのが好きです。

このPCBはEasyEDAで設計し、PCBWay.comで発注しました。PCBWayは安価で高品質。10枚の多層PCBがたった5ドルで手に入ります。学生プロジェクトのスポンサーもしていて、素晴らしいです。

クイックオーダーでPCBをアップロードするだけで、システムが自動的に全パラメータを検出し、色を選ぶだけでした。黒が好きなので黒にしました。見てください、この輝きとクールさ!エンジニアリングチームがPCBを検査するまでお金は取られません。安心です。

PCB基板はこちらから入手できます。

ただし、PCBを発注・使用できない場合は、ブレッドボードやユニバーサル基板でも可能です。Fritzing回路図をアップロードしてあります。下記からダウンロードするか、こちらから入手してください。

ステップ5:電子部品を接続

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

接続はシンプルです。回路図の通りに全て接続します。モーターからモータードライバーへの接続から始めましょう:

モーター → モータードライバー

モーター制御用

Bluetoothモジュール

バッテリー

モーター用に7.4Vバッテリーを使用。モータードライバーの入力とArduinoのVINおよびGNDピンに接続。共通グラウンド接続が必要です。

バッテリーを接続したら全て点灯。つまり、ミスなし!

ステップ6:Arduinoプログラミング

シンプルなプログラムです。文字を受信したら、それに応じて左・右などに動きます。コマンド一覧:

Bluetoothモジュールはシリアルポートに接続されているため、Arduinoは9600bpsでシリアル通信します。

setupセクションでピンとボーレートを定義:

void setup() {
  pinMode(lm1, OUTPUT);
  pinMode(lm2, OUTPUT);
  pinMode(rm1, OUTPUT);
  pinMode(rm2, OUTPUT);
  Serial.begin(9600);
}

メインループでシリアル受信をチェック:


while(Serial.available() == 0);
val = Serial.read();
Serial.print(val);

メインコードはこちらからダウンロード、または以下に全文掲載:


/**** Arduino Speech/voice Controlled robot ***
 * by Ashraf Minhaj
 * mail: ashraf_minhaj@yahoo.com
 * tutorial: ashrafminhajfb.blogspot.com
 */
int lm1 = 4;
int lm2 = 5;
int rm1 = 2;
int rm2 = 3;
char val;

void setup() {
  pinMode(lm1, OUTPUT);
  pinMode(lm2, OUTPUT);
  pinMode(rm1, OUTPUT);
  pinMode(rm2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while(Serial.available() == 0);
  val = Serial.read();
  
  if (val == 'F') {  // 前進
    digitalWrite(lm1, HIGH);
    digitalWrite(rm1, HIGH);
    digitalWrite(lm2, LOW);
    digitalWrite(rm2, LOW);
  }
  else if(val == 'B') {  // 後退
    digitalWrite(lm2, HIGH);
    digitalWrite(rm2, HIGH);
    digitalWrite(lm1, LOW);
    digitalWrite(rm1, LOW);
  }
  else if(val == 'R') {  // 右
    digitalWrite(lm1, HIGH);
    digitalWrite(rm2, HIGH);
    digitalWrite(lm2, LOW);
    digitalWrite(rm1, LOW);
  }
  else if(val == 'L') {  // 左
    digitalWrite(lm2, HIGH);
    digitalWrite(rm1, HIGH);
    digitalWrite(lm1, LOW);
    digitalWrite(rm2, LOW);
  }
  else {  // 停止
    digitalWrite(lm1, LOW);
    digitalWrite(rm1, LOW);
    digitalWrite(lm2, LOW);
    digitalWrite(rm2, LOW);
  }
  delay(10);
}

コードをアップロードしたら、アプリを作ります。

ステップ7:音声→テキスト変換アプリ

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

Arduino Nanoで音声制御ロボットを自作

MIT App Inventorでアプリを作成しました。要件に合わせて編集・カスタマイズ可能です。aiaファイルはこちらから入手できます。

このアプリはBluetoothでロボットを制御します。HC-05 Bluetoothモジュールをスマホとペアリングする必要があります。デフォルトパスワードは1234か0000です。

アプリはGoogle音声認識APIを使って発話をテキストに変換。小文字に変換して処理しやすくし、if-else文でマッチングします。ユーザーが「forward」と言えばArduinoに'F'を送信し、前進します。それだけです。

APKファイルとしてビルド・保存、または私のものをインストールしてください。

ステップ8:ボットに電源を入れ、アプリを実行、出発!

バッテリーを接続し、Androidアプリであなたの新しいロボットを動かしましょう!

お読みいただきありがとうございます。私の最新プロジェクトもチェックしてください。

コード

コードスニペット #1

void setup() {
  pinMode(lm1, OUTPUT);
  pinMode(lm2, OUTPUT);
  pinMode(rm1, OUTPUT);
  pinMode(rm2, OUTPUT);
  Serial.begin(9600);
}

コードスニペット #3 (完全版)

/**** Arduino Speech/voice Controlled robot ***
 * by Ashraf Minhaj
 * mail me at ashraf_minhaj@yahoo.com
 * tutorial- ashrafminhajfb.blogspot.com
 */
int lm1 = 4;
int lm2 = 5;
int rm1 = 2;
int rm2 = 3;
char val;

void setup() {
  pinMode(lm1, OUTPUT);
  pinMode(lm2, OUTPUT);
  pinMode(rm1, OUTPUT);
  pinMode(rm2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  while(Serial.available() == 0);
  val = Serial.read();
  
  if (val == 'F') {
    digitalWrite(lm1, HIGH);
    digitalWrite(rm1, HIGH);
    digitalWrite(lm2, LOW);
    digitalWrite(rm2, LOW);
  }
  else if(val == 'B') {
    digitalWrite(lm2, HIGH);
    digitalWrite(rm2, HIGH);
    digitalWrite(lm1, LOW);
    digitalWrite(rm1, LOW);
  }
  else if(val == 'R') {
    digitalWrite(lm1, HIGH);
    digitalWrite(rm2, HIGH);
    digitalWrite(lm2, LOW);
    digitalWrite(rm1, LOW);
  }
  else if(val == 'L') {
    digitalWrite(lm2, HIGH);
    digitalWrite(rm1, HIGH);
    digitalWrite(lm1, LOW);
    digitalWrite(rm2, LOW);
  }
  else {
    digitalWrite(lm1, LOW);
    digitalWrite(rm1, LOW);
    digitalWrite(lm2, LOW);
    digitalWrite(rm2, LOW);
  }
  delay(10);
}

GitHub

https://github.com/ashraf-minhaj/speech-controlled-robot

回路図

Arduino Nanoで音声制御ロボットを自作

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. Arduino & Raspberry Pi でインターネット制御ビデオストリーミングロボットを構築
  3. Windows 10 IoT Coreで音声制御ロボットを構築 - Raspberry Pi 2編
  4. Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
  5. 古いラジコンカーをXboxコントローラーで操作可能に - ArduinoとUSBホストシールドで実現
  6. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  7. Arduinoベースのヌンチャク操作6自由度ロボットアームキット
  8. Ethernet制御ロボットアーム - WIZ750SRとAndroidアプリでリモート操作
  9. MobBob:Arduino製ロボットをAndroidスマホでシームレスに制御
  10. PiBot:Arduino駆動の精密ピアノ演奏ロボット
  11. 自律型ホームアシスタントロボット「O'nine」の構築 – ROS、Alexa、ロボットアーム完全ガイド