はじめてのステッピングモーター (Raspberry Pi zero)

/




倒立振子ロボットの製作ではDCモーターを扱ってきた。倒立させることができたのでとりあえずの目的は達成したが、もっとキビキビとして安定した動作をさせたい欲求が出てきた。そこでステッピングモーターの可能性を探ってみることにした。ステッピングモーターの取り扱いは初めてだったが、なんとかラズベリーパイで制御することができるようになったのでその備忘録を残しておく。



部品の選定


部品は秋月電子で手に入るものを選ぶことにした。ステッピングモーターはバイポーラとユニポーラがある。一つのコイルに対して一定方向の電流しか流さないのがユニポーラで、電流の方向が変わるのがバイポーラである。ユニポーラよりバイポーラの方が低回転時のトルクが高くなる。しかし回転速度を上げていくとユニポーラの方がバイポーラよりもトルクを高く維持できる。これはバイポーラでは電流は交流であるので周波数が高くなるにつれコイルのインダクタンスが大きくなってしまうことが理由のようだ。

さて高速回転では使用するつもりはないのでバイポーラ型を選ぶことにした。バイポーラで選ぶとなると選択肢はしぼられ、比較的安いSM-42BYG011を購入することにした。

一方、モータードライバーはTB6674PGを選んだ。バイポーラ駆動方式で2相ステッピングモータを正逆転させることができる。モーター電源も22Vまで対応しておりちょうど良さそうだ。




配線




TB6674PGの配線は上図のようになった。GNDは全て共通につなぐ。5Vはラズベリーパイの電源を利用し、9Vは別途電池を用意する。IN A、IN B、PS (Power Save)はラズベリーパイの適当なGPIOピンに接続する。

VS2B 動作
L POWER OFF
H OPERATION

注: VS2A は電源端子として5Vを接続しないと動作しない。

詳しくはTB6674PGのデータシートを参照しよう。



動作確認


動作確認のため次のようなプログラムを書いてみた。





LEDでも確認してみた。



モーター側の出力波形をオシロスコープで観察してみると綺麗な矩形波をみることができる。



ステッピングモーターはとてもトルクが大きい。またプログラミンで簡単に正確な角度に回転することができるため利便性が高いことがわかった。
ところで一点、注意することがある。今回の回路ではプログラムを走らせていないときでも常にモーターに電流が流れてしまっていた。モーターが発熱し電池の消耗も早くなってしまう。本番環境では電子スイッチなどを使ってモーターやドライバーの電源自体を制御する必要があるだろう。