Construire votre propre robot assistant IA avec Arduino et Python
Composants et fournitures
| Arduino Nano R3 | × | 1 |
| Micro-servo SG90 | × | 3 |
| Capteur ultrason HC-SR04 | × | 1 |
| PCB personnalisé PCBWay | × | 1 |
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Introduction
Nous connaissons tous « Jarvis », l'assistant IA d'Iron Man. Ce rêve de programmeur devient réalité ici : un assistant IA utilisant Python, avec un avatar physique qui bouge quand il parle. L'Arduino gère les mouvements, le PC (Python) gère l'IA, la reconnaissance vocale et la synthèse vocale. L'Arduino est connecté en USB au PC.
Pourquoi « Jaundice » (jaunisse) ? Parce qu'il est peint en jaune, très jaune !
Pièces
Électronique : Arduino Nano (1x), Micro-servos SG90 (3x), Capteur ultrason HC-SR04 (1x).
Corps : Feuille PVC (blanc de préférence), roue de servo (pour le support).
Outils : Cutter, ciseaux, pistolet à colle, peinture en bombe.
Logiciels : Python 3, Arduino IDE.
Principe
Le code IA tourne sur le PC (plus de puissance, Python supporté, contrôle du PC). L'Arduino reçoit des commandes série (ex: octet 'h' → fonction hi() pour saluer). Simple et efficace.
Circuits et électronique
J'ai conçu un PCB polyvalent (slot micro SD, Bluetooth, alimentation 5V externe, alimenté par l'Arduino Nano) via EasyEDA, fabriqué par PCBWay. Qualité excellente, livré en 3 jours de Chine au Bangladesh. Pistes 300mm supportant 1A. Fichiers PCB téléchargeables.
Soudure et test du circuit
Soudure prudente (vapeurs toxiques). Modules Bluetooth et carte SD non soudés (non utilisés). Les 3 servos et le capteur ultrason sont alimentés directement par l'USB – pas de source externe nécessaire. Si batterie externe souhaitée : LiPo 2S (7.4V) max, au-delà les servos grillent.
Fabrication du corps
Corps en PVC (carton possible). Boîte principale pour carte et servos, tête avec deux trous pour le capteur (yeux). Bras : un comme une clé, l'autre avec une vraie prise électrique collée. Pas de dimensions fixes : adaptez à vos envies.
Attention : Installez l'électronique avant de fermer le corps. Peignez après assemblage, sinon vous colorerez l'Arduino (comme moi !).
Codage 1 : Python
Installez Python (ajoutez au PATH). Installez les bibliothèques :
pip install speechrecognition pyaudio pyttsx3 pywhatkit pyserial
Le code Python (disponible sur GitHub) :
- Écoute le mot de réveil « jaundice ».
- Traite les commandes : « play » (YouTube), « search » (Google), « get info » (Wikipédia), « open » (URL), gestes (uppercut, smash, punch), salutations.
- Envoie des octets série à l'Arduino pour déclencher les mouvements.
- Utilise
pyttsx3pour la synthèse vocale offline.
Codage 2 : Arduino
L'Arduino attend des données série. Chaque octet reçu déclenche une fonction de mouvement : hi() (salut), hands_up(), weight_lift(), confused(), double_punch(), r_upper_cut(), smash(), standby() (position repos).
#include
Servo head, l_hand, r_hand;
int trig = 4, echo = 5;
byte val = '';
void setup() {
head.attach(2); l_hand.attach(3); r_hand.attach(4);
Serial.begin(9600);
}
void standby() { ... }
void hi() { ... } // Vague de la main droite
void hands_up() { ... } // Les deux mains montent
void weight_lift() { ... } // Simulation haltères
void confused() { ... } // Tête et mains expriment la confusion
void double_punch() { ... }
void r_upper_cut() { ... } // Uppercut main droite
void smash() { ... } // Coup violent vers le bas
void loop() {
standby();
while(Serial.available() > 0) {
val = Serial.read();
switch(val) {
case 'h': hi(); break;
case 'p': double_punch(); break;
case 'u': hands_up(); delay(3000); break;
case 'l': standby(); look_left(); delay(2000); break;
case 'U': r_upper_cut(); delay(2000); break;
case 's': smash(); delay(2000); break;
}
}
}
Assemblage final et test
Branchez l'Arduino en USB, lancez le script Python (vérifiez le port COM dans le code). Le robot devrait fonctionner : il écoute, parle, bouge.
Code source
GitHub : JAUNDICE-AI-Assistant-Robot
Schémas

Processus de fabrication
- Construire un robot avec Raspberry Pi et Python : Guide complet
- Construire un robot piloté par Internet avec streaming vidéo Arduino & Raspberry Pi
- Comprendre type() et isinstance() en Python : exemples pratiques
- Système de pointage RFID fiable avec Arduino et Python (base de données phpMyAdmin)
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Contrôlez votre Roomba Create 2 avec Arduino et Android – Guide pas à pas
- Arduino et MPU6050 : Contrôle précis de servo-moteur avec SG90 et MG996R
- Module GPS u-blox LEA‑6H 02 : guide d'intégration Arduino et Python
- Maîtriser la reconnaissance et la synthèse vocale sur Arduino Due