Étape 13 : Python Code de conduire les steppers
Pourquoi le faire en Python ?
Il est possible d’envoyer le Grove I2C moteur pilote V1.3 une commande à exécuter un stepper pour un certain nombre de mesures sans avoir à spécifier chaque étape individuellement, mais cela ne nous aide pas, nous devons savoir exactement quelle chaque étape se passe et quand une série d’étapes sont complet, de sorte que nous pouvons éteindre le voyant marche et arrêt au bon moment.
Si vous souhaitez que les fonctionnalités de moteurs pas à pas de course libre de ce Conseil et vous êtes moteur pilote est uniquement chargé avec V1.2 comme le mien était, alors vous aurez besoin de mettre à niveau le firmware comme je le faisais auparavant dans ce Instructable.
Aussi, j’ai comme Python.
Mais Python n’est pas en temps réel, vous ne pouvez pas conduire les moteurs avec elle !
C’est vrai, et qui n’est pas vrai. Il est assez proche d’en temps réel à cet effet. Si le temps de l’étape sont légèrement incompatible il n’est vraiment pas une grosse affaire. J’ai toutefois prendre soin à exécuter des processus fils, afin que les moteurs peuvent fonctionner simultanément, et autres processus (par exemple, allumer et éteindre alternativement la LED) sont gérées dans les threads afin qu’ils ne dérangent pas le temps de progression et donc l’élan de l’Assemblée de LED (ce qui provoquerait des oscillations).
La classe de Stepper
En Python, j’ai créé une classe de moteurs pas à pas qui stocke quelques variables sur l’état actuel de moteurs
- étapes : ce tableau contient les 8 paires de polarité individuels qui composent une rotation complète pour un demi-stepping motor
- nextStep : c’est l’index de l’étape suivante dans le tableau à utiliser
- Direction : nous stockons la direction dans laquelle s’allonge la chaîne, ce détermine fondamentalement si nous sommes parcourant vers l’avant ou vers l’arrière du tableau.
Fonction d’initialisation du moteur pas à pas met en place les pilotes GroveMD. Vérifiez que vous utilisez la bonne adresse I2C que celui configuré dans les micro-interrupteurs de la Commission.
Prendre note de « setMotorSpeeds », qui définit le PWM du pilote automobile. Steppers le PWM doivent toujours être 255 lorsqu’elle est active ou 0 si désactivée, elle n’affecte pas la vitesse, définit le délai entre les étapes.
La fonction step() prend dans un argument qui est soit vrai ou faux. Si l’argument est True, alors le moteur les étapes dans la direction que s’allonge la chaîne.