Raspberry Pi est une carte basée sur un processeur d'architecture ARM conçue pour les ingénieurs en électronique et les amateurs. Le PI est l'une des plates-formes de développement de projet les plus fiables actuellement. Avec une vitesse de processeur plus élevée et 1 Go de RAM, le PI peut être utilisé pour de nombreux projets de haut niveau tels que le traitement d'image et l'Internet des objets.
Pour réaliser l'un des projets de haut niveau, il faut comprendre les fonctions de base de PI. Nous couvrirons toutes les fonctionnalités de base de Raspberry Pi dans ces tutoriels. Dans chaque tutoriel, nous aborderons l'une des fonctions de PI. À la fin de cette série de tutoriels sur Raspberry Pi, vous serez en mesure de réaliser des projets de haut niveau par vous-même. Suivez les didacticiels ci-dessous:
- Premiers pas avec Raspberry Pi
- Configuration du Raspberry Pi
- LED clignotante
- Interfaçage des boutons Raspberry Pi
- Génération PWM Raspberry Pi
- Contrôle du moteur à courant continu à l'aide de Raspberry Pi
Dans ce tutoriel, nous contrôlerons la vitesse d'un moteur pas à pas à l'aide de Raspberry Pi. Dans le moteur pas à pas, comme son nom l'indique, la rotation de l'arbre est sous forme d'étape. Il existe différents types de moteurs pas à pas; ici, nous utiliserons le moteur pas à pas unipolaire le plus populaire. Contrairement au moteur à courant continu, nous pouvons faire tourner le moteur pas à pas à un angle particulier en lui donnant les instructions appropriées.
Pour faire tourner ce moteur pas à pas à quatre étages, nous fournirons des impulsions de puissance en utilisant le circuit de commande de moteur pas à pas. Le circuit pilote prend les déclencheurs logiques de PI. Si nous contrôlons les déclencheurs logiques, nous contrôlons les impulsions de puissance et donc la vitesse du moteur pas à pas.
Il y a 40 broches de sortie GPIO dans Raspberry Pi 2. Mais sur 40, seules 26 broches GPIO (GPIO2 à GPIO27) peuvent être programmées. Certaines de ces broches remplissent des fonctions spéciales. Avec le GPIO spécial mis de côté, il ne nous reste plus que 17 GPIO. Chacune de ces 17 broches GPIO peut fournir un courant maximum de 15 mA. Et la somme des courants de toutes les broches GPIO ne peut pas dépasser 50 mA. Pour en savoir plus sur les broches GPIO, passez par: LED clignotante avec Raspberry Pi
Il y a des broches de sortie d'alimentation + 5 V (broches 2 et 4) et + 3,3 V (broches 1 et 17) sur la carte pour connecter d'autres modules et capteurs. Ces rails d'alimentation ne peuvent pas être utilisés pour entraîner le moteur pas à pas, car nous avons besoin de plus de puissance pour le faire tourner. Nous devons donc fournir la puissance au moteur pas à pas à partir d'une autre source d'alimentation. Mon moteur pas à pas a une tension nominale de 9V, j'utilise donc une batterie 9V comme deuxième source d'alimentation. Recherchez le numéro de modèle de votre moteur pas à pas pour connaître la tension nominale. En fonction de la note, choisissez la source secondaire de manière appropriée.
Comme indiqué précédemment, nous avons besoin d'un circuit de pilotage pour piloter le moteur pas à pas. Nous allons également concevoir ici un circuit de pilote de transistor simple.
Composants requis:
Ici, nous utilisons Raspberry Pi 2 Model B avec Raspbian Jessie OS. Toutes les exigences matérielles et logicielles de base sont décrites précédemment, vous pouvez les rechercher dans l'introduction de Raspberry Pi, à part ce dont nous avons besoin:
- Broches de connexion
- 220Ω ou 1KΩ résistance (3)
- Moteur pas à pas
- Boutons (2)
- Transistor 2N2222 (4)
- Diode 1N4007 (4)
- Condensateur - 1000uF
- Planche à pain
Explication du circuit:
Le moteur pas à pas utilise 200 étapes pour effectuer une rotation de 360 degrés, ce qui signifie qu'il tourne de 1,8 degré par étape. Comme nous conduisons un moteur pas à pas à quatre étages, nous devons donner quatre impulsions pour terminer un cycle logique unique. Chaque étape de ce moteur complète 1,8 degré de rotation, donc pour terminer un cycle, nous avons besoin de 200 impulsions. Donc 200/4 = 50 cycles logiques nécessaires pour effectuer une seule rotation. Cochez ceci pour en savoir plus sur les moteurs pas à pas et ses modes de conduite.
Nous allons piloter chacune de ces quatre bobines par un transistor NPN (2N2222), ce transistor NPN prend l'impulsion logique de PI et pilote la bobine correspondante. Quatre transistors prennent quatre logiques de PI pour entraîner quatre étages de moteur pas à pas.
Le circuit de commande de transistor est une configuration délicate; ici, nous devons faire attention au fait qu'une mauvaise connexion du transistor pourrait charger fortement la carte et l'endommager. Vérifiez ceci pour bien comprendre le circuit de commande du moteur pas à pas.
Le moteur est une induction et donc lors de la commutation du moteur, nous subissons des pics inductifs. Cette pointe chauffera fortement le transistor, nous utiliserons donc une diode (1N4007) pour protéger le transistor contre les pics inductifs.
Afin de réduire les fluctuations de tension, nous connecterons un condensateur de 1000 uF aux bornes de l'alimentation, comme indiqué dans le schéma de circuit.
Explication de travail:
Une fois que tout est connecté selon le schéma de circuit, nous pouvons allumer le PI pour écrire le programme dans PYHTON.
Nous parlerons de quelques commandes que nous allons utiliser dans le programme PYHTON, Nous allons importer le fichier GPIO de la bibliothèque, la fonction ci-dessous nous permet de programmer les broches GPIO de PI. Nous renommons également «GPIO» en «IO», donc dans le programme chaque fois que nous voulons faire référence aux broches GPIO, nous utiliserons le mot «IO».
importer RPi.GPIO comme IO
Parfois, lorsque les broches GPIO, que nous essayons d'utiliser, peuvent remplir d'autres fonctions. Dans ce cas, nous recevrons des avertissements lors de l'exécution du programme. La commande ci-dessous indique au PI d'ignorer les avertissements et de poursuivre le programme.
IO.setwarnings (Faux)
On peut référencer les broches GPIO de PI, soit par numéro de broche à bord, soit par leur numéro de fonction. Comme «PIN 35» sur la carte est «GPIO19». Nous disons donc ici que nous allons représenter la broche ici par «35» ou «19».
IO.setmode (IO.BCM)
Nous définissons quatre broches GPIO comme sortie pour entraîner quatre bobines de moteur pas à pas.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Nous définissons GPIO26 et GPIO19 comme broches d'entrée. Nous détecterons la pression du bouton par ces broches.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Si la condition entre accolades est vraie, les instructions à l'intérieur de la boucle seront exécutées une fois. Donc, si la broche GPIO 26 devient basse, les instructions à l'intérieur de la boucle IF seront exécutées une fois. Si la broche GPIO 26 ne passe pas à l'état bas, les instructions à l'intérieur de la boucle IF ne seront pas exécutées.
if (IO.input (26) == False):
Cette commande exécute la boucle 100 fois, x étant incrémenté de 0 à 99.
pour x dans la plage (100):
Alors que 1: est utilisé pour la boucle infinie. Avec cette commande, les instructions à l'intérieur de cette boucle seront exécutées en continu.
Nous avons toutes les commandes nécessaires pour obtenir le contrôle de la vitesse du moteur pas à pas avec cela.
Après avoir écrit le programme et l'avoir exécuté, il ne reste plus qu'à faire fonctionner la commande. Nous avons deux boutons connectés à PI. Un pour incrémente le retard entre les quatre impulsions et l'autre pour décrémente le retard entre les quatre impulsions. Le retard lui-même parle de vitesse; si le retard est plus élevé, le moteur freine entre chaque pas et la rotation est donc lente. Si le retard est proche de zéro, le moteur tourne à la vitesse maximale.
Ici, il faut se rappeler qu'il devrait y avoir un certain délai entre les impulsions. Après avoir donné une impulsion, le moteur pas à pas met quelques millisecondes pour atteindre sa phase finale. S'il n'y a pas de délai entre les impulsions, le moteur pas à pas ne bougera pas du tout. Normalement, un délai de 50 ms est bien entre les impulsions. Pour des informations plus précises, consultez la fiche technique.
Ainsi, avec deux boutons, nous pouvons contrôler le retard, qui à son tour contrôle la vitesse du moteur pas à pas.