tb6612 — Pilote de moteur TB6612¶
Le module tb6612 fournit un pilote pour le pilote de moteur TB6612. Il expose une classe Motor pour piloter un seul moteur à courant continu sur l’un des deux canaux, et une classe Stepper pour piloter un moteur pas à pas à 4 fils.
Les deux classes utilisent pyb.Timer(4) à 1 kHz sur les broches P7 et P8 pour la sortie de puissance PWM. Les broches de direction de Motor sont P3/P2 (canal 1) et P1/P0 (canal 2). La classe Stepper utilise les quatre broches (P3, P2, P1, P0) ainsi que les deux canaux PWM.
Exemple
from tb6612 import Motor, Stepper
m = Motor(1)
m.set_speed(50) # 50% duty forward
s = Stepper(stepnumber=200, rpms=2, power=50)
s.step(100) # advance 100 steps
class Motor¶
- class tb6612.Motor(channel: int)¶
Construit un contrôleur de moteur à courant continu lié à l’un des deux canaux du TB6612.
channel: Numéro de canal du moteur.1utilise les broches de directionP3/P2et la broche PWMP7(minuteur 4, canal 1).2utilise les broches de directionP1/P0et la broche PWMP8(minuteur 4, canal 2).
- set_speed(pwm: int) None¶
Règle la vitesse et le sens du moteur.
pwm: Rapport cyclique signé compris entre-100et100. Les valeurs positives font tourner le moteur vers l’avant, les valeurs négatives le font tourner en sens inverse. La valeur absolue est appliquée comme pourcentage de rapport cyclique PWM à la broche de puissance.
class Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
Construit un contrôleur de moteur pas à pas à 4 fils. Initialise les broches de direction
P3,P2,P1,P0et les deux canaux de puissance PWM surP7etP8, puis applique la vitesse et la puissance demandées.stepnumber: Nombre de pas complets par tour du moteur pas à pas connecté. Utilisé conjointement avecrpmspour calculer le délai inter-pas.rpms: Vitesse de rotation cible en tours par minute. Transmise àset_speed().power: Pourcentage de rapport cyclique PWM (0-100) appliqué aux deux canaux de puissance. Transmis àset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Générateur qui produit indéfiniment le motif de pilotage à quatre phases
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)utilisé parstep(). Chaque élément du tuple est la valeur à écrire respectivement surpin1,pin2,pin3,pin4.
- set_speed(rpms: int) None¶
Met à jour la vitesse de progression des pas.
rpms: Vitesse de rotation cible en tours par minute. Le délai par demi-pas (en microsecondes) est recalculé comme1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Règle le rapport cyclique PWM appliqué aux deux canaux de puissance.
power: Pourcentage de rapport cyclique compris entre0et100.
- step(num: int) None¶
Fait avancer le moteur pas à pas de
numtransitions de phase, en appliquant la phase suivante issue dephase_list()et en attendant le délai inter-pas configuré (viapyb.udelay) entre les transitions.num: Nombre de pas de phase à avancer. Chaque appel àstepavance exactement de ce nombre de phases ; le sens est fixe (le générateur de phases sous-jacent n’itère que vers l’avant).