tb6612 --- TB6612 モータードライバ¶
tb6612 モジュールは、TB6612 モータードライバ用のドライバを提供します。2 つのチャネルのいずれかで単一の DC モーターを駆動するための Motor クラスと、4 線式ステッピングモーターを駆動するための Stepper クラスを公開しています。
どちらのクラスも、PWM 電力出力のためにピン P7 と P8 で 1 kHz の pyb.Timer(4) を使用します。Motor の方向ピンは P3/P2(チャネル 1)と P1/P0(チャネル 2)です。Stepper は 4 つのピン(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
class Motor¶
class Stepper¶
- class tb6612.Stepper(stepnumber: int = 200, rpms: int = 2, power: int = 50)¶
4 線式ステッピングモーターコントローラを構築します。方向ピン
P3、P2、P1、P0とP7およびP8の 2 つの PWM 電力チャネルを初期化し、指定された速度と電力を適用します。stepnumber: 接続されたステッピングモーターの 1 回転あたりのフルステップ数。rpmsと組み合わせてステップ間の遅延を計算するために使用されます。rpms: 毎分回転数で表した目標回転速度。set_speed()に転送されます。power: 両方の電力チャネルに適用される PWM デューティ比のパーセンテージ(0-100)。set_power()に転送されます。
- phase_list() Generator[tuple[int, int, int, int], None, None]¶
step()で使用される 4 相駆動パターン(1, 0, 0, 0)、(0, 0, 1, 0)、(0, 1, 0, 0)、(0, 0, 0, 1)を無限に生成するジェネレータ。各タプルの要素は、それぞれpin1、pin2、pin3、pin4に書き込む値です。
- set_speed(rpms: int) None¶
ステッピング速度を更新します。
rpms: 毎分回転数で表した目標回転速度。ハーフステップごとの遅延(マイクロ秒単位)は1000000 / (rpms * stepnumber) / 2として再計算されます。
- step(num: int) None¶
ステッパーを
num回の相遷移分だけ進めます。phase_list()から次の相を適用し、遷移間に設定されたステップ間遅延(pyb.udelay経由)だけ待機します。num: 進める相ステップの数。stepを呼び出すたびにちょうどこの数だけ相が進みます。方向は固定です(基になる相ジェネレータは前方にのみ反復します)。