Joy Robot : Robot Humanoïde Intelligent Arduino/ESP8266 pour Hôpitaux Pédiatriques
Composants et Fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO | 1 |
| Module WiFi ESP8266 ESP-01 | 1 |
| Servomoteur SG90 (micro) | 6 |
| Moteur DC avec réducteur et roues en caoutchouc | 2 |
| Pilote Double Pont en H L298N | 1 |
| Contrôleur 16 Canaux PWM/Servo I2C PCA9685 (Adafruit) | 1 |
| Afficheur LED 8x8 MAX7219 | 4 |
| Double Pilote Moteur L298 (SparkFun) | 1 |
| Accumulateur 18650 | 2 |
| Support 18650 | 2 |
| Shield Proto Arduino | 1 |
| Diode 1N4001 | 1 |
| Résistance 10 kΩ | 3 |
Outils et Machines Nécessaires
- Imprimante 3D (corps complet imprimé en PLA)
Applications et Services en Ligne
- Autodesk Fusion 360 (conception CAO)
- Arduino IDE (programmation)
- Android SDK (application smartphone)
À Propos du Projet
Récompenses : 1er prix Instructables Wheel Contest, 2e prix Arduino Contest, finaliste Design for Kids Challenge.
Tutoriel complet sur Instructables
Objectif et Philosophie
Né en 2016 dans la région de Baixada Santista (Brésil), le projet « Robô da Alegria » (Robot de la Joie) vise à développer une technologie open-source pour apporter du réconfort et du divertissement aux enfants hospitalisés, en collaboration avec des ONG. C'est un projet altruiste, sans but lucratif, qui fédère makers, ingénieurs et soignants.
Architecture Générale
- Contrôleur principal : Arduino Uno (accessible, facile).
- Communication WiFi : Module ESP8266-01 (interface navigateur web).
- Mouvements : 6 servos SG90 (tête 2 axes, bras 2x2 axes) via PCA9685 I2C ; 2 moteurs DC (déplacements) via L298N.
- Visage expressif : 4 matrices LED 8x8 MAX7219 en cascade (yeux + bouche).
- Téléprésence : Smartphone (Motorola Moto E 4,3") logé dans le torse pour flux vidéo/audio bidirectionnel et miroir d'écran.
- Alimentation : 2 accus 18650 (7,4V nominal) + diodes de chute pour servir 6V aux servos/moteurs DC.
- Structure : 36 pièces imprimées 3D (PLA blanc/noir, 10% remplissage, <3h/pièce), assemblées par vissage/collage.
Historique et Itérations
De la tête unique aux yeux mécaniques (2015) à la forme humanoïde actuelle, le robot a connu de multiples itérations : matériaux (acrylique, MDF découpé laser → impression 3D), électronique (Bluetooth → WiFi/navigateur), mécanique (2 servos → 6 servos + 2 DC). La conception modulaire (pièces <3h d'impression) permet la réplication en fablab/makerspace.
Étapes de Construction Détaillées
Étape 1 : Impression 3D (Fusion 360)
36 pièces distinctes : tête (haut/bas/côtés x2), visage (plaques avant/arrière), cou (axes 1,2,3, centre), bras (bras, épaule, coupelle, capuchon, axe x2), buste (droite/gauche), torse (droite/gauche/avant), roues (droite/gauche, avant), base, support téléphone, dos (droite/gauche), boutons, loquets.
Fichiers STL : Thingiverse | Pinshape | YouMagine | Cults3D
Problèmes connus : interférences câblage/épaule, frottements tête/buste, frottements roues/structure, trous de vis trop justes (à re-forer).
Étape 2 : Assemblage du Visage (Matrices LED)
4 matrices MAX7219 montées sur plaque arrière (noir PLA). Connecteurs dessoudés/ressoudés côté opposé pour gain de place. Chaînage : DIN 1ère matrice → Arduino D9 ; DOUT → DIN suivante ; CLK/CS/VCC/GND en parallèle. Plaque avant fixée par 4 vis M2, câbles gainés.
Étape 3 : Montage de la Tête
8 pièces (haut/bas/côtés x2, axes cou 1&2). Collage haut/bas, fixation caps latéraux. Servo #5 sur axe cou 1, servo #6 sur axe cou 2. Module visage inséré avant fermeture.
Étape 4 : Buste et Épaules
5 pièces : buste (2), épaules (2), centre cou, axe cou 3. Collage buste, épaules vissées (M2x10), servos #2 et #4 montés dans les épaules. Centre cou + axe cou 3 vissés (4x M2x6). Servo #6 relié à l'axe cou 3.
Étape 5 : Bras
4 pièces/bras : coupelle, capuchon, axe, bras. Axe centralisé sur bras (3x M2x6) + palonnier servo. Servo #1/#3 dans coupelle, palonnier sur axe. Câbles passent par trou dédié. Capuchon ferme l'épaule (2x M2x6).
Étape 6 : Torse (Poitrine)
2 pièces (droite/gauche), 4h impression. Liaison épaules/torse par vis + colle recommandée. 6 trous bas pour fixation roues. Étiquetage servos pour câblage.
Étape 7 : Roues et Base Motrice
3 pièces : roues (gauche/droite), avant. 10h impression. Moteurs DC soudés, fixés (2x M3x40 + écrous), panneau avant collé, 6x M2x6 pour liaison torse.
Étape 8 : Support Smartphone
1 pièce, 1h. Conçu pour Moto E 4,3" (autres tailles similaires possibles). Smartphone positionné, puis maintenu par support + 4x M2x6. Important : brancher câble USB avant de serrer (espace réduit, connecteur USB rogné).
Étape 9 : Base Électronique
1 pièce, 4h. Fixation : PCA9685 (4x M2x6), L298N (4x M2x6), Arduino Uno (4x M2x6), ProtoShield par-dessus. Câblage selon schéma. Roues à billes (2 vis chacune, câbles coincés). Fixation base/roues.
Étape 10 : Couvercle Arrière et Alimentation
6 pièces : dos (gauche/droite), boutons x2, loquets x2. 5h30 impression. Dos collés. Pack batterie : 2x 18650 en série (soudure entre pôles), interrupteur sur V+ vers Vin Arduino, GND commun. Loquets poncés pour ajustement, boutons collés. Couvercle verrouillable par rotation boutons.
Câblage Électronique (Synthèse)
| Périphérique | Broches Arduino / Connexions |
|---|---|
| Arduino Uno | D2→L298N IN4, D3→IN3, D6→IN2, D7→IN1, D9→MAX7219 DIN, D10→CS, D11→CLK, D4→ESP8266 RXD, D5→TXD, A4→SDA, A5→SCL, Vin→Batt+ (avant diodes), GND→Batt- |
| ESP8266-01 | RXD→D4, TXD→D5, GND→GND, VCC→3V3, CH_PD→3V3 |
| L298N (Moteurs DC) | IN1→D7, IN2→D6, IN3→D3, IN4→D2, +12V→Batt+ (après diodes), GND→GND, OUT1→Moteur1, OUT2→Moteur2 |
| MAX7219 (1ère matrice) | DIN→D9, CS→D10, CLK→D11, VCC→5V, GND→GND |
| MAX7219 (suivantes) | DIN→DOUT précédente, CS/CLK/VCC/GND en parallèle |
| PCA9685 (16 servos) | SCL→A5, SDA→A4, VCC→5V, GND→GND, V+→Batt+ (après diodes) |
Note : Deux diodes 1N4001 en série après les batteries abaissent 7,4V → ~6,0V pour servos/moteurs DC (protection simple, pas optimale mais fonctionnelle).
Code Arduino (Structure Modulaire)
Bibliothèques requises : LedControl.h (matrices LED), Adafruit_PWMServoDriver.h (servos via PCA9685).
Le code est découpé en 9 fichiers .ino :
RobodaAlegria.ino: sketch principal, includes, variables globales._05_Def_Olhos.ino: 9 patterns par œil (8x8) : neutre, grand ouvert, fermé haut/bas, en colère, ennuyé, triste, amoureux, mort._06_Def_Boca.ino: 9 patterns bouche (16x8) : heureux, triste, très heureux/triste, neutre, langue sortie, ouverte, grande ouverte, dégoûté._10_Bracos.ino: 9 mouvements prédéfinis bras/coumov1()àmov9()._12_Rosto.ino: fonctions composition visage (yeux + bouche)._13_Motores_DC.ino: pilotage moteurs DC._20_Comunicacao.ino: envoi données vers ESP8266._80_Setup.ino: initialisation visage/moteurs, connexion WiFi (remplacer SSID/MDP), config baudrate ESP._90_Loop.ino: boucle principale, écoute commandes ESP, exécution actions.
Téléchargement : RoboAlegria.rar (remplacer XXXXX/YYYYY par identifiants WiFi).
Applications Android
- IP Webcam (Play Store) : flux vidéo/audio robot → interface contrôle.
- Screen Mirror (Play Store) : miroir écran smartphone → interface.
- Jeu vidéo interactif (instable, non publié).
Interface de Contrôle Web (HTML/JS)
Fichier interface.rar à extraire, ouvrir index.html dans Firefox. Deux zones :
- Gauche : flux caméra (IP Webcam) + miroir écran (Screen Mirror).
- Droite : commandes.
Champs de saisie : IP ESP8266, IP Webcam, IP Screen Mirror.
- Onglet Actions prédefinies : 9 mouvements corps + 13 visages.
- Onglet Actions personnalisées : angles 6 servos + choix individuel yeux (9) / bouche (8).
- Clavier fléché : avance/recul, rotation gauche/droite.
- Microphone (optionnel) : détection intensité → animation « parole » sur visage.
- Paramètres (coin sup. droit) : sensibilité micro, vitesse bras/cou.
Ressources Complémentaires
- Hackaday.io
- Hackster.io
- Bibliothèques : LedControl, Adafruit PWM Servo Driver
Comment Aider le Projet
- Voter sur les concours Instructables.
- Donner (Thingiverse) pour achats composants/impression et interventions hôpitaux.
- Liker/Partager sur les réseaux (Facebook, Hackster, Hackaday, Thingiverse...).
Processus de fabrication
- Raspoulette : Prototype de système autonome de porte de poulailler à énergie solaire
- Robot DIY inspiré de Wall‑E : Raspberry Pi dans une boîte de CD recyclée
- Robot réveil roulant : Système mobile intelligent piloté par Raspberry Pi et Google Calendar
- Construire un robot Creeper motorisé Minecraft avec Arduino
- Archimède : Le hibou robotique IA à détection d'émotions
- Construire un robot vision par ordinateur piloté par la parole sur Windows 10 IoT Core
- Robot ROS : Navigation pilotée par terminal sur Raspberry Pi
- Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi
- Kit de robot de navigation intérieure intelligente pour projets Arduino