tb6612 --- مشغل المحرك TB6612¶
توفر الوحدة tb6612 مشغلًا لمشغل المحرك TB6612. وهي تكشف عن صنف Motor لقيادة محرك تيار مستمر واحد على إحدى قناتين، وصنف Stepper لقيادة محرك خطوي بأربعة أسلاك.
يستخدم كلا الصنفين pyb.Timer(4) بتردد 1 كيلوهرتز على الدبوسين 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)¶
إنشاء وحدة تحكم بمحرك خطوي بأربعة أسلاك. تُهيّئ دبابيس الاتجاه
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]¶
مولّد يُنتج بلا نهاية نمط القيادة رباعي الأطوار
(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يقدّم هذا العدد بالضبط من الأطوار؛ والاتجاه ثابت (مولّد الطور الأساسي يتكرر إلى الأمام فقط).