2021/09/12

MAK127 focuser ver.3 (電子工作編)

機械工作編に続いて電子工作編。

モータとコントローラの配線及びソフトウェアについて紹介します。

ここで用意するものは、

です。DCジャック付きケーブル以外は機械工作編で紹介したかと思います。

念の為、ステッピングモータはバイポーラ型、12Vのものを。

ステップ数は 200ステップ(1.8°)もあれば十分だと思います。

電源は12V。電流容量は1Aもあれば十分。大きい分にはかまいません。

ちなみにATOMICステッピングモータードライバーキットはM5Stackという中国の会社の製品。こちらのサイトから直接購入できます。日本にも発送してくれます。遅いけど安かったりするようです。日本での入手先は機械工作編みてください。あまり高くはないので、まず ATOMIC ステッピングモータードライバーキットを入手して、ソフトウェアの準備ができそうだったら電子工作や機械工作を進めてみるといいかもしれません。


電子工作を少しでもやったことがある方だと簡単な部類に入ると思います。


ハードウェア

工作はいたって簡単。

  1. モータのケーブル、DCジャック付きケーブルを適度な長さにカット
  2. ビニールの被覆を5mmぐらいカッター、ニッパーなどで剥く
    (ブルジョワな方はワイヤーストリッパーを買いましょう。とても楽です)
  3. 配線をATOMICステッピングモータードライバーキットにネジで繋ぐ
  4. ATOMICステッピングモータードライバーキットの設定をする

以上です。

出来上がりはこんな感じ
シンプルです。

ビニールの被覆を剥くのが苦手な方はいるかもしれませんが、たいていモータのケーブルなどは余計に長いので何度も練習するチャンスはあります。銅線を切らないよう注意してください。

3. のネジで配線を繋ぐところと調整だけ説明しましょう。

配線を繋ぐ

まずモータとDCジャックケーブルのそれぞれの配線が何を意味しているかを調べます。


バイポーラ型のステッピングモータには配線が4本ついています。とりあえずデータシート(仕様書)を探して、どの色がどのように繋がっているか調べます。

上記モータのリンク先、秋月電子にあるデータシートをみると、以下のような絵が見つかります。

コイル(くるくるした線)が二組あるのがわかります。それぞれの線の先に色と記号(ここではA,C,B,D)が書かれています。記号は各社まちまちで、A+, A-, B+, B- とかかれている場合もあるし、他の書き方もありますがここでは一旦無視します。ここで重要なのは、二組のコイルがあるのでとりあえずどっちでもいいので、A, B と名前をつけておきます。そして A, B のそれぞれの両端を+,-とどっちでもいいので決めておきます。

上記の例ではとりあえず左側を A、右側を Bとしておきます。黒を A+, 緑を A-, 赤を B+, 青を B- としましょう。

また、DCジャックですが、ACアダプターを繋ぐものです。大抵真ん中が+、外側が-です。AC アダプターに合わせてどちらが+か-かを調べておきます。秋月の説明をみるとテスターで自分で調べろ的なことが書いてあります。

これらがわかってしまえば、あとは ATOMIC ステッピングモータードライバーキットに付いているラベルの指示通りに配線を精密ドライバー(ねじ小さいです)でねじ止めすれば完了です。


電源はそうはいきませんが、モータは配線間違ってもこわれずに回らないか、反対に回る程度です。仮に反対に回ってしまってもツールの方から反転設定ができるので回らなかったら、配線を見直す程度でいいと思います。

注意点

被覆を剥きすぎて、隣同士がショートしないようにしてください。あとお好みですが、配線がちらばるのが嫌であれば、100均などでスパイラルチューブを購入してまとめるといいです。
あとねじ止めした部分ですが、切れやすいので引っ張って力を入れないように。

調整(と設定)

ディップスイッチ

ディップスイッチの設定をしておきます。
まずはキットの ATOM Lite(下側の四角の小さい箱、ESP32が入ってます) を上に引っ張って外し、モータコネクタ側のカバーを横から押しながら外します(爪を折らないように)。

外したところ

ディップスイッチは4つあります。左から1,2,3,4。下下下上(OFF, OFF, OFF, ON)です。左三つはマイクロステップの設定。右端はディケイの設定。詳しくは DRV8825 のデータシートを見てください。このモジュールの設定情報はこちら。Full step というモードにしてます。

ステップモードについて

ステッピングモータの軸を指で回してみるとわかるのですが、クリック感があってカチカチ止まる場所があります。このクリック感がある場所で止まるのが Full step モードです。モータのステップ数はFull step で止まる箇所の数になり、それが一周200だったり400だったりするわけです。マイクロステップはこれより細かいステップで動かすことができるのですが、そこまで細かくなくてもいいと思っているので、Full step の設定にしました。ディケイモードもとりあえずFastにしておきました。ソフト的には Full step 以外には Half step (1/2)〜1/32までのステップモードを選ぶことができます。そのカチカチの 1/2 の位置とかいうことです。DRV8825 はそういうモードを持っています。さらに細かく動かしたい場合はこれら設定を選ぶようにします。ただ、励磁を止める(電流を切る)と、中間的な位置にいたモータの軸は Full step の位置に移動してしまうので、電源を切るとズレてしまうので Full step の方がいいかもしれません。

myFP2ESP のファームではマイクロステップの設定をソフトウェアで変更できるようになっています(これらスイッチがESP32のGPIOに割り振られている)。ただしこのキットはソフトウェアでは変えられず、ディップスイッチで設定を変えることはできます。

電流設定

ATOMICステッピングモータードライバーキットは、モータを動かす電流の調整をすることができます。実際に動かそうとして動かないとか、動かしている時の消費電流を下げておきたい(バッテリー駆動の時に)とかいう場合に調整するといいです(ステッピングモーターのドライバーはモータの軸が止まっていてもずーっと電流を流し続けます)。また Full step 以外のマイクロステップモードにした時も電流をちゃんと設定しないと脱調(回らず滑る)する場合もあります。安全のためにわざと脱調しやすくしておくのもいいとは思います。

キットの基盤の上にプラスネジで回せる電流調整用ボリュームがあるので、これをドライバーで回しながら調整します。時計回りに回すと電流大、反時計回りで電流小です(ケースのラベルに説明ある)。脱調しない程度に左に回して電流絞ると消費電力は下がります。

あれ、回らないな?と思ったらここを調整してみてください。

ちなみにステッピングモータは流す電流次第で結構熱くなります。びっくりしないように。そういうもんです。ただ電流抑えればそれほどは熱くはなりません。

以上で電子工作のハード的な準備はおしまいです。

ソフトウェア

マイコン使った電子工作の経験がないと、ここが一番の難関だと思います。

M5Stack と ATOM Lite

今回使った ATOMIC ステッピングモータードライバーキットは、M5Stack 社の ESP32(WiFi, Bluetooth と接続できる機能を持ったマイコン) を使った製品で、他にも色々製品があります。
M5Stack Basic (製品名)は、ESP32 に、ディスプレイ、3つのボタンを付けた小型の機器で、これだけで大分遊べるのですが、ここからディスプレイをLEDに、ボタンは1つに省略し、更に小型に価格も安く抑えたのが ATOM Lite という製品で、その拡張製品が ATOMIC ステッピングモータードライバーキット (ATOM Lite + DRV8825) になります。

入手は、秋葉原だと千石電商マルツ秋月などで購入が可能です。
オンラインでは取り扱いが一番大きいのはスイッチサイエンスだろうと思います。

ネットで情報も色々ありますし、本も出てたりするので電子工作(組み込み)初めてみようという方には丁度いいガジェットだと思います。プログラミング環境もC、Python、UIFlow など様々な環境が用意されていますので、プログラミングの勉強にもいいと思います。

開発環境

開発環境を整える必要があります。多分ここが一番ヤマ。

開発環境として利用できるのは、Windows と Macと Linux。私は Mac 時々 Windows な感じです。Arduino と呼ばれる元々は Arduino のために開発された環境に、M5Stack の開発環境を追加することになります。

さて、どうしたものか。。。
公式のインストール手順はコチラになります。英語ですが。
今回使う ATOMIC ステッピングモータードライバーキットは ATOM Lite を使っているので、

For Atom Matrix/Atom Lite

の部分に書かれているライブラリのインストールをしてください。

英語よくわからん。という人は、上記リンクを Google の翻訳窓に貼り付けて、日本語にしてしまいましょう。日本語のリンク先をクリックすれば日本語になります。

また、M5Stack Arduino 開発環境 などのキーワードでググれば色々情報出てきますのでそちらを参考にお願いします。

うまくインストールできたかどうかは、M5Atom のスケッチ例 LEDSet を試してみるといいと思います。ATOM Lite のボタンを押すと LED の色が変わります。


myFP2ESP(クイックハックの紹介)


ソフトウェアのラスボスです(笑)

可能であれば本家に取り入れてもらってそれを公開するのが良いとは思いますが、それが可能なのかも分かりませんし、その準備もしていないのでクイックハックの方法を最初に公開します。なので、本家にとりいられることがあったり、誰かが ATOMIC ステッパーモーターキットに対応するよう修正されたものを公開したらそちらに切り替えると思います。

myFP2ESPとは

とにかく作者の Robert Brown さんには大感謝!!!
やりたいことがすぐできました。

本家のサイトから、

A DIY remote ASCOM focuser based on ESP32/ESP8266 WiFi (based on myFocuserPro2). DRV8825, ULN2003, L298N, L293DMINI , L9110S, TMC2225, TMC2209, ESP8266 L293D Motor Shield. Support for Webserver, Bluetooth, LocalSerial and ASCOM REMOTE ALPACA, mDNS as well as TCP/IP.

です。DIY 向けの ESP32 か ESP8266(ESP32と似たようなマイコン)+様々なモータドライバに対応した ASCOM フォーカサーです。コントロールや接続方法も色々用意されてます。

ESP32 と DRV8825 に対応してますよね?なので、ATOMIC ステッピングモータードライバーキットには最小限の手順で移植できると推測されます。


本家のサイトにあるダウンロードから、PDF のドキュメントがダウンロードできるのですが、とても詳細に書かれていますので興味があれば読んでみるといいです。あと、このサイトの Files のタブの下の、Documentation の下に、Focuser Basics.pdf が置いてあるのでこれは英語ですが読んだ方がいいと思います。ステッピングモーターの1ステップで移動する距離が妥当かどうかを判断するのに。転記していいかどうかわからないので書きませんが。

ちなみにライセンスについては独自のライセンスのようで、改変、公開は構わないけど、オリジナルのファイルを全部つけること、ライセンスの明記、無償公開が条件のようです。詳しくは上記 PDF を読んでください。

ちなみにドキュメント類は必要な(興味ある)ところだけつまみ食いしただけなので、理解してないところも多々あります。

クイックハック(という名の移植)

ようやく本命です!
ここでは最小限の手順で移植する方法を紹介します。

もう少しちゃんとやる方法を確認しましたので、近々修正します。
ただ少々修正部分増えます(2021/9/13)。

変更内容 

  • 色々あるボードの組み合わせから ESP32 + DRV8825 対応を選ぶ
  • モータのモードなどを設定する
  • 接続方法を選ぶ WiFi
  • 接続の設定を選ぶ SSID など
  • GPIOの接続を修正する(ターゲットとしているボードと配線が違うので)
    Enable, STEP, DIR 端子が割り当てられれば良い。
ぐらいです。
最後の GPIO の設定は JSON ファイルを修正すれば良いみたいなのですが、取り急ぎ変更を公開したかったのでクイックハック版です。あとで JSON を修正する方法に変更します。

接続方法について(シリアルについては最後に追記)

接続する方法はいくつかあるのですが、ベランダで観測する人なので、家庭内の無線LANに ATOMIC ステッピングモータードライバーキットを接続し、同じネットワークに接続した PC から操作する方法をとっていますのでそれを紹介します。この他 PC から無線でダイレクトに繋ぐ、シリアルで繋ぐなどいくつかの手段がありますが、えー、と思ったみなさん、ドキュメントを読んでお試しください。シリアルはうまくいきました。最後の方に書いてます。
えーと、実はうちのベランダ、Wi-Fi つながりにくいので、ずっとシリアルで接続していましたが、先日 Windows10 をクリーンインストールして、myFP2ESP アプリを最新版に入れなおしたらシリアルのサポートがなくなっていました (1.0.0.21 より) 。過去のバージョンは公開していないようなのであきらめて PC に Windows10 のモバイルホットスポット機能でアクセスポイントを立ち上げて、そこにぶら下げるようにしました。望遠鏡の近所に置いている PC で立てたアクセスポイントなら電波強いので接続が落ちるようなことがないといいなと。ちなみにモバイルホットの画面にぶら下げた ESP32 の IP アドレスが出るので、myFP2ESP で接続するときはこの IP アドレスを使います。
ちなみに Windows マシン自身が有線/無線 LAN などでネットワークにつながっている必要があります。


モバイルホットスポット

ソースコードの入手

GitHub というネットワーク上でソースコードが管理されてますので、ここからダウンロードします。https://github.com/brownrb/myFP2ESPFirmware/releases

Source code (.zip) というリンクがあるので、クリックするとデータ一式がダウンロードできます。これを書いている時点で試したのは Release 230-1 です。

ライブラリーのインストール

ダウンロードした Source code (.zip) には myFP2ESP をコンパイルするために必要なライブラリが含まれています。展開すると以下の部分。


ここにある .zip ファイルを Arduino の開発環境にインストールする必要があります。
Arduino のスケッチ→ライブラリーをインクルード→. ZIP形式のライブラリをインクルードからこれら .zip ファイルを選んでインストールします。

ここでインストールができているかコンパイルして確かめてみます。
myFP2ESP のソースを Arduino 環境で立ち上げてみます。Arduino 環境がインストールできていれば以下の myFP2ESP.ino ファイルをダブルクリックすれば Arduino が起動します。


立ち上がったら、ボードを選択します。


ATOM ステッピングモータードライバーキット(ATOM Lite)が PC に接続されていたら、ついでにシリアルの設定もしておきます。これは上記でお試しした時に設定されているかもしれませんが。


ではコンパイルしてみます。左上の✅ボタンをクリックします。
この時点では ATOM Lite にプログラムは書き込まれません。設定がめちゃめちゃなので、まだ書き込まない方がいいです。

特に問題がなければこんなメッセージが出て終わります。エラーが出た場合はメッセージ(ログ)をみて対処してください。だいたい最初の方のエラーを潰す(多分ライブラリの不足なのでインストールする)とエラーは解消されると思います。そうじゃなかったらゴメンなさい。


ここまでがヤマでした。あと一息です!

ファイルの修正

修正する箇所が多いとイヤになるし間違いますよね?最小でいきましょう!
細かいところは目を瞑って。

修正するファイルは3つです。

まずは簡単なところから。

generalDefinitions.h
以下の行の #define の前にある // コメントアウト(行のそれ以降を無効)を消します。
 #define SETUP_DEBUG       1
これだけです。あとで確認する ATOMIC ステッピングモータードライバーキットに割り当てられた IP アドレスを確認するためです。保存しましょう。

focuserconfig.h
3箇所あります。

まずは ESP32+DRV8825 を有効にします。DRV8825 の行の先頭の // を消して、ULN2003 の行の先頭に // をつけます。
 #define DRVBRD 	PRO2ESP32DRV8825
//#define DRVBRD 	PRO2ESP32ULN2003
続いてモータの設定。一周するのに何ステップかかるかを書いておくようです。私の場合は、60 / 20 x 200step = 600step です。有効になっている 2048 の行頭に // を入れて、新たに 600 の行を付け加えます。
 #define STEPSPERREVOLUTION 		600
//#define STEPSPERREVOLUTION 		2048           // 28BYJ-48 stepper motor unipolar with ULN2003 board
続いて接続方法を選択します。私は無線LANにぶら下げたいので、ACCESSPOINT の先頭に // を入れて、STATIONMODE の先頭の // を消します。ここでは LOCALSERIAL と BLUETOOTHMODE が選べるようですが、STATIONMODE 以外試していません。
// to work as an access point, define accesspoint - cannot use DUCKDNS
//#define CONTROLLERMODE  ACCESSPOINT

// to work as a station accessing a AP, define stationmode
#define CONTROLLERMODE  STATIONMODE
このファイルは以上です。保存しましょう。

myFP2ESP.ino
最後です。2箇所あります。

まずは無線LANのアクセスポイントの設定です。SSIDとパスワードを設定します。your_ssid と your_ssid_password の文字をあなたの環境に合わせて書き換えます。
 char mySSID[64]     = "your_ssid";
char myPASSWORD[64] = "your_ssid_password";
最後です!DRV8825の接続に合わせて GPIO の設定を行います。実はここが無理矢理書き換えているところで、本来は .jsn ファイルで該当する設定を書き換えればいいだけです。あとでここらへん訂正します。

さて、cachepresets() と #if defined(TIMESETUP)の間に新しい行を複数加えます。mySetupData から digitalWrite までですね。Enable ピンを GPIO22、STEP ピンを GPIO22、DIR ピンを GPIO23 に割り当てているだけです。このアサインについては ATOMIC ステッピングモータードライバーキットに貼られているシールに書かれています。
   cachepresets();
  
  mySetupData->set_brdenablepin(22);
  mySetupData->set_brdsteppin(19);
  mySetupData->set_brddirpin(23);
  pinMode(mySetupData->get_brdenablepin(), OUTPUT);
  pinMode(mySetupData->get_brddirpin(), OUTPUT);
  pinMode(mySetupData->get_brdsteppin(), OUTPUT);
  digitalWrite(mySetupData->get_brdenablepin(), 1);
  digitalWrite(mySetupData->get_brdsteppin(), 0);
  
#if defined(TIMESETUP)
  Setup_DebugPrint("setup(): ");
  Setup_DebugPrintln(millis());
#endif
お疲れ様でした!保存すれば修正は以上となります。
あとはキットを繋いで、→ボタンを押すとコンパイルして書き込みです。


うまくいくと100%の後に、Board resetting via RTS pin.. が出れば成功!だと思います。さて動作確認といきたいところですが、その前にキットにアサインされた IP アドレスを確認します。キットは接続したままで、Arduino のシリアルモニタを立ち上げて、右下の速度が115200bpsになっていることを確認します。以下シリアルモニタを立ち上げるところ。



なにか表示されているかもしれないので、出力をクリアしておきます。その後、ATOM Lite の左側横にあるボタン(リセットボタン)を押して離してみてください。
画面になにか出てくるはずです。無線LANに接続できると IPアドレスが以下のように表示されるはずです。このアドレスをメモっておきましょう。あとで使います。


これが現れないということは、SSID, Passowrd の間違いか、接続方法の指定が間違っているか、無線LANの設定の問題、そもそもデバッグしている場所から無線LANが離れているなどが考えられます。一つずつ確認してみてください。

ちなみにプログラムを書き込むときはモータの電源は不要です。PC に繋いだケーブルから電源が供給されますので。両方いれても問題はないです。

アプリとドライバのインストール

Windows 環境で試しました。
から、アプリとドライバをダウンロード、インストールします。

Windows Application と ASCOM Drivers の下にあるツールをインストールします。

ASCOM driver はよくわからないのですが(ちゃんと調べてない)、myFP2ESPASCOMv208.exe の方をインストールしました。

ここは説明端折ります。

動作確認と設定

待ちに待った動作確認です。
ASCOM ステッピングモータードライバーキットは PC から外してかまいません。電源 12V だけ入れて無線LANに接続された状態にしてください。

myFP2ESP アプリを起動してください。


こんな画面が出てくると思います。
Interface を TCP/IP にして、TCP/IP の IP を先ほどメモした IP アドレスに変更してください(多分当面は同じ IP を割り当ててくれると。。思いたい。違ったらまた同様に確認です)。それから Connect ボタンを押すと、接続を開始します。


上記画面はとりあえず無視。OKでいいです。
成功すると以下の画面に遷移します。


これが立ち上がったらほぼほぼ成功です!MAK127に繋ぐまえなら好きに動かせばいいのですが、すでに接続している場合は必ず動かす前にフォーカスノブの軸の中のネジの位置を確認してください。
あまり端にいると少し動かしただけで端に到達するのですが、モータが回せる力の限り移動させようとします。電流をうまいこと制限すれば少しでも余計な力がかかると脱調状態にできたりするので、安全にはなりますが。

では動かしてみましょう。

数値はステップ数です。既に値がアサインされているボタン、-500, -100, -10... をクリックするとそのステップ数回転します。動いている最中に止めたければ HALT ボタンをクリックしてください。左側の数値(Forcus position)、上記では 5600 が現在の位置(ステップ数)。0がホーム(だったと思います)。Max steps はその名の通り最大で、自分の環境に合わせて書き換えてください。私の場合、21mm / 1.25um = 16800 ステップです。右側のウィンドウに値を入力して、Set ボタンを押せば書き換えられます。

自分の好きな位置に動かしたい場合は、Focus position の値を書き換えて GOTO すると、相対的に移動します。例えば 5600 の時に 5000 と書き換えて GOTO すると今の位置を 5600 として、-600 ステップ回転します。

MAK127 のフォーカスノブとの関係を合わせたければ、例えば 0 の位置に移動して、Focus position 0 に Set position すればいいと思います。


あとは、IN, OUT の関係が逆だったら、配線を入れ替えてもいいのですが、Motor settings の Reverse Direction にチェックを入れて、Set すると +/- の挙動が反転します。

Preset には複数の設定を保存できるので、アイピースごとだったり、バローレンズの組み合わせだったり、有効に使えるかと思います。まだいじってないけど。えーと、そこらへんはみなさんの方が詳しそうですね。

ASCOM ドライバーもインストールしていれば、他の ASCOM focuser 対応のアプリからも Step の変更が可能になります。FireCapture で動作確認してみました。

とりあえず以上です。

myFP2ESP のその他の機能

myFP2ESP には他にも機能があって、まだチェックや移植をしていない部分があります。

Temperature 

温度補償です。鏡筒の温度に合わせてピントを変えます(でいいんですよね?)。DS18B20をサポートしてて、これは ATOM Lite に手間なく実装できそうです。

OLED

OLED ディスプレイ。M5Stack なら移植する価値はあるとは思いますが、ATOM Lite ベースのキットで LED(多色)一つしかないので工夫が必要。少なくとも文字は出せません。

プッシュボタン

ステッパーの IN/OUT を手動で行えます。これは実装できると思います。ATOM Lite で使える色々なユニットというのがあって、プッシュボタンもあったと思います。

リモコン

なんと IR のリモコンにも対応。これもユニットがあるので実装できると思います。

ジョイスティック

ジョイスティックも対応です。これもユニットあるので実装できると思います。


 IN/OUT LED

モータが動いている時にどちらの方向か LED で表示する。
LED 内蔵なので移植可能。

ホームポジションスイッチ

これも実装可能ですね。

ちなみに ATOM Lite には Grove と呼ばれる端子があって、5V, GND, GPIOが二つ出ています(一つアナログ)。これを使えば上記を実装できます。ただし複数の機能を一緒に入れることは難しいと思います。

移植の本家へのフィードバックについて

気が向いたらリクエストしてみようかな。

ちょい変

LEDをつけてみます。

FocuserSetupData.h を include している後で M5Atom.h インクルードします。
#include "FocuserSetupData.h"

#include "M5Atom.h"
M5Atom の初期化コードを入れます。M5.begin()。void setup() の先頭で、Serial.begin() の前。
  void setup()
{
  M5.begin(false, false, true);
  Serial.begin(115200);
最後に以下のコードを myFP2ESP.ino の最後の方に挿入します。#endif の次の行から、} // end Loop() の行の前まで。ボタンのチェックと、LEDの点灯です。M5Atom のライブラリを使ってこれらを簡単に使うことができます。
#if defined(TIMELOOP)
  Setup_DebugPrint("loop(): ");
  Setup_DebugPrintln(millis());
#endif
  if (M5.Btn.wasPressed())
  {
    if (digitalRead(mySetupData->get_brdenablepin()))
    {
      digitalWrite(mySetupData->get_brdenablepin(), 0);
    }
    else
    {
      digitalWrite(mySetupData->get_brdenablepin(), 1);
    }
  }
  if (digitalRead(mySetupData->get_brdenablepin()))
  {
    M5.dis.drawpix(0, 0xf00000);
  }
  else
  {
    M5.dis.drawpix(0, 0x00f000);
  }

  M5.update();
} // end Loop()
上記修正をすると、起動するとLEDが緑に光り、モータが動き始めると赤色に変化します。LEDのところがボタンになってるのですが、それを押すと励磁、非励磁状態をトグルします。つまりモータに電流が流れたり切れたり。流れているとモータの軸は指で回すのが大変なほどに固定されます。切れると指で回せるようになります。

もっといじってみたいなーと思ったら、以下のサイトを紹介しておきます。
https://lang-ship.com/blog/
色々な機能試されています。もともとM5StickC中心でしたが、他も色々触ってますし、情報も書かれています。

これで本当におしまい。
お試しする方々、うまくいくといいですね!

追記(シリアルモードについて)

ノーサポートになったので、なかったことに。

まだ安定して動作できてません。複数の M5ATOM Liteを持っているので他ので試したらうまくいったり、いかなかったり。原因調査中。とりあえず成功したことのある手順書いておきます。

2021/9/25時点で、ダメなケースがなんとなく。
ATOM Lite を PC に刺したとき、デバイスマネージャーで、USB Serial Port のプロパティを見た時に、詳細でハードウェアIDが二つ見えるデバイスはダメっぽいです。一つしか見えないのは問題なさそうに見えます。ちなみにデバイスドライバを入れ直してもこの関係は変わらずでした。ATOM Lite 単品だとそんなに高くはないので買い足して試してみる手もあるとは思いますが、手持ちのM5ATOMシリーズでの勝率は2/6でした。


一応以下に手順を書いておきます。

シリアルモードにするには(WiFiと共存できません)、focuserconfig.h と myFP2ESP.ino を以下のように書き換える必要があります。

focuserconfig.h

myFP2ESP.ino


focuserconfig.h は CONTROLLERMODE を LOCALSERIAL にします。あと、MANAGEMENT を消します。// でコメントアウトします。

myFP2ESP.ino は、setup() 冒頭の Serial.begin() を消します。// でコメントアウトします。

generalDefinitions.h

SETUP_DEBUG もコメントアウトしておく必要あるかも。

アプリからの接続は、Interface で Serial を選択。ケーブルを接続しておいて、Port で接続している COMx を選択します。見つからないときは Refresh ボタンを押してみてください。あと Speed は 57600bps です。





質問は Twitter の方まで。@ttrsato


2021/09/11

MAK127 focuser ver.3 (機械工作編)

去年(2020年)の夏、MAK127 に載せられるフォーカサーを作ってみました。

そして今年(2021年)の夏、満を持してCMOSカメラやADCを買ってみました!のはいいけれど、上記フォーカサーは干渉して使えず。。。が、ナイスな部品(プーリー)を発見したので、新たなフォーカサーを作ってみることにしました。 そして出来たのがこちらです!





前回はダイレクトドライブでしたが、今回はもともとのフォーカスノブをプーリーに置き換えて、ステッピングモータ(ステッパー)からタイミングベルトを通して回転させるようにしました。

ステッパーをドライブするのは去年と同じATOMICステッピングモータードライバキット(面倒なので、以降ATOMステッパー)にすることは決めてました。中身は ESP32 (WiFi/Bluetoothが使えるマイコン)と DRV8825(モータドライバ)。

ところで ASCOM に対応すると色々と便利だなということでググってみると、 myFP2ESP という ASCOM にも対応したフォカサーシステムを見つけました。名前の通りESP32に対応するだけでなくDRV8825にも対応(他にもいくつか選択肢あります)。

まさに打って付け。

移植も難しくないだろうとおもったらちょっと触っただけで動作させることが出来ました。
こちらについては別途書くつもりです。作者の方には本当に感謝です。

今回は機械加工的なことを書いておきます。


工作内容


モータをどうやって MAK127 に載せるかということになります。
AZ-GTi を使っているので AZ-GTi と一緒に使っても問題ないということが条件になります。

あとは簡単で、なるべく低価格。ですよね。

取り付け用の板を一枚作ってあとはねじ止めすればOKなお手軽方法を考えました。

部品表

Atomic ステッパーモータキット2156円
バイポーラステッピングモータ(1.8°/step)1380円
ステッピングモータ用ブラケット375円
60Tボア12mmタイミングプーリー1289円
20Tボア5mmタイミングプーリー799円
三ツ星ベルト タイミングベルト 60S2M244379円
SVBONYアリミゾ台座 (F9144C)3580円
ケーブルをまとめるスパイラルチューブ100円
フェルトシール100円
DCジャックケーブル210円
スイッチングACアダプター12V2A900円
MDF 4mm厚 (130mm x 60mm)300円台で大きいの買えた
皿ネジM6-15 x4100円ぐらい
ナベ小ネジM3-10 x4100円ぐらい

部品については後で詳細に書きたいと思います。

MDFとネジは合わせて 1000円以下でホームセンターで入手できると思います。
外税と内税がまざっているかもしれませんが、ざっくり12000円程度です。
部品は MDF の板に載せましたが、これをアルミ板にすると更にお高くなると思います。特に加工を外注すると。
またこの他に無くてもいいのですが、3Dプリンターで加工したスペーサーが入ります。

えーと、これ安いのか?いつのまにかこんなに出費してる😱
工作が楽しいのでそこら辺は忘れることにします(笑)

また使わせていただいたソフトウェア myFP2ESP が対応している操作用のアナログジョイスティックや、温度センサーも付けられるとは思いますが(ソフトの修正は必要)、上記には加えていません。

板の加工(MDF版)

3Dプリンターでもいけたので、最後の方に作例を簡単に載せておきます。



まずは図面です。左が MDF、右がアルミ。書き方これでいいのかな?入手した部品次第なので寸法はあくまでも参考です。ちゃんとチェックしてから加工始めてください。


MDFでの加工例(ざぐり難しい)


4mm 厚の MDF (合板みたいなもの)を使用しました。適度な強度があってとても加工しやすいし安いので、プロトタイプ制作にはもってこいです。強度があるアルミなら右側の図面にしてもいいかもしれません。MDF だと左側の方が無難だと思います。

ちなみに板に載っている部分の重さは500g前半といったところ。MDFをアルミに変えると500g後半になると思います。アルミの場合は面取りした方がいいと思います。

ここで一番重要なのは、4mm の板厚。4mm の厚みには意味があって、アリミゾ(他のアリミゾだと違うかも)に載せて AZ-GTi と干渉しないギリギリの厚みだということ、アリミゾとはM6の皿ネジで接続するのだけど、皿の厚みが3mmちょっとあるので、少なくともそれ以上の厚みがあることで 4mm が丁度でした。板からネジが飛び出ると AZ-GTi と干渉するので、ざぐりが必要です。またネジの長さも重要で、長すぎると中でアリガタと干渉します。

本当にスレスレ

上の方にある縦長の4つの穴はモータブラケット用です。秋月で入手したモータブラケットはインチサイズで設計されてるっぽいのですが、ミリサイズに適当に載せてます。M4のネジを想定してたのですが、そんなこともあってM3で取り付けてます。またプーリーを繋ぐタイミングベルトを張るために縦長の穴にしてるのですが、あんまり調整ききません。もう少し上の方に伸ばした方がいいかも。

中程の四角の穴は ATOMステッパーの LED 覗きとボタンを押す穴の兼用です。無くてもいいです。

スペーサー

横穴は後で開けてます

モータブラケットとアリミゾの間にはそれなりの隙間が開いてしまいます。取り付け板をアルミにした場合は気にならないかもしれませんが、MDFの場合はベルトを引っ張るテンションで歪むし、そのためにモータが鏡筒を傷つけるかもしれないのでそれを抑えるスペーサーを3Dプリンターで作りました。ついでにこの隙間を有効活用して、ATOMステッパーを格納する穴を用意しました。もちろん3Dプリンターで作る必要はないので、MDFで作成する場合はモータブラケットとアリミゾの間になにか入れて、縮まないようにすればいいと思います。
TINKERCADでデータ公開します。ボタン用の穴はないので、後で加工するか元データを修正してみてください。

ところで ATOMステッパーを入れる穴は若干ゆるめに作ってます。100均で薄手のフェルトシールを買ってきて下(アリミゾと接する面)の部分にだけ貼ってます。適度に滑り止めになっていい感じです。


組み立て

組み立ては簡単です(モータの配線は電子工作編で)。ネジを12箇所締めるだけ。ベルトの調整でモータブラケットは位置調整の後ネジを締めます。



見ての通りです。簡単ですね。スペーサーは両面テープで付けています。あとモータ取り付けのM3のネジが短いです。長すぎるとモータに当っちゃうので微妙なところ。

プーリーの取り付け

モータ側は特に問題ないと思いますが、MAK127側はちょっと注意が必要です。



フォーカスノブは六角レンチでイモネジ二箇所を緩めて引っ張ると簡単にとれます。機械油が付いているので汚れに注意です。注意しなければいけないのはプーリーを取り付ける時に、フォーカスノブの付いていた軸を手前に十分引っ張り出し、プーリーをピッタリ(軽く回せる程度に)つけるようにします。ここでガタがあるとプーリーを押したり引いたりしただけでフォーカスが狂います。
あとプーリーをピッタリ付けるとMAK127に干渉してしまうので、なんらかのスペーサーを入れたほうがいいです。入れないと塗装が削れていくと思います。下敷きを丸くきって挟んでもいいですが、3Dプリンターあるので、スペーサー作ってみました。3Dプリンターが無くても穴が12mmのアクリルなどのパイプが入手できればそれをカットして入れてもいいと思います。
3Dプリンターのノブスペーサーのデータ

MAK127に取り付け

タイミングベルトを引っ掛けて、アリミゾの固定ネジを締めればOKなのですが、ここでベルトの張りを調整します。張りすぎるとモータの負担が大きくなりますし、ゆるいと滑ってしまいます。ブラケット取り付けネジを緩めて調整します。
ベルトの長さですが、適当に測って3種類オーダーしましたが、もうワンサイズ短いのにすればよかったです。丁度いいベルトの長さの測り方わかりません。。ちなみに今回選んだベルトは一本300円ちょっとで、長さも色々あります。他のサイズはモノタロウで検索してみてください。ベルトは水平になるよう板の取り付け位置とモータ側のプーリーの位置を調整してみてください。

ちなみにベルトを張った段階で、モータブラケットと3Dプリンターで作ったスペーサーの間に隙間ができてしまいました。ベルトを張るとMDFがしなるので、ここにさらにスペーサー入れてしならないよう調整してます。アルミだったらそんなことしなくてもいいかもしれません。


部品について

入手性や価格についてもあると思うので、全く同じ部品を手に入れられない場合もあると思います。

プーリー

フォーカスノブに取り付けるプーリーは穴の直径が12mmは必須です。
外径も大きすぎるとMAK127の接眼レンズを取り付ける筒と干渉してしまうので、外周の直径42mm(まだ多少余裕はあるけど)以下が妥当です。モータ側のプーリーは入手するステッピングモータの軸の径に合わせます。フォーカスノブよりは小さくしておくと細かいピント調整が可能になります。ただし細かくしすぎるのも問題ありかと思います。

タイミングベルト

これは丁度いいの探すしかないです。モノタロウで漁ってください。いろいろあります。

ステッピングモータ(ステッパー)

ステッピングモータはバイポーラ型と呼ばれるものを選んでください。あとはステップ数と対応する電圧(12Vでいいです)で選びます。ステップ数とプーリーはピント調整の細かさを決定します。

MAK127は私が測った感じだと、ピント調整で 21mm 軸(そのまま主鏡かな?)が前後します。21mm 移動するのに 28回、回す必要があるので、

21mm/28回転 = 0.75mm 

1回転で 0.75mm 移動できることになります。

ちなみにピント調整の細かさはどれぐらいあれば良いというのは、myFP2ESP のドキュメント Focuser Basics.pdf に書かれています。ここから探してみてください。

では実際にステッピングモータが1ステップ移動した時にどれだけ軸が前後に移動するかというのは、モータの仕様と選択したプーリーから計算できます。

ステッピングモータはモータが一周するステップする数が決まっていて、仕様には例えば 200step とか、0.9°/step のように書かれています。0.9°だと、一周するステップ数は360/0.9=400stepになります。

ここで、
ステップ数: S
フォーカスノブ側プーリーの歯の数: Tf
モータ側のプーリーの歯の数: Tm
と定義すると、
Tf / Tm x S が、フォーカスノブを一周するために必要なステップ数になります。
従って 0.75mm / (Tf / Tm x S) が 1ステップで移動できる量になります。

私が選んだ部品の場合は
0.75 / (60 / 20 x 200) = 1.25um/step となります。

Focuser Basics.pdf を読むとわかると思いますが、十分細かい移動量だと思います。400step のモータもよく売ってますがそこまでしなくてもという感じです。
ちなみにモータのプーリーを 16歯にすると 1um/step になりますね。

電源

手持ちの12V/2A の情報書きましたが、12V/1A とかでも十分です。AZ-GTi と電源共用できればいいんですが。上手い方法あとで考えたいと思います。忘れなければ。

アリミゾ

アリミゾは AZ-GTi に取り付ける時スペースが結構シビアなので、板の厚み含めて干渉しないよう注意してください。

他に注意した方がいい部品は特になかったと思います。


以上、機械工作編。続きは電子工作編で。

追記


モータを搭載するMDFのプレートの代わりを3Dプリンターで作ってみました。
これはこれでありです。細くしたので干渉も全然気になりません。3Dプリンターは PLA で出力してるので、やはりしなります。ただ、上記で作ったコントローラのケースがあるのでそれを吸収してます。モータの位置を調整したあとに空くスペースに硬いなにか薄いものをしっかりと挟めば大丈夫だと思います。

3D プリンターのデータはこちら


3Dプリンターが使える環境があると加工することが無くて更に簡単ですね。