ESP8266 - Voiture

L'une des choses les plus cool à essayer lorsque vous commencez avec l'ESP8266 est de fabriquer une voiture robot. Dans ce guide, nous allons apprendre à utiliser l'ESP8266 pour construire une voiture robot et la contrôler avec une télécommande IR. Nous apprendrons à fabriquer une voiture robot Bluetooth dans un autre tutoriel.

Voiture télécommandée par IR

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×RC Car
1×L298N Motor Driver Module
1×IR Remote Controller Kit
1×CR2025 Battery (for IR Remote controller)
1×1.5V AA Battery (for ESP8266 and Car)
1×Jumper Wires
1×Breadboard
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de la voiture robot

Dans le contexte de l'ESP8266, la voiture robot est souvent appelée par différents noms tels que voiture robot, voiture RC, voiture télécommandée, voiture intelligente ou voiture DIY. Elle peut être contrôlée à distance sans aucun fil. Vous pouvez utiliser soit une télécommande spéciale qui utilise la lumière infrarouge, soit une application pour smartphone via Bluetooth ou WiFi. La voiture robot peut aller à gauche ou à droite et également avancer ou reculer.

Une voiture 2WD (Deux Roues Motrices) pour ESP8266 est un petit véhicule robotique que vous pouvez construire et contrôler à l'aide d'une carte ESP8266. Elle se compose généralement 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 l'interface entre l'ESP8266 et les moteurs. Elle reçoit les signaux de l'ESP8266 et fournit la puissance et le contrôle nécessaires aux moteurs.
  • Carte ESP8266 : 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 support de batterie, pour alimenter les moteurs et la carte ESP8266.
  • 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 éviter les obstacles, des capteurs de suivi de ligne), et plus encore.

Dans ce tutoriel, pour simplifier, nous utiliserons :

  • Kit voiture 2 roues motrices (incluant châssis, roues, moteurs, support de batterie)
  • Contrôleur de moteur L298N
  • Kit infrarouge IR (incluant télécommande IR et récepteur IR)

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

Comment ça marche

Voiture 2WD ESP8266 NodeMCU, comment cela fonctionne
  • L'ESP8266 se connecte aux moteurs à courant continu de la voiture robot via le module de commande de moteur L298N.
  • L'ESP8266 se connecte à un récepteur IR.
  • La batterie alimente l'ESP8266, les moteurs à courant continu, le contrôleur de moteur et le récepteur IR.
  • Les utilisateurs appuient sur les touches HAUT/BAS/GAUCHE/DROITE/OK de la télécommande IR.
  • L'ESP8266 reçoit les commandes HAUT/BAS/GAUCHE/DROITE/OK via le récepteur IR.
  • L'ESP8266 contrôle la voiture pour se déplacer en AVANT/ARRIÈRE/GAUCHE/DROITE/ARRÊT en contrôlant le moteur à courant continu via le contrôleur de moteur.

Diagramme de câblage

Schéma de câblage de la voiture 2WD ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Habituellement, cela nécessite deux sources d'énergie :

  • Un pour le moteur (indirectement via le module L298N).
  • Un autre pour la carte ESP8266, le module L298N et le récepteur IR.

Cependant, il existe une méthode pour simplifier cela en utilisant une seule source d'alimentation pour tout. Vous pouvez y parvenir en utilisant quatre piles de 1,5V (pour un total de 6V). Voici comment vous pouvez procéder :

  • Connectez les batteries au module L298N comme indiqué dans le schéma.
  • Placez deux cavaliers qui relient les broches ENA et ENB à 5 volts sur le module L298N.
  • Retirez un cavalier étiqueté 5VEN, qui est marqué d'un cercle jaune sur le schéma.
  • Effectuez le câblage restant comme le schéma ci-dessus.

Code ESP8266

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D1 // The ESP8266 pin connected to IR receiver #define IN1_PIN D2 // The ESP8266 pin connected to the IN1 pin L298N #define IN2_PIN D5 // The ESP8266 pin connected to the IN2 pin L298N #define IN3_PIN D6 // The ESP8266 pin connected to the IN3 pin L298N #define IN4_PIN D7 // The ESP8266 pin connected to the IN4 pin L298N DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); pinMode(IN3_PIN, OUTPUT); pinMode(IN4_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(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_moveBackward() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); } void CAR_turnRight() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); }

Étapes rapides

Pour commencer avec l'ESP8266 sur l'Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Connectez la carte ESP8266 à votre ordinateur via un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, telle que (par exemple, NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Installez la bibliothèque DIYables_IRcontroller sur Arduino IDE en suivant cette instruction
  • Réalisez le câblage comme le montre le diagramme ci-dessus.
  • Déconnectez le fil du Vin sur l'ESP8266 car nous alimenterons l'ESP8266 via le câble USB lors du téléchargement du code.
  • Retournez la voiture à l'envers pour que les roues soient en haut.
  • 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'ESP8266.
  • 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, échangez les fils du moteur à courant continu sur le module L298N.
  • Vous pouvez également voir les résultats sur le moniteur série dans l'Arduino IDE.
COM6
Send
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Si tout se passe bien, débranchez le câble USB de l'ESP8266, puis rebranchez le fil sur la broche Vin 5V. Cela alimentera l'ESP8266 depuis la batterie.
  • Remettez la voiture dans sa position normale avec les roues au 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 savoir plus 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 ESP8266 - moteur DC). Le code fourni contrôle la voiture à pleine vitesse.

Vidéo

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!