tb6612 — TB6612 upravljački program za motore

Modul tb6612 pruža upravljački program za TB6612 upravljač motora. Izlaže klasu Motor za pogon jednog istosmjernog motora na jednom od dva kanala te klasu Stepper za pogon 4-žičnog koračnog motora.

Obje klase koriste pyb.Timer(4) na 1 kHz na pinovima P7 i P8 za PWM izlaz snage. Pinovi smjera klase Motor su P3/P2 (kanal 1) i P1/P0 (kanal 2). Klasa Stepper koristi sva četiri pina (P3, P2, P1, P0) plus oba PWM kanala.

Primjer:

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

klasa Motor

class tb6612.Motor(channel: int)

Konstruira upravljač istosmjernog motora vezan na jedan od dva TB6612 kanala.

  • channel: Broj kanala motora. 1 koristi pinove smjera P3/P2 i PWM pin P7 (mjerač vremena 4, kanal 1). 2 koristi pinove smjera P1/P0 i PWM pin P8 (mjerač vremena 4, kanal 2).

set_speed(pwm: int) None

Postavlja brzinu i smjer motora.

  • pwm: Predznačeni radni ciklus u rasponu od -100 do 100. Pozitivne vrijednosti pogone motor naprijed, negativne vrijednosti pogone ga unatrag. Apsolutna vrijednost primjenjuje se kao postotak PWM radnog ciklusa na pin snage.

klasa Stepper

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

Konstruira upravljač 4-žičnog koračnog motora. Inicijalizira pinove smjera P3, P2, P1, P0 i dva PWM kanala snage na P7 i P8, zatim primjenjuje zatraženu brzinu i snagu.

  • stepnumber: Broj punih koraka po okretaju spojenog koračnog motora. Koristi se zajedno s rpms za izračun kašnjenja između koraka.

  • rpms: Ciljana brzina vrtnje u okretajima u minuti. Prosljeđuje se metodi set_speed().

  • power: Postotak PWM radnog ciklusa (0-100) primijenjen na oba kanala snage. Prosljeđuje se metodi set_power().

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

Generator koji beskonačno generira četverofazni pogonski uzorak (1, 0, 0, 0), (0, 0, 1, 0), (0, 1, 0, 0), (0, 0, 0, 1) koji koristi step(). Svaki element n-torke je vrijednost koja se zapisuje u pin1, pin2, pin3, pin4 redom.

set_speed(rpms: int) None

Ažurira brzinu koračanja.

  • rpms: Ciljana brzina vrtnje u okretajima u minuti. Kašnjenje po polukoraku (u mikrosekundama) ponovno se izračunava kao 1000000 / (rpms * stepnumber) / 2.

set_power(power: int) None

Postavlja PWM radni ciklus primijenjen na oba kanala snage.

  • power: Postotak radnog ciklusa u rasponu od 0 do 100.

step(num: int) None

Pomiče koračni motor za num faznih prijelaza, primjenjujući sljedeću fazu iz phase_list() i čekajući konfigurirano kašnjenje između koraka (putem pyb.udelay) između prijelaza.

  • num: Broj faznih koraka za napredovanje. Svaki poziv funkcije step napreduje točno za toliko faza; smjer je fiksan (osnovni generator faza iterira samo unaprijed).