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プリンターが使える環境があると加工することが無くて更に簡単ですね。





2020/12/22

M42 を撮ってみたい(その1)

今年の夏から始めた天体観測と天体写真撮影は夏からの惑星撮影が終わり、冬になって星雲星団にも手を出し始めたいなということで、オリオン大星雲(M42)が手軽そうなので機材(Skywatcher MAK127, AZ-GTi, Nikon D750)は増やさずにチャレンジしはじめました。


天体写真撮影は、もともとはアンドロメダ銀河撮ってみたいというところからの出発なので、M42 はうってつけの練習になります。


都内の自宅から出ずに撮影が基本なので、そもそも M42 ですら望遠鏡で導入するのが大変。二等星ぐらいまでは比較的楽ですが、それ以下になると結構厳しい。

なにが良い方法なのかさっぱりわからないのですが、僕の場合、CMOS センサーは持っていないので、D750 を MAK127 にカメラアダプター(直焦、接眼レンズ)またはx2バローレンズを挟んで取り付けていて、AZ-GTi の初期設定前に近所のちょっと遠目のマンションを利用して D750 のライブビューを見ながらファインダー(MAK127 付属)の調整をきっちりやっておきます。

状況に応じて、1スターまたは2スターアライメントで AZ-GTi の初期化を行って、あとは iPhone の SynScan Pro から目標を導入します。このとき若干ズレるケースがあるので、ファインダーで見ながら目標を真ん中に持っていて最終的に D750 のライブビューで調整するということをやってます。

なので、ちょっとズレるとファインダーで見えない薄暗い対象は全然捕捉できないし、D750 のライブビュー程度で見えないものはなおさら無理な感じです。都内だとこんなもんなのでしょうか?星空に疎い自分だと簡単に迷子になってしまいます。

M42 だと、肉眼だと薄ぼんやり程度なので、x1 ファインダーではほとんどわかりません。しかもメガネかけているので、天頂近くになるとすっごく見づらいんですよね。

で、どうにか導入。導入してみても、D750 のライブビューには星がふたつポツリと写っているようにしか見えないです。本当にここでいいのか半信半疑で初めて写したのが以下の撮って出し。

M42: MAK127+20mm D750 ISO4000, 18.4s (2020/11/22)

えーと、これしきで星雲らしきものが写っているとは思いませんでした。
あんまり長時間(30秒以上かな。。)だと流れるので、これぐらいが露出の限界。あと、MAK127 に付属の 20mm のアイピースを挟んで D750 の FX で撮ってるのだけど、思いっきり周辺はケラれてるし、周辺にいくにつれて放射状に像が歪んでる。。

ということで、SVBONY の x2 のバローレンズもなんとなく安かったので買ってみたのがあるので、20mm のアイピースはやめて、バローレンズのみでつないでみたのが次の写真。これも撮って出し。
M42: MAK127 + x2 バローレンズ D750 ISO8000, 10s (2020/12/21)

周辺の歪みはかなり解消されました。ただ倍率同じぐらいかなと思ったんだけど、大きくなっちゃってますね。バローレンズの余計な光学特性やら、やっぱりケラれる周辺や経緯台による回転のこと考えると直焦でもう少し小さく撮ってももいいのかな。あと前回の条件調べずに ISO 感度とか露出時間決めたのだけど、ISO感度下げてもう少し露出時間伸ばした方がよかったかも。

そして11枚しか撮ってなかったものを DSS (DeepSkyStacker) にかけてみたら 6枚合成できました。星の数が少ないのか、スレッショルド下げないと使える画像に認識してもらえなくて、だいぶ 4% かな?まで下げました。あと、DSS は Nikon の NEF フォーマットもそのままいけるのね。よしよしと。そしてできたのが次の写真。
M42: 上記の写真をたったの 6枚スタック。

まだノイズまみれですが、うっすらと見えなかったガスの部分が!ただ画像いじっただけでは出てきません。これは期待できるかも!枚数増やして、ダークフレームもフラットフレームも撮ってみたくなりました。そういえばシャッターリモコンも今回初めてインターバル撮影使ってみました。ミラーアップの部分だけ早くしたいんだが、無理っぽい。

次回が楽しみです。

しかし、一番困ってるのは導入です。どうにかならないものか。そういえば、AZ-GTi で目標を導入後、静止せずに徐々に流れていく現象も困ったもんで。いつもではなく、安定するときは安定するんだけど。ちなみに AZ-GTi のファームは経緯台のまま。赤道儀版もそのうち入れてみたいですね。

上手く撮れたら(その2)に続くかも。





2020/11/14

macOS Big Sur + Arduino IDE + M5Stack


macOS Big Sur 入れたら案の定ビルドが出来なくなった〜〜。

買ったばかりの CoreInk だからダメなのかと思ったら M5Stack もダメでした。

調べてみるとしばらく前から Big Sur で esptool.py が動かないという報告と色々な対処が。

一番筋が良さそうな方法があったので試したらうまく行ったのでメモしておきます。


注)公式でもサポートしそうな雰囲気があります。まず ~/Library/Arduino15 以下を削除するとかして、Arduino IDE 環境をクリーンインストールしてみて、それでもダメだったら試してみてください。


スイッチサイエンスさんでも、M1 + Big Sur での対処法書かれてますね。こちらも参考にしてみては(2020/12/21)。
https://mag.switch-science.com/2020/12/21/macos-espr-developer/


さて、私が対処したとき参考になったのは、

https://github.com/pyserial/pyserial/issues/509

の Eliahg さんの A better fix ... とコメントしている投稿

やってることは Python を最新のものでビルドしなおして、esptool.py を Git から拾ってきて(多分 Python3 版)、esptool バイナリをスクリプト版に入れ替えです。スクリプトの名前変えて、実行属性つけて、呼び出す Python を Python3 にしてます。

Python にはバグがあるらしいのですが、Python のリポジトリではすでに Apple によってバグフィックスされてるのですが、Big Sur には反映されていないらしいので Python のビルドしなおしが必要だそうです。ビルドはそこそこ時間かかります。


基本的には Eliahg さんのやってることそのままなのですが、自分の環境だと esptool の場所が違うので、そこを変えたぐらい。

実際に実行したコマンドを書いておきます。esptool のパスはそれぞれ若干違うかも。最新のにしたら 3.0.0 でした (11/28/'20)。

% sudo rm -rf /Library/Developer/CommandLineTools

% sudo xcode-select --install

% brew install --build-from-source python

% /usr/local/bin/pip3 install pyserial

esptool.py を以下からダウンロードする https://github.com/espressif/esptool/blob/master/esptool.py

% mv ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool.old

% mv ~/Download/esptool.py  ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool

% chmod +x ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool

エディタで esptool の先頭を修正 #!/usr/bin/env python を #!/usr/local/bin/python3 

% vi ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool


以上です。


ちなみに PlatformIO も同じように対処できて、

~/.platformio/packages/tool-esptoolpy@1.20600.0/esptool.py

を上記スクリプトに置き換えれば OK でした。

2020/11/01

MAK127 focuser Ver.2 (ソフトウェア編)

 ソフトのインストールを少しと操作方法を解説します。

MAK127 フォーカサーの制作は、概要ハードウェア編コントローラ選択編、そして今回で一応一通りです。

ファームウェアのインストール

ATOMIC ステッパーモータードライバキットの ATOM lite と、M5Stack (PC を使う人は不要)にプログラムを書き込みます。

ソフトウェア一式は GitHub 上に上がっています。

https://github.com/ttrsato/mak127focuser2

リンク先の Code、Download Zip をクリックするとまとめてダウンロードができます。


ダウンロードしたファイル mak127focuser2-main.zip を解凍します。

ATOM lite 用は ATOM_StepMotorCtrl.ino

M5Stack 用は M5Stack_focus2_controll.ino

が Arduino IDE 用のコードになります。
コンパイルするには ESP32_I2C_Slave と、LovyanGFX の二つのライブラリのインストールが必要です。
内容が古いのですがラズパイ好きの日記に Arduino IDE や M5Stack に挿した SD カードに入れた複数のプログラムを切替えられる LovyanLouncher のインストールなどについて書かれています。神楽坂らせんさんのnoteが比較的新そうです。ここら辺はアップデートが激しいので公式のドキュメントをみた方が良いです(英語ですが)。細かいこと知らなくてもインストールできる方法も模索したのですが、ライセンス的に問題なくしっくりくる方法がなくて(GPL系は苦手です)。ソースコードを公開しますのでコンパイルしてインストールしてみて下さい(MIT ライセンス)。まぁ、インストールに関しては別途詳しく書くかもしれません。何かご質問あれば Twitter まで。

セットアップ

選んだステッピングモータに合うようセットアップが必要です。
一回転のステップ数と1ステップを更に細かく分割する二つの設定が必要です。

一回転のステップ数

ステッピングモーターの基本的な分解能は、例えばハードウェア編で紹介したモータの仕様を見ると一回転ステップ数という項目があり、200と書かれています。この数字が基本的な分解能です。一回転のステップ数という項目がなくて、ステップアングルという項目しか無い場合は、例えばこのモータの場合 1.8°なので、360/1.8=200と計算で求めることができます。

1ステップの分割数

ATOMIC ステッピングモータードライバキットに載っているモータドライバICのDRV8825は、基本的な分解能を更に細かくできる機能(マイクロステッピング)があります。200ステップのモータでも十分細かいのですが、更に細かくしたい場合はこの機能を設定します。1/1(Full), 1/2(Half), 1/4, 1/8, 1/32 の設定ができますが、あまり細かくしてもその違いが分かりませんし、細かすぎて動かすのが大変です。ちなみに買ってきたばかりの ATOMIC ステッピングモータードライバキットは 1/32 の設定になっていて(少なくとも私が買ったものは)、細かすぎるので変えた方が良いと思います。

M5Stack の設定

多分こちらを先に設定した方が良いでしょう。Cボタン(一番右端)を押したまま赤いボタンを押して起動します。設定画面が表示されたらCボタンを離します。
Bボタン(Sel) を押すと Step/Round, Ustep, Brightness(明るさ) を順に選択します。選択後はエンコーダのダイヤルを回すと設定値を変更することができます。
一回転のステップ数は Step/Round に、分解能は Ustep で設定します。分解能は 1/4 ぐらいが丁度良い感じだと思います。これら設定値及明るさの Brightness は保存できます。Aボタン(Save) ボタンを押すと、次回起動したときにこれら値が自動的に設定されます。Cボタン(Quit )を押すと設定は保持したままですが、電源を切ると元の値に戻ります。



ATOMIC ステッピングモータードライバキットの設定

M5Stack で決めた分解能は ATOMIC ステッピングモータードライバキットでも設定する必要があります。ATOM lite を外すと写真のようになって基板の中央上側に4チャンネルのディップスイッチが見えます。これを変えて設定します。買ったばかりだと保護のビニールが貼ってあると思うので剥がします。
設定は M5Stack の設定画面の Ustep 右端に表示されています。1/4 だと LHLX となっていますので、ディップスイッチも LHLX (L は下側、H は上側、X はどっちでも)と設定します。写真は LHLX の設定です。ちなみに製品のページにこれら設定の表がありますが間違ってました。直ったかな?

あともう一つやっておいた方が良いところがあります。DRV8825の電流の調整。無駄に電流が多いと消費電流が多くなるし、何しろモータがかなり熱くなります。蓋を開けると下の写真の赤丸のところに電流が調整できるところがあるので、プラスドライバーで回して調整します。左に回して行ってちゃんとモータが回るよりはちょっと大きめのところにしておくと良いと思います。あまり左に回しすぎると電流が少なすぎて回らなくなります(脱調という)。


設定は以上です。

M5Stack の使い方

使っている雰囲気はこんな感じです。結構サクサク動くので手放せません。

基本操作

使い方は至って簡単。エンコーダのダイヤルを回せば回した方向にフォーカスノブの棒が回ります。右端のボタンを押すと x1, x5, x10 が順繰り交代します。x1 はそのまま 1倍で、モータが一周200ステップならばエンコーダが200クリックすると一回転します。Faces のエンコーダは20クリックで一周するので、10回エンコーダを回すとフォーカスノブ一周です。
x5 は 5倍なので、200/5=40クリックで一周。x10は 200/10=20クリックで一周。つまり x10の時はエンコーダの一周がフォーカスノブの一周。

Fine モード

また、エンコーダにはプッシュボタンが組み込まれていて、これを押すと Fine モードの切替ができます。分解能1/4 に設定していればFineモードではエンコーダの1クリックが360/200/4=0.45°です。200x4=800クリックで一周。つまりエンコーダを40回転させないとフォーカスノブは一周しないと。エンコーダのボタンをもう一度押すと元に戻ります。

マーク

ピントの様子をマークしておくことができます。左端のMarkボタンを押すと円周上にマークを二箇所置くことができます。

ピントの山を自動的に決定する

バーティノフマスクなんて持っていないので、ピントの山に迷った時、先ほどマークした二箇所をピントの山に対して同じ距離離れたところと仮定した場合に、真ん中の Center ボタンを押すと、Fine モードに移行して、マークした真ん中にピントノブが移動します。例えばピントの山の両脇のぼやけかたが似ている箇所をマークするとか、クレーターの小さな点が消えるところを両端にするとか。そんな使い方で。
こんな風に使います。

輝度調整
設定画面にしなくても右端のボタンを押しながらエンコーダを回すと輝度調整ができます。x1, x5, x10 は変わってしまいますが。

ATOM lite の使い方と表示

ノーマル状態

緑のLEDが点灯し、正常に動作していることを示します。モータは励磁状態と言って磁力が加わって位置が固定されています。指でモータの軸を回そうとすると結構力を入れないと回りません。ちなみに小さくシャーと言ったようなノイズが聞こえます。ステッピングモータはこういうもんです。
この状態で矢印のところのボタンを押すと赤色のLEDになり、モータが停止していることを示します。先ほどの励磁状態が解除され、モータの軸がスルスル回るようになります。マニュアルフォーカスをしたい時はこの状態にします。もういちどボタンを押すと励磁状態に戻ります。

LED が赤点滅する

12V 電源が入っていないと赤点滅になります。電源が入ってモータが停止しているだけだと赤色にはなりますが、点滅はしません。ちなみにモータ自身は9V電源でも回ると思うのですが、この簡易電源チェックのために、多分動きません。



モータドライバの異常

LED が白点滅する場合は、DRV8825 が異常状態を示す時です。モータは動きません。ATOM lite を DRV8825 から外すとこれを模擬した LED 状態をになります。

LovyanLauncher 対応

LovyanLauncher に対応していますので、バイナリを M5Stack に挿した SD カードに入れておけば A ボタン(左端のボタン)を押しながら M5Stack の電源を入れるとアプリを切り替えることが出来ます。M5Burner で M5Stack に LovyanLauncher がインストールされていることが前提です。

PC 版コントローラについて

インストール

Windows10、Mac 版があります。インストールは特に入りません。下記フォルダーの下のバイナリー をダブルクリックすれば実行されると思います。ちょっと立ち上がりが遅いのと、実行時に警告が出る場合があるので、Windows の場合は詳細をクリックして、実行、Mac の場合は起動時に右ボタンのメニューから開くを選択すると実行できると思います。

Python script をバイナリにしたもので、オリジナルの Python script も一緒に置いてあるので Python3 環境がある方はこちらでも構いません。

使い方

最初に ATOM lite がつながっている COM ポートを選択して Open ボタンを押す以外はほぼ似たような操作です。ただ回すだけですし。マウスホイールでフォーカスノブが回るように作られているので、ホイール付きのマウスまたは、ホイールの動作が模擬できるトラックパッド及その設定が必要です。ちなみに Mark 機能の実装はサボっています(めんどくさかっただけ。実装が複雑という訳でも無いのですが)。

以上、ソフトウェア編になります。