Contrôler un Robot par la Pensée : Projet Arduino Complet Ondes Cérébrales
Composants et fournitures
| Composant | Quantité | Rôle |
|---|---|---|
| Arduino UNO | 1 | Robot |
| Arduino Mega 2560 | 1 | Serveur principal (cerveau) |
| Arduino Leonardo | 1 | Contrôleur souris PC |
| Particle Photon | 1 | Serveur web / data logger |
| Necomimi Brainwave Cat Ears | 1 | Capteur EEG (puce NeuroSky TGAM) |
| Double pont en H L298 (SparkFun) | 1 | Driver moteurs robot |
| Module relais | 1 | Automatisme domestique |
| Module Bluetooth HC-05 | 1 | Maître (réception casque) |
| Module Bluetooth HC-06 | 1 | Esclave (sur casque) |
| LED générique | 3 | Indicateurs |
| Résistance 330 Ω | 3 | Pour LEDs |
| Transistor NPN usage général | 3 | Pour driver relais |
| Fils Male/Female | 1 | |
| Fils de connexion | 1 | |
| Demi breadboard | 1 |
Outils nécessaires
- Fer à souder
Applications et services en ligne
- Brain Visualizer (pour tests/entraînement)
À propos de ce projet
Enfant, je rêvais de pouvoirs spéciaux : déplacer des objets par la pensée, voler. J'ai essayé… sans succès. Grand fan de Star Wars, mais aussi passionné d'électronique et de programmation : pourquoi ne pas combiner les deux ?




Concept principal : utiliser différentes ondes cérébrales pour :
- Contrôler un robot
- Contrôler le curseur de la souris sur PC
- Allumer/éteindre des lumières (domotique)
- Un microcontrôleur (Particle Photon) crée un serveur web analysant les ondes en temps réel.
C'est une méthode parfaite pour détecter stress, somnolence, maladies. Cela aide aussi à mieux se connaître, contrôler ses émotions, trouver son équilibre mental. Un rêve d'enfant devenu réalité.
Mais au-delà du gadget, cet appareil rend des capacités à des personnes en situation de handicap : le robot fonctionne comme un fauteuil roulant, la domotique permet de contrôler lumière/TV sans bouger, le contrôleur souris ouvre l'informatique et le jeu vidéo par la pensée.
Regardez la vidéo d'introduction : (lien dans l'article original)
La science derrière le projet
Électroencéphalographie (EEG) : méthode non-invasive enregistrant l'activité électrique du cerveau via électrodes sur le cuir chevelu. Mesure les fluctuations de tension dues aux courants ioniques dans les neurones. On exploite deux bandes de fréquence :
- Alpha (7–14 Hz) : apparition yeux fermés, relaxation ; atténuation yeux ouverts ou effort mental.
- Bêta (15–30 Hz) : amplitude faible, fréquences multiples → pensée active, concentration, anxiété.

Comment ça marche ?
4 microcontrôleurs :
- Arduino Mega : cerveau central. Reçoit signaux du casque, analyse, transmet commandes aux autres. Envoie toutes données au Photon (webserver).
- Arduino Leonardo : contrôle souris PC (USB HID).
- Arduino UNO : reçoit signaux IR, contrôle robot.
- Particle Photon : serveur web / data logger cloud.
3 canaux (modes), basculement par fermeture des yeux :
- 1–2 s yeux fermés → Domotic
- 2–4 s yeux fermés → Robot
- 4–6 s yeux fermés → Souris
Relais pour domotique : connecter tout appareil (TV, lampe, prise...).
Le casque sans fil
J'ai hacké un jouet « Necomimi » (oreilles de chat bougeant selon ondes cérébrales). Inutile comme jouet, mais contient la puce NeuroSky TGAM : lecture ondes, filtrage bruit, sortie UART série. Avec quelques modifications, on en fait un casque EEG Bluetooth confortable.



Comment l'utiliser ?
Deux valeurs eSense (NeuroSky) : Méditation (0–100) et Attention (0–100).
- Plus vous êtes concentré → Attention monte.
- Plus vous êtes détendu → Méditation monte.
Le système fonctionne par la pensée pure. Après ~1 semaine d'entraînement, je contrôlais mon niveau d'attention précisément (15, 39, 65, 90). Chacun trouve sa méthode : émotions (amour, colère, peur) donnent de bons contrastes.
Alimentation : brancher micro-USB sur l'Arduino Leonardo (alimente tout le système : 5V, 500mA).
Mode Domotique

Attention > 70 → Relais 1 ON/OFF
Méditation > 70 → Relais 2 ON/OFF
Les deux > 70 → Relais 3 ON/OFF
(Même commande pour allumer/éteindre)
Mode Souris

Attention :
- < 25 → Gauche
- 25–50 → Droite
- 50–75 → Haut
- 75–100 → Bas
Clic : Méditation > 70.
Mode Robot

3 états : Stop, Tourner gauche, Avancer.
Pourquoi seulement 2 mouvements ? Suffisants pour aller n'importe où.
Méditation → Rotation sur place.
Quand direction voulue atteinte → Stop → Attention → Avancer.
Méthode plus intuitive, même pour débutants.
Hack du jouet Necomimi
- Retirer l'autocollant arrière → vis → ouvrir le boîtier.
- À l'intérieur : petit circuit. Celui du bas = puce NeuroSky TGAM, connectée par 4 pins au circuit principal. Désouder ce petit circuit délicatement.
- Souder 3 fils : GND, VCC, T (pin TX, 57600 bauds).
- Connecter T directement au RX du module HC-06 (esclave).
- Alimentation : batterie Li-Ion 500 mAh + circuit charge USB + step-up 5V + diviseur 100Ω/200Ω → 3,3V stable pour puce + BT.
- Configurer les modules Bluetooth (voir ci-dessous).






Schéma électronique du casque







Point crucial : connecter le pin « T » de la puce TGAM au pin « RX » du module Bluetooth HC-06.
Configuration des modules Bluetooth
HC-06 (esclave sur casque)
Téléverser sketch « HC_06_Bluetooth » sur un UNO, câbler le HC-06 selon schéma. Moniteur série (9600 bauds) :
void setup() {
Serial.begin(9600); delay(1000);
Serial.print("AT"); delay(1000);
Serial.print("AT+VERSION"); delay(1000);
Serial.print("AT+PIN"); delay(1000); // supprimer mot de passe
Serial.print("AT+BAUD7"); delay(1000); // 57600 bauds = Necomimi
Serial.begin(57600);
}
void loop() {}
Le HC-06 est maintenant à 57600 bauds. Compatible avec toutes apps NeuroSky (Brain Visualizer, EEG Analyzer, Blink Camera...).
HC-05 (maître sur serveur)
Sketch « HC_05_Bluetooth » sur UNO. Pin EN du HC-05 → 3V3 de l'UNO. Récupérer l'adresse MAC du HC-06 (via smartphone Android), remplacer « : » par « , » dans le code (ex: 20:15:09:15:17:82 → 20,15,09,15,17,82).
void setup() {
Serial.begin(9600); delay(1000);
Serial.print("AT"); delay(1000);
Serial.print("AT+VERSION"); delay(1000);
Serial.println("AT+ROLE=1"); // mode maître
delay(1000);
Serial.println("AT+LINK=20,15,09,15,17,82"); // adresse HC-06
delay(1000);
Serial.print("AT+UART=57600,1,0"); // 57600 bauds
Serial.begin(57600);
}
void loop() {}
Les deux modules doivent se connecter automatiquement.
Le robot à commande IR
Technologie IR 38 kHz (télécommande TV). Châssis acheté, récepteur IR récupéré sur vieille TV.
Driver moteurs (L293D)
Composants : 2 borniers, L293D, 3 pins header, 9 pins header 90°, résistance 1k, LED rouge, fils, PCB.




Assemblage châssis


Connexion à l'Arduino UNO (robot)
Pin Arduino → Driver L293D 4 → 15 5 → 10 6 → 7 7 → 2 VIN → 8 (alimentation moteurs) 5V → 1, 9, 16 (enable) GND → 4, 5, 12, 13




Code robot (bibliothèque IRremote)
Décode signaux IR 38 kHz, pilote moteurs. Codes IR :
- 0xFF18E7 → Avant
- 0xFF4AB5 → Arrière
- 0xFF10EF → Gauche
- 0xFF5AA5 → Droite
- 0xFF38C7 → Stop
Sketch : « Robot_Code » (voir section Code).
Serveur principal (Mega + Leonardo + Photon)

Boîtier
Deux plaques plexi 18×15 cm, poncées, assemblées par vis.








Module relais 3 canaux (DIY)
Composants : 3× 2N2222, 3× diodes germanium, 3× 330Ω, 3× 1kΩ, 3× relais 5V, fils, pins header, PCB.




Pin « Signal » → transistor → relais. Pins Arduino Mega : D37, D38, D39.
Installation dans le boîtier
Ruban double-face blanc sur plexi : propre et solide.



Câblage du serveur
- LED IR → pin D3 (Mega)
- Relais → D37, D38, D39
- Mega D16 → RX Photon
- Mega D18 → RX Leonardo
- Alimentation partagée, GND commun



Liaison avec le robot
LED IR sur D3 + bibliothèque IRremote → envoi codes vers robot. Tester avec caméra : lumière IR apparaît violette.

Code serveur (Arduino Mega)
Sketch « Arduino_Mega_Server » (section Code). Utilise bibliothèques : VirtualWire, SoftwareSerial, Brain, LiquidCrystal, IRremote.

Variables nommées d'après les initiales de ma famille (I, M, E, T, S).
Avant téléversement : déconnecter tout des pins RX/TX (Bluetooth, Leonardo, Photon).
Contrôleur souris (Arduino Leonardo)

Sketch « Mouse Controller Code » : reçoit commandes série (u/d/l/r/c) → Mouse.move() / Mouse.click().
Serveur web (Particle Photon)
Data logger cloud : publie Attention, Méditation, Fonction active sur dashboard Particle. Utile pour détecter stress (attention instable) ou besoin de sommeil (méditation > 80).



Code Photon : voir section Code. Téléversement via IDE web Particle Build.
Version simplifiée : Robot seulement
Pour qui veut uniquement un robot contrôlé par la pensée : Arduino Mini Pro (ou UNO) + LED IR sur D3 + casque hacké (pin T → RX Arduino). Sketch « 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); } // gauche
if (brain.readAttention() > 65) { irsend.sendNEC(0xFF18E7, 32); delay(40); } // avant
}
}
Devenir un Jedi de l'IoT (Tests)

Essayez ! Utilisez la Force de vos neurones. Déplacez le robot, contrôlez votre maison, tout par la pensée. Vous êtes maintenant un vrai Jedi de l'IoT !
L'appareil a de nombreuses fonctions et est très amusant. Mais ce n'est pas qu'un jouet : en alliant biologie et électronique, nous créons un dispositif qui peut aider les personnes en situation de handicap à retrouver des capacités naturelles.
Le robot se contrôle aisément, les relais aussi. Il faut juste apprendre à maîtriser son niveau d'attention pour la souris. Sur la photo, j'essaie de quitter une application par la pensée. La pratique améliore l'expérience.
Remerciements
J'espère que ce projet vous a plu. Vos commentaires sont les bienvenus. Une vidéo arrive bientôt sur ma chaîne YouTube.
Que la Force soit avec vous, toujours !
Codes sources
- Particle Photon Code : data logger cloud (IDE web Particle)
- Robot Controller Code : pour Arduino UNO (robot IR)
- HC_05_Bluetooth.ino : configuration HC-05 maître
- Mouse Controller Code : pour Arduino Leonardo (souris HID)
- Arduino_Mega_Server : code principal (analyse ondes, commande tout)
- RobotControllerHeadset.ino : version minimaliste (robot seulement)
Bibliothèques requises
- Brain Library : lecture Attention/Méditation
- SoftwareSerial : ports série multiples
- IRremote : envoi/décodage IR
Schémas
- Serveur principal :

- Robot IR DIY :

- Module relais 3 canaux (pins D37, D38, D39) :

- Driver moteurs L293D :

- Électronique serveur principal :

- Robot Arduino UNO :

- Robot IR :

- Serveur principal (bis) :

- Électronique casque :

Processus de fabrication
- Construire un réseau de capteurs sans fil abordable pour votre maison
- Les meilleurs accessoires pour exploiter pleinement le potentiel de votre Raspberry Pi
- Comment Appliquer Correctement le Bâton de Colle sur le Plateau de Votre Mark One
- Photographie Haute Vitesse : Capturez les Gouttes d'Eau avec Arduino Nano
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Créez un robot suiveur de ligne autonome avec Arduino UNO
- Utiliser une thermistance facilement : Guide étape par étape Arduino
- 4 signes critiques que votre moteur est sur le point de tomber en panne
- Moteurs DC vs AC : différences clés et choisir le bon pour votre application