Aller au contenu

Moteurs pas à pas VS moteur cc avec codeur

Moteurs pas à pas VS moteur cc avec codeur

Vous souhaitez fabriquer un robot roulant et vous vous interroger sur quel moteurs utiliser pour faire tourner les roues?

Vous êtes au bon endroit!

Si vous êtes ici c'est sans doute que vous hésitez entre le moteur pas à pas et le moteur à courant continu!

Nous allons dans cet article nous concentrer les les avantages et inconvénient des deux type de moteurs, sans nous attarder sur les différences techniques / physique de fonctionnement des différents types de moteurs qui feront éventuellement l'objet d'articles dédiés.

Version longue du comparatif : 


Avec les drivers de moteurs pas à pas actuels, et les librairies Arduino tel que accelstepper, piloter un moteur pas à pas à une vitesse donnée est un véritable jeu d'enfant.  Surtout qu'en théorie ces moteurs peuvent se contrôler en boucle ouverte, et très précisément et de manière répétable, tant que tout va bien.

Des drivers de moteurs pas à pas et des librairies qui facilitent le travail:
Driver de moteur pas à pas TB6560 3A       TB6600     Driver de moteur pas à pas DM432C



Pas besoin d'utiliser des codeurs sur ces moteurs et l'asservissement qui va avec. Donc moins de codes et " et moins d'entrée nécessaire ! De plus il y a moins de "réglages software" car généralement les cartes embarquent leurs propres interrupteurs pour leur paramétrage !

En générale pour piloter le moteur pas à pas 2 signaux sont nécessaire avec les drivers actuels : 
=> "Step" qui permet de spécifier la vitesse du moteur
=> "Dir" qui indique dans quelle direction tourne le moteur

On note l'utilisation du possible d'un signal "En" : enable, optionnel qui indique si le moteur doit tourner ou pas. On peut ne pas l'utiliser mais il reste pratique si on veut économiser un peu d'énergie qui complète les signaux "Step" et " Dir".

En bref on connecte quelques fils à une arduino, on met le programme d'un dizaine de lignes et on a un moteur qui tourne à la vitesse demandée. => Méthode simple et rapide pour faire tourner votre moteur pas à pas

Le moteur pas à pas est donc un moteur de choix pour le débutant !

De plus, en plus d'être facile d'utilisation, de par la technologie utilisée; le stator du moteur pas à pas entrainant le rotor sans balais (système brushless) et donc sans frottement, les moteurs pas à pas possède une excellente durée de vie, bien meilleur que les moteurs CC avec balais (Brushed dc motor). 

Enfin le moteur pas à pas peut fonctionner sur une très large plage de vitesse, ce qui fait que ce genre de moteur est généralement utilisé sans réducteurs, contrairement aux moteurs CC tournant bien souvent trop vite pour la plus part des application et nécessitant l'utilisation d'un réducteur adapté à la vitesse de rotation finale souhaitée.

Ainsi au delà de sa facilité d'utilisation, ces caractéristiques font que le moteur pas à pas est aussi un bon choix pour les systèmes nécessitant de grandes plages de rotation et pour les systèmes qui doivent tourner en continu et longtemps !

Tout n'est pas rose avec les moteurs pas à pas

Cependant le moteur pas à pas a aussi ses défauts ... 

A puissance égale, un moteur pas à pas sera plus lourd, plus volumineux, et il consommera plus. 
De plus le moteur pas à pas consomme même à l'arrêt pour maintenir sa position ... 

Enfin le moteur pas à pas peut sauter des pas. 

Il faudra donc veiller à ce que les conditions soient bonnes : 
Rien ne doit venir bloquer le moteur... 
L'accélération ne doit pas être trop brusque ... et donc la mise en place de rampe de vitesses est indispensable. (heureusement que les librairies comme accelstepper gèrent ça pour vous ;) )

Autre point à surveiller : Plus le moteur pas à pas tourne vite et plus facilement il pourra facilement décrocher ... Il a même une vitesse limite de décrochage....

Et si le moteur commence à perdre des pas, catastrophe ! En plus d'être perdu sur son tour, ce qui est généralement problématique dans le cas d'un robot ... le moteur risque de décrocher complètement... 
Le moteur pas à pas étant piloté en boucle ouverte, en l'absence d'information supplémentaire on a quasi aucun moyen de savoir si le moteur à décrocher ...

Généralement, si le moteur tournait vite au moment du décrochage il faudra dans ce cas diminuer la consigne de vitesse du moteur pour que le champ tournant du stator se remette à entrainer le rotor du moteur pas à pas...

Et donc la situation peut même " empirer " suite à un problème ... Le programma pouvant essayer de continuer comme si de rien n'était ...

Donc grosso modo avec un moteur pas à pas on y va les yeux fermé en espérant que tout va bien, et tant que tout se passe comme prévu tout va bien mais où on prend des risques si on se lance dans l'inconnu ...

Alors qu'avec un moteur cc avec un codeur, on ne va plus travailler en "boucle ouverte" mais en "boucle fermée" . Si on tombe sur un os et que le moteur force par exemple on pourra voir avec le codeur, qui est là pour mesurer la vitesse de rotation du moteur, qu'il y a un problème pour éventuellement chercher à s'adapter à la situation ... 

Le principe de l'asservissement et des boucles fermées avec les moteurs cc

S'adapter à la situation en regard d'une consigne donnée, c'est ce qu'on appel mettre en place un asservissement sur une consigne! Et c'est grâce à cet asservissement qu'il faudra bien mettre en place et configurer de manière logicielle.

Dans l'idée c'est assez simple :
1) On a un codeur qui mesure la vitesse du moteur // Acquisition
2) On compare la vitesse de consigne avec la vitesse mesurée et on en déduit une correction à faire. // Computation
3) On applique la correction en envoyant les ordres de pilotages au driver de moteur cc // Exécution
4) On met éventuellement la consigne de vitesse à jour si elle a été modifiée et on recommence le tout périodiquement // Bouclage

Dans la pratique cela demande d'organiser son code avec les différentes étapes dans différentes fonctions :

Pour cela rien de mieux que d'aller étape par étape en maitrisant d'abord chacun des morceaux

Exécution :  piloter un moteur CC avec un driver de moteur
Bouclage : Mettre en place un Timer pour effectuer les opérations périodiquement, usage d'interruptions temporelles.
Acquisition : lire des encodeurs en quadrature nécessitant entre autre des interruptions hardware.
Computation : savoir implémenter un PID , asservissement Proportionnel, Intégral, Dérivé

Bref un brin plus compliqué à mettre en oeuvre, mais loin d'être impossible ;)

Mais réjouissez vous, une fois cette épreuve passée, une fois le moteur avec le réducteur adapté à la vitesse souhaité et le PID implémenté, vous aurez, en plus d'avoir un système plus performant énergétiquement parlant en prenant en compte de rapport poids encombrement puissance, un système plus "fiable" face aux perturbations du monde extérieur!

Pour compléter les propos :
Discussions sur le sujet

En résumé : 

Les avantages du moteur pas à pas sont : 
Sa facilité de mise en oeuvre pour avoir un système précis et répétable 
Son nombre d'entrées sorties nécessaire réduit (2) 
Sa grande plage de vitesse 
Sa durée de vie

Les inconvénients du moteur pas à pas sont : 
Son risque de perdre des pas et le précautions à prendre associées. 
Son mauvais rapport poids puissance.
Son faible couple à haute vitesse.
Sa consommation continue même à l'arrêt.

Les avantages du moteur à courant continu avec codeur sont : 
Pas de pertes de pas, et suivi de la position du rotor grâce au codeur. 
Son rapport poids puissance qui est au moins 5 fois meilleur en général.
Accélération plus importante et bon couple sur toute sa plage de vitesse.
Aucune consommation du moteur à l'arrêt. 

Les inconvénients du moteur cc :

La complexité supplémentaire pour le mettre en œuvre (fréquence d'acquisition, asservissement, réglage du PID...)
Le nombre d'entrées sorties nécessaire plus important : PWM, DIR, CodeurA, CodeurB et en option : enable.
Sa plage de vitesse plus faible, choisissez bien votre réducteur ! ;)
Sa durée de vie réduite (brush dc motor)

En conclusion,

il est préférable d'utiliser un moteur pas à pas sur une machine " fixe" comme une imprimante 3D par exemple, où : 
=> la consommation n'est pas notre soucis prioritaire, 
=> on souhaite une durée de vie élevée, 
=> l'environnement est contrôlé,
=> On souhaite de la répétabilité et de la précision avec une grande plage de vitesse possible

De plus dans le cas d'un robot pour concours, comme la coupe de France de robotique par exemple, où l'environnement est maîtrisé, et où il y a peu d'inconnues et de risque d'effort et donc de risques de sauter des pas, l'utilisation de moteurs pas à pas est envisageable dans le but de faciliter le code ... Surtout si c'est votre première participation à un concours. En effet pour un premier robot on se soucie peu de la performance énergétique, on se concentrera à réaliser un premier robot qui fonctionne, ça sera déjà très bien, et il n'y aura aucune honte à passer par là bien au contraire ! =) C'est le choix que font souvent à raison les équipes qui débutent !

Dans le cadre d'un robot pour le "monde réel" des moteurs CC seront plus adaptés... Avec un peu de travail supplémentaire sur le code, en sacrifiant quelques entrées sorties de plus, en choisissant le réducteur adapté, et en réglant bien le PID, vous pourrez avoir un robot beaucoup plus performant et donc la motorisation pourra prendre moins de place !
La plupart des équipes qui ont de l'expérience utilisent ce genre de moteur. 

Bien entendu on ne pouvait pas finir sans une petite ouverture :
Ne peut on pas avoir les avantages des deux types de moteurs ?
Eh bien oui c'est possible ! Avec un troisième type de moteur : le BLDC.
Moteur Brushless à courant continu avec codeur. ( Brushless comme le moteur pas à pas... ).
Au fur et à mesure que les prix baissent, ces moteurs commencent à faire leur apparition même chez les amateurs!
Plus performant énergétiquement parlant et avec une excellente durée de vie, le BLDC reste encore  souvent moins "fiable", car pouvant décrocher,  ou un peu trop coûteux ou plus complexe à mettre en oeuvre par ce que son système de pilotage est plus complexe et que les drivers proposés avec ce genre de moteur restent cher...

 

Cet article vous a plu ? Laissez-nous un commentaire !

Tous les champs sont obligatoires

Nom:
E-mail: (ne sera pas publié)
Commentaire:
Recopier le code
ok