Construisez un robot contrôlé par gestes à la maison avec Arduino et MPU-6050
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO | 1 |
| Arduino Nano R3 | 1 |
| Module Bluetooth HC-05 | 2 |
| MPU-6050 (accéléromètre/gyroscope 3 axes) SparkFun | 1 |
| Moteur DC 12 V | 2 |
| Roues en caoutchouc | 1 (lot) |
| Driver double pont en H L293D (Texas Instruments) | 1 |
| Pile 9 V (générique) | 2 |
Outils nécessaires
- Fer à souder
- Fil à souder sans plomb
- Ruban mousse
- Multitool / Tournevis
Applications et services en ligne
- Arduino IDE
À propos du projet
Ce tutoriel explique comment réaliser une voiture télécommandée par gestes. C'est une application simple du MPU-6050 (gyroscope 3 axes, accéléromètre). En comprenant son interfacage avec Arduino et le transfert de données via deux modules Bluetooth HC-05, vous pourrez réaliser bien d'autres projets. L'accent est mis ici sur la communication Bluetooth entre deux modules HC-05.
Suivez la vidéo (images dans le projet original) pour construire le châssis et le câblage.
Configuration des modules Bluetooth
Les modules HC-05 sortent d'usine en mode esclave (réception de données depuis un mobile). Pour envoyer des données d'un module à un autre, il faut configurer l'un en maître et l'autre en esclave, et les lier (binding) pour qu'ils se connectent automatiquement à la mise sous tension.
Module esclave (sur le robot)
- Câblez le module sur l'Arduino (schéma fourni).
- Téléversez le sketch « configure » (ci-dessous) qui fait office de pont série.
- Mettez le module en mode commande AT : maintenez le bouton KEY enfoncé en le branchant. La LED clignote lentement (1 fois/2 s).
- Ouvrez le moniteur série (9600 bauds, NL & CR). Tapez
AT→ doit répondreOK. - Envoyez les commandes AT dans l'ordre :
AT+ORGL(réglages usine)AT+RMAAD(supprimer anciens pairings)AT+UART?(vérifier baudrate)AT+UART=38400,0,0(fixer 38400 bauds)AT+ROLE?(doit répondre 0 = esclave)AT+ROLE=0(forcer esclave)AT+ADDR?→ note l'adresse MAC retournée (ex:98d3:31:fc1234).
Module maître (sur la télécommande)
- Même procédure pour entrer en mode AT.
- Commandes AT :
AT+ORGLAT+RMAADAT+UART=38400,0,0AT+ROLE=1(mode maître)AT+CMODE=0(connexion à un seul périphérique)AT+BIND="adresse_du_module_esclave"(lier les deux modules)
Bibliothèques MPU-6050
Installez les bibliothèques I2Cdev et MPU6050_6Axis_MotionApps20 (disponibles dans l'archive gesture_control_robot.rar).
Programmation de l'unité robot (car unit)
Connectez l'Arduino UNO (car unit) au PC, sélectionnez le bon port/board, téléversez le sketch Gesture_controled_Robot__car_unit_. Ne connectez pas la pile ni le module Bluetooth pendant le téléversement.
Code simplifié (voir projet original pour version complète) :
// Programme pour unité robot (Shubham Shinganapure)
int lm1=8, lm2=9, rm1=10, rm2=11;
char d=0;
void setup() {
pinMode(lm1,OUTPUT); pinMode(lm2,OUTPUT);
pinMode(rm1,OUTPUT); pinMode(rm2,OUTPUT);
Serial.begin(38400);
sTOP();
}
void loop() {
if(Serial.available()>0) {
d=Serial.read();
if(d=='F') ForWard();
else if(d=='B') BackWard();
else if(d=='L') Left();
else if(d=='R') Right();
else if(d=='S') sTOP();
}
}
void ForWard() { digitalWrite(lm1,HIGH); digitalWrite(lm2,LOW); digitalWrite(rm1,HIGH); digitalWrite(rm2,LOW); }
void BackWard() { digitalWrite(lm1,LOW); digitalWrite(lm2,HIGH); digitalWrite(rm1,LOW); digitalWrite(rm2,HIGH); }
void Left() { digitalWrite(lm1,LOW); digitalWrite(lm2,HIGH); digitalWrite(rm1,HIGH); digitalWrite(rm2,LOW); }
void Right() { digitalWrite(lm1,HIGH); digitalWrite(lm2,LOW); digitalWrite(rm1,LOW); digitalWrite(rm2,HIGH); }
void sTOP() { digitalWrite(lm1,LOW); digitalWrite(lm2,LOW); digitalWrite(rm1,LOW); digitalWrite(rm2,LOW); }
Programmation de l'unité télécommande (remote unit)
Téléversez le sketch remote sur l'Arduino Nano (remote unit). Ce code initialise le MPU-6050 (DMP), lit les angles d'Euler (yaw/pitch/roll), et envoie les commandes 'F', 'B', 'L', 'R', 'S' via le module Bluetooth maître selon l'inclinaison (seuils : pitch ≤ -25° → avant, ≥ 25° → arrière, roll ≤ -25° → gauche, ≥ 20° → droite, sinon stop).
Le code complet est long ; il est fourni dans le projet original.
Assemblage final
Insérez le module Bluetooth esclave sur l'unité robot, le module maître sur l'unité télécommande. Alimentez les deux circuits (piles 9V). C'est prêt !
J'espère que ce projet vous sera utile. Likez, partagez, commentez vos doutes. Suivez-moi pour d'autres projets ! Soutenez mon travail et abonnez-vous à ma chaîne YouTube.
Merci !
Code source
Deux fichiers de code sont fournis : « Gesture controlled robot (remote unit) » et « Gesture controlled robot (car unit) ». Le code complet est dans la section « Code » du projet original.
Schéma
Un schéma de câblage global est fourni en image dans le projet original.
Processus de fabrication
- Construire un robot Arduino piloté par Raspberry Pi – Guide pas à pas
- Construire sa propre machine à écrire les devoirs à la maison (Traceur à stylo)
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Créez un robot suiveur de ligne autonome avec Arduino UNO
- Créer un bouton clavier personnalisé « frappable » avec Arduino : guide pas à pas
- Robot Assistant Domestique Autonome : Liste Complète et Guide de Configuration
- Générer des Sons Musicaux avec Arduino : Guide Pas à Pas
- Porte automatique Arduino avec capteur ultrasons HC-SR04
- Kit de robot de navigation intérieure intelligente pour projets Arduino