Arduino - Voiture

L'un des projets les plus excitants pour les débutants Arduino est la création d'une voiture robot Arduino. Dans ce tutoriel, nous allons découvrir comment utiliser Arduino pour construire une voiture robot et la contrôler à l'aide d'une télécommande IR. Nous explorerons également un autre tutoriel où nous apprendrons à la transformer en voiture contrôlée par Bluetooth.

Voiture télécommandée Arduino IR

À propos de la voiture robot

Dans le contexte Arduino, la voiture robot est couramment appelée voiture robot, voiture RC, voiture télécommandée, voiture intelligente ou voiture DIY. Elle peut être contrôlée à distance et sans fil à l'aide d'une télécommande IR ou d'une application smartphone via Bluetooth/WiFi... La voiture robot peut tourner à gauche ou à droite et avancer ou reculer.

Une voiture 2WD (Deux Roues Motrices) pour Arduino est un petit véhicule robotique que vous pouvez construire et contrôler à l'aide d'une carte Arduino. Elle est généralement composée des composants suivants :

  • Châssis : La base ou le cadre de la voiture, où tous les autres composants sont montés.
  • Roues : Les deux roues qui assurent la locomotion de la voiture. Elles sont attachées à deux moteurs à courant continu.
  • Moteurs : Deux moteurs à courant continu sont utilisés pour entraîner les deux roues.
  • Contrôleur de moteur : La carte contrôleur de moteur est un composant essentiel qui fait interface entre l'Arduino et les moteurs. Elle reçoit les signaux de l'Arduino et fournit la puissance et le contrôle nécessaires aux moteurs.
  • Carte Arduino : Le cerveau de la voiture. Elle lit les entrées des capteurs et les commandes de l'utilisateur et contrôle les moteurs en conséquence.
  • Source d'alimentation : La voiture 2WD nécessite une source d'alimentation, généralement des batteries et un porte-piles, pour alimenter les moteurs et la carte Arduino.
  • Récepteur sans fil : un module infrarouge, Bluetooth ou WiFi pour la communication sans fil avec une télécommande ou un smartphone.
  • Composants optionnels : Selon la complexité de votre projet, vous pouvez ajouter divers composants optionnels comme des capteurs (par exemple, des capteurs à ultrasons pour l’évitement d’obstacles, des capteurs de suivi de ligne), et plus encore.

Dans ce tutoriel, pour simplifier, nous utiliserons :

  • Kit de voiture 2 roues motrices (comprenant Châssis, roues, moteurs, porte-piles)
  • Contrôleur de moteur L9110S
  • Kit infrarouge IR (comprenant une télécommande IR et un récepteur IR)

Consultez la liste du matériel en haut de cette page.

Comment ça marche

Voiture Arduino 2WD comment ça fonctionne
  • Arduino se connecte aux moteurs à courant continu de la voiture robot via le module pilote de moteur L9110S.
  • Arduino se connecte à un récepteur IR.
  • La batterie alimente l'Arduino, les moteurs à courant continu, le pilote de moteur et le récepteur IR.
  • Les utilisateurs appuient sur les touches HAUT/BAS/GAUCHE/DROITE/OK de la télécommande IR.
  • Arduino reçoit les commandes HAUT/BAS/GAUCHE/DROITE/OK via le récepteur IR.
  • Arduino contrôle la voiture pour avancer/reculer/tourner à gauche/tourner à droite/s'arrêter en contrôlant le moteur à courant continu via le pilote de moteur.

Diagramme de câblage

Schéma de câblage de la voiture Arduino 2WD

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Le module L9110S alimente les moteurs directement depuis ses broches VCC et GND et ne possède pas de régulateur 5V intégré. Cela signifie que vous pouvez tout alimenter à partir d'une seule source d'alimentation — quatre piles AA de 1,5 V (soit 6 V au total). Voici comment nous pouvons procéder :

  • Connectez la batterie de 6V aux broches VCC et GND du module L9110S pour alimenter les moteurs.
  • Connectez la même batterie de 6V aux broches Vin et GND de la carte Arduino pour l'alimenter (le récepteur IR est alimenté par la broche 5V de l'Arduino).
  • Assurez-vous que le module L9110S, la carte Arduino et le récepteur IR partagent une masse (GND) commune.

Contrairement au L298N, le L9110S n'a pas de cavaliers d'activation ENA/ENB ni de bornier à vis 12V, ce qui simplifie le câblage.

Veuillez noter que pendant la période de développement, lorsque vous devez connecter le câble USB à l'Arduino pour la programmation, vous DEVEZ déconnecter l'alimentation entre la batterie et la carte Arduino en retirant un câble de la broche Vin. La carte Arduino ne doit pas être alimentée par deux sources d'alimentation simultanément.

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 3 // The Arduino pin connected to IR receiver #define MOTOR_A_IA_PIN 5 // The Arduino pin connected to the A-IA pin of the L9110S (Motor A) #define MOTOR_A_IB_PIN 6 // The Arduino pin connected to the A-IB pin of the L9110S (Motor A) #define MOTOR_B_IA_PIN 9 // The Arduino pin connected to the B-IA pin of the L9110S (Motor B) #define MOTOR_B_IB_PIN 10 // The Arduino pin connected to the B-IB pin of the L9110S (Motor B) DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(MOTOR_A_IA_PIN, OUTPUT); pinMode(MOTOR_A_IB_PIN, OUTPUT); pinMode(MOTOR_B_IA_PIN, OUTPUT); pinMode(MOTOR_B_IB_PIN, OUTPUT); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_UP: Serial.println("MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } void CAR_moveForward() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_moveBackward() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, HIGH); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_turnRight() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_stop() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); }

Étapes rapides

  • Installez la bibliothèque DIYables_IRcontroller sur Arduino IDE en suivant cette instruction
  • Réalisez le câblage comme le montre le schéma ci-dessus.
  • Déconnectez le fil de la broche Vin sur l'Arduino car nous alimenterons l'Arduino via un câble USB lors du téléchargement du code.
  • Retournez la voiture à l'envers de sorte que les roues soient en haut.
  • Connectez l'Arduino à votre ordinateur à l'aide du câble USB.
  • Copiez le code fourni et ouvrez-le dans l'Arduino IDE.
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour transférer le code à l'Arduino.
  • Utilisez la télécommande IR pour faire avancer, reculer, tourner à gauche, à droite ou arrêter la voiture.
  • Vérifiez si les roues se déplacent correctement selon vos commandes.
  • Si les roues se déplacent dans le mauvais sens, inversez les fils du moteur à courant continu sur le module L9110S.
  • Vous pouvez également voir les résultats sur le moniteur série dans l'Arduino IDE.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Ln 11, Col 1
Arduino Uno on COM15
2
  • Si tout fonctionne correctement, déconnectez le câble USB de l'Arduino, et rebranchez le fil sur la broche Vin pour alimenter l'Arduino depuis la batterie.
  • Retournez la voiture en position normale avec les roues sur le sol.
  • Amusez-vous à contrôler la voiture !

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

Vous pouvez en apprendre davantage sur le code en consultant les tutoriels suivants :

Vous pouvez étendre ce projet en :

  • Ajout de capteurs d'évitement d'obstacles pour arrêter immédiatement la voiture si un obstacle est détecté.
  • Ajout d'une fonction pour contrôler la vitesse de la voiture (voir le tutoriel Arduino - Moteur à courant continu.). Le code fourni contrôle la voiture à pleine vitesse.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !