tb6612 --- Trình điều khiển động cơ TB6612¶
Mô-đun tb6612 cung cấp trình điều khiển cho chip TB6612. Nó cung cấp lớp Motor để điều khiển một động cơ DC trên một trong hai kênh và lớp Stepper để điều khiển động cơ bước 4 dây.
Cả hai lớp đều sử dụng pyb.Timer(4) ở tần số 1 kHz trên các chân P7 và P8 để xuất PWM. Các chân chiều Motor là P3/P2 (kênh 1) và P1/P0 (kênh 2). Stepper sử dụng tất cả bốn chân (P3, P2, P1, P0) cùng với cả hai kênh PWM.
Ví dụ:
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
lớp Motor¶
lớp Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
Tạo bộ điều khiển động cơ bước 4 dây. Khởi tạo các chân chiều
P3,P2,P1,P0và hai kênh PWM trênP7vàP8, sau đó áp dụng tốc độ và công suất yêu cầu.stepnumber: Số bước đầy đủ mỗi vòng quay của động cơ bước được kết nối. Được sử dụng cùng vớirpmsđể tính độ trễ giữa các bước.rpms: Tốc độ quay mục tiêu tính bằng vòng trên phút. Được chuyển tiếp đếnset_speed().power: Phần trăm chu kỳ làm việc PWM (0-100) áp dụng cho cả hai kênh nguồn. Được chuyển tiếp đếnset_power().
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
Bộ tạo liên tục trả về mẫu điều khiển bốn pha
(1, 0, 0, 0),(0, 0, 1, 0),(0, 1, 0, 0),(0, 0, 0, 1)được dùng bởistep(). Mỗi phần tử của bộ là giá trị để ghi vàopin1,pin2,pin3,pin4tương ứng.
- set_speed(rpms: int) None¶
Cập nhật tốc độ bước.
rpms: Tốc độ quay mục tiêu tính bằng vòng trên phút. Độ trễ mỗi nửa bước (tính bằng microsecond) được tính lại theo công thức1000000 / (rpms * stepnumber) / 2.
- set_power(power: int) None¶
Đặt chu kỳ làm việc PWM áp dụng cho cả hai kênh nguồn.
power: Phần trăm chu kỳ làm việc trong khoảng0đến100.
- step(num: int) None¶
Tiến động cơ bước
numchuyển pha, áp dụng pha tiếp theo từphase_list()và chờ độ trễ giữa các bước đã cấu hình (quapyb.udelay) giữa các chuyển đổi.num: Số bước pha cần tiến. Mỗi lần gọisteptiến đúng số pha này; chiều là cố định (bộ tạo pha cơ bản chỉ lặp về phía trước).