Les moteurs
Introduction
Notre kit contient trois différents types de moteurs :
- le moteur à courant continue (moteur DC)
- le servomoteur
- le moteur pas à pas.
Le moteur DC est utilisé pour un mouvement continu avec la direction (avant arrière) et des vitesses ajustables. On le trouve par exemple dans le châssis pour le modèle d'une voiture robotique. Un courant DC plus ou moins fort fait tourner le moteur plus ou moins vite.
Le servomoteur est adapté si on veut bouger a un angle spécifique. Il est généralement contrôle par un signale PWM.
Le moteur pas à pas bouge, comme le nom suggère, avec des pas distincts. L'angle atteint dépend du nombre le pas parcouru. On peut faire tourner un moteur pas à pas en permanence comme un moteur DC (pourtant avec une vitesse plus faible) ou on peut le bouger à un certain angle comme un servomoteur. Le moteur pas à pas nécessite une séquence d'impulsion pour tourner.
Le moteur DC
Le kit WeMos contient un moteur DC 3V-6V contrôlé avec un contrôleur pour moteur DC, tandis que le kit Freenove fourni un moteur 9V qui est mise en route avec un relais. Si la vitesse du moteur WeMos est contrôlable par son module de contrôle, le moteur DC du kit Freenove tourne à vitesse constante.
|
|
Moteur du kit WeMos |
Contrôleur du moteur DC |
Les moteurs souvent utilisés dans les modèles de voitures robotiques et leurs contrôleurs sont :
|
|
Moteur du modèle de robot |
... et son contrôleur L298N |
Pour contrôler un moteur à courant continu avec le L298N les connexions suivants sont faites (Les connexion pour le chip L293D sont similaires) :
L298N ou l293D |
WeMos ESP32 |
batterie externe 9V |
moteur |
commentaires |
12V |
|
pole + |
|
|
GND |
GND |
pole - |
|
|
OUT1 |
|
|
pole + |
|
OUT2 |
|
|
pole - |
|
IN1 |
D1: GPIO 22 |
|
|
defini la direction du mouvement |
IN2 |
D2: GPIO 21 |
|
|
|
EN1 |
D0: GPIO 26 |
|
|
contrôle la vitesse |
Les pins GPIO contrôlant la direction sont programmé en sortie. Avec IN1 = 1 et IN2 = 0 le moteur marche en avant, avec IN1 = 0 et IN2 = 1 il marche en arrière.
La pin EN1 peut être utilisé pour changer la vitesse du moteur. Dans ce cas elle doit être programmé en PWM (Pulse Width Modulation : modulation de largeur d'impulsion). Avec un cycle de service (duty cycle) de « 1 » (signal toujours à « 1 ») le moteur tourne à vitesse maximum. Avec un cycle de service 1/2 il marche à la moité de sa vitesse maximum et avec un cycle de service de zéro il est à l’arrêt.
Bien sûr les pins IN3,IN3,EN2,OUT3,OUT4 ont la même signification pour le deuxième moteur, qui peut être contrôlé par le L298N.
Le servomoteur
Le servomoteur est contrôlé par un signal PWM, qui défini l'angle du moteur. Les connexions sont spécifié dans le tableau suivant:
Câble du servomoteur |
Couleur du câble |
Pin du ESP32 |
GND |
brun |
GND |
Vcc |
rouge |
5V |
Signal |
orange |
D0 = GPIO 26 |
J'ai écrit un pilote simple qui permet de bouger le moteur à un angle voulu:
https://github.com/uraich/IoT-Course/blob/master/modules/motors/servo.py
Ce pilote est déjà integré dans l'interpreteur MicroPython et la classe "Servo" peut être appellé directement.
Le moteur pas à pas
Le moteur pas à pas demande un courant plus élevé qu'un pin GPIO ne peut fournir. Pour cette raison un module amplificateur et utilisé.
--
Uli Raich - 2021-06-30
Comments