tb6612 — ovladač motorů TB6612

Modul tb6612 poskytuje ovladač pro budič motorů TB6612. Nabízí třídu Motor pro řízení jednoho stejnosměrného motoru na jednom ze dvou kanálů a třídu Stepper pro řízení čtyřvodičového krokového motoru.

Obě třídy používají pyb.Timer(4) na 1 kHz na pinech P7 a P8 pro PWM výstup výkonu. Směrové piny třídy Motor jsou P3/P2 (kanál 1) a P1/P0 (kanál 2). Třída Stepper používá všechny čtyři piny (P3, P2, P1, P0) plus oba PWM kanály.

Příklad:

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

třída Motor

class tb6612.Motor(channel: int)

Vytvoří řadič stejnosměrného motoru navázaný na jeden ze dvou kanálů TB6612.

  • channel: Číslo kanálu motoru. 1 používá směrové piny P3/P2 a PWM pin P7 (časovač 4, kanál 1). 2 používá směrové piny P1/P0 a PWM pin P8 (časovač 4, kanál 2).

set_speed(pwm: int) None

Nastaví rychlost a směr motoru.

  • pwm: Znaménková střída v rozsahu -100100. Kladné hodnoty pohánějí motor vpřed, záporné hodnoty jej pohánějí vzad. Absolutní hodnota se použije jako procentuální střída PWM na napájecí pin.

třída Stepper

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

Vytvoří řadič čtyřvodičového krokového motoru. Inicializuje směrové piny P3, P2, P1, P0 a dva PWM napájecí kanály na P7 a P8, poté použije požadovanou rychlost a výkon.

  • stepnumber: Počet plných kroků na otáčku připojeného krokového motoru. Používá se spolu s rpms k výpočtu prodlevy mezi kroky.

  • rpms: Cílová rychlost otáčení v otáčkách za minutu. Předáno metodě set_speed().

  • power: Procentuální střída PWM (0-100) aplikovaná na oba napájecí kanály. Předáno metodě set_power().

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

Generátor, který nekonečně poskytuje čtyřfázový budicí vzor (1, 0, 0, 0), (0, 0, 1, 0), (0, 1, 0, 0), (0, 0, 0, 1) používaný metodou step(). Každý prvek n-tice je hodnota zapsaná postupně do pin1, pin2, pin3, pin4.

set_speed(rpms: int) None

Aktualizuje rychlost krokování.

  • rpms: Cílová rychlost otáčení v otáčkách za minutu. Prodleva na půlkrok (v mikrosekundách) se přepočítá jako 1000000 / (rpms * stepnumber) / 2.

set_power(power: int) None

Nastaví střídu PWM aplikovanou na oba napájecí kanály.

  • power: Procentuální střída v rozsahu 0100.

step(num: int) None

Posune krokový motor o num fázových přechodů, přičemž aplikuje další fázi z phase_list() a mezi přechody čeká nakonfigurovanou prodlevu mezi kroky (pomocí pyb.udelay).

  • num: Počet fázových kroků k posunu. Každé volání step posune přesně tolik fází; směr je pevný (podkladový generátor fází iteruje pouze vpřed).