RPZ-Stepper (Raspberry Pi用 高機能ステッピングモータードライバー)

ステッピングモーターを制御できるRaspberry Pi(ラズパイ)用拡張基板です。位置や角度、回転数などを指示すれば、自動で目標までモーターを動かしてくれます。加減速、静音モード、省電力モード、電流測定などの機能を搭載しています。ものを動かしたり回転させるシステムが実現できます。

2024/2/19: Raspberry Pi 5に対応しました

ステッピングモーターの利点

Raspberry Piでものを移動させたり回転させたい、と考えたことはありませんか?

このような機械的な動きはモーターで実現できます。しかし、一般的なDCモーターは大まかな回転数を制御することしかできず、細かな制御には向きません。

そこで、ステッピングモーターの出番です。ステッピングモーターは電気信号で非常に細かく制御できるモーターで、回転角度や回転数を正確に決めることができます。そのため、以下のような応用が可能です。

  • ものや自機を正確な位置に移動させる
  • カメラの撮影角度を正確に動かす
  • ロボットアームでものを仕分ける
  • 特定の速度でコンベアやホイールを動かす
  • CNCマシン
ステッピングモーター

ステッピングモーターの優れている点をDCモーターと比較して表にまとめました。低速で細かく制御するのに向いていることが分かります。一方で、細かい制御なしで高速で回転させる用途はDCモーターが向いています。

ステッピングモーターとブラシ付きDCモーターの比較

プログラムによる複雑な動作が可能で、カメラやセンサー、ネットワークなどとの連携も可能なRaspberry Piは、ステッピングモーターとの相性が良いといえるでしょう。ラズパイとステッピングモーターを使うことで様々なアプリケーションが実現できます。

しかし、細かい制御ができるために、ゼロから開発すると大変という側面もあります。そこで、高機能モータードライバー「RPZ-Stepper」基板と、Indoor Corgiが開発したモーター制御ソフトウェアを組み合わせることで、わずか数行のコマンド/コードでモーターを回転させることができますお客様の開発工程を削減し、目的のシステムの実現を容易にします

機能概要図

機能概要図

製品の特徴

高機能モータードライバーIC搭載

RPZ-Stepperは高機能なモータードライバー「TMC5240」を搭載しております。TMC5240はモーションコントローラーを内蔵しているため、位置や角度、回転数などを指示すれば、全自動で目標までモーターを動かしてくれます。さらに、加減速、静音モード、省電力モード、電流測定など、多くの機能を搭載しています。

以下に一般的なモータードライバーとの比較を表にしました。

一般的なステッピングモータードライバーとの機能比較
位置、角度、回転数制御

ステッピングモータードライバーは、パルス信号を送信するたびに1ステップ回転するものが一般的です。この方法はシンプルですが、モーター回転中は常にリアルタイムでパルスを出力する必要があり、他のタスクと平行して行うことが難しいです。

RPZ-Stepperは高機能なモータードライバー「TMC5240」を搭載しております。Raspberry Piから位置や回転数など指示を送るだけで、ドライバー側で自動的に加減速も計算してモーターを指定位置まで動かします。そのため、ユーザーはモーターの細かい制御にリソースを使う必要がなく、「やりたいこと」に集中できます。複数のモーターを同時に動かすことも容易です。

加速、減速制御

負荷のあるステッピングモーターを回転させ、一定の位置まで移動することを考えてみます。始動時に急に速度を上げたり、停止時に急停止すると、負荷の慣性により脱調を起こし、意図した位置からずれてしまう恐れがあります。また、脱調しないような安全な速度にすれば速度が不十分となります。(下図左)

そこで、始動時と停止時には緩やかに速度を変化させることが望ましいです。(下図右) RPZ-Stepperでは、あらかじめパラメーターをセットしておくことで、モータードライバーが自動的に加減速を行います。ユーザーは目標の位置、角度、回転数を指示するだけです。パルス信号で制御する一般的なモータードライバーの場合、加減速中はリアルタイムにパルス間隔を変動させる必要があり、Raspberry Piから行うと複雑な処理が必要になります。

一定のパルスによる定速制御
加減速を考慮した制御

RPZ-Stepperに搭載されている高機能モータードライバー「TMC5240」は、速度領域に応じて加速ゾーン3つと減速ゾーン3つを指定できます。ステッピングモーターは回転数が大きくなるとトルクが低下していくため、高速域では加速をゆっくりにするなど、最適なプロファイルを実現できます。

加速ゾーン3つ、減速ゾーン3つによる加減速制御 (TMC5240データシートより引用)
静音モード

ステップ角単位で回転するという仕組み上、ステッピングモーターは振動や音が大きくなりやすい特徴があります。

RPZ-Stepperは静音モードを搭載しており、特に低速回転時において振動と音を低減できます。

以下に静音モード使用時の動作音を測定した比較です。30rpmでは10dBと、ほぼ動作しているのがわからないレベルの静音性となっています。静かな環境で動作させるアプリケーションに最適です

省電力モード

ステッピングモーターは軽負荷や停止時であっても電流を消費するという特徴があります。状況によっては不要な電流が流れ続けて電力を消費したり、発熱したりします。

RPZ-Stepperは回転時、停止時それぞれについて、電流値を変更できます。最適な電流値にすることで省電力化が可能です。

モーター電流測定機能

モーターの電流を測定する機能があるため、以下のようなことが可能になります。測定は基板で消費している電流の合計、電源電圧基準となります。

  • 消費電力の測定
  • 省電力機能の効果確認
  • バッテリーで動作させる場合の動作可能時間見積もり
  • モーターやドライバーICの発熱の見積もり
マイクロステップ動作対応

ステッピングモーターは1周あたり200の角度を持つタイプが一般的です。マイクロステップ動作とは、この1/200のステップ(フルステップ角)をさらに256に分割して制御する方法で、より滑らかに回転させることができます。

制御ソフトウェア付属

Indoor Corgiが開発したモーター制御用コマンドラインツールとPythonライブラリが付属します。わずか数行のコマンド/コードでモーターを回転させることができます

高機能モータードライバーICと付属ソフトウェアで、お客様の開発工程を削減し、目的のシステムの実現を容易にします

最大4台のステッピングモーターを駆動

製品1台あたり2台のステッピングモーターを駆動できます。製品2台を重ねることで最大4台のステッピングモーターを制御できます。X/Y/Z軸やひねりなど、複数のモーターを制御するような用途に利用可能です。

広い電圧範囲

5Vから30Vの広い入力電圧範囲をカバーしており、よく利用される5V/12V/24Vの電源に対応しています。

ロック機構付きコネクター

モーターとの接続にはJST社製NHコネクター、電源との接続にはJST社製VHコネクターを採用しました。いずれもロック機構付きで、モーターの振動があっても脱落する心配がありません

また、メンテナンス時には取り外しがしやすく、1線ずつ取り付けるターミナルブロックと比べて誤配線が起きにくくなっています。

保護回路

電源入力部に逆接続、過電圧、過電流防止保護回路を搭載しました。また、モータードライバーICも個別に、過熱、過電流保護機能を内蔵しております。万一の誤接続やショートによる損害を抑えます。

拡張基板/HATスタック

RPZ-Stepperの上に別の拡張基板/HATをスタック(積み重ね)できます。例えば、RPZ-PIRS(感/明るさセンサー/赤外線 拡張基板)と組み合わせるとモーターとセンサーを連携させることが可能です。

付属アダプターを接続するだけなのではんだ付けは不要です。

RPZ-Stepperの上にRPZ-PIRSをスタックした例

仕様

項目仕様
対応ハードウェア40ピンコネクタを搭載したRaspberry Piシリーズ (Raspberry Pi Picoシリーズは非対応です)

動作確認を行っている製品:
– Raspberry Pi 5
– Raspberry Pi 4 Model B
– Raspberry Pi 3 Model B/B+
– Raspberry Pi Zero 2 W
– Raspberry Pi Zero W/WH
対応OS2023年以降にリリースされたRaspberry Pi OS
モータータイプ2相バイポーラ型ステッピングモーター
電源コネクター2ピンVHコネクター
モーター接続コネクター4ピンNHコネクター x2
電源電圧5V – 30V (最大6A)
モーター電流3A/相
モーター電流@周囲温度 (*1)3A/相@30℃
2.6A/相@40℃
2.1A/相@60℃
マイクロステップ256
使用GPIOSCLK/GPIO11
MOSI/GPIO10
MISO/GPIO9
GPIO8/CE0 (モーター1用)
GPIO7/CE1 (モーター2用)
GPIO25(基板選択用。基板2枚/モーター4台利用時のみ使用)
最大SPI通信速度10Mbps

(*1) モーターを連続して運転する場合、発熱を加味した電流値の目安です。使用環境により変動する可能性があります。周囲温度にはRaspberry Pi本体の発熱も含みます。

購入

RPZ-Stepper基板本体と、Raspberry Pi接続用アダプターのセットになります。ケーブルやモーター側のコネクターは付属しません。

まとまった数量をご希望の方は、見積もり依頼よりご連絡ください。

RPZ-Stepper-D

2相バイポーラステッピングモーター2台を駆動できる標準タイプです。本製品2台で、最大4台のモーターを駆動できます。

モーター選定ガイド

バイポーラ/ユニポーラ配線

ステッピングモーターにはバイポーラ配線(4本端子)とユニポーラ配線(6本端子)があります。本製品はバイポーラ専用ですのでバイポーラ型モーターを選定してください。

ハイブリッド/PM/VR

構造の違いによりハイブリッド(HB)、PM、VR型があり、いずれも本製品で制御可能です。特に理由がなければ、高トルクで分解能が高い(ステップ角が小さい)ハイブリッド型を推奨します。

ハイブリッド型
PM型
トルク、回転数

ご自身の用途に必要なトルクがあるかご確認ください。一般的に静止(保持)トルクが最大となり、回転数を上げていくとトルクが下がっていきます。モーターの仕様に静止トルク、および回転数 vs トルクの値が記載されています。

ステッピングモーターは低速に向いているモーターであり、数百rpm以下で使用することが多いです。

トルク=1[Nm]の場合、モーター軸を中心に半径1mで1Nの力があることを意味します。てこの原理により、半径10cmであれば10Nの力となります。

電流

1相あたり最大3Aまでのモーターを使用してください。3Aを超えるモーターも制御は可能ですが、電流が3Aに制限されるため本来の性能を発揮できません。

2A/相を超える電流で駆動する場合はドライバーICの発熱に注意してください。本製品には電流を最適化して発熱を抑えたり、ドライバーICの温度を取得する機能がございます。

電源

本製品は5V – 30Vの電源電圧に対応しています。基本的に電圧が高い方が回転時のトルクが大きくなります。24Vや12Vがよく利用されます。

以下の式のようにモーター電流 x モーター抵抗より高い電圧にしてください。下回るとモーターの性能を発揮できません。

電源電圧[V] >> モーター電流[A] x モーター抵抗[Ω]
推奨モーター、購入先
推奨モーター/購入先コメント
オリエンタルモーター PKP/PKシリーズ各サイズのラインナップが充実しています。高トルク、低振動が特徴です。
StepperOnline Nemaシリーズ各サイズのラインナップが充実しています。リニア駆動型もあります。
秋月電子通商定番のサイズのものを取り扱っており、価格も手頃です。

セットアップ(ハードウェア)

アダプターの取り付け

以下の写真のように、付属アダプターをRPZ-Stepperに取り付けます。

アダプターをRPZ-Stepperに取り付けた状態
基板選択スイッチのセット

RPZ-Stepperを1台で利用するか、2台で利用するかに応じて、スイッチDSW1-1(BD_SEL)、2(BD_ID)の設定を変更します。下の写真で見て下にセットされているとOFF、上にセットされているとONとなります。

以下の表の通りセットしてください。2台利用の場合、両方の基板でDSW1-1(BD_SEL)をONにすることで基板選択機能を有効にします。すると、DSW1-2(BD_ID)をOFFにした基板がID#0、ONにした基板がID#1となり、ソフトウェアから選択可能になります。

DSW1-3(MODE)、4(SHDN)はOFFにしてください。これらについては後述します。

利用方法DSW1-1
(BD_SEL)
DSW1-2
(BD_ID)
1台利用OFF (基板選択無効)OFF
2台利用 基板ID#0ON (基板選択有効)OFF (ID#0)
2台利用 基板ID#1ON (基板選択有効)ON (ID#1)
Raspberry Piに取り付け

Raspberry Piの40ピンコネクターに取り付けます。2台利用の場合はスタックして(縦に重ねて)取り付けます。

Raspberry Pi 4 ModelBに取り付けた例
2台スタックした例
モーター接続

RPZ-Stepper基板のモーター接続コネクターJ3、J4は4ピンNHコネクターです。モーターの電線を加工してNHコネクター用のハウジングを取り付けます。以下が代表的なコネクターと工具の型番です。

コネクター/工具型番
NHコネクターハウジング 4ピンH4P-SHF-AA
NHコネクターコンタクトSHF-001T-0.8BS
圧着工具例PA-21
NHコネクターおよび圧着工具

配線は以下の表の通りにしてください。ステッピングモーターは2相バイポーラ型に対応しています。ユニポーラ型は非対応です。A/B各相の2本の配線に順序はなく、2相のうちどちらをA相に割り当てるかも決まりはありませんが、接続によって回転方向が変わる場合があります。

ピン番号配線
1A相
2A相
3B相
4B相
モーター接続コネクターJ3、J4のピン配置
電源接続

RPZ-Stepper基板の電源コネクターJ2は2ピンVHコネクターです。モーターの電線を加工してNHコネクター用のハウジングを取り付けます。以下が代表的なコネクターと工具の型番です。

コネクター/工具型番
VHコネクターハウジング 2ピンVHR-2N
VHコネクターコンタクト AWG#22-18電線用SVH21T-P1.1
VHコネクターコンタクト AWG#20-16電線用SVH41T-P1.1
圧着工具例PA-21
VHコネクターおよび圧着工具

配線は以下の表の通りにしてください。

ピン番号配線
1
2+
電源コネクターJ2のピン配置

最後にRaspberry Pi本体の電源コネクターに電源を接続します。

セットアップ(ソフトウェア)

SPI有効化

基板とはSPIで通信します。Raspberry Piをお使いの場合は、こちらの記事を参考にSPIを有効化して下さい。

制御ソフトウェアのインストール

Indoor Corgiで開発したRPZ-Stepperでモーターを制御するコマンドラインツール、Pythonライブラリをインストールします。最新版へのアップグレードも同じコマンドで可能です。

$ sudo python3 -m pip install -U cgstep --break-system-packages

エラーが出る場合は最後のオプションを指定せずにお試しください。

$ sudo python3 -m pip install -U cgstep

使い方

モーター制御

モーターの制御方法については詳しく解説するため、別のページを用意しています。まずは、制御ソフトウェアを使ってモーターを回転させる基本的な手順を解説している以下の記事をご覧ください。

ステッピングモーターを指定位置まで回転させる基本手順 (Raspberry Pi + RPZ-Stepper)

RPZ-StepperとRaspberry Pi(ラズパイ)を使ってステッピングモーターを指定位置まで回転させる基本手順を解説しています。制御ソフトウェアcgstepの使い方と、必須のパラメーターについても解説しています。

各種機能については以下の記事にまとめています。

複数のステッピングモーターを制御する (Raspberry Pi + RPZ-Stepper)

RPZ-Stepperは基板1枚に2台のステッピングモーターを接続でき、最大で基板2枚、モーター4台を制御できます。本記事では、制御ソフトウェアcgstepで複数ステッピングモーターを制御する方法を解説しています。複数台のモーターを使うことでX/Y/Z軸移動など複雑な動きを実現できます。

ステッピングモーターを指定速度/回転数で回転させる (Raspberry Pi + RPZ-Stepper)

RPZ-Stepperは、速度指定モードに設定することで、指定した速度でステッピングモーターを回転させ続けることができます。途中で速度を変更も可能で、指定したパラメーターに応じて自動で加減速します。速度を細かく制御しながら回転し続けるようなアプリケーションに最適です。

加速、減速を細かく指定してステッピングモーターを回転させる (Raspberry Pi + RPZ-Stepper)

RPZ-Stepperでは、速度域を3つに分けて、それぞれについてモーターの加速、減速の速さを指定することが可能です。例えば、負荷が重いので動き出しをゆっくり加速したい場合が考えられます。また、ステッピングモーターは回転数が上がるほどトルクが下がる特徴があります。そのため、早い速度域では加速を遅くして脱調を回避できます。

ステッピングモーターの電流を最適化して省電力化&発熱対策 (Raspberry Pi + RPZ-Stepper)

ステッピングモーターは軽負荷や停止時であっても電流を消費するという特徴があります。RPZ-Stepperは回転時、停止時それぞれについて、電流値を変更できるため、最適な値にすることで省電力化が可能です。また、ドライバーICの温度や、消費電流の測定も可能で、発熱やバッテリーでの動作時間の見積もりが可能です。

静音モードでステッピングモーターの動作音を抑える (Raspberry Pi + RPZ-Stepper)

ステップ角単位で回転するという仕組み上、ステッピングモーターは振動や音が大きくなりやすい特徴があります。RPZ-Stepperは静音モードを搭載しており、特に低速回転時において振動と音を低減できます。静かな環境で動作させるアプリケーションに最適です。

cgstepの使い方&レジスターアクセス方法 (Raspberry Pi + RPZ-Stepper)

制御ソフトウェアcgstepには、モータードライバーTMC5240のパラメーターを読み書きする機能、独自の複合機能オペレーション、レジスターを直接書き換える機能があります。本記事では、それぞれの機能の使い方について解説します。使い方の記事で紹介しきれなかったパラメーターやレジスターを書き換えることで、より高度な調整が可能になります。

シャットダウン

スイッチDSW1-4(SHDN)をONにセットすると、シャットダウン状態となり、RPZ-Stepperのすべての動作が停止して電力を消費しない状態になります。DSW1-4(SHDN)をOFFに戻すと動作を再開します。モータードライバーは初期状態に戻ります。シャットダウンはモーターが停止している状態で行ってください。

保護回路とMODEスイッチ

過電流保護回路を搭載しており、電源から基板への電流が6Aを超えると電力供給を遮断します。

この場合、一度電源(J2コネクター)を落として再度印加することで、基板に電力が供給されます。ただしスイッチDSW-1-3(MODE)がONに設定されていると、電源を落とさなくても一定時間おきに復帰を試みます。

なお、保護回路ではなくモータードライバー側が過電流や発熱のために停止する可能性もあります。その場合はモータードライバーと通信できますので、モータードライバーTMC5240の復帰手順に従ってください。

開発者向け資料

注意事項

開発依頼

本製品への機能追加や指定コネクターへの変更などのカスタマイズ、本製品を使ったシステムの開発依頼、その他ハードウェア、ソフトウェアの開発については、有償にて承っております。ハードウェア、ソフトウェア受託開発をご参照下さい。

関連ページ

RPZ-IR-Sensor (Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード)

動作をプログラミング可能な、Raspberry Pi/Zero(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧、明るさセンサー、赤外線送受信機能を搭載。温度が上がったらエアコンをオンにする、暗くなったら照明を点灯する、外出先から家電の操作をする、気温や日照時間を記録する、といった使い方が可能です。LEDにステータスを表示したり、スイッチを押したら特定の処理をすることもできます。

ラズパイで赤外線制御 (家電、エアコン、照明、テレビなどを制御するホームIoT)

Pythonとpigpioを使ってRaspberry Piで赤外線の送受信を行う方法について解説しています。サンプルプログラムを用意しているので、簡単に受信、登録、送信動作をさせることができるほか、データ解析も可能です。赤外線を使ってエアコン、照明、テレビなどの家電を制御することが可能になります。

E32-SolarCharger (ESP32、ESP-WROOM-32/WiFi搭載 プログラマブルIoT 鉛/LFPバッテリーソーラー充電基板)

Arduino IDEで動作を自由にプログラミング可能な、IoTソーラーチャージャー基板です。WiFi内蔵マイコンであるESP32(ESP-WROOM-32)を採用しました。鉛/LFPバッテリー充放電回路、microSDスロット搭載。状況にあわせた充電、負荷の接続/切断ができ、ネットワークからのモニタリングも可能です。