脳波でロボットを操る: 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 |
必要な工具と機器
- はんだごて (汎用)
アプリとオンラインサービス
- Brain Visualizer (NeuroSky公式アプリ) - ブレイン波可視化・トレーニング用
プロジェクト概要
子供の頃、ジェダイのように念力で物を動かしたいと夢見ていました。スター・ウォーズファンであり、電子工作とプログラミングも好きな私は、これらを融合させたプロジェクトに挑戦しました。




メインコンセプト: 異なる脳波 (α波・β波など) を用いて、ユーザーが ロボット、PCマウス、家電 (照明等) を思考で操作 できるシステムです。同時に Particle Photon が Web サーバーとして脳波データをオンライン解析・ログ記録し、ストレス・眠気・集中状態の検知や、メンタルバランスの改善支援にも役立ちます。
これは単なるおもちゃではなく、身体に障害を持つ方々が車椅子操作、家電制御、PC操作を思考だけで行えるよう支援するデバイスでもあります。健常者でも「思考だけでゲームやネットサーフィン」という夢が叶います。
プロジェクトの科学的背景
脳波 (EEG) は頭皮上の電極で脳の電気活動を非侵襲的に記録する技術です。本プロジェクトでは NeuroSky ThinkGear チップが出力する2つの eSense 値を使用します:
- α波 (Alpha, 7-14 Hz): 目を閉じてリラックス時に出現、目を開けたり精神集中で減衰
- β波 (Beta, 15-30 Hz): 活発な思考、不安、集中時に出現する低振幅・多周波成分

システム動作原理
4台のマイコンが連携:
- Arduino Mega: 中枢。ヘッドセットからBluetoothで脳波データ受信、解析、他デバイスへ指令送信、Photonへデータ転送
- Arduino Leonardo: PCのマウスカーソル制御 (HID機能)
- Arduino Uno: 赤外線受信でロボット制御
- Particle Photon: Webサーバー/ダッシュボードで脳波データをクラウド可視化
モード切替 (目の開閉で検出):
- 目を閉じて 1-2秒: ホームオートメーションモード
- 目を閉じて 2-4秒: ロボット制御モード
- 目を閉じて 4-6秒: マウス制御モード
リレーモジュールで家電 (TV、照明、コンセント等) を制御可能。
ワイヤレスヘッドセットの製作
玩具「Necomimi」をハックします。この玩具には NeuroSky TGAM チップが搭載され、脳波をフィルタリングして UART (57600 bps) で出力します。基板からこのチップ基板を取り外し、GND/VCC/TXピンに配線し、HC-06 (スレーブ) Bluetoothモジュールに直結 します。電源は Li-Ion 500mAh + 昇圧 + 分圧で 3.3V を生成。



使い方: 3つの制御モード
NeuroSkyの eSense 値: Attention (集中度 0-100) と Meditation (リラックス度 0-100)。集中するとAttention上昇、リラックスするとMeditation上昇。感情 (喜び、怒り、恐怖等) でコントロールしやすいです。
ホームオートメーション

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

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

ロボットは「停止」「左旋回」「前進」の3状態。Meditation で左旋回、向きが決まったら Attention で前進。初心者でも扱いやすい設計です。
Necomimi ハック手順
- シール下のネジを外し、ケースを開ける
- メイン基板から小さなTGAMチップ基板 (4ピンヘッダー接続) をはんだで取り外す
- GND、VCC、T (TX) ピンにワイヤーをはんだ付け
- Tピンを HC-06 の RX に直結 (57600 bps)
- Li-Ion 500mAh + USB充電回路 + 5V昇圧 + 100Ω/200Ω分圧で 3.3V 電源を作り、チップとBTモジュールに供給
- 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 を参照。


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


ソフトウェア構成
- Arduino_Mega_Server: Brainライブラリで脳波解析、モード切替、IR送信、Leonardo/Photonへシリアル指令
- Mouse Controller (Leonardo): シリアル受信で Mouse.move()/click() 実行
- Particle Photon:
Particle.publish()で Attention/Meditation/モードをクラウドダッシュボードに送信 - Robot_Code (Uno): IR受信デコードでモーター制御
- RobotControllerHeadset: ヘッドセット単体でロボット操作する簡易版 (Arduino Mini Pro + IR LED + TGAMチップ直結)
全コードは記事の「Code」セクション、またはGitHubで公開。
ライブラリ
- Brain Library - Attention/Meditation 解析
- SoftwareSerial
- IRremote Library - IR送受信
シンプル版: ヘッドセットだけでロボット操作
全機能はいらない、ロボットだけ動かしたいという方向けに、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ジェダイへの道 (テスト)
全て組み上がったら、いよいよ実験。念力 (フォース) でロボットを動かし、家電を操り、マウスを動かす。練習すればするほど精度が上がります。

このデバイスは障害を持つ方々の能力を拡張するツールにもなり得ます。May the Force be with you, always!
回路図
- メインサーバー回路図
- DIY IRロボット回路図
- 3chリレーモジュール回路図 (D37, D38, D39使用)
- モータードライバー回路図
- ヘッドセット電子回路図
詳細は記事内の複数の回路図画像を参照。
製造プロセス
- 家庭用の低コストワイヤレスセンサーネットワークを構築
- Raspberry Piの可能性を最大限に引き出す必須アクセサリー
- Arduino Nanoで水滴を高速撮影 – DIYハイスピードフォトグラフィ
- ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
- Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
- Arduino Cloud連携でどこからでも家の温度を監視
- Arduino Mega 2560搭載 総合トレーニングキット – センサー、モーター、カスタムPCB完備
- サーミスタを使った温度測定: Arduinoステップバイステップガイド
- Mark Oneプリントベッドへのグルースティック正しい塗布方法
- モーター故障の兆候:見逃せない4つの重要サイン
- DC モーター vs AC モーター:構造の違いと用途別の選び方