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

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

コンポーネントと用品

Arduino UNO × 1
SparkFun 3軸加速度センサー ブレークアウト - ADXL335 × 1
RFモジュール 434MHz × 1
HT12D(デコーダーIC) × 1
HT12E(エンコーダーIC) × 1
SparkFun デュアルHブリッジ モータードライバー L298 × 1
汎用プロトタイピングPCB × 1
リニアレギュレーター 7805 × 2
DCモーター(汎用) × 1

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

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

更新:このプロジェクトの更新版はこちらで見つかります

イントロ

手で全てをコントロールできたら最高ですよね!椅子に座ったまま、ボスのように色々なものを操作できる。そんなクールなDIYハンドジェスチャー認識ロボットを作りました。手のジェスチャーでコマンドを出せばそれに従います。一見複雑そうですが、実はとてもシンプルです。このロボットは、以前作ったRFモジュールを使ったRCカーの改良版です。

ここでもロボットは送信機(トランスミッター)と受信機(レシーバー)の2部構成です。受信機側の回路は前回と同じで、送信機側に少し変更があります。ここでは送信機側をプログラムする必要があるため、Arduinoをプログラミングプラットフォームとして使います。ジェスチャー認識には加速度センサーを使います。さあ、作っていきましょう!

ロボットの動作デモ

これは何?どう動くの?

加速度センサー(ADXL335)とは?

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

簡単に言うと、加速度センサーは3軸(X、Y、Z)の加速度を測定するデバイスです。ここで使っているADXL335は3軸対応です。

ほぼすべてのスマートフォンに加速度センサーが搭載されています(スマホから取り出すわけではありません)。スマホのモーションゲーム(例:テンプルラン)で、スマホを左右に傾けるとキャラクターが左右に動くあれです。あれも加速度センサーで実現しています。

スマホにはジャイロスコープという別のセンサーもありますが、今回は不要です。

どうやってジェスチャーを認識する?

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

ロボットの脳はArduino Uno(ATmega328)で、あらかじめプログラムされたコードが走っています。手のジェスチャー/動きは、加速度測定デバイスである加速度センサー(ADXL335)で認識します。

加速度センサーが手のジェスチャー時にX、Y、Z座標を読み取り、Arduinoに送ります(ここではZ軸は不要で、XとYの2座標のみ使用、Zは無視)。Arduinoは座標値をチェックし、4ビットコードをエンコーダーIC(HT12E)に送信。エンコーダーがデータをトランスミッターに渡し、無線で送信。レシーバーで受信した4ビットコードをデコーダーIC(HT12D)が受け取り、モータードライバーIC(L298)に渡します。モータードライバーが2つのモーターを必要な方向に回転させます。

電源回路を作る

まず電源回路から始めます。送信機用と受信機用の2つの電源回路が必要です。受信機側は12V電源が必要(12Vモーターを使用のため)、送信機側は9V電池で動作可能です。

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

右側が受信機側の電源回路図です。この図に従って配線してください。1kΩ抵抗を介してLEDを追加すれば、電源状態を示せます。

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

注意: 7805にはヒートシンクを使用してください。7V(12V-5V)を降圧するため大量の熱が発生し、レギュレーターが焼損する恐れがあります。

送信機(リモコン)を作る

送信機部は、手のジェスチャーを検出する加速度センサーと、データをArduinoに送る部分で構成されます。Arduinoは加速度センサーから受け取ったデータに基づいてエンコーダーICにデータを送り、トランスミッターから送信されます。以下の回路図通りに配線してください:

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

重要: 一部の加速度センサーは3.3V電源で動作し、5Vでは破損する可能性があります。正しい電圧についてはサプライヤーのドキュメントで確認してください。

これは送信機のイメージ図です:

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

Arduinoにコードをアップロード

更新版のコードはこちらです。(注:元記事ではコードが省略されています。GitHub等で完全版を参照してください)

受信機を作る

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

受信機回路は、2つのIC(HT12Dデコーダー、L293Dモータードライバー)、RFレシーバーモジュールで構成されます。

上記の受信機回路図通りに配線してください。受信機基板には2つのLEDがあり、1つは受信機への給電時、もう1つは送信機への給電時に点灯します。HT12D付近のLEDが点灯すれば有効な伝送(VT)が行われています。点灯しない場合は配線かRF-TX-RXモジュールに問題があります。

受信機側の詳細については、この記事を参照してください。

どんなジェスチャーを認識する?

このロボットは5種類のジェスチャーを認識します:前進、後退、左、右、停止。下の写真を見ると分かりやすいです。

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作
ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作
ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作
ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作
ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

ジェスチャー制御ロボットの操作を楽しんでください!

小型化して永続化する

Arduino Unoを手に装着するには大きすぎます。また、別のプロジェクトでArduinoを使いたいときに外すと、古い作業が失われてしまいます。それが嫌なので、永続化する方法を考えました。この記事で、Arduinoプロジェクトを小型化する方法を解説しています。

ジェスチャー制御ロボット:Arduino UNOでハンズフリー操作

スタンドアロン版のPCBレイアウトはこちらからダウンロード(ミラー版):

Atmega8 MCUにコードを移植したビデオです。MCUの出力をLEDで示しています。

新しいプロジェクトは私のブログで公開しています。

質問があればこちらにコメントをどうぞ。ブログの方を定期的にチェックしているので、そちらの方が返信が早いです。

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. Raspberry Pi でジェスチャー制御ロボットを構築 – 加速度センサーと RF 通信でハンドフリー操作
  3. Windows 10 IoT Coreで音声制御ロボットを構築 - Raspberry Pi 2編
  4. Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
  5. ROObockey:精密照準アシスト付きリモコンストリートホッケーロボット
  6. ジェスチャー制御 RGB テーブルランプ – インタラクティブなハンズフリー照明
  7. DIY Arduino USBゲームコントローラー - 高性能ゲームパッドを自作
  8. スマートArduino水筒:リアルタイム監視とアラート機能付き
  9. Arduino Nanoで音声制御ロボットを自作
  10. Ethernet制御ロボットアーム - WIZ750SRとAndroidアプリでリモート操作
  11. 手誘導協働ロボット:安全規格解説