tb6612 --- Driver motor TB6612

Modul tb6612 menyediakan driver untuk driver motor TB6612. Modul ini mengekspos kelas Motor untuk menggerakkan satu motor DC pada salah satu dari dua kanal, dan kelas Stepper untuk menggerakkan motor stepper 4 kabel.

Kedua kelas menggunakan pyb.Timer(4) pada 1 kHz di pin P7 dan P8 untuk keluaran daya PWM. Pin arah Motor adalah P3/P2 (kanal 1) dan P1/P0 (kanal 2). Stepper menggunakan keempat pin (P3, P2, P1, P0) ditambah kedua kanal PWM.

Contoh:

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)

Buat pengontrol motor DC yang terikat pada salah satu dari dua kanal TB6612.

  • channel: Nomor kanal motor. 1 menggunakan pin arah P3/P2 dan pin PWM P7 (timer 4, kanal 1). 2 menggunakan pin arah P1/P0 dan pin PWM P8 (timer 4, kanal 2).

set_speed(pwm: int) None

Atur kecepatan dan arah motor.

  • pwm: Siklus tugas bertanda dalam rentang -100 hingga 100. Nilai positif menggerakkan motor maju, nilai negatif menggerakkan motor mundur. Nilai absolutnya diterapkan sebagai persentase siklus tugas PWM ke pin daya.

class Stepper

class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)

Buat pengontrol motor stepper 4 kabel. Menginisialisasi pin arah P3, P2, P1, P0 dan dua kanal daya PWM pada P7 dan P8, kemudian menerapkan kecepatan dan daya yang diminta.

  • stepnumber: Jumlah langkah penuh per revolusi motor stepper yang terhubung. Digunakan bersama rpms untuk menghitung penundaan antar langkah.

  • rpms: Target kecepatan rotasi dalam revolusi per menit. Diteruskan ke set_speed().

  • power: Persentase siklus tugas PWM (0-100) yang diterapkan ke kedua kanal daya. Diteruskan ke set_power().

phase_list() Generator[tuple[int, int, int, int], None, None]

Generator yang terus-menerus menghasilkan pola drive empat-fase (1, 0, 0, 0), (0, 0, 1, 0), (0, 1, 0, 0), (0, 0, 0, 1) yang digunakan oleh step(). Setiap elemen tuple adalah nilai yang ditulis ke pin1, pin2, pin3, pin4 secara berurutan.

set_speed(rpms: int) None

Perbarui kecepatan melangkah.

  • rpms: Target kecepatan rotasi dalam revolusi per menit. Penundaan per setengah-langkah (dalam mikrodetik) dihitung ulang sebagai 1000000 / (rpms * stepnumber) / 2.

set_power(power: int) None

Atur siklus tugas PWM yang diterapkan ke kedua kanal daya.

  • power: Persentase siklus tugas dalam rentang 0 hingga 100.

step(num: int) None

Majukan stepper sebanyak num transisi fase, menerapkan fase berikutnya dari phase_list() dan menunggu penundaan antar langkah yang dikonfigurasi (via pyb.udelay) di antara transisi.

  • num: Jumlah langkah fase untuk dimajukan. Setiap panggilan ke step memajukan tepat sejumlah fase ini; arah tetap (generator fase yang mendasarinya hanya beriterasi maju).