Parcours d'apprentissageDébutant

Commande des moteurs pour robots : un parcours d'apprentissage

Pilotez deux moteurs avec une vitesse et une direction précises, mesurez leur rotation et dirigez un robot à entraînement différentiel.

Les moteurs sont l’endroit où les décisions d’un robot deviennent du mouvement. Ce parcours construit la commande des moteurs depuis la base : d’abord commuter un vrai courant moteur en sécurité avec un pont en H et la PWM, puis boucler en lisant les codeurs pour savoir de combien et à quelle vitesse chaque roue a tourné, et enfin combiner deux roues en direction et en odométrie à entraînement différentiel.

Parcourez les nœuds dans l’ordre — chacun déverrouille le suivant une fois accompli. À la fin, vous commandez les roues d’un robot avec une précision réelle, fondation du suivi de ligne, de la résolution de labyrinthes et de la navigation autonome.

Avant de commencer

Vous devez être à l’aise pour câbler une platine d’essai et lire une tension, et vous avez besoin d’un microcontrôleur que vous savez déjà programmer — un Arduino Uno est le choix habituel. Aucune théorie de la commande n’est requise ; c’est l’objet du parcours PID, et celui-ci attend celui-là en premier.

Ce que vous saurez faire

  • Piloter un moteur à courant continu à balais dans les deux sens à une vitesse commandée, sans que le pilote ni la carte chauffent.
  • Expliquer pourquoi un moteur reste immobile à 15 % de rapport cyclique et démarre à 30 %, et mesurer ce seuil sur votre propre matériel au lieu de le deviner.
  • Convertir des impulsions brutes de codeur en millimètres parcourus et en millimètres par seconde, y compris en appliquant correctement le facteur ×4 de la quadrature.
  • Convertir « pivot à gauche de 90° » en vitesses de roues gauche et droite, et prédire où le robot se retrouve à partir du seul mouvement des roues.
  • Dimensionner un moto-réducteur à partir de la masse et des roues de votre propre robot, plutôt que d’acheter celui du kit et de découvrir le problème sur la moquette.
  • Mesurer le jeu de votre réducteur en degrés, et dire ce qu’il coûte à votre odométrie.
  • Calculer la plus grande force que votre robot peut exercer sur le sol, et dire si ce sont les moteurs ou les pneus qui vous limitent.

Où l’on se heurte

Alimenter les moteurs depuis le rail 5 V du contrôleur. C’est la panne la plus fréquente sur un premier robot. Le régulateur ne peut pas fournir le courant moteur, donc le rail s’affaisse, la carte redémarre par sous-tension, et le symptôme ressemble à un bogue logiciel. Les moteurs ont leur propre alimentation ; seul le côté logique du pilote partage le 5 V de la carte — la page sur le budget d’alimentation donne le calcul et la mesure.

Pas de masse commune. Le pilote et le contrôleur doivent partager une référence de masse, sinon les broches de direction ne veulent rien dire. Tout semble correctement câblé et rien ne bouge.

S’attendre à ce que l’odométrie reste vraie. L’odométrie à roues dérive sans limite — chaque glissement et chaque millimètre d’erreur sur le diamètre des roues s’accumulent sans jamais être corrigés. Elle est excellente sur un mètre et sans valeur sur cent. Cette limitation est la raison d’être du parcours de cartographie.

Compter les fronts du codeur de façon incohérente. Un codeur en quadrature fournit quatre fronts comptables par cycle. N’en compter qu’un en utilisant le chiffre ×4 de la fiche technique fausse chaque distance d’un facteur quatre, ce qui se lit comme une roue follement mal étalonnée.

Accuser le contrôleur pour le réducteur. Une erreur qui change de signe avec la direction est mécanique, pas une faute de réglage. Un train d’engrenages a du jeu, il est prélevé une fois à chaque inversion, et un codeur monté sur l’arbre moteur ne voit rien de tout cela.

Ce qu’il vous faut

Quoi Pourquoi ce parcours en a besoin Notes
Deux moto-réducteurs à courant continu L’objet de tout le parcours Les versions avec codeurs coûtent un peu plus cher et évitent une reconstruction ultérieure
Un pilote de moteur Un pont en H, pour qu’une broche logique commande un courant moteur L298N s’il était dans le kit, TB6612FNG si vous achetez
Une batterie moteur séparée Le rail que les moteurs font s’affaisser ne doit pas être celui qui alimente la carte Tout pack capable de fournir le courant de blocage
Un multimètre Mesurer le courant de blocage et l’affaissement de l’alimentation Le mode courant compte ici, pas seulement les volts
Un mètre ruban Vérifier que « avancer de 1 m » a produit 1 m L’instrument le moins cher et le plus honnête de l’établi

Pourquoi le parcours suit cet ordre

Le dimensionnement vient avant le câblage à dessein. Presque toutes les questions « mon robot est trop lent » ou « mon pilote a grillé » sont des décisions de dimensionnement prises par accident, des mois plus tôt, en utilisant le moteur fourni dans la boîte. Calculer le couple dont votre propre robot a besoin prend vingt minutes et règle des questions que le reste du parcours soulèverait sans cesse.

La traction vient juste après le dimensionnement parce qu’elle fixe le second plafond, et sur un petit robot c’est le plus bas des deux. Le couple de blocage dit ce que le moteur peut produire ; le frottement dit ce que le sol accepte. Un robot léger sur un sol lisse atteint la limite d’adhérence à environ un quart du couple de blocage, ce qui signifie que les trois derniers quarts de la capacité de votre moteur n’atteignent jamais le sol. Dimensionner sans la traction donne un robot fort sur le papier qui patine en pratique.

La PWM vient avant les codeurs parce qu’un moteur en boucle ouverte est la chose la plus simple qui puisse être fausse, et qu’il est bien plus facile de diagnostiquer un défaut de câblage sans boucle de commande par-dessus. Faites d’abord tourner les deux roues dans les deux sens à un rapport cyclique commandé.

Les codeurs viennent avant l’entraînement différentiel parce que l’entraînement différentiel est de l’arithmétique au-dessus d’un mouvement de roues mesuré. Sans codeurs vous pouvez diriger, mais vous ne pouvez pas dire où le robot est allé, et la moitié odométrie de ce nœud n’a rien à traiter.

Les profils et les deux nœuds de pertes viennent en dernier parce que chacun corrige quelque chose que les nœuds précédents vous laissaient croire. Les profils de mouvement corrigent l’idée qu’on peut commander une position directement. Le glissement des roues corrige l’idée que le codeur mesure le sol. Le jeu corrige l’idée que le codeur mesure la roue. Les trois sont des déceptions, et les trois coûtent moins cher à apprendre ici que sur un robot que vous essayez de terminer.

Étapes : comment savoir qu’une étape est acquise

Étape Le test Ce à quoi ressemble la réussite
Dimensionnement du moteur Calculez le couple requis à partir de la masse de votre robot, du rayon des roues et de l’accélération visée Un nombre en N·m comparable à une fiche technique — et vous connaissez le courant de blocage de votre moteur
Limite d’adhérence Maintenez le robot immobile contre un pèse-personne de cuisine à plein régime La lecture plafonne bien sous la force de blocage du moteur, et les roues tournent
Commande PWM Balayez le rapport cyclique de 0 à 255 par paliers de 5 sur chaque roue Vous pouvez nommer le rapport où chaque roue commence à tourner, et les deux nombres diffèrent
Commande de direction Commandez marche avant, marche arrière et freinage sur les deux canaux Les six états se comportent, et vous pouvez expliquer ce que le freinage fait différemment de la roue libre
Codeurs Poussez le robot à la main sur exactement 1 m et lisez les comptes Les comptes se convertissent en 1000 mm ± 20 mm, avec le facteur ×4 de la quadrature
Entraînement différentiel Commandez un pivot de 90°, mesurez au rapporteur À quelques degrés près, et répétable — une erreur constante vient du jeu, une aléatoire du glissement
Profils de mouvement Commandez un mouvement court et un long avec les mêmes limites Le mouvement court n’atteint jamais la vitesse maximale, et vous pouvez le justifier par la forme du profil
Jeu Tournez la roue à la main jusqu’au point de résistance dans chaque sens Vous avez un nombre en degrés, et il n’est pas nul

Où ce parcours s’arrête

Ce parcours s’arrête à commander le mouvement avec précision. Il ne boucle pas autour d’un objectif externe — pas de ligne à suivre, pas de mur à longer, pas de consigne vers laquelle converger. C’est la commande PID, et elle suppose tout ce qui précède.

Trois omissions délibérées à nommer. Les moteurs sans balais et leurs contrôleurs sont un autre problème de commande, et presque aucun petit robot terrestre n’en a besoin. Les moteurs pas à pas échangent le codeur contre une position en boucle ouverte, au prix du couple et de la vitesse — le bon compromis pour une imprimante et le mauvais pour un rover — et ils ont leur propre parcours dans mouvement de précision avec pas à pas. Les transmissions holonomes — roues mecanum et omni qui peuvent aller de côté — exigent quatre roues commandées indépendamment et une autre cinématique, avec leur propre parcours dans transmission holonome. Et la mesure de courant — mesurer ce que le moteur consomme réellement plutôt que ce que vous avez commandé — est la façon professionnelle de détecter un blocage, et elle est vraiment utile, mais elle exige un matériel que la plupart des pilotes de démarrage n’ont pas.

Parcours d'apprentissage

Le parcours

Suivez les nœuds dans l'ordre — chacun débloque le suivant une fois terminé. Votre progression est enregistrée sur cet appareil.

0 / 13 terminés

100%
Tutoriel

Commander des moteurs à courant continu en PWM avec un pont en H

Tutoriel

Ouvrir le tutoriel
Tutoriel

Mesurer la distance et la vitesse avec des codeurs

Tutoriel

Ouvrir le tutoriel
Objectif

Piloter un robot avec précision

Compétence débloquée

Questions courantes

Questions fréquentes

Que faut-il apprendre pour commander les moteurs d'un robot ?

Quatre couches, dans l'ordre. D'abord, le dimensionnement : convertir la masse de votre robot et le diamètre de ses roues en couple et en régime réellement nécessaires, pour choisir le moteur au lieu d'hériter de celui du kit. Ensuite, la commutation : un pont en H et la PWM, qui permettent à une broche logique de commander un courant qu'elle ne pourrait jamais fournir. Puis, la mesure : un codeur, pour que le robot sache de combien chaque roue a tourné au lieu de le supposer. Enfin, la combinaison : l'entraînement différentiel, qui convertit deux vitesses de roues en cap et en position. Tout le reste — suivi de ligne, PID, navigation — repose sur ces quatre couches.

Pourquoi mon moteur ne bouge-t-il pas avant environ 30 % de rapport cyclique PWM ?

Le frottement statique et le collage du réducteur doivent être vaincus avant que quoi que ce soit tourne, et sous ce seuil le moteur reste immobile en bourdonnant. Cette valeur est une propriété de votre matériel — rapport de réduction, état des paliers, température et charge sur les roues — et elle doit donc être mesurée, pas cherchée dans un tableau. Augmentez le rapport cyclique par paliers de 5 et notez où chaque roue commence à tourner. Les robots ont souvent deux seuils différents, un par côté, et un robot qui dérive à basse vitesse vous montre généralement cette différence plutôt qu'un défaut de direction.

Quelle est la précision de l'odométrie à roues ?

Excellente sur un mètre et sans valeur sur cent. L'odométrie intègre le mouvement des roues, donc chacune de ses erreurs est définitive — aucune mesure ne vient jamais la corriger. Le glissement aléatoire croît comme la racine carrée de la distance, ce qui reste supportable, mais une erreur systématique comme un diamètre de roue faux de 1 % croît linéairement, ce qui ne l'est pas. En pratique, l'odométrie est le bon outil pour fermer une boucle de commande sur les prochaines secondes, et le mauvais pour savoir où vous êtes après cinq minutes.

L298N ou TB6612FNG — quel pilote de moteur choisir ?

Le TB6612FNG pour presque tout petit robot. Son étage de sortie à MOSFET ne perd qu'environ 0,5 V contre à peu près 2 V pour le L298N, et sur un moteur en 6 V cette différence représente un tiers de votre alimentation dissipé en chaleur avant même d'atteindre le moteur. Le L298N garde sa place quand il faut plus d'environ 1,2 A par canal en continu, ou quand l'alimentation moteur dépasse la limite de 13,5 V du TB6612FNG. C'est aussi ce que la plupart des kits fournissent, donc il vaut la peine d'être bien connu même si vous le remplacez.

Faut-il des codeurs sur un robot de débutant ?

Pas pour un suiveur de ligne, qui se dirige d'après son capteur de ligne et n'a jamais besoin de savoir quelle distance il a parcourue. Il vous les faut dès que le robot doit parcourir une distance définie, tourner d'un angle défini, ou tenir une vitesse qui ne s'affaisse pas quand la batterie baisse ou que la moquette s'épaissit. Un robot labyrinthe a besoin de codeurs ; un premier suiveur de ligne, non. Les ajouter plus tard implique de changer de moteurs, donc si vous pensez y arriver, achetez d'emblée des moteurs déjà équipés de codeurs.

Pourquoi les rotations de mon robot dépassent-elles toujours la consigne du même angle ?

Une erreur constante qui change de signe avec la direction est mécanique, pas un problème de réglage. Tout train d'engrenages a du jeu — une course libre à rattraper avant que la sortie bouge — et il est prélevé une fois à chaque inversion. Un codeur monté sur l'arbre moteur se trouve du mauvais côté du réducteur et ne voit rien de tout cela, donc le contrôleur croit le mouvement terminé. Mesurez le jeu en degrés à la roue, et compensez-le dans le logiciel ou cessez d'inverser le sens en cours de mouvement.