Chat
Ask me anything
Ithy Logo

Construisez Votre Propre Robot Tout-Terrain Arduino Piloté par Smartphone !

Un guide pas-à-pas pour créer un robot robuste et le commander du bout des doigts via Bluetooth.

creer-robot-tout-terrain-arduino-smartphone-0i6vou6m

Vous rêvez de construire un robot capable de s'aventurer hors des sentiers battus, le tout contrôlé facilement depuis votre téléphone ? Ce projet est fait pour vous ! Combinant l'électronique accessible de l'Arduino, la robustesse d'un châssis tout-terrain et la commodité du contrôle Bluetooth, ce guide vous accompagnera étape par étape.

Points Clés du Projet

  • Flexibilité et Accessibilité : Utilisation de composants courants et abordables (Arduino, châssis 4WD, module Bluetooth HC-05/06) et de logiciels gratuits (IDE Arduino, MIT App Inventor).
  • Contrôle Intuitif : Pilotage simple et sans fil du robot via une application smartphone Android, permettant de commander les mouvements (avant, arrière, gauche, droite).
  • Potentiel d'Évolution : Base solide pour ajouter des fonctionnalités avancées comme des capteurs d'obstacles (ultrasons HC-SR04), une caméra, ou améliorer l'autonomie.

Composants Essentiels pour Votre Robot

Pour démarrer votre projet, rassemblez les éléments suivants. Le choix précis peut varier selon votre budget et les fonctionnalités souhaitées.

Le Cerveau et la Communication

  • Carte Arduino : L'Arduino Uno est un excellent point de départ pour sa simplicité. Si vous envisagez d'ajouter de nombreux capteurs ou fonctionnalités, l'Arduino Mega 2560 offre plus de broches et de mémoire.
  • Module Bluetooth : Un module HC-05 ou HC-06 est nécessaire pour établir la communication sans fil entre l'Arduino et votre smartphone. Le HC-05 peut fonctionner en maître ou esclave, tandis que le HC-06 est généralement utilisé en esclave.

Mobilité et Châssis

  • Châssis Tout-Terrain : Optez pour un châssis robuste, idéalement à 4 roues motrices (4WD), pour une meilleure traction sur les terrains difficiles. Des kits sont disponibles, ou vous pouvez adapter un châssis existant.
  • Moteurs DC : Quatre moteurs à courant continu (DC) avec réducteurs sont recommandés pour un châssis 4WD. Assurez-vous qu'ils sont assez puissants pour le poids du robot et le type de terrain.
  • Roues Tout-Terrain : Choisissez des roues avec une bonne adhérence, adaptées aux surfaces irrégulières (terre, herbe, gravier).

Contrôle Moteur et Alimentation

  • Contrôleur de Moteur (Pont en H) : L'Arduino ne peut pas alimenter directement les moteurs. Utilisez un module comme le L298N (courant modéré, bon pour débuter) ou le BTS7960B (courant élevé, pour moteurs plus puissants et terrains exigeants). Ce module permet de contrôler la vitesse et la direction des moteurs.
  • Source d'Alimentation : Prévoyez une alimentation séparée pour les moteurs et l'Arduino pour plus de stabilité.
    • Pour les moteurs : Une batterie LiPo (ex: 7.4V ou 11.1V) ou un pack de piles rechargeables (ex: 4 à 6 piles AA 1.5V en série).
    • Pour l'Arduino : Une pile 9V ou une alimentation via un régulateur de tension depuis la batterie principale (attention à la compatibilité des tensions).

Autres Éléments Utiles

  • Câbles de Connexion : Fils Dupont (mâle-mâle, mâle-femelle, femelle-femelle) pour relier les composants.
  • Platine d'Expérimentation (Breadboard) : Utile pour prototyper les connexions avant de souder.
  • Visserie et Supports : Pour fixer solidement tous les éléments sur le châssis.
  • Interrupteur : Pour allumer et éteindre facilement le robot.
  • Capteurs (Optionnel) : Un capteur à ultrasons HC-SR04 pour la détection d'obstacles et la navigation autonome simple.
Assemblage des composants sur le châssis du robot

Exemple d'assemblage des composants électroniques sur un châssis 4WD.


Comparaison des Options Clés

Le choix des composants influence directement les capacités, la complexité et le coût de votre robot. Le tableau suivant résume quelques alternatives courantes :

Composant Option 1 Option 2 Avantages Option 1 Avantages Option 2 Idéal Pour
Carte Arduino Arduino Uno Arduino Mega 2560 Simplicité, coût réduit, suffisant pour projets de base. Plus de broches E/S, plus de mémoire, meilleure gestion multi-tâches. Uno: Débutants, projets simples. Mega: Projets complexes, nombreux capteurs/actionneurs.
Contrôleur Moteur L298N BTS7960B Très courant, peu coûteux, facile à trouver et à utiliser. Supporte des courants beaucoup plus élevés (jusqu'à 43A), meilleure dissipation thermique, plus robuste pour moteurs puissants. L298N: Petits moteurs, robots légers. BTS7960B: Gros moteurs, robots lourds, terrains exigeants.
Module Bluetooth HC-06 HC-05 Légèrement plus simple (mode esclave uniquement). Plus flexible (configurable en maître ou esclave). HC-06: Connexion simple téléphone -> robot. HC-05: Projets nécessitant une configuration maître ou des paramètres AT avancés.
Châssis 2WD 4WD Plus simple, moins cher, moins de moteurs à gérer. Meilleure traction, capacité tout-terrain accrue, plus stable. 2WD: Surfaces planes, initiation. 4WD: Terrains accidentés, projet tout-terrain.

Assemblage Mécanique et Électronique

L'assemblage est une étape cruciale qui demande de la patience et de l'organisation.

Montage du Châssis

  1. Fixez les moteurs DC sur les supports prévus sur le châssis. Assurez-vous qu'ils sont solidement vissés.
  2. Montez les roues tout-terrain sur les axes des moteurs.
  3. Positionnez et fixez la carte Arduino, le contrôleur de moteur, et le module Bluetooth sur la plateforme du châssis. Utilisez des entretoises si nécessaire pour éviter les contacts électriques indésirables.
  4. Installez le support de batterie et la batterie.
  5. Si vous utilisez un capteur d'obstacles, fixez-le à l'avant du robot, orienté vers l'avant.

Câblage des Composants

Le câblage doit être effectué avec soin. Référez-vous aux schémas spécifiques à vos composants (Arduino, L298N/BTS7960B, HC-05/06).

Connexions Typiques (Exemple avec L298N et Arduino Uno)

  • Moteurs : Connectez les fils des moteurs aux sorties du L298N (OUT1/OUT2 pour le moteur 1, OUT3/OUT4 pour le moteur 2, etc.). Respectez la polarité si indiquée.
  • Contrôleur Moteur (L298N) vers Arduino :
    • ENA -> Broche PWM Arduino (ex: ~5) pour vitesse moteur A
    • IN1 -> Broche digitale Arduino (ex: 7)
    • IN2 -> Broche digitale Arduino (ex: 8)
    • IN3 -> Broche digitale Arduino (ex: 9)
    • IN4 -> Broche digitale Arduino (ex: 10)
    • ENB -> Broche PWM Arduino (ex: ~6) pour vitesse moteur B
    • GND (L298N) -> GND Arduino
  • Module Bluetooth (HC-05/06) vers Arduino :
    • VCC -> 3.3V ou 5V Arduino (selon le module)
    • GND -> GND Arduino
    • TXD (Module) -> RX Arduino (ex: Broche 2 via SoftwareSerial)
    • RXD (Module) -> TX Arduino (ex: Broche 3 via SoftwareSerial) Attention : Souvent via un pont diviseur de tension si l'Arduino est en 5V et le module en 3.3V.
  • Alimentation :
    • Connectez la batterie des moteurs à l'entrée VCC/12V du L298N et à sa borne GND.
    • Connectez la source d'alimentation de l'Arduino (pile 9V ou régulateur) à la broche VIN ou au port USB/Jack de l'Arduino.
    • Important : Reliez les masses (GND) de toutes les alimentations (Arduino, L298N, batterie moteurs) ensemble.
  • Capteur Ultrason (HC-SR04 - Optionnel) :
    • VCC -> 5V Arduino
    • GND -> GND Arduino
    • Trig -> Broche digitale Arduino (ex: 12)
    • Echo -> Broche digitale Arduino (ex: 11)

Vérifiez toujours les datasheets de vos composants spécifiques pour les brochages et tensions corrects.

Robot tout-terrain Arduino 4WD assemblé

Un exemple de robot tout-terrain 4WD finalisé.


Évaluation des Aspects du Projet

Ce diagramme radar offre une vue d'ensemble des caractéristiques typiques d'un projet de robot tout-terrain Arduino simple contrôlé par smartphone. Les scores sont subjectifs (échelle de 1 à 10, où 10 est le plus élevé/meilleur) et peuvent varier selon les composants choisis.

Ce graphique met en évidence que même un robot simple offre une bonne capacité tout-terrain et un contrôle facile, avec un coût et une complexité initiaux relativement bas, tout en conservant un bon potentiel d'amélioration.


Programmation de l'Arduino

Le code Arduino (appelé "sketch") est le cerveau du robot. Il interprète les commandes reçues via Bluetooth et commande les moteurs en conséquence. Voici les étapes et un exemple simplifié.

Configuration de l'Environnement

  1. Téléchargez et installez l'IDE Arduino depuis arduino.cc.
  2. Ouvrez l'IDE, allez dans Outils > Type de carte et sélectionnez votre modèle (Uno, Mega 2560).
  3. Sélectionnez le port COM auquel votre Arduino est connecté (Outils > Port).
  4. Installez les bibliothèques nécessaires si vous utilisez des composants spécifiques (ex: AFMotor.h pour certains shields moteur, NewPing.h pour le HC-SR04, SoftwareSerial.h pour utiliser d'autres broches pour la communication série). Vous pouvez les installer via Outils > Gérer les bibliothèques.

Exemple de Code Simplifié

Cet exemple utilise SoftwareSerial pour la communication Bluetooth sur les broches 2 (RX) et 3 (TX), et contrôle deux paires de moteurs (gauche et droite) via 4 broches digitales pour la direction (sans contrôle de vitesse PWM pour simplifier).


#include <SoftwareSerial.h>

// Définir les broches pour la communication Bluetooth
// RX Arduino (connecté à TX du HC-05), TX Arduino (connecté à RX du HC-05)
SoftwareSerial bluetooth(2, 3); // RX, TX

// Définir les broches pour le contrôle des moteurs (exemple simplifié sans L298N direct)
// Adaptez ces broches selon votre contrôleur (L298N IN1, IN2, IN3, IN4...)
const int motorGaucheAvant = 7;
const int motorGaucheArriere = 8;
const int motorDroitAvant = 9;
const int motorDroitArriere = 10;
// Ajoutez des broches PWM (ex: 5, 6) si vous utilisez ENA/ENB pour la vitesse

void setup() {
  Serial.begin(9600); // Pour le débogage via le moniteur série
  bluetooth.begin(9600); // Initialise la communication Bluetooth (vérifiez le baud rate de votre module)
  Serial.println("Robot Pret. Attente de commandes Bluetooth...");

  // Configurer les broches moteur en sortie
  pinMode(motorGaucheAvant, OUTPUT);
  pinMode(motorGaucheArriere, OUTPUT);
  pinMode(motorDroitAvant, OUTPUT);
  pinMode(motorDroitArriere, OUTPUT);

  // S'assurer que les moteurs sont arrêtés au démarrage
  arreter();
}

void loop() {
  // Vérifier si des données sont reçues via Bluetooth
  if (bluetooth.available() > 0) {
    char commande = bluetooth.read(); // Lire la commande reçue
    Serial.print("Commande reçue: ");
    Serial.println(commande);

    // Interpréter la commande
    switch (commande) {
      case 'F': // Forward (Avancer)
        avancer();
        break;
      case 'B': // Backward (Reculer)
        reculer();
        break;
      case 'L': // Left (Gauche)
        gauche();
        break;
      case 'R': // Right (Droite)
        droite();
        break;
      case 'S': // Stop (Arrêter)
        arreter();
        break;
      // Ajoutez d'autres commandes si nécessaire (ex: vitesse, lumières...)
      default:
        // Commande inconnue, on arrête par sécurité
        arreter();
        break;
    }
  }
  // Ajoutez ici la logique pour les capteurs si vous en avez
  // delay(50); // Petite pause si nécessaire
}

// Fonctions de contrôle des moteurs
void avancer() {
  digitalWrite(motorGaucheAvant, HIGH);
  digitalWrite(motorGaucheArriere, LOW);
  digitalWrite(motorDroitAvant, HIGH);
  digitalWrite(motorDroitArriere, LOW);
  Serial.println("Action: Avancer");
}

void reculer() {
  digitalWrite(motorGaucheAvant, LOW);
  digitalWrite(motorGaucheArriere, HIGH);
  digitalWrite(motorDroitAvant, LOW);
  digitalWrite(motorDroitArriere, HIGH);
  Serial.println("Action: Reculer");
}

void gauche() {
  // Tourne sur place vers la gauche (roue gauche arrière, roue droite avant)
  digitalWrite(motorGaucheAvant, LOW);
  digitalWrite(motorGaucheArriere, HIGH);
  digitalWrite(motorDroitAvant, HIGH);
  digitalWrite(motorDroitArriere, LOW);
  Serial.println("Action: Gauche");
}

void droite() {
  // Tourne sur place vers la droite (roue gauche avant, roue droite arrière)
  digitalWrite(motorGaucheAvant, HIGH);
  digitalWrite(motorGaucheArriere, LOW);
  digitalWrite(motorDroitAvant, LOW);
  digitalWrite(motorDroitArriere, HIGH);
  Serial.println("Action: Droite");
}

void arreter() {
  digitalWrite(motorGaucheAvant, LOW);
  digitalWrite(motorGaucheArriere, LOW);
  digitalWrite(motorDroitAvant, LOW);
  digitalWrite(motorDroitArriere, LOW);
  Serial.println("Action: Arreter");
}
  

Ce code définit des fonctions simples pour chaque mouvement. Lorsque le caractère 'F' est reçu via Bluetooth, la fonction avancer() est appelée, et ainsi de suite. Adaptez les numéros de broches et la logique de contrôle à votre matériel spécifique.

Téléversement du Code

  1. Vérifiez que votre carte Arduino est connectée à l'ordinateur.
  2. Cliquez sur le bouton "Vérifier" (✓) pour compiler le code et détecter les erreurs.
  3. Cliquez sur le bouton "Téléverser" (→) pour envoyer le code à la carte Arduino.
  4. Une fois le téléversement terminé, votre robot est prêt à recevoir des commandes Bluetooth.

Important : Déconnectez les broches RX/TX (0 et 1 si utilisées, ou celles de SoftwareSerial) pendant le téléversement pour éviter les conflits.


Vue d'Ensemble du Projet : Mindmap

Cette carte mentale résume les grandes étapes et les éléments clés pour la réalisation de votre robot tout-terrain Arduino.

mindmap root["Robot Tout-Terrain Arduino"] ["1. Composants"] ["Carte Arduino (Uno/Mega)"] ["Châssis 4WD"] ["Moteurs DC (x4)"] ["Contrôleur Moteur (L298N/BTS7960B)"] ["Module Bluetooth (HC-05/06)"] ["Alimentation (Batteries)"] ["Roues Tout-Terrain"] ["Capteurs (Optionnel: HC-SR04)"] ["Câblage & Visserie"] ["2. Assemblage"] ["Montage Mécanique
(Moteurs, Roues, Châssis)"] ["Fixation Électronique
(Arduino, Contrôleur, BT)"] ["Câblage Moteurs"] ["Câblage Contrôleur -> Arduino"] ["Câblage Bluetooth -> Arduino"] ["Connexion Alimentation"] ["Câblage Capteurs (si présents)"] ["3. Programmation Arduino"] ["Configuration IDE Arduino"] ["Inclusion Bibliothèques
(SoftwareSerial, AFMotor, NewPing...)"] ["Initialisation (setup)"] ["Ports Série/Bluetooth"] ["Broches Moteur (OUTPUT)"] ["Boucle Principale (loop)"] ["Lecture Commandes Bluetooth"] ["Interprétation Commandes (switch/case)"] ["Appel Fonctions Moteur"] ["Lecture Capteurs (si présents)"] ["Fonctions Mouvement"] ["avancer()"] ["reculer()"] ["gauche()"] ["droite()"] ["arreter()"] ["Téléversement du Code"] ["4. Contrôle Smartphone"] ["Appairage Bluetooth
(Téléphone <-> Module HC-0x)"] ["Application Mobile"] ["Utiliser App Existante
(ex: Bluetooth Serial Controller)"] ["Créer App Personnalisée
(ex: MIT App Inventor 2)"] ["Interface Utilisateur"] ["Boutons Directionnels (F, B, L, R, S)"] ["Joystick Virtuel (Optionnel)"] ["Curseur Vitesse (Optionnel)"] ["5. Tests & Améliorations"] ["Test Connexion Bluetooth"] ["Test Mouvements"] ["Test Capteurs (si présents)"] ["Débogage (Moniteur Série)"] ["Améliorations Possibles"] ["Ajout Caméra"] ["Ajout GPS"] ["Mode Autonome Avancé"] ["Contrôle Vitesse PWM"] ["Interface Web (ESP32)"]

Cette structure vous aide à visualiser le flux de travail, depuis la sélection des pièces jusqu'aux tests finaux et aux évolutions futures.


Contrôle du Robot via Smartphone

Une fois le robot assemblé et programmé, l'étape finale consiste à le commander depuis votre téléphone.

Appairage Bluetooth

  1. Alimentez votre robot. Le module Bluetooth devrait clignoter, indiquant qu'il est prêt à être appairé.
  2. Sur votre smartphone Android, allez dans les paramètres Bluetooth.
  3. Recherchez de nouveaux appareils. Vous devriez voir apparaître votre module (souvent nommé "HC-05" ou "HC-06").
  4. Sélectionnez-le et entrez le code PIN d'appairage si demandé (souvent "1234" ou "0000").
  5. Une fois appairé, le clignotement du module Bluetooth devrait changer (devenir plus lent ou fixe selon le module).

Application Mobile

Vous avez deux options principales :

1. Utiliser une Application Existante

Plusieurs applications sur le Google Play Store permettent d'envoyer des caractères ou des commandes via Bluetooth série. Recherchez des applications comme :

  • Arduino Bluetooth Controller
  • Bluetooth Serial Controller
  • Dabble - Bluetooth Control for Arduino, ESP32 & more

Configurez l'application pour envoyer les caractères définis dans votre code Arduino ('F', 'B', 'L', 'R', 'S') lorsque vous appuyez sur des boutons ou utilisez un joystick virtuel.

Interface d'application smartphone pour contrôler un robot

Exemple d'interface simple créée avec MIT App Inventor pour contrôler le robot.

2. Créer votre Propre Application (avec MIT App Inventor)

Pour une personnalisation complète, vous pouvez créer votre propre application Android sans coder (ou presque) en utilisant MIT App Inventor 2. C'est une plateforme visuelle basée sur des blocs.

  • Créez une interface avec des boutons pour chaque direction (Avancer, Reculer, Gauche, Droite, Stop).
  • Ajoutez un composant "BluetoothClient".
  • Programmez les blocs pour que chaque bouton envoie le caractère correspondant ('F', 'B', 'L', 'R', 'S') via Bluetooth lorsque cliqué, après avoir établi la connexion avec le module HC-05/06 de votre robot.
  • De nombreux tutoriels en ligne expliquent comment utiliser App Inventor pour contrôler Arduino via Bluetooth.

Test Final

  1. Lancez l'application sur votre téléphone.
  2. Connectez-vous au module Bluetooth de votre robot via l'application.
  3. Envoyez les commandes via les boutons ou le joystick.
  4. Observez le comportement du robot et vérifiez qu'il répond correctement à chaque commande.
  5. Testez-le sur différentes surfaces pour évaluer ses capacités tout-terrain !

Vidéo Tutoriel Pertinente

Pour vous donner une idée visuelle de la construction et du fonctionnement d'un robot similaire, voici une vidéo montrant un projet de robot tout-terrain Arduino 4WD. Bien que les détails spécifiques puissent varier, elle illustre bien les concepts généraux abordés dans ce guide.

Vidéo: "Off Road Robot Arduino | 4 Wheel Drive - The Badland Brawler" - Illustre la construction et le test d'un robot tout-terrain.

Cette vidéo montre un robot robuste en action, naviguant sur un terrain difficile. Elle peut vous inspirer pour la conception de votre propre châssis et pour voir comment les composants interagissent dans un environnement réel. Observez la suspension (si présente), la garde au sol, et la manière dont les roues gèrent les obstacles.


Questions Fréquemment Posées (FAQ)

Quelle est la meilleure carte Arduino pour ce projet ?

Pour un robot simple avec contrôle de base (4 moteurs, Bluetooth), l'Arduino Uno est souvent suffisant et plus facile à prendre en main pour les débutants. Si vous prévoyez d'ajouter plusieurs capteurs (ultrasons, infrarouges, GPS), une caméra, ou des fonctionnalités complexes nécessitant plus de mémoire ou de broches, l'Arduino Mega 2560 est un meilleur choix.

L298N ou BTS7960B pour contrôler les moteurs ?

Le L298N est très répandu, bon marché et suffisant pour des petits moteurs DC typiques des kits robots. Cependant, il a une chute de tension notable et peut chauffer avec des moteurs gourmands. Le BTS7960B (ou des modules similaires de forte puissance) est préférable si vous utilisez des moteurs plus gros/puissants, si votre robot est lourd, ou si vous prévoyez de l'utiliser sur des terrains très exigeants. Il gère des courants bien plus élevés et est plus efficace.

Comment alimenter correctement le robot ?

Il est fortement recommandé d'utiliser des alimentations séparées : une pour les moteurs (qui consomment beaucoup de courant) et une pour l'Arduino et les composants logiques (Bluetooth, capteurs).

  • Moteurs : Batterie LiPo (7.4V ou 11.1V selon les moteurs) ou un pack de 6 piles AA rechargeables (fournissant environ 7.2V). Connectez cette source directement à l'entrée d'alimentation du contrôleur moteur (L298N/BTS7960B).
  • Arduino : Pile 9V (autonomie limitée) ou, mieux, un petit régulateur de tension (buck converter) abaissant la tension de la batterie principale à 5V ou 7-9V pour alimenter l'Arduino via la broche 5V ou VIN.

Crucial : N'oubliez pas de relier toutes les masses (GND) des différentes sources d'alimentation ensemble.

Dois-je créer ma propre application mobile ?

Non, ce n'est pas obligatoire pour commencer. Des applications Android gratuites comme "Arduino Bluetooth Controller" ou "Bluetooth Serial Terminal" permettent d'envoyer facilement les caractères ('F', 'B', 'L', 'R', 'S') à votre robot. Cependant, créer votre propre application avec MIT App Inventor 2 vous offre une personnalisation complète de l'interface (design, type de contrôles - boutons, joystick, sliders) et est une compétence très intéressante à acquérir.

Comment ajouter un mode d'évitement d'obstacles ?

Intégrer un capteur à ultrasons comme le HC-SR04 est relativement simple :

  1. Connectez le VCC du capteur au 5V de l'Arduino, GND à GND, Trig et Echo à deux broches digitales libres.
  2. Dans le code Arduino, incluez la bibliothèque `NewPing.h` (plus performante que la simple fonction `pulseIn()`).
  3. Dans la fonction `loop()`, mesurez régulièrement la distance (`sonar.ping_cm()`).
  4. Si la distance mesurée est inférieure à un seuil défini (ex: 20 cm), arrêtez le robot (`arreter()`), faites-le reculer un peu (`reculer(); delay(300);`), faites-le tourner (`gauche(); delay(500);`), puis reprenez l'avancée ou attendez la prochaine commande.

Vous pouvez intégrer cette logique pour qu'elle s'active uniquement en "mode autonome" ou qu'elle prenne le dessus sur les commandes manuelles en cas de danger imminent.


Pour Aller Plus Loin

Explorez ces sujets pour approfondir vos connaissances et améliorer votre robot :


Références

projecthub.arduino.cc
robot - Arduino Project Hub
projecthub.arduino.cc
Arduino Project Hub

Last updated May 1, 2025
Ask Ithy AI
Download Article
Delete Article