tb6612 --- TB6612 モータードライバ

tb6612 モジュールは、TB6612 モータードライバ用のドライバを提供します。2 つのチャネルのいずれかで単一の DC モーターを駆動するための Motor クラスと、4 線式ステッピングモーターを駆動するための Stepper クラスを公開しています。

どちらのクラスも、PWM 電力出力のためにピン P7P8 で 1 kHz の pyb.Timer(4) を使用します。Motor の方向ピンは P3/P2(チャネル 1)と P1/P0(チャネル 2)です。Stepper は 4 つのピン(P3P2P1P0)すべてと両方の 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 tb6612.Motor(channel: int)

2 つの TB6612 チャネルのいずれかにバインドされた DC モーターコントローラを構築します。

  • channel: モーターのチャネル番号。1 は方向ピン P3/P2 と PWM ピン P7(タイマー 4、チャネル 1)を使用します。2 は方向ピン P1/P0 と PWM ピン P8(タイマー 4、チャネル 2)を使用します。

set_speed(pwm: int) None

モーターの速度と方向を設定します。

  • pwm: -100 から 100 の範囲の符号付きデューティ比。正の値はモーターを前進させ、負の値は逆転させます。絶対値が PWM デューティ比のパーセンテージとして電力ピンに適用されます。

class Stepper

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

4 線式ステッピングモーターコントローラを構築します。方向ピン P3P2P1P0P7 および 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) を無限に生成するジェネレータ。各タプルの要素は、それぞれ pin1pin2pin3pin4 に書き込む値です。

set_speed(rpms: int) None

ステッピング速度を更新します。

  • rpms: 毎分回転数で表した目標回転速度。ハーフステップごとの遅延(マイクロ秒単位)は 1000000 / (rpms * stepnumber) / 2 として再計算されます。

set_power(power: int) None

両方の電力チャネルに適用される PWM デューティ比を設定します。

  • power: 0 から 100 の範囲のデューティ比のパーセンテージ。

step(num: int) None

ステッパーを num 回の相遷移分だけ進めます。phase_list() から次の相を適用し、遷移間に設定されたステップ間遅延(pyb.udelay 経由)だけ待機します。

  • num: 進める相ステップの数。step を呼び出すたびにちょうどこの数だけ相が進みます。方向は固定です(基になる相ジェネレータは前方にのみ反復します)。