チュートリアル
チュートリアル用コード
- Max 現状Maxのサンプルファイルが最も機能を網羅しています。Maxをダウンロード・インストールして使用してください。
- Processing Contribution of @yuskegoto
- openFrameworks Contribution of @niimi
- Unity Contribution of @niimi
- Touch Designer Contribution of @loveandsheep
接続
ネットワーク
まずPCと基板をLANケーブルで接続します。PCにEthernet端子がない場合は USB-Ethernet変換などが必要です。自動でIPアドレスを割り振るDHCPサーバ機能がついたルータなどを経由すると問題が起きる可能性がありますので、まずはPCとSTEP400を一対一で接続するとわかりやすいです。
ステッピングモータ
STEP400で使用できるのは、「バイポーラ型」のステッピングモータです。使うモータによって電源の容量や各種設定が変わってきます。入手しやすいモータの例としては、MERCURY MOTORのSM-42BYG011-25があります。例えば以下の場所で購入できます。
以下、具体的な設定数値についてはこのモータを例にしていきます。基板とモータ、電源の接続方法についてはこちらを参照してください。
電源
上の例に出てきたモータを1台回す場合は、ACアダプタの容量は24V1Aあれば十分です。STEP400に接続可能なのは、外径5.5mm, 内径2.1mmでセンタープラスのACアダプタです。

実際に電源を投入するのは、下記のDIPスイッチの設定が完了してからにします。
ネットワークの設定
Config Tool
microSDカードへ入れる設定ファイルを書き出すための Config Tool (HTML+JavaScript)を使ってネットワークの設定を変更できますが、ここではSDカードを差し込まず、初期設定を使用することにします。
基板側
基板上のDIPスイッチは1に設定してください。すなわち1の桁のみON, ほかの桁はすべてOFFの状態です。この状態で、基板はネットワーク設定は以下になります。
項目 | 設定値 |
---|---|
IPアドレス | 10.0.0.101 |
返信先アドレス | 10.0.0.10 |
OSC受信ポート | 50000 |
OSC送信ポート | 50101 |

この状態までできたらSTEP400に接続した電源を投入してみます。STP400の裏側には電源電圧がそのままかかっている端子が複数ありますので、基板の穴にスペーサなどを取り付けるか、電気を通さない台の上に置いてください。
PC側
STEP400を接続しているEthernetポートに固定IPを設定します。IPv4を以下のように設定してください。
項目 | 設定値 |
---|---|
IPアドレス | 10.0.0.10 |
サブネットマスク | 255.255.255.0 |
固定IPの設定の仕方はOSによって異なります。
ここまでうまく設定できていれば、MacのターミナルやWindowsのコマンドプロンプトなどからping 10.0.0.101
などのコマンドで接続が確認できると思います。
通信の確認
ここから先は制御に使用する環境によって実際の操作は異なりますが、実際に送受信する Open Sound Control のメッセージのみ記載していきます。
まず、STEP400にメッセージの返信先アドレスを教えるコマンドである /setDestIp
を送ります。送る際の送信先アドレスは 10.0.0.101, 送信ポートは 50000 です。このコマンドが届くまでは、STEP400側からはOSCメッセージの送信を行いません。存在しないあて先にOSCメッセージを送り続けるとSTEP400の動作が不安定になることがあるためです。
/setDestIp
が問題なく受信されると、以下のような応答があるはずです。受信ポートは 50101 です。
/destIp (int)destIp[0] (int)destIp[1] (int)destIp[2] (int)destIp[3] (bool)isNewDestIp
destIp[0-3]
: destIpの各桁isNewDestIp
: destIpが変更されたかどうかを示します。変更されていると1, すでに同じアドレスが設定されていた場合は0です。
これでメッセージをやり取りする準備が整いました。
動かしてみる
早速モータを動かすコマンドを送ってみましょう。/run (int)motorID (float)speed
というコマンドでモータが指定速度で回ります。
motorID
とは、どのモータを動かすかをSTEP400の基板に印刷されている番号で指定するものです。255
をIDに指定すると、すべてのモータへコマンドを送ることができます。これはIDを指定するほとんどのコマンドで使用できます。
speed
はモータの回転速さと向きを指定します。指定できる範囲は -15625.0 - 15625.0 で、単位は [step/s] です。もし1周が200stepのモータを使っているとすると、1秒で1回転させるには200.0を指定します。マイナスの値を指定すると逆向きに回ります。
例えば、コネクタ1番に接続したモータを1秒で1回転させるには、次のようなOSCメッセージになります。
/run 1 200.
無事回ったでしょうか?何かモータの様子が変でとりあえず停止させたい場合は、speed
に0.0
を指定するか、すべてのモータを停止する
/hardHiZ 255
というメッセージを送ってください。
おそらく多くの場合ではきれいに回らなかったと思います。モータに合わせたパラメータの調整が必要ですので、引き続き設定していきます。
KVALの設定
きれいに回らない原因の多くは駆動電圧が不足していることによるもの(高すぎてきれいに回らないこともあります)で、KVALレジスタで調整します。これはモータを駆動する電圧を0から255の数値で指定するもので、0にすると0V(回りません)、255にすると電源電圧のほぼそのままがモータ駆動電圧になります。 例えば24Vの電源を使っていて、KVALに128を指定した場合は、モータは約12Vで駆動されることになります。
KVALは以下のように4種類に分かれています。
名称 | 内容 | STEP400の初期値 |
---|---|---|
KVAL_HOLD | モータ停止中のKVAL | 0 |
KVAL_RUN | モータが一定速で回転中のKVAL | 16 |
KVAL_ACC | モータが加速中のKVAL | 16 |
KVAL_DEC | モータが減速中のKVAL | 16 |
モータを一定速で回転させながら、KVAL_RUNを調整してみましょう。
/run 1 200.
を送ってモータを回転させます。
/setRunKval
というコマンドで KVAL_RUN だけ設定することもできますが、ここでは4つまとめて設定できる次のメッセージを使用してみます。
/setKval (int)motorID (int)holdKVAL (int)runKVAL (int)accKVAL (int)setDecKVAL
motorIDは/run
と同様に1-4, 255で指定し、KVALはいずれも0-255で指定します。ここでは停止中のKVALは0, 加速、減速については一定速のKVALと同じ値に設定しながら、徐々に数値を増やしてみます。
/setKval 1 0 24 24 24
このOSCメッセージを送ると、1番目のモータのKVALを、停止時は0, それ以外は24(電源電圧の約9%)に設定します。ここから徐々に数値を
/setKval 1 0 32 32 32
のように上げていくと、どこかで静かに回り始めます。KVALを上げるとトルクが上がっていきますが、モータの発熱が大きくなったり、振動が再び大きくなってきたりしますので、負荷に合わせて調整してください。