Robot à commande gestuelle piloté par Raspberry Pi
En avez‑vous assez des contrôles par boutons ? Imaginez piloter un robot par de simples gestes de la main depuis votre canapé. Ce tutoriel montre comment construire un robot bimoteur répondant aux mouvements de la main en utilisant un Raspberry Pi, un accéléromètre, et une communication RF.
Vue d'ensemble
Nous utilisons un Raspberry Pi 3 côté émetteur pour lire les données de l'accéléromètre, les encoder avec un module HT12E, et transmettre le signal via une paire RF 434 MHz. Côté robot, une batterie 12 V alimente un décodeur HT12D et un driver moteur L293D, qui commande deux moteurs CC selon les commandes de geste reçues.
Composants
| Composant | Spécification | Qté |
|---|---|---|
| Raspberry Pi | Modèle 3 | 1 |
| Carte MicroSD | ≥ 8 Go | 1 |
| Accéléromètre | ADXL345 ou MPU6050 | 1 |
| Module RF | TX & RX 434 MHz | 1 |
| Alimentation | 5 V USB pour Pi ; 12 V batterie pour robot | 1 |
| Fils | Femelle‑mâle & mâle‑femelle | 10 chacun |
| Encodeur | HT12E (module préféré) | 1 |
| Décodeur | HT12D (module préféré) | 1 |
| Driver moteur | L293D (module préféré) | 1 |
Diagramme de blocs
Côté émetteur
L'accéléromètre fournit les données de mouvement brutes au Pi. Python traite les lectures, les mappe en commandes de mouvement, et envoie un code 4 bits à l'encodeur HT12E via GPIO. L'encodeur sérialise le code, et l'émetteur RF le diffuse.
Côté récepteur
Le récepteur RF capte le signal et le transmet au décodeur HT12D. Le code 4 bits décodé pilote le driver moteur L293D, qui contrôle les moteurs gauche et droit du robot pour avancer, reculer, tourner gauche, droite, ou s'arrêter.
Bases de l'accéléromètre
Un accéléromètre mesure l'accélération sur trois axes. L'accélération statique (gravité) révèle l'inclinaison ; l'accélération dynamique détecte le mouvement. Les modèles numériques comme ADXL345 ou MPU6050 communiquent via I²C, fournissant des données fiables à faible bruit. Le MPU6050 inclut aussi un gyroscope, utile pour détection de mouvements plus complexes.
Connexion de l'accéléromètre au Raspberry Pi
Utilisez le bus I²C : connectez SDA et SCL du Pi à ceux du capteur, et alimentez le capteur en 3,3 V et GND. Activez I²C dans Raspbian : sudo raspi-config → Interface Options → I²C. Installez les utilitaires SMBus :
sudo apt-get install python-smbus i2c-tools
Détectez le périphérique : sudo i2c-detect -y 1 – ADXL345 apparaît à 0x53 ; MPU6050 à 0x68 ou 0x69.
Clonez la bibliothèque et lancez l'exemple :
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py
Pour MPU6050, utilisez pip install mpu6050-raspberrypi et testez avec :
from mpu6050 import mpu6050
sensor = mpu6050(0x69)
print(sensor.get_accel_data())
Calibrage des seuils de geste
Placez le capteur dans chaque pose désirée (avant, gauche, droite, arrière, stop) et enregistrez les valeurs brutes X, Y, Z. Calculez la moyenne et définissez une bande de tolérance ; quand les lectures en direct tombent dans une bande, déclenchez la commande moteur correspondante. Stockez ces seuils dans votre script Python pour la prise de décision temps réel.
Avec cette configuration, vous aurez un robot robuste, sans fil, à commande gestuelle propulsé par Raspberry Pi.
Ressources additionnelles
Processus de fabrication
- Profilage température Raspberry Pi précis avec Python, SQLite et LabVIEW
- Système aquaponique piloté par Raspberry Pi : guide de construction et code
- Construction d'un enregistreur de données multicanal avec Raspberry Pi – Partie 1 : Exigences et architecture
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Surveillance météo à distance avec Raspberry Pi 3 et PubNub
- Intégration du TI SensorTag à Blynk via Node‑RED sur Raspberry Pi Zero
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Construire un robot intelligent avec le Bridge Shield – Intégration Raspberry Pi & Arduino
- Robot DIY inspiré de Wall‑E : Raspberry Pi dans une boîte de CD recyclée