La voiture robotique à quatre roues motrices de cette fiche est une base roulante livrée montée : quatre motoréducteurs à courant continu fixés sur une platine en acrylique transparent, chacun avec sa roue à jante jaune et son pneu en caoutchouc cranté. Elle ne se pilote pas toute seule et ne contient aucune électronique — la mécanique est faite, c’est la commande et le programme qui restent à ajouter.
Elle sert de châssis à tous les projets de robotique d’initiation : véhicule piloté depuis un ordinateur ou un téléphone, suiveur de ligne, éviteur d’obstacles, ou simple plateforme d’essai lorsqu’on veut étudier la commande des moteurs sans se préoccuper du train roulant. Quatre roues motrices plutôt que deux, c’est une question de manœuvre : le robot tourne sur place, sans roue folle, et il garde de la motricité sur un sol irrégulier. C’est aussi deux fois plus de courant à fournir, et une dérive à corriger dès que le programme demande d’aller droit.
Ce que contient le lot
| Le châssis | Platine en acrylique transparent percée, avec ses trous de fixation et ses évidements. Le lot est livré monté, comme sur la photo du produit : les moteurs sont en place et les roues emmanchées. |
|---|---|
| Les motoréducteurs | Quatre moteurs à courant continu à boîtier réducteur jaune, du format le plus répandu de la robotique d’initiation. Chaque moteur est fixé à la platine par son support, la roue étant montée sur son axe de sortie. |
| Les roues | Quatre roues à jante plastique jaune et pneu en caoutchouc cranté, emmanchées sur l’axe à méplat de chaque moteur. |
| La visserie | Vis, écrous et entretoises métalliques du montage, pour l’assemblage des plaques entre elles et la fixation des moteurs. |
| Ce qui n’est pas fourni | Ni carte de commande, ni module de pilotage des moteurs, ni alimentation, ni capteurs : la photo ne montre que la partie mécanique. La boutique vend chaque pièce séparément, les liens se trouvent dans les sections qui suivent. |
Caractéristiques techniques
| Base roulante | Châssis à quatre roues motrices, un motoréducteur par roue, sans roue folle ni organe de direction |
|---|---|
| Motoréducteurs | Moteurs à courant continu à balais avec réducteur à engrenages en boîtier plastique jaune ; plage d’alimentation usuelle de cette famille : 3 à 6 V continus, la vitesse augmentant avec la tension |
| Roues | Jante plastique jaune et pneu caoutchouc cranté, emmanchées sur l’axe de sortie à méplat. Une roue de ce format est vendue seule comme rechange. |
| Châssis | Plaque en acrylique transparent percée, à trous de fixation réguliers permettant de visser cartes, modules et supports |
| Direction | Aucune direction mécanique : le cap se change en faisant tourner les moteurs de gauche et de droite dans des sens différents, ou à des vitesses différentes |
| Commande des moteurs | Pont en H obligatoire — la carte fournit le signal, le module fournit le courant |
| Alimentation | Un pack dédié aux moteurs, avec masse commune avec la carte. Ni le port USB ni la sortie 5 V de la carte ne peuvent alimenter quatre moteurs |
| Retour de position | Aucun : ni codeur, ni roue codeuse, ni fin de course. Rien ne dit à la carte à quelle vitesse ni de combien les roues ont tourné |
| Programmation | IDE Arduino, langage C++ ; aucun pilote à installer, les sorties se commandent directement en numérique et en PWM |
| Assemblage | Livré monté. Les deux fils d’alimentation de chaque moteur sont soit déjà soudés sur leurs plots, soit à souder, selon le lot : vérifier à la réception avant de tout remonter |
Quatre roues motrices : ce que cela change
Sur une base à deux roues motrices, il faut une troisième roue libre — et c’est elle qui commande le comportement du robot. Il tourne autour d’elle, ce qui le fait pivoter vers l’extérieur du virage, et elle bute sur le moindre obstacle du sol. Avec quatre roues motrices, les deux trains se répondent : en faisant avancer un côté pendant que l’autre recule, le robot pivote autour de son propre centre, sur place, sans avancer d’un centimètre.
- La motricité est répartie — chaque moteur ne fournit que la moitié de l’effort demandé à un côté, ce qui passe beaucoup mieux un tapis épais, un seuil ou une petite pente.
- Le courant demandé double — quatre moteurs au lieu de deux. C’est la conséquence à retenir : elle décide du pack d’alimentation et du nombre de modules de pilotage, bien plus que la mécanique elle-même.
- La trajectoire dérive — deux moteurs du même modèle ne tournent jamais exactement à la même vitesse, et les roues n’ont pas forcément le même appui. Sans mesure de la rotation, un robot à quatre roues motrices part en crabe sur quelques mètres : la correction se fait dans le programme, par un réglage de vitesse séparé pour chaque côté, ou par la lecture d’un capteur de vitesse à fourche infrarouge monté sur un axe.
De la mécanique à la commande : le pont en H
Une sortie de microcontrôleur fournit quelques dizaines de milliampères, un moteur de ce format en réclame plusieurs centaines et bien davantage au démarrage. Les fils d’un moteur ne vont donc jamais sur une broche de la carte : ils passent par un étage de puissance, le pont en H, qui inverse le sens du courant — donc le sens de rotation — et hache la tension pour doser la vitesse.
Deux montages conviennent à ce châssis. Un module L298N pilote deux moteurs à courant continu : il en faut deux pour quatre roues, ou bien un seul shield moteur L293D, qui en pilote quatre et se pose directement sur la carte Arduino. Dans les deux cas, il faut relier la masse du module à celle de la carte, sans quoi le module ne reçoit aucun ordre exploitable.
Deux moteurs branchés en parallèle sur une même sortie de module, c’est le raccordement le plus rapide, mais le courant des deux moteurs traverse alors le même étage du module, qui chauffe. Une sortie par moteur — donc deux modules, ou un shield — est le montage qui tient dans le temps.
Monter et vérifier le châssis
| Les roues | Appuyer chaque roue à fond sur son axe, bien droite. Une roue enfoncée de biais force sur les engrenages plastiques du réducteur, et c’est la pièce qui casse en premier. Ne pas frapper dessus : pousser à la main suffit. |
|---|---|
| Les vis | Reprendre la visserie une par une : une vis laissée desserrée suffit à faire prendre du jeu au train roulant et à dérégler la trajectoire. Une vis M3 de 10 mm avec son écrou remplace celles qui se sont perdues au démontage. |
| Les quatre paires de fils | Repérer les deux paires de gauche et les deux paires de droite avant de les visser dans les bornes du module : une paire croisée avec l’autre côté donne un robot qui tourne au lieu d’avancer, et deux moteurs d’un même côté inversés se combattent. |
| La platine | Vérifier qu’elle n’est pas voilée : posée sur une table, les quatre roues doivent la toucher. Une plaque tordue fait rouler le robot sur trois roues et fausse tout réglage de trajectoire. |
| Le logement de la carte | La platine est percée régulièrement : la carte Arduino et le module de pilotage s’y vissent directement, à l’écart des roues pour ne rien toucher en roulant. |
Mini-projet : piloter la voiture depuis le moniteur série
Objectif : une voiture complète, pilotée au clavier depuis l’ordinateur, sans télécommande ni module radio. Le programme prend cinq ordres — avancer, reculer, pivoter à gauche, pivoter à droite, arrêter — et deux touches pour la vitesse. C’est l’essai qui valide toute la mécanique et le câblage avant d’ajouter le moindre capteur.
Ce qu’il faut
| La base | Le châssis de cette page, ses quatre moteurs et ses quatre roues |
|---|---|
| Le cerveau | Arduino Uno R3 avec son câble USB |
| L’étage de puissance | Un module de pont en H double : L298N ou shield L293D, selon le montage retenu |
| L’énergie | Un support de piles 4 × AA 6 V et ses piles, dédié aux moteurs et distinct de l’alimentation de la carte |
| Les liaisons | Six fils Dupont entre la carte et les entrées du module, plus les huit fils des moteurs |
Le câblage
Chaque côté du robot est traité comme un seul moteur : les deux moteurs de gauche sont vissés en parallèle sur la même sortie de pont, ceux de droite sur la seconde. Les bornes de sortie du module sont repérées OUT1 et OUT2 pour le premier pont, OUT3 et OUT4 pour le second.
Module 12V | Le + du support de piles 6 V |
|---|---|
Module GND | Le 0 V du support de piles et une broche GND de la carte : les deux masses sont communes |
Module 5V | Broche 5V de la carte, cavalier du régulateur retiré : l’alimentation des moteurs étant inférieure à 7 V, la logique du module est alimentée par la carte |
Module ENA | Broche D9 — vitesse du côté gauche, sortie PWM |
Module IN1, IN2 | Broches D8 et D7 — sens du côté gauche |
Module ENB | Broche D6 — vitesse du côté droit |
Module IN3, IN4 | Broches D5 et D4 — sens du côté droit |
OUT1, OUT2 | Les deux moteurs de gauche, en parallèle, dans le même ordre de fils |
OUT3, OUT4 | Les deux moteurs de droite, en parallèle, dans le même ordre de fils |
Un moteur qui tourne à l’envers pour un ordre d’avance s’inverse en permutant ses deux fils sur sa borne : c’est la seule reprise à faire, et elle se fait moteur par moteur, car rien n’impose un sens à un moteur à courant continu.
Le programme
À téléverser dans l’IDE Arduino, puis à essayer en ouvrant le moniteur série réglé sur 9600 bauds :
/*
* Voiture robotique a quatre roues motrices : pilotage depuis le moniteur serie
* Carte : Arduino Uno R3
* Cablage : ENA D9, IN1 D8, IN2 D7 pour le cote gauche
* ENB D6, IN3 D5, IN4 D4 pour le cote droit
* Les deux moteurs d un meme cote sont branches en parallele sur les bornes
* de sortie de leur pont : OUT1 et OUT2 a gauche, OUT3 et OUT4 a droite.
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const byte ENA = 9; // vitesse du cote gauche, sortie PWM
const byte IN1 = 8; // sens du cote gauche
const byte IN2 = 7;
const byte ENB = 6; // vitesse du cote droit, sortie PWM
const byte IN3 = 5; // sens du cote droit
const byte IN4 = 4;
int vitesseGauche = 170; // entre 0 et 255
int vitesseDroite = 170; // a baisser d un cote si le robot tire de ce cote
void setup() {
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.begin(9600);
Serial.println("Voiture 4 roues : a avancer, r reculer, g et d pivoter");
Serial.println("s arreter, plus et moins pour la vitesse");
}
/* Un cote du robot : le pont est mis dans un sens ou dans l autre,
puis la sortie PWM fixe la vitesse de ce cote. */
void cote(bool avant, byte ena, byte entreeA, byte entreeB, int vitesse) {
if (avant) {
digitalWrite(entreeA, HIGH);
digitalWrite(entreeB, LOW);
} else {
digitalWrite(entreeA, LOW);
digitalWrite(entreeB, HIGH);
}
analogWrite(ena, vitesse);
}
void avancer() {
cote(true, ENA, IN1, IN2, vitesseGauche);
cote(true, ENB, IN3, IN4, vitesseDroite);
}
void reculer() {
cote(false, ENA, IN1, IN2, vitesseGauche);
cote(false, ENB, IN3, IN4, vitesseDroite);
}
/* Pivoter sur place : un cote avance pendant que l autre recule. */
void pivoter(bool versLaDroite) {
if (versLaDroite) {
cote(true, ENA, IN1, IN2, vitesseGauche);
cote(false, ENB, IN3, IN4, vitesseDroite);
} else {
cote(false, ENA, IN1, IN2, vitesseGauche);
cote(true, ENB, IN3, IN4, vitesseDroite);
}
}
void arreter() {
analogWrite(ENA, 0);
analogWrite(ENB, 0);
}
void loop() {
if (Serial.available() == 0) return;
char touche = Serial.read();
if (touche == 'a') {
avancer();
Serial.println("Avancer");
} else if (touche == 'r') {
reculer();
Serial.println("Reculer");
} else if (touche == 'g') {
pivoter(false);
Serial.println("Pivoter a gauche");
} else if (touche == 'd') {
pivoter(true);
Serial.println("Pivoter a droite");
} else if (touche == 's') {
arreter();
Serial.println("Arret");
} else if (touche == '+') {
// min() borne la vitesse haute sans signe de comparaison a ecrire
vitesseGauche = min(vitesseGauche + 25, 255);
vitesseDroite = min(vitesseDroite + 25, 255);
Serial.print("Vitesse : ");
Serial.println(vitesseGauche);
} else if (touche == '-') {
vitesseGauche = max(vitesseGauche - 25, 0);
vitesseDroite = max(vitesseDroite - 25, 0);
Serial.print("Vitesse : ");
Serial.println(vitesseGauche);
}
}Comment ça marche
- Chaque côté du robot est commandé par deux broches de sens et une broche de vitesse. Les broches de sens croisent le courant dans le pont, la sortie PWM fixe la tension moyenne envoyée au moteur : 255 laisse tout passer, 128 la moitié.
- Le pivot utilise l’avantage des quatre roues motrices : un côté avance, l’autre recule, et le robot tourne autour de son centre. Aucune roue libre n’est nécessaire, et rien ne frotte par terre.
- La vitesse prend effet au mouvement suivant : après avoir appuyé sur
+ou-, il faut redonner un ordre d’avance ou de recul pour rouler à la nouvelle vitesse. - Les caractères de fin de ligne que le moniteur série ajoute en fin de message ne déclenchent aucune branche : le programme les ignore, et les répétitions d’appui sur Entrée restent sans effet.
- Le module chute de 1 à 2 V entre son alimentation et les moteurs. Un pack de 6 V leur délivre donc une tension un peu plus faible — sans conséquence ici, sinon une vitesse réelle inférieure à ce que la consigne laisse croire.
Le calibrage : faire aller le robot droit
C’est le réglage qui décide de l’usage réel du robot. Tracer une ligne au sol sur deux mètres, poser la voiture à une extrémité, lancer une avance en ligne droite, mesurer l’écart entre la ligne et la trajectoire obtenue. La correction se fait sur vitesseDroite : si le robot tire à gauche, c’est que le côté droit va moins vite, on baisse la variable du côté gauche ou l’on remonte celle du côté droit, par pas de cinq, jusqu’à ce que l’écart tienne dans la largeur du châssis sur deux mètres. Notes les deux valeurs atteintes : elles remplacent les 170 de départ, et tout le reste du programme en hérite.
Variante : sans fil, ou avec les yeux
Le même châssis, sans autre modification, sert de support à trois évolutions classiques :
- Pilotage par téléphone — un module Bluetooth série HC-05 se branche sur les broches de port série de la carte et remplace le moniteur série : les mêmes lettres arrivent alors d’une application de terminal, depuis un téléphone, à plusieurs mètres. Débrancher le module avant chaque téléversement, il occupe les broches du port série.
- Évitement d’obstacles — un capteur à ultrasons HC-SR04 fixé à l’avant mesure la distance et fait tourner le programme sur lui-même lorsqu’un obstacle se présente : arrêt des moteurs, pivot, avance. Le châssis étant percé régulièrement, le capteur se visse sur ses entretoises sans perçage supplémentaire.
- Trace d’un carré — sans aucun capteur, quelques lignes de plus suffisent à enchaîner avance et pivot. Le programme ne connaît ni distance ni angle : il compte des durées, que l’on relève à la montre puis que l’on écrit en constantes. Une seconde d’avance et un demi-tour calibré donnent le premier carré ; les virages se referment en corrigeant ces deux valeurs de quelques pour cent.
Questions fréquentes
Combien de modules de pilotage pour quatre moteurs ?
Un module L298N commande deux moteurs : il en faut donc deux, un par côté, à moins d’utiliser un shield L293D qui en pilote quatre sur une seule carte. Les deux modules partagent la même alimentation moteur et la même masse avec la carte. Réserver à chaque côté deux broches de sens et une broche de vitesse permet de corriger le cap indépendamment de l’autre côté.
Le robot tire d’un côté au lieu d’aller droit
C’est normal, et ce n’est pas un défaut du châssis : deux moteurs de ce format ne tournent jamais exactement à la même vitesse, et les quatre roues n’ont pas le même appui. La correction se fait dans le programme, en baissant la vitesse du côté qui va trop vite. Si l’écart reste important malgré le réglage, vérifier d’abord qu’aucune roue n’est enfoncée de biais et qu’aucune vis du train roulant n’est desserrée, puis qu’un moteur ne force pas : un réducteur qui a pris du jeu ou une roue voilée se remplacent.
Peut-on alimenter les moteurs depuis le port USB ?
Non. Un port USB fournit environ 500 mA, dont la carte consomme déjà une partie, alors que quatre moteurs appellent bien davantage et tirent une pointe au démarrage. Le symptôme est net : la carte redémarre en boucle dès que les moteurs sont commandés, le moniteur série affiche à nouveau son message d’accueil. L’alimentation des moteurs passe par un pack dédié, masse commune avec la carte.
Faut-il souder les fils des moteurs ?
Cela dépend du lot : sur cette famille de moteurs, les deux fils sont soit déjà soudés sur leurs plots, soit livrés séparés et à souder. Vérifier à la réception, avant de remonter le châssis, et repérer au passage la couleur des fils de chaque côté — c’est ce repérage qui évite de croiser les deux trains au moment du branchement sur le module.
Le châssis arrive-t-il monté ?
Oui : la photo du produit montre le lot tel qu’il est livré, moteurs et roues en place, avec sa visserie. Rien n’est électronique : ni carte, ni module de pilotage, ni alimentation, ni capteur. Le démontage partiel reste possible pour reprendre une vis ou remplacer une roue, la platine et la visserie étant prévues pour être assemblées et désassemblées.
Quelle différence avec la version à deux roues ?
La version à deux roues motrices est plus légère, consomme moins et coûte moins cher à équiper, mais elle tourne autour de sa roue libre et grimpe moins bien. La version quatre roues pivote sur place et passe mieux les sols irréguliers, mais elle demande un pack d’alimentation plus généreux et, le plus souvent, un second module de pilotage.
À combiner avec
La pièce qui souffre en premier sur ce type de châssis est le train roulant : un moteur réducteur avec sa roue se garde d’avance et remplace en quelques minutes un moteur dont les engrenages ont lâché. Pour l’alimentation, un support de deux batteries 18650 avec interrupteur et connecteur remplace le porte-pile à piles jetables sur un robot qui sert souvent, à condition que le module de pilotage accepte la tension obtenue.
Si l’objectif est d’avoir un robot complet et fonctionnel sans réunir les pièces une à une, le kit robot 4WD IR Bluetooth multi-fonctions réunit la même mécanique avec sa carte de commande, ses capteurs, sa télécommande et sa connectique : il convient mieux à un premier montage, le châssis de cette page restant la base à privilégier lorsqu’on veut choisir soi-même chaque élément de la commande.
Les autres bases roulantes et modules de cette famille se trouvent dans packs, kits et robots et dans robot.










