さて、写真にあるように3種類のコントローラがあります。左から M5Stack に PLUS エンコーダモジュールをつけた物、M5Stack Faces にエンコーダパネルをつけた物、そして Python で作った PC 版。どれもほぼ似たような操作感と機能(ただ回すだけですが。。)です。操作感が一番良いのが Faces にエンコーダをつけた物。左の PLUS エンコーダは昔懐かし?ジョグダイヤルとPCはちょっと微妙。です。
PC から初めてみて、PLUS エンコーダ、Faces エンコーダパネルと順々にステップアップしてみるという方法もあります。ここでは PLUS エンコーダ、Faces エンコーダパネルの選び方について説明します。PC についてはソフトウェア編で解説します。
他のモータを買った場合、配線の色が異なったり、そもそも配線が無い場合があります。そういう場合、配線図を見るなり、端子の記号を頼りに繋いでみてください。コイル二つのペアがあるのでそれぞれを A, B とし、コイルの両端を +/-と思って接続すれば良いです。最悪間違っても動かないだけか、逆に回るだけです。その場合は配線入れ替えてみて下さい。ただしDCジャックケーブルは間違うと壊す可能性があるので慎重に。
NO WARRANTY (無保証)ですが、制作方法とソフトを公開していきますのでよかったら試してみてください。MAK127SP 向けとタイトルには書いていますが、モータさえ取り付けられれば他の望遠鏡にも適用できるのではないかと思います。DRV8825 を使用したフォーカサーの作例はボチボチ見かけますね。
メインのシステム構成は望遠鏡 (MAK127SP) + ステッピングモータ + ATOMIC ステッピングモータードライバキット+コントローラです。ATOMIC ステッピングモータードライバキットは、M5Stack 社の ATOM lite に TI 社の DRV8825 が付いたモジュールで、ATOM lite にステップパルスの生成とコマンド受信を担ってもらっています。
生成パルス数と方向のコマンドを受信すると、ステッピングモータを動作させるという仕組みです。
コマンドは Grove 端子の I2C Slave 接続と USB ケーブルからの USB-serial の二系統をサポートします。
USB micro のコネクターがもげる事態が発生しました!スズメッキ線で補強したので、ほぼほぼ基板側のコネクタは大丈夫だと思います。ケーブル側のコネクタも補強しておきたいので、そのうち3Dプリンタで筐体作ろうかと目論んでます。製品版はType-B のごっついコネクタなんで、こういうことは起こりにくいんだろうなと思います。
6.1 MIDI 端子のピン配置 まずMIDI 規格書はこちら。CA-033 が電気的規格を理解するのに丁度いいです。これがすごくハマりました。使う端子はたったの2つ。4番と5番。これがどちらかわからない!制作記事をみても多くが MIDI IN の回路だったりして。テスターのダイオードチェック機能を使えば MIDI IN 回路のフォトカプラの入力の極性から4番、5番端子が特定できそうなものだけれど、サージなどからの保護用のダイオードがパラレルに逆極性で入っているので、どちらもダイオードのアノード、カソードに見えてしまう。あと、MIDI IN - MIDI OUT はストレートケーブルで繋がるので、MIDI IN の 4 は MIDI OUT の 4 というように同じ番号同士がケーブルで接続されます。
run stepper accel
加速、減速を実現するブロック。start の速度から stop の速度まで、段階的に steps で指定したステップ数回転します。
run accel デモ
run stepper trap
台形駆動します。台形駆動は、だんだん速く回転し、一定速度で回った後、止まる前に徐々に速度を遅くする機能です。グラフを書くと台形なのでそんな名前です。
run trap デモ
変換ブロック
残りは変換ブロックです。回す単位や、速度の単位を変えたい時に使います。物によっては STEPPER units ブロックで初期設定を入れる必要があります。
おまじないというわけではないのですが、
set steps/round を設定しておきましょう。今回使用した MDP-35A はステップ数 48 なので、48を設定します。ステップ角は 7.5° (360/48) なので、
set deg/step で設定しても同じです。これらを指定することによって、回転を角度や回転数で指定したり、速度を rpm で指定すると期待通りに動くようになります。つまり以下のブロックがようやく使えるようになるわけです。もちろん 1ステップ以下の動作は出来ないので丸められます。
これらのうち、STEPPER to steps 使うと最初のプログラムはこういう風に書き直せるわけです。
2周、1周、180°、90°など、直感的に値を設定することが出来るようになります。
応用編として、回転するステージがギアを介してステッピングモーターに繋がっていて、1 ステップで 0.1° 動くシステムなら、set 0.1 deg/step を設定すればステージの回転角度を与えて動かすことが出来ます。ちなみに set mm/step を設定しておくと、mm to steps を使えるようになります。これはスライダーなどのボールネジを使った直線駆動する機構に対する設定で、1ステップで移動する距離を mm でセットすると、mm to steps で移動したい距離を与えるとステップ数を返すようになり、上記の角度指定のように直感的な指定が可能になります。
STEPPER to ms/step は、速度の単位を変換するブロックです。
Hz や、rpm でステップの変化速度を与えたい場合はこれらを使ってください。