tb6612 — מנהל התקן מנוע TB6612¶
המודול tb6612 מספק מנהל התקן עבור מנהל מנוע TB6612. הוא חושף מחלקת Motor להנעת מנוע DC יחיד על אחד משני ערוצים, ומחלקת Stepper להנעת מנוע צעד (stepper) בעל 4 חוטים.
שתי המחלקות משתמשות ב-pyb.Timer(4) בתדר 1 kHz על הפינים P7 ו-P8 עבור פלט הספק PWM. פיני הכיוון של Motor הם P3/P2 (ערוץ 1) ו-P1/P0 (ערוץ 2). מחלקת Stepper משתמשת בכל ארבעת הפינים (P3, P2, P1, P0) בתוספת שני ערוצי PWM.
דוגמה:
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
מחלקת Motor¶
מחלקת Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
בונה בקר מנוע צעד בעל 4 חוטים. מאתחלת את פיני הכיוון
P3,P2,P1,P0ואת שני ערוצי הספק ה-PWM עלP7ו-P8, ולאחר מכן מיישמת את המהירות וההספק המבוקשים.stepnumber: מספר הצעדים המלאים לכל סיבוב של מנוע הצעד המחובר. משמש יחד עםrpmsלחישוב ההשהיה בין הצעדים.rpms: מהירות סיבוב יעד בסיבובים לדקה. מועבר אלset_speed().power: אחוז מחזור עבודה של PWM (0-100) המיושם על שני ערוצי ההספק. מועבר אלset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
מחולל (generator) המניב ללא הרף את תבנית ההנעה בארבעה שלבים
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)המשמשת אתstep(). כל איבר בטאפל הוא הערך שייכתב אלpin1,pin2,pin3,pin4בהתאמה.
- set_speed(rpms: int) None¶
מעדכן את מהירות הצעדים.
rpms: מהירות סיבוב יעד בסיבובים לדקה. ההשהיה לכל חצי-צעד (במיקרו-שניות) מחושבת מחדש כ-1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
מגדיר את מחזור העבודה של ה-PWM המיושם על שני ערוצי ההספק.
power: אחוז מחזור עבודה בטווח0עד100.
- step(num: int) None¶
מקדם את מנוע הצעד ב-
numמעברי שלב, תוך יישום השלב הבא מ-phase_list()והמתנה במשך ההשהיה המוגדרת בין הצעדים (באמצעותpyb.udelay) בין המעברים.num: מספר שלבי הצעד לקידום. כל קריאה ל-stepמקדמת בדיוק מספר זה של שלבים; הכיוון קבוע (מחולל השלבים הבסיסי מבצע איטרציה רק קדימה).