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

脳波でロボットを操る: Arduino包括プロジェクト

必要な部品と材料

Arduino Uno (ロボット用) ×1
Arduino Mega 2560 (メインサーバー用) ×1
Arduino Leonardo (マウス制御用) ×1
Particle Photon (Webサーバー/データロガー用) ×1
Necomimi 脳波キャットイヤー (EEGセンサー内蔵) ×1
SparkFun デュアルHブリッジ モータードライバー L298 (または自作) ×1
リレーモジュール (3ch、または自作) ×1
HC-05 Bluetoothモジュール (マスター用) ×1
HC-06 Bluetoothモジュール (スレーブ/ヘッドセット用) ×1
LED (汎用) ×3
抵抗 330Ω ×3
汎用NPNトランジスタ (2N2222等) ×3
オス/メス ジャンパーワイヤー ×1
ジャンパーワイヤー (汎用) ×1
ハーフサイズ ブレッドボード ×1

必要な工具と機器

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

プロジェクト概要

子供の頃、ジェダイのように念力で物を動かしたいと夢見ていました。スター・ウォーズファンであり、電子工作とプログラミングも好きな私は、これらを融合させたプロジェクトに挑戦しました。

脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト

メインコンセプト: 異なる脳波 (α波・β波など) を用いて、ユーザーが ロボット、PCマウス、家電 (照明等) を思考で操作 できるシステムです。同時に Particle Photon が Web サーバーとして脳波データをオンライン解析・ログ記録し、ストレス・眠気・集中状態の検知や、メンタルバランスの改善支援にも役立ちます。

これは単なるおもちゃではなく、身体に障害を持つ方々が車椅子操作、家電制御、PC操作を思考だけで行えるよう支援するデバイスでもあります。健常者でも「思考だけでゲームやネットサーフィン」という夢が叶います。

プロジェクトの科学的背景

脳波 (EEG) は頭皮上の電極で脳の電気活動を非侵襲的に記録する技術です。本プロジェクトでは NeuroSky ThinkGear チップが出力する2つの eSense 値を使用します:

脳波でロボットを操る: Arduino包括プロジェクト

システム動作原理

4台のマイコンが連携:

モード切替 (目の開閉で検出):

リレーモジュールで家電 (TV、照明、コンセント等) を制御可能。

ワイヤレスヘッドセットの製作

玩具「Necomimi」をハックします。この玩具には NeuroSky TGAM チップが搭載され、脳波をフィルタリングして UART (57600 bps) で出力します。基板からこのチップ基板を取り外し、GND/VCC/TXピンに配線し、HC-06 (スレーブ) Bluetoothモジュールに直結 します。電源は Li-Ion 500mAh + 昇圧 + 分圧で 3.3V を生成。

脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト

使い方: 3つの制御モード

NeuroSkyの eSense 値: Attention (集中度 0-100) と Meditation (リラックス度 0-100)。集中するとAttention上昇、リラックスするとMeditation上昇。感情 (喜び、怒り、恐怖等) でコントロールしやすいです。

ホームオートメーション

脳波でロボットを操る: Arduino包括プロジェクト

Attention > 70 でリレー1 ON/OFF、Meditation > 70 でリレー2 ON/OFF、両方 > 70 でリレー3 ON/OFF。訓練で意識的に制御可能になります。

マウス制御

脳波でロボットを操る: Arduino包括プロジェクト

Attention: 0-25 で左、25-50 で右、50-75 で上、75-100 で下。Meditation > 70 で左クリック。感情でカーソルを自在に動かせます。

ロボット制御

脳波でロボットを操る: Arduino包括プロジェクト

ロボットは「停止」「左旋回」「前進」の3状態。Meditation で左旋回、向きが決まったら Attention で前進。初心者でも扱いやすい設計です。

Necomimi ハック手順

  1. シール下のネジを外し、ケースを開ける
  2. メイン基板から小さなTGAMチップ基板 (4ピンヘッダー接続) をはんだで取り外す
  3. GND、VCC、T (TX) ピンにワイヤーをはんだ付け
  4. Tピンを HC-06 の RX に直結 (57600 bps)
  5. Li-Ion 500mAh + USB充電回路 + 5V昇圧 + 100Ω/200Ω分圧で 3.3V 電源を作り、チップとBTモジュールに供給
  6. HC-06 を 57600 bps に設定 (下記スケッチ使用)

Bluetoothモジュール設定

HC-06 (スレーブ) 設定

Arduino Uno に HC_06_Bluetooth スケッチを書き込み、HC-06 を接続 (回路図参照)。シリアルモニタでATコマンド送信:

AT
AT+VERSION
AT+PIN (パスワード無効化)
AT+BAUD7  // 57600 bps に設定 (Necomimiデフォルト)

これで NeuroSky公式アプリ (Brain Visualizer 等) と直接ペアリング可能になり、脳波トレーニングができます。

HC-05 (マスター) 設定

Arduino Uno に HC_05_Bluetooth スケッチを書き込み、ENピンを3.3Vに接続。HC-06のMACアドレスをコードに設定 (コロンをカンマに変換: 20:15:09:15:17:82 → 2015,09,151782)。自動接続 & 57600 bps 設定:

AT+ROLE=1  // マスターモード
AT+LINK=アドレス
AT+UART=57600,1,0

ロボット製作 (38kHz 赤外線制御)

市販シャーシ、L293D モータードライバー自作基板、TVリモコン受光モジュール (38kHz) を使用。Arduino Uno のピン接続: D4→15, D5→10, D6→7, D7→2, VIN→8, 5V→1,9,16, GND→4,5,12,13。IRremote ライブラリで NEC 信号をデコードし、前進/左旋回/停止を制御。コード Robot_Code を参照。

脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト

メインサーバー (Mega + Leonardo + Photon)

アクリル板ケースに Mega、Leonardo、Photon、リレー基板、IR LED (D3)、Bluetooth (HC-05) を搭載。Mega D16→Photon RX、D18→Leonardo RX でシリアル連携。

脳波でロボットを操る: Arduino包括プロジェクト
脳波でロボットを操る: Arduino包括プロジェクト

ソフトウェア構成

全コードは記事の「Code」セクション、またはGitHubで公開。

ライブラリ

シンプル版: ヘッドセットだけでロボット操作

全機能はいらない、ロボットだけ動かしたいという方向けに、Arduino Mini Pro (または Uno) + IR LED (D3) + TGAMチップの Tピンを Arduino RX に直結した最小構成コード RobotControllerHeadset.ino を用意しました。

#include <IRremote.h>
#include <Brain.h>
IRsend irsend;
Brain brain(Serial);
const int ledPin = 3;
int medValue;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(57600);
}

void loop() {
  if (brain.update()) {
    medValue = brain.readMeditation();
  }
  if (brain.readSignalQuality() == 0) {
    if (medValue > 65) { irsend.sendNEC(0xFF10EF, 32); delay(40); } // 左旋回
    if (brain.readAttention() > 65) { irsend.sendNEC(0xFF18E7, 32); delay(40); } // 前進
  }
}

IoTジェダイへの道 (テスト)

全て組み上がったら、いよいよ実験。念力 (フォース) でロボットを動かし、家電を操り、マウスを動かす。練習すればするほど精度が上がります。

脳波でロボットを操る: Arduino包括プロジェクト

このデバイスは障害を持つ方々の能力を拡張するツールにもなり得ます。May the Force be with you, always!

回路図

詳細は記事内の複数の回路図画像を参照。

製造プロセス

  1. 家庭用の低コストワイヤレスセンサーネットワークを構築
  2. Raspberry Piの可能性を最大限に引き出す必須アクセサリー
  3. Arduino Nanoで水滴を高速撮影 – DIYハイスピードフォトグラフィ
  4. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  5. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  6. Arduino Cloud連携でどこからでも家の温度を監視
  7. Arduino Mega 2560搭載 総合トレーニングキット – センサー、モーター、カスタムPCB完備
  8. サーミスタを使った温度測定: Arduinoステップバイステップガイド
  9. Mark Oneプリントベッドへのグルースティック正しい塗布方法
  10. モーター故障の兆候:見逃せない4つの重要サイン
  11. DC モーター vs AC モーター:構造の違いと用途別の選び方