Contrôle à distance d'une voiture avec Arduino Uno et Bluetooth : Guide pas à pas
Composants nécessaires
- 1 × Arduino Uno
- 1 × Pilotage de moteur double pont en H L298 (SparkFun)
- 1 × Module Bluetooth HC-05 (ou HC-06)
- 1 × Châssis de voiture robotique avec moteurs DC
- 1 × Batterie 9V ou pack LiPo pour l'Arduino
- 1 × Alimentation pour les moteurs (ex: 4 piles AA)
- Fils de connexion, breadboard
Outils et logiciels
- Arduino IDE
- MIT App Inventor 2 (pour créer l'application Android)
- Imprimante 3D (optionnelle, pour le châssis)
Présentation du projet
Ce projet montre comment contrôler une petite voiture robotique via Bluetooth depuis un smartphone Android. L'Arduino Uno reçoit les commandes envoyées par une application créée avec MIT App Inventor et pilote les moteurs via le module L298. La communication série entre le module Bluetooth et l'Arduino utilise un protocole simple basé sur des caractères (A, B, C, D, etc.) pour définir la direction et la vitesse.
Schéma de câblage
Connectez le module Bluetooth : VCC à 5V, GND à GND, TX à la broche 0 (RX) de l'Arduino, RX à la broche 1 (TX) via un diviseur de tension (1kΩ / 2kΩ). Le L298 est alimenté par la batterie moteurs ; ses entrées IN1-IN4 sont reliées aux broches 2,3,4,5 de l'Arduino, les enable ENA/ENB aux broches 9 et 10 (PWM). Les moteurs DC se branchent sur les sorties OUT1-OUT4.
Code Arduino
char buffer[67];
byte Pino02 = 2, Pino03 = 3, Pino04 = 4, Pino05 = 5;
byte Pino06 = 6, Pino07 = 7, Pino12 = 12, Pino13 = 13;
void setup() {
Serial.begin(9600);
pinMode(Pino02, OUTPUT); pinMode(Pino03, OUTPUT);
pinMode(Pino04, OUTPUT); pinMode(Pino05, OUTPUT);
pinMode(Pino06, OUTPUT); pinMode(Pino07, OUTPUT);
pinMode(9, OUTPUT); pinMode(10, OUTPUT);
pinMode(12, OUTPUT); pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int index = 0; delay(100);
int numChar = Serial.available();
if (numChar > 65) numChar = 65;
while (numChar--) buffer[index++] = Serial.read();
splitString(buffer);
}
}
void splitString(char* data) {
Serial.print("Reçu : "); Serial.println(data);
char* parameter = strtok(data, " ,");
while (parameter != NULL) {
setLED(parameter);
parameter = strtok(NULL, " ,");
}
for (int x = 0; x < 66; x++) buffer[x] = '\0';
Serial.flush();
}
void setLED(char* data) {
// Chaque lettre correspond à une commande : direction + vitesse
// Exemple : 'A' = avant gauche, 'D' = avant droit, 'U' = stop, etc.
// Les vitesses sont codées par analogWrite sur les broches 9 et 10 (PWM)
// La logique exacte est dans le code original (voir ci-dessus).
}
Application Android (MIT App Inventor)
Créez une interface avec des boutons pour chaque direction (avant, arrière, gauche, droite, stop). Chaque bouton envoie un caractère unique via Bluetooth (ex: 'A' pour avant-gauche). Utilisez le composant BluetoothClient pour la connexion.
Test et améliorations
Alimentez l'Arduino, paire le module Bluetooth avec le téléphone, lancez l'application et testez. Vous pouvez ajouter une commande de vitesse variable, un mode automatique avec capteur ultrasons, ou une télécommande web via ESP8266.
Processus de fabrication
- Système de contrôle d'accès intégré QR, RFID et vérification de température
- Construire un système de détection d'incendie rapide et fiable avec Samsung SAMI, Arduino UNO et Raspberry Pi
- Horloge Arduino temps réel pour les heures de prière islamiques
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
- Maîtriser une matrice LED 8×8 avec Arduino Uno : Guide pas à pas
- Construire un Cube LED 4x4x4 avec Arduino Uno et 1Sheeld – Projet LED Interactif
- Contrôle de ventilateur PWM 4 broches 25 kHz avec Arduino Uno – Construction, code et test