Raspberry Pi - Moteur pas à pas
Ce didacticiel vous explique comment utiliser un Raspberry Pi pour contrôler un moteur pas à pas à l'aide d'un pilote L298N. En détail, nous apprendrons :
- Comment utiliser Raspberry Pi et le pilote L298N pour contrôler un moteur pas à pas bipolaire
- Comment programmer Raspberry Pi pour contrôler la position du moteur pas à pas
- Comment programmer Raspberry Pi pour contrôler la vitesse du moteur pas à pas
- Comment programmer Raspberry Pi pour contrôler la direction du moteur pas à pas
Le tutoriel s'applique à tous les types de moteurs pas à pas bipolaires avec quatre fils. Il utilisera un moteur pas à pas NEMA 17 comme exemple.
Si vous voulez contrôler un autre type de moteur pas à pas, veuillez consulter ce tutoriel Raspberry Pi - Moteur Pas à Pas 28BYJ-48 Pilote ULN2003..
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du moteur pas à pas
Deux types courants de moteurs pas à pas existent :
- bipolaire : ce moteur a quatre fils
- unipolaire : ce moteur a soit cinq, soit six fils
Pour un moteur pas à pas unipolaire à 6 fils, nous pouvons utiliser quatre de ses six fils et le contrôler comme s'il s'agissait d'un moteur pas à pas bipolaire.
Pour un moteur pas à pas unipolaire à 5 fils, consultez Raspberry Pi - Moteur Pas à Pas 28BYJ-48 Pilote ULN2003..
Ce tutoriel se concentre uniquement sur le moteur pas à pas bipolaire.
Sortie des broches du moteur pas à pas bipolaire
Le moteur pas à pas bipolaire possède quatre broches et les noms de ces broches varient selon le fabricant. Le tableau suivant affiche certains des noms les plus courants pour les broches :
PIN NO | Naming 1 | Naming 2 | Naming 3 |
---|---|---|---|
1 | A+ | A | A |
2 | A- | A | C |
3 | B+ | B | B |
4 | B- | B | D |
La disposition des broches, l'étiquetage des fils et leurs couleurs peuvent varier selon les fabricants. Pour déterminer la correspondance entre la couleur du fil et son nom, vous devez consulter la fiche technique ou le manuel. L'image ci-dessus affiche également les détails de deux moteurs différents avec un étiquetage et des couleurs de fils différents.
Pas par Révolution
La spécification du moteur indique le DEG_PER_STEP. Selon la technique de contrôle, STEP_PER_REVOLUTION peut être déterminé en utilisant le tableau suivant :
Control method | Steps per Revolution | Real degree per step |
---|---|---|
Full-step | STEP_PER_REVOLUTION = 360 / DEG_PER_STEP | DEG_PER_STEP |
Half-step | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * 2 | DEG_PER_STEP / 2 |
Micro-step (1/n) | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * n | DEG_PER_STEP / n |
Par exemple, si la fiche technique du moteur indique 1,8 degré/pas :
Control method | Steps per Revolution | Real degree per step |
---|---|---|
Full-step | 200 steps/revolution | 1.8° |
Half-step | 400 steps/revolution | 0.9° |
Micro-step (1/n) | (200 * n) steps/revolution | (1.8 / n)° |
Comment contrôler un moteur pas à pas avec un Raspberry Pi
Le Raspberry Pi peut générer des signaux pour contrôler le moteur pas à pas, cependant, ces signaux ne sont pas d'une tension et/ou d'un courant suffisants pour répondre aux exigences du moteur pas à pas. Par conséquent, un pilote matériel est nécessaire entre le Raspberry Pi et le moteur pas à pas. Ce pilote sert deux objectifs :
- Amplifier les signaux de commande provenant du Raspberry Pi en termes de courant et de tension
- Protéger le Raspberry Pi contre le courant et la tension élevés utilisés pour alimenter le moteur pas à pas.
Il existe de nombreux pilotes matériels qui peuvent être utilisés pour gérer les moteurs pas à pas. L'un des pilotes matériels les plus couramment utilisés pour contrôler les moteurs pas à pas est le pilote L298N.
À propos du pilote L298N
Un pilote L298N peut être utilisé pour contrôler deux moteurs CC ou un moteur pas à pas. Dans ce guide, nous allons découvrir comment l'utiliser pour réguler le moteur pas à pas.
Brochage du pilote L298N
Le pilote L298N possède 11 broches et trois cavaliers :
- Broche VCC : Elle fournit l'alimentation pour le moteur et peut être comprise entre 5 et 35V.
- Broche GND : Il s'agit d'une broche de masse commune, qui doit être connectée à la masse (0V).
- Broche 5V : Elle fournit l'alimentation pour le module L298N et peut être alimentée par 5V depuis le Raspberry Pi.
- Broches IN1, IN2, IN3, IN4 : Celles-ci sont connectées aux broches du Raspberry Pi pour recevoir le signal de commande pour contrôler le moteur pas à pas.
- Broches OUT1, OUT2, OUT3, OUT4 : Celles-ci sont connectées au moteur pas à pas.
- Cavaliers ENA, ENB : Ils sont utilisés pour activer le moteur pas à pas et les cavaliers ENA et ENB doivent être en place.
- Cavalier 5V-EN : Si celui-ci est en place, l'alimentation du module L298N est tirée de VCC et il n'est pas nécessaire de connecter quoi que ce soit à la broche 5V. Si le cavalier 5V-EN est retiré, l'alimentation doit être fournie au module L298N via une broche 5V.
Le pilote L298N dispose de deux alimentations d'entrée :
- Un pour le moteur pas à pas (broches VCC et GND) : allant de 5 à 35V.
- Un pour le fonctionnement interne du module (broches 5V et GND) : de 5 à 7V. Si le cavalier 5V-EN est en place, cette broche n'a pas besoin d'être connectée.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :
※ Note:
- Gardez les trois cavaliers sur le module L298N en place si l'alimentation électrique du moteur est de 12V ou moins.
- Les broches des moteurs pas à pas peuvent différer selon les fabricants. Référez-vous au tableau ci-dessous pour le câblage correct.
Tableau de câblage entre Raspberry Pi et pilote L298N
Raspberry Pi pins | L298N pins |
---|---|
12 | IN1 |
16 | IN2 |
20 | IN3 |
21 | IN4 |
Table de câblage entre le pilote L298N et le moteur pas à pas
Important ! : Ne faites pas attention à l'ordre des fils dans le moteur pas à pas sur le schéma de câblage illustré ci-dessus. C'est juste une illustration. L'agencement des broches sur les moteurs pas à pas peut varier en fonction du fabricant. Assurez-vous que votre câblage suit le tableau ci-dessous.
L298N pins | Stepper motor pins | Or | Or |
---|---|---|---|
OUT1 | A+ | A | A |
OUT2 | A- | A | C |
OUT3 | B+ | B | B |
OUT4 | B- | B | D |
Avant d'acheter un moteur pas à pas, nous vous suggérons de consulter la fiche technique, les spécifications ou le manuel du moteur pas à pas. Assurez-vous qu'il inclut la corrélation entre la couleur et le nom de la broche. Par exemple, ce moteur pas à pas a le mappage suivant comme indiqué sur l'image ci-dessous :
Compte tenu de la cartographie, le tableau de câblage est le suivant :
L298N pins | stepper motor pins | wire color |
---|---|---|
OUT1 | A | black wire |
OUT2 | C | green wire |
OUT3 | B | red wire |
OUT4 | D | blue wire |
※ Note:
Dans les tableaux de câblage entre le moteur pas à pas et le pilote L298N, il existe plusieurs façons de faire le câblage. Nous pouvons échanger OUT1 avec OUT2, OUT3 avec OUT4. Cependant, si nous faisons cela, la direction de rotation des moteurs peut être modifiée (de sens horaire à antihoraire et vice versa).
Code Raspberry Pi - Code pour moteur pas à pas
Le code suivant :
- Fait tourner le moteur d'un tour dans le sens des aiguilles d'une montre
- Met le moteur en pause pendant 5 secondes
- Fait tourner le moteur d'un tour dans le sens inverse des aiguilles d'une montre
- Arrête le moteur pendant 5 secondes
- Répète le processus indéfiniment
Étapes rapides
- Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible Raspberry Pi installé sur votre Pi.
- Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
- Assurez-vous que votre Raspberry Pi est connecté à Internet si vous avez besoin d'installer des bibliothèques.
- Si c'est la première fois que vous utilisez Raspberry Pi, voir Installation du logiciel - Raspberry Pi..
- Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Voir comment connecter votre PC au Raspberry Pi via SSH.
- Assurez-vous que la bibliothèque RPi.GPIO est installée. Si ce n'est pas le cas, installez-la en utilisant la commande suivante :
- Créez un fichier de script Python stepper.py et ajoutez le code suivant :
- Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.
En changeant la valeur de la variable delay dans le code, vous pouvez modifier la vitesse du moteur pas à pas.
Vous observerez ce qui suit :
- Le moteur pas à pas fera une révolution dans le sens horaire.
- Le moteur pas à pas fera une pause de 5 secondes.
- Le moteur pas à pas fera ensuite une révolution dans le sens antihoraire.
- Le moteur pas à pas fera une autre pause de 5 secondes.
- Ce processus sera répété.
Explication du Code
Consultez l'explication ligne par ligne contenue dans les commentaires du code source !