La voiture intelligente ACEBOTT ESP32 4WD est un robot mobile à assembler puis à programmer. Ce n’est pas une voiture télécommandée classique : le boîtier contient un châssis en pièces, quatre moteurs, quatre roues Mecanum, des capteurs et une carte ESP32 — celle-ci se programme depuis l’ordinateur, en langage C++ de l’IDE Arduino ou par blocs avec ACECode du fabricant.
Ce qui distingue ce kit d’une voiture à quatre roues ordinaire, ce sont ses roues Mecanum : des rouleaux obliques montés autour de chaque jante, qui transforment la rotation des moteurs en déplacement latéral et en rotation sur place. Le robot avance, recule, se décale sur le côté et pivote sans que le châssis ait besoin de braquer. Quatre modes de déplacement en découlent (avant, latéral, diagonal, rotation), ce qu’une voiture à roues droites ne sait pas faire.
La carte ESP32 apporte le Wi-Fi et le Bluetooth intégrés : la voiture peut créer son propre réseau et servir une page web, se piloter depuis l’application du fabricant, ou dialoguer avec un autre appareil. Le kit est livré avec un capteur à ultrasons monté sur une tête orientable par servomoteur, un capteur de suivi de ligne, un récepteur infrarouge avec sa télécommande, deux modules LED et un buzzer. Le fabricant fournit seize tutoriels progressifs, à partir de dix ans.
Caractéristiques techniques
| Produit | Kit robot voiture, série Explorer du fabricant ACEBOTT, référence QD001 — à assembler soi-même |
|---|---|
| Carte de commande | Carte ESP32 (ESP32-Max) : microcontrôleur double coeur, Wi-Fi et Bluetooth intégrés, port USB de programmation |
| Carte d’extension | Carte d’extension voiture du fabricant, empilée sur la carte ESP32 : elle rassemble les interfaces moteurs, servomoteurs, capteur à ultrasons, capteur de ligne, connecteurs trois broches et l’entrée d’alimentation |
| Propulsion | Quatre moteurs réducteurs à courant continu et quatre roues Mecanum d’environ 60 mm de diamètre, à rouleaux obliques |
| Capteurs | Capteur de distance à ultrasons, monté sur une tête orientable par servomoteur ; capteur de suivi de ligne ; récepteur infrarouge |
| Actionneurs et signalisation | Servomoteur SG90 pour la tête du capteur, deux modules LED, module buzzer |
| Pilotage à distance | Télécommande infrarouge fournie, application mobile du fabricant, page web servie par la voiture elle-même |
| Alimentation | Boîtier pour deux cellules 18650 avec son interrupteur. Les cellules ne font pas partie du coffret du fabricant : prévoyez-en deux, chargées |
| Programmation | IDE Arduino en C++, ou ACECode du fabricant en programmation par blocs. La carte ESP32 se programme par le port USB |
| Apprentissage | 16 tutoriels progressifs fournis par le fabricant, convenant à partir de 10 ans |
| Extensions prévues | Packs du fabricant qui s’ajoutent sur la même voiture : caméra, bras robotique, chenilles, panneau solaire, GPS, pince de tir, gant de détection de mouvement |
Ce que contient le coffret
| Électronique | La carte ESP32 et sa carte d’extension voiture, deux modules LED, un module buzzer, un récepteur infrarouge |
|---|---|
| Capteurs | Capteur de distance à ultrasons avec son support orientable, capteur de suivi de ligne |
| Mécanique | Plaques de châssis, quatre moteurs réducteurs, quatre roues Mecanum, quatre supports de moteur, entretoises et visserie |
| Commande | Télécommande infrarouge, servomoteur SG90 pour la tête à ultrasons |
| Alimentation | Boîtier pour deux cellules 18650 (cellules non fournies), interrupteur, câbles de liaison et nappe de fils |
| Documentation | Les seize tutoriels du fabricant, sous forme d’histoires progressives : montage, puis un programme par étape |
Les trois façons de piloter la voiture
Aucun interrupteur ne choisit le mode : c’est le programme embarqué qui décide. Le même châssis donne un robot différent selon le croquis téléversé.
- Télécommande infrarouge — la plus simple à mettre en oeuvre : le récepteur décode les codes envoyés par la télécommande, et le programme associe chaque flèche à un mouvement. Il faut rester en vue directe de la voiture, et le plein soleil peut gêner la réception.
- Application mobile du fabricant — la voiture se connecte en Bluetooth ou en Wi-Fi selon le firmware embarqué, et l’écran du téléphone sert de manette. Pratique pour montrer le robot sans rien programmer.
- Page web servie par la voiture — la carte ESP32 crée son propre réseau Wi-Fi et sert une page de commande. C’est le mode qui ouvre le plus de possibilités : on y ajoute une jauge de distance, l’état des capteurs de ligne, un curseur de vitesse, tout ce qui se calcule côté carte.
Deux comportements autonomes viennent s’y ajouter, comme exercices des tutoriels : le suivi de ligne, où le capteur du dessous compare une bande noire au sol clair, et l’évitement d’obstacle, où la tête à ultrasons balaie de droite à gauche pour choisir la direction la plus dégagée. Une dizaine de lignes de programme suffisent pour chacun.
Mini-projet : mettre la carte en service et lui faire servir une page de diagnostic
Écrire un programme qui fait rouler la voiture suppose d’attaquer le pilotage des moteurs, qui passe par la carte d’extension du fabricant (voir la section suivante). Avant d’en arriver là, la première étape utile est de vérifier que la carte répond, que le câble USB dialogue et que le Wi-Fi fonctionne — c’est-à-dire de donner à la voiture une page web à elle. Le programme ci-dessous se téléverse sur la carte seule, sans rien débrancher du faisceau, et rend une page lisible depuis n’importe quel téléphone.
Ce qu’il faut
| La voiture | Assemblée ou non, le programme ne touche pas aux moteurs ; la carte installée sur le châssis suffit |
|---|---|
| L’ordinateur | L’IDE Arduino, avec le support des cartes ESP32 installé par le gestionnaire de cartes |
| Le téléphone | Un navigateur, pour ouvrir la page servie par la voiture |
| Le câble | Le câble USB du kit, en données et pas seulement en charge |
Le câblage
Aucun câblage à ajouter, et c’est volontaire : le programme n’utilise que le microcontrôleur et sa liaison USB. C’est ce qui en fait un bon premier essai, puisque rien de ce qui est monté sur la voiture ne peut être mis en cause si quelque chose ne fonctionne pas.
Le programme
À copier dans l’IDE Arduino, puis à téléverser sur la carte ESP32 :
/*
* Diagnostic de la voiture ACEBOTT ESP32 4WD
* La carte cree son propre reseau Wi-Fi et rend une page de service en
* texte simple : modele du chip, frequence, memoire libre, duree de
* fonctionnement. Aucun fil a debrancher avant le televersement.
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "WiFi.h"
const char *RESEAU = "Voiture-ACEBOTT"; // nom du reseau cree par la carte
const char *CLE = "marocproduits"; // 8 caracteres au minimum
WiFiServer serveur(80);
unsigned long depart = 0;
void setup() {
Serial.begin(115200);
delay(300);
Serial.println();
Serial.println("== Voiture ACEBOTT ESP32 4WD ==");
Serial.print("Modele du chip : ");
Serial.println(ESP.getChipModel());
Serial.print("Coeurs : ");
Serial.println(ESP.getChipCores());
Serial.print("Frequence en MHz : ");
Serial.println(ESP.getCpuFreqMHz());
Serial.print("Memoire libre en octets : ");
Serial.println(ESP.getFreeHeap());
WiFi.softAP(RESEAU, CLE);
Serial.print("Reseau Wi-Fi cree : ");
Serial.println(RESEAU);
Serial.print("Adresse a ouvrir sur le telephone : ");
Serial.println(WiFi.softAPIP());
serveur.begin();
depart = millis();
}
void loop() {
WiFiClient client = serveur.available();
if (client == false) {
delay(20);
return;
}
unsigned long secondes = (millis() - depart) / 1000;
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/plain");
client.println("Connection: close");
client.println();
client.println("Voiture ACEBOTT ESP32 4WD : carte en service");
client.print("Modele du chip : ");
client.println(ESP.getChipModel());
client.print("Coeurs : ");
client.println(ESP.getChipCores());
client.print("Frequence en MHz : ");
client.println(ESP.getCpuFreqMHz());
client.print("Memoire libre en octets : ");
client.println(ESP.getFreeHeap());
client.print("Duree de fonctionnement en secondes : ");
client.println(secondes);
delay(5);
client.stop();
}Comment ça marche
ESP.getChipModel(),ESP.getChipCores(),ESP.getCpuFreqMHz()etESP.getFreeHeap()interrogent le microcontrôleur lui-même : le modèle de puce, le nombre de coeurs, la fréquence et la mémoire encore libre. C’est la façon la plus directe de savoir à quelle carte on parle, avant de soupçonner son programme.WiFi.softAP()fait de la voiture un point d’accès : elle crée un réseau à son nom, avec le mot de passe donné en deuxième argument. La bibliothèqueWiFi.hest fournie avec le support ESP32 de l’IDE Arduino : il n’y a rien à installer en plus.WiFi.softAPIP()rend l’adresse à saisir dans le navigateur du téléphone — c’est presque toujours celle du moniteur série qui s’affiche à l’écran. Une fois le téléphone connecté à ce réseau, ouvrir cette adresse suffit.- La réponse HTTP tient en trois lignes d’en-tête et un corps en texte simple : pas de page HTML à maintenir, et le navigateur affiche le résultat tel quel. Le contenu change à chaque appel, la durée de fonctionnement étant calculée au moment de la requête.
- Le
delay(20)de la boucle évite d’interroger le serveur des milliers de fois par seconde lorsque personne n’est connecté. Sans lui, la carte tourne à vide pour rien.
Pour aller plus loin
Trois prolongements simples, chacun réglable dans ce même programme. Changez le nom du réseau et le mot de passe à chaque essai, sinon le téléphone se reconnecte au réseau mémorisé et vous pilotez une autre carte. Ajoutez une ligne par grandeur utile : le niveau de la batterie, l’état d’un capteur, le nombre de requêtes reçues. Et remplacez la page en texte simple par une page de commande à quatre boutons, puisque l’ossature du serveur web est déjà écrite — il ne reste alors qu’à relier chaque bouton à la fonction de pilotage des moteurs.
Comment les moteurs sont pilotés sur cette voiture
Le point qui déroute le plus quand on écrit son premier programme : les quatre moteurs ne sont pas branchés directement sur les broches du microcontrôleur. Sur la carte d’extension de la voiture, le pilotage passe par un registre à décalage à huit sorties, commandé par trois fils seulement — données, horloge et verrouillage — plus une entrée de validation et une sortie de vitesse pour chacune des deux paires de moteurs. Un programme qui écrit digitalWrite sur une broche choisie au hasard ne fera donc jamais tourner une roue, même correctement téléversé.
La bonne méthode tient en trois étapes. Lire d’abord le brochage réel du montage, imprimé sur la carte d’extension de votre lot : les connexions diffèrent d’une révision de carte à l’autre. Écrire ensuite, dans le programme, une fonction unique qui prend une direction et une vitesse et envoie les huit bits au registre — c’est ce que fait le fabricant dans l’exemple fourni avec sa carte, à reprendre tel quel plutôt qu’à réinventer. Puis, pour la mécanique Mecanum, ne pas oublier que chaque roue a un sens direct qui lui est propre : un moteur monté en miroir sur le côté opposé fait dériver la voiture au lieu de la faire avancer. Le tableau de correspondance entre les huit bits du registre et les quatre moteurs se relève une fois, moteur par moteur, en posant la voiture sur le dos — cinq minutes de travail qui font gagner des heures d’essais.
Variante : commander la voiture depuis le navigateur du téléphone
Le programme du mini-projet ci-dessus sert une page en texte simple ; la variante utile consiste à y remplacer le corps de la réponse par des boutons, un par mouvement : avant, arrière, côté gauche, côté droit, rotation à gauche, rotation à droite. Chaque bouton appelle la fonction de pilotage écrite pour le registre à décalage, avec la vitesse choisie. Une pression = un départ, un relâchement = un arrêt : c’est cette dernière ligne qui compte le plus, sans elle la voiture continue tout droit dès que le doigt quitte l’écran.
Sur ce châssis précis, l’intérêt du pilotage latéral est réel : en combinant deux roues d’un côté en marche avant et les deux de l’autre en marche arrière, la voiture tourne sur place. Sur quatre roues droites, il faut avancer et reculer en plusieurs manoeuvres pour obtenir le même résultat. Le mode suivi de ligne et le mode évitement d’obstacle des tutoriels se posent ensuite sur la même fonction de pilotage, chacun avec quelques lignes de commande supplémentaires.
Questions fréquentes
Le téléversement échoue, que faire
Deux messages reviennent : « Failed to connect » et « Wrong boot mode detected ». Ils signalent que la carte n’est pas entrée en mode téléchargement. Le remède est mécanique : relier la broche repérée 00 (GPIO0) à la masse avec un fil de liaison, appuyer une fois sur le bouton de réinitialisation, lancer le téléversement, puis retirer le fil et réinitialiser à nouveau pour que le programme démarre. La manipulation disparaît dès qu’un programme est en place, le cycle suivant se faisant tout seul. Vérifiez aussi le câble USB : beaucoup de câbles ne véhiculent que l’alimentation, sans les données.
Faut-il des piles pour faire fonctionner la voiture
Oui, deux cellules 18650 dans le boîtier prévu par le kit, qui ne fait pas partie du coffret du fabricant. La programmation, elle, se fait par le câble USB : la voiture reste sur l’établi, l’ordinateur l’alimente. En revanche, une fois les quatre moteurs en marche, le port USB ne suffit plus à lui seul à fournir le courant demandé : c’est le boîtier à cellules qui alimente les moteurs, et les essais se font donc avec les cellules en place et chargées.
Les roues tournent dans le mauvais sens, comment corriger
C’est le cas le plus fréquent au premier montage. Deux corrections possibles, et il faut choisir l’une des deux, jamais les deux en même temps : inverser les deux fils du moteur concerné, ou corriger le sens dans la fonction de pilotage du programme. Faire les deux rétablit l’erreur d’origine. Sur une voiture Mecanum, ce réglage se fait voiture posée sur le dos, moteur par moteur, en notant pour chacun le sens obtenu à la marche avant.
Ce kit est-il différent du kit robot 4WD à carte Arduino
Oui, et le choix se fait sur ce que l’on veut apprendre. Le kit robot 4WD à carte Arduino se pilote par une carte UNO et une carte d’extension à connecteurs trois broches : chaque périphérique y occupe une broche identifiable, ce qui rend le câblage très lisible et le débogage direct. Cette voiture-ci part d’une carte ESP32 avec Wi-Fi et Bluetooth intégrés, de roues Mecanum et d’une bibliothèque graphique du fabricant : on y apprend le pilotage par registre à décalage, la desserte d’une page web depuis un microcontrôleur, et le déplacement omnidirectionnel. Le premier convient pour comprendre les entrées-sorties, le second pour aller vers l’objet connecté.
Peut-on ajouter d’autres capteurs à la voiture
Oui : la carte d’extension porte des connecteurs trois broches libres en plus des interfaces dédiées aux moteurs, à la tête à ultrasons et au capteur de ligne, et le fabricant vend des packs d’extension qui se montent sur le même châssis. L’ESP32 a de plus l’avantage de disposer de connexions I2C, ce qui permet d’ajouter plusieurs modules sur deux fils seulement, sans multiplier le câblage — et d’échapper ainsi à la limite du nombre de broches libres une fois tous les périphériques du kit en place.
À combiner avec
Deux cellules 18650 rechargeables et un chargeur avec ses deux cellules complètent la voiture dès le premier jour, puisqu’elles ne font pas partie du coffret du fabricant : avoir un jeu chargé d’avance évite d’interrompre une séance d’essais. Côté mécanique, le support de moteur TT est la pièce qui reçoit chaque moteur réducteur sur le châssis, et un moteur avec sa roue dépanne si un axe a souffert contre un mur. Côté capteurs, le capteur à ultrasons HC-SR04 se remplace à l’identique, et une télécommande infrarouge vendue avec son récepteur remet la voiture en état de marche si celle du kit est perdue — en relevant les codes une fois avec le moniteur série, car ils diffèrent d’un modèle à l’autre. Enfin, une carte ESP32 seule permet de préparer et de tester un programme sur l’établi pendant que la voiture reste montée, et le servomoteur SG90 est le remplaçant direct de celui qui oriente la tête à ultrasons.














Avis
Il n’y a pas encore d’avis.