ラベル MAK127 の投稿を表示しています。 すべての投稿を表示
ラベル MAK127 の投稿を表示しています。 すべての投稿を表示

2023/12/09

MAK127用フォーカサー Ver.4

MAK127に EAF などのフォーカサーを取り付けている猛者もいるようですが作るの好きなんで作ってみました。そもそも MAK127 は素直に電動フォーカサー付けるところ無いんだよなぁ。ぶつぶつ。

ところで我が MAK127用フォーカサーもついに Ver.4。ハード的には最終版。。だと思ってます。Ver.3 に比べ小型軽量化に成功です(当社比)!PC との接続はUSB-C ケーブルにて接続してください。




今回の Ver.4 はだいぶコンパクトに載ってるでしょ?(最終盤はこれより厚みがあるモーターに交換しました)。

これまではアリガタにアリミゾクランプをつかってモータを取り付けてたのですが、今回は 3D プリンターでモータを載せる土台を作って接眼部にはめ込む作りにしました。

これがベース
リングは単なる薄い輪です

スペーサー(追加になりました)



3D プリンターの部品は3つ。

です。スペーサーはサポーター有りでプリントせざるを得ない形状ですのでご注意を。
そのほかに必要なものは以下。
バイポーラステッピングモーターは当初小型のものを使ってみましたがトルクが足りないので、リンク先のものを使うことにしました。12V のモータで、これ以上のトルクならOKだと思います。ステップ角とかも同じである必要はないです。ただ、3Dプリンターで作る部品の形状を考えると、モータのネジ穴の間隔が同じである必要はあるかなと。
電源も 12V で 1A 程度かそれ以上あれば十分です。
あとちょっと日本での入手性が怪しくなりそうなのが ATOM STEPMOTOR Kit でしょうか。スイッチサイエンスさんでは在庫限りの扱いのようです。海外発送でよければ製造元の M5Stack のオンラインストアから入手できると思います。
タイミングベルトはプーリーや取り付け位置の兼ね合いで他の長さを選んでも良いかもしれません。

組み立て

MAK127 のフォーカスノブのプーリーへの交換は、Ver.3 の投稿を参考にしてください。

また一部古い写真つかっていて、最終盤とは違うところがあるのはご勘弁ください。

1. モータをベースに取り付ける
モータにある穴に六角スペーサーをねじこんでおきます(多分完全にねじ込めないで少し浮いた感じになる)。また小さいプーリーをモータに六角レンチでとりつけておきます(後で取り付け位置は修正する)。ネジで取り付ける前にタイミングベルトを挟んでおきます。それからモータをベースに M3 のネジ3本で取り付けます。


2. ATOM STEPMOTOR Kit の準備
モータに付属してるケーブルを適当な長さで切り、ATOM STEPMOTOR Kit にねじ止めします。あとでモータ電流を調整するので、蓋はまだ閉めなくてよい。また ATOM lite (写真右上の四角いやつ)は外れないよう付属のネジでモータドライバの載ってるケースとねじ止めしておいた方が良いかも。



3. ATOM STEPMOTOR Kit をベースに取り付ける
M3 のネジ2本で取り付ける。

4. DC ジャックケーブルを接続
ベースの穴を通して、ATOM STEPMOTOR Kit にねじ止めする。ケーブルの太さと穴のサイズが合わなかったら適当にグリグリしてください。


5. ノブにスペーサーを入れる(新)
プーリーを取り付ける前にスペーサーを入れておく
M3 35mm のネジをねじ込んでおく

ノブにプーリーを入れる前にスペーサーを入れておく


6. ベースを MAK127 に取り付ける
タイミングベルトは結構タイトです。プーリーに引っ掛けながら穴を取り外した接眼部に通します。そして薄いリングを重ねます。接眼部を戻し、ねじ込みます。この時きちんと真ん中でねじ込めるように。そしてしっかりねじこんだときに接眼部が回転せず固定されていること。奥までねじ込んでも接眼部が回ってしまう場合は、ベースの穴の位置と接眼部がちょうど真ん中になっていないか、3Dプリンターの違いで出力されたベースやリングの厚みが大きくて回るようになるケースが考えられます。薄いリングの厚みを変えてみてください。




7. ベルトの位置の調整
まずプーリーの高さを揃える。その後にベルトの張りをプーリーの下に入れたスペーサーのネジで調整します。この機構でようやくベルトの調整幅が広がりました。ベルトの長さが多少異なってもこれで吸収できるかと。ちなみにベルトは張りすぎるとモータの軸が回転しなくなります(脱調という)。硬すぎずゆるすぎずで調整してみてください。




以上で組み立てはおしまいです。

ソフトウェア

動作させるには ATOM STEPMOTOR Kit のためのファームと、それを動かす UI が必要になります。Git にて配布してます。以下のリンクより入手してください。ソースコードはあんまり整理してませんが、、、興味がある方すいません。余計なコードとか転がってたらすいません。
本当は ASCOM 対応にしたいところなのですが、今のところそんなスキルはありません。以前は ASCOM に対応している myFP2ESP を手直しして使ってたのですが、シリアルに対応しなくなってしまったのでやめました。myFP2 の方はまだシリアル対応してるっぽいので、気が向いたら myFP2 を移植し直そうかな。

ATOM STEPMOTOR Kit のファーム

Arduino 形式で書いてます。M5 Stack の ATOM lite の Arduino のビルド環境が必要です。Git に置いてある atom_stepper_ctrl.ino をビルドしてください。

ユーザーインターフェース

用意したファームはシリアルポートにテキストでアクセスできるようにしてます。なので、TeraTerm などのターミナルエミュレータで直接制御することができます。でも使いづらいですよね。そこで Python で GUI を用意しました (atom_focuser4.py)。実行するには customtkinter, pyserial といったライブラリをインストールする必要があります。Windows 向けにはバイナリを用意したので(atom_focuser4.exe)、Python をインストールせずにバイナリを実行することも可能です。ATOM STEPMOTOR Kit の接続されているポートを選択し、Connect のスライドボタンをクリックすれば接続です。-100~+100 のボタンをクリックすればそのステップだけ移動します。マウスが接続されているならホイールのスクロールで Position を増減できます(Shift キーを押しながらスクロールするとステップが変わります)。またカーソルの上下(+Shift)でも Position の増減が可能です。M1, M2 はマークで、スペースキーで M1, スペース+Shift で M2 に現在の Position を保存できます。M1 と M2 の中間に移動したい場合は (M1+M2)/2 のボタンをクリックしてください。また Position の値は直接書き換えて Return キーを押すと指定した値に移動します。
Python 版の方はマウスのスクロールステップを変更できるボタンが用意されています(おまけ)。



興味をもっていただけた酔狂な方のご質問は X の @ttrsato まで。こちらでもいいんですが、気づくのが結構遅いです。



木星を撮る2023年度版 (自動導入とトラッキング)

みなさんどんな感じで天体導入しているのかわからないんですが、もっといい方法あったりしたら教えてください。と前置きしておきます。

これを書いてる時点で MAK127 と AZ-GTi のセットを買ってもう4年目(遠い目)。コロナ禍をきっかけに天文ほぼ素人から始めて、いまだにわからないこともいっぱいあるのですが、今年2023年は木星を撮影しまくり、ようやく撮影がルーチンワーク的に進められるようになってきました。そこに至る経緯と現状について MAK127+AZ-GTi での観点からメモしておきます。ちなみに今年の木星シーズン初めの頃はまだモタモタしてました。というのもそれまでは撮影するのが一苦労でワンシーズンでそれほど撮影してないんで色々向上しなかったと。

ところで撮影環境は東京都内西部(環七と環八の間らへん)の自宅です。自宅は北極星がギリギリ視認できる程度の光害レベル。従って MAK127 付属の x1 のドットファインダーのみではよほど明るい天体でないと導入できないへなちょこなので、自動導入という仕組みがなかったら望遠鏡買ってなかったなーと。望遠鏡は撮影ごとに出したりしまったりするので毎度毎度前事前準備が必要です(ベランダに置いた収納ボックスにカメラ以外の望遠鏡一式が入れっぱなしなのですぐ出せはしますが)。

いいんかこれで?でも機動力優先!

また自宅は木造建築なので、望遠鏡を出してるベランダが揺れやすいだけでなく(家族が家の中でドタドタしても揺れる。。)、立っている位置を変えると導入している天体が簡単にズレます。高倍率の時は最悪です。

過去の経緯1

MAK127+AZ-GTi を初めて買った年は右も左もわからずググって接眼レンズを通してカメラ撮影できるらしいということを知り、MAK127 に付属の接眼レンズを拡大撮影用アクセサリー を通し、D750 を接続して撮影に挑んでました。ファインダーは MAK127 に付属のドットファインダーのみです(後で色々変える)。手順は以下でした。ちょっと思い出しながらなので正確じゃないところもあるかも。基本的にはファインダーを調整しておく。天体を導入したらとにかくファインダーを再調整しておく。途中すっ飛んでも大丈夫なようにとにかくファインダーはこまめに調整しておく。で、今でも流れは変わってないです。

拡大撮影用アクセサリーと 20mm のアイピース


天体の導入

  1. 20mm のアイピースでファインダーの調整
    適当な地上の目標を使い、20mm のアイピースで目標を導入(カメラなし。眼視で)します。AZ-GTi に SynScan App で接続し、方向キーで目標を正確に視界の中央にします。ドットファインダーを目標に合わせます。ここも極力正確に。

  2. 10mm のアイピースでファインダーの調整
    更にアイピースに変えてさらに追い込む。ピントが合う位置がズレるのでピント調整しなおし。

  3. アライメント
    ファインダーの調整が終わったらAZ-GTi のアライメントを行います(1~2スター。状況に応じて。3スターまではやってないです。対象の天体が見えなかったりわからないケースが多いので)。まずは AZ-GTi の水準器を見て水平に。そして経緯台モードなら望遠鏡も水平(スマホの水準器とか使うと便利)、スマホのアプリなど使って北の方向に向けておきます。スマホのアプリって毎回微妙に方向変わったりと正確に合わせるの難しいです。もうざっくり。ちなみに自宅から北極星は見えるので、だいたいこっちかなーと微調整するときもあります。ここで忘れないようにするのが、AZ-GTi の高度と方位クラッチのネジをきっちり締め直すこと!たまにネジが甘くてトラッキング時にあれあれ?となったりします。あとファインダーを触らない!ちょんと触ってズレて後で使えなくなることもしばしば。ちなみに付属のドットファインダーの調整ネジや本体は遊びが多いのでテープでぐるぐる巻きにしてみたりと少し工夫してます。

    ようやくここでアライメントを開始するボタンをクリック。アライメント先の天体がだいぶ離れたところに導入されてたりします(いつも思うんですがこんなもんなんですかねぇ。。それなりに水平と北向きは合わせてるつもりなんですが。自分のいる位置によってベランダが歪むのも一因だとは思うんですが)。流石に x1 のドットファインダーの視野には入っているので、覗きながら赤ポチを天体が中央になるように AZ-GTi の方向制御ボタンをポチポチしながら導入します。続いてアイピースを覗き、天体がセンターになるように調整してようやくアライメント終了。念の為、最後に合わせた天体でファインダーを再調整しておきます。

  4. 自動導入
    ようやく目的の天体を導入。導入直後はほぼほぼズレているので、ファインダーを覗きながら赤ポチに天体が入るよう AZ-GTi の方向ボタンをポチポチします。これでアイピースを覗いた時に天体が真ん中に導入されていればラッキー。見つからなかったら AZ-GTi を操作しながら周囲を探しに行きます。ファインダーの赤ポチで天体の周辺をぐるぐる探す感じです。見つかったらアイピースで覗いてセンターに移動、ファインダーも再調整です。ファインダーの調整は結構荒いので、赤ポチと星をちょうど重ねるのは難しいかもしれませんので、赤ポチのやや左側とかそんな感じでセンターになった場合どこら辺に合わせて置いたか記憶しておきます。ちなみにファインダー覗いて位置合わせを追い込むので暗い天体は厳しいです。うちの場合、土星でやや厳しい。

  5. カメラ装着
    鬼門です。アイピースを外して拡大撮影用アクセサリーに差し込んで、D750 と接続したものを差し替えます。カメラが結構重いのでせっかく天体を導入していてもすっ飛びます。経緯台の場合主に高度方向にズレるだけなので上下させるだけですぐ導入できる場合がありますが、ファインダー覗いて赤ポチを頼りにズレを戻すと導入しやすいです。カメラの感度もガンガンに上げておくと漏れ出てくる光でなんとなくそっちに天体があるかもというのがわかる時があるので、それを頼りに導入を行います。それでも導入が厳しい場合は 10mm -> 20mm のアイピースに戻して広い範囲からセンターに順に追い込みます。ただこの場合ピントのずれが大きくてピントを再調整する必要があったりするので、ピント調整で望遠鏡がグラグラするので辛いです。今思えばファインダーの調整、アライメントの段階からカメラ装着して位置を追い込んでも良かったなと思います。最近はいきなり高倍率状態でアライメントしちゃいます。

トラッキング

導入が終わると自動的に追いかけてはくれるのですが、放っておくとそのうちずれていきます。撮影中もつーっと流れていってしまうことがあるのですが、撮影範囲にはいっているのならばそこは気にせず、SynScan App の方向キーでちょこちょこ真ん中らへんになるように修正をかけていきます。高価な赤道儀だとここらへんどうなんでしょうか?極軸しっかり合わせてると AZ-GTi よりはだいぶマシなんですかねぇ。自分の場合は撮影中はつきっきりでした。なので一回の連続する撮影だけで疲れちゃいます。デローテーション用に複数のデータ撮るのは至難の業でした。初めて長めのアニメーション用の撮影したときは2時間ぐらいつきっきりでしたし。ちなみにある程度撮影範囲をふらふらするデータでもスタックする際もしくはその前に PiPP のようなツールでセンタリングさせてしまえば問題なくスタックできます(PiPP が最近 Web から消えた。。非常に困る)。流石に風が強くてブルブルしているようなケースではうまく行かない場合もありますが。
SynScan App での方向キーでの架台のコントロールは PC のゲーム用コントローラーで行うことができます。少なくとも PC の SynScan Pro App 最新版では。PC の画面をマウスでクリックしたり、携帯の SynScan App を指で制御するより明確でわかりやすです。もしゲーム用コントローラをお持ちでしたら試してください。Windows だと有線でも無線でもどちらでもOKでした。

過去の経緯2

天体の導入

MAK127 購入一年後には撮影機材が進化して、アイピースはバローレンズ(x2) になり、カメラは D750 から ASI462MC という惑星向きの非冷却カラーカメラになりました。基本的にはカメラが劇的に軽くなったので、カメラの装着で大幅にズレるという問題は解消しました。バローレンズ x2 も入れたりと拡大率が高くなってしまったので導入に苦労するようになりました。バローレンズなしで合わせて、バローレンズを入れて導入してましたが、ドットファインダーを調整したつもりでも、赤ポチのどこに天体を合わせるとカメラの視界に入ってくるのかわかりにくくなったり、バローレンズの入れ替えでピントの再調整があったりと、天体を導入することが億劫になり、モチベーションがだいぶ下がりました。しばらくそんな日が続きます。

それを変えたのがファインダーでした。ドットファインダーから 9x50 の照明付きファインダーに交換しました。これが ASI462MC を導入したのと同じ年。これは劇的に効きました。まずレンズがないドットファインダーに比べ拡大してくれるのと、ドットではなく細い二重のクロスゲージでセンターを表示してくれるので、ガイドがドットファインダーの赤ポチのように天体に被らないので、目的の天体を真ん中に置いていることがわかりやすくなりました。また天体の周りにクロスゲージがあるので天体がカメラに入ってこない場合にどこらへんを探索しているのかがわかりやすくなりました。副次的にいままで見づらかった土星もはっきり見えるようになって土星の導入もだいぶ楽になりました。このころから低倍率からだんだん高倍率にして導入することもなくなり、いきなり高倍率状態(ASI462MC にバローレンズ x2 を付けた状態)からのアライメントをするようになりました。ただし、それを行うには今まで以上に最初のファインダーの調整をシビアにするようになりました。アライメントの方も撮影中だけマニュアルで微調整するから 1スターでいいやと雑にもなってきました。

過去の経緯3

天体の導入

ファインダーを導入して高倍率時の天体の導入はだいぶ楽になりましたが、一つ困った問題が発生しました。アライメントです。導入したファインダーの倍率だと最初のアライメント時にターゲットの天体がファインダーから外れてしまうことが度々おこりました。仕方ないのでアライメントを開始後に、望遠鏡とターゲットの天体の方向を目視で確認して、SynScan の方向キーでおおよその方向を修正ののち、ファインダーの視界に入ってきたらファインダーを覗きながらアライメントを進める。という手順でした。
次の改良はファインダーを複数載せるでした。3スロットスターポインター(という名前だったらしい三又のファインダー台座)を導入です。これ買った時は2000円ぐらいだったんですが、久しぶりに見ると高くなってます(類似品見つけた方がいいですね)。これを導入したらアライメント時にはドットファインダー見ながら大まかに架台を制御して、続いて高倍率ファインダーに切り替えて追い込むと、ファインダー二つの調整が必要なものの、安定して確実に導入していけるようになりました。これの導入には別な目的もあって、当時はまだ行っていなかった AZ-GTi を赤道儀化したときのファインダーの位置解消にも使えると思っての投資でした。AZ-GTi は赤道儀を使えるファームにすると経緯台モードの時に左側に付けていた MAK127 が右側につけるようになってしまうので、ファインダーをつける位置が左下ととても見えにくくなってしまいます。三又のファインダー台座で少しは改善が可能です。

二連装

2023年度

天体の導入

ファインダーの改善

2022年は特に進歩もなく、そして現在。ファインダーを二つ調整する面倒くささと、三又のファインダー台座がそこそこ重いという問題がありつつも導入もルーチンワーク化して特に大きな問題とは思ってませんでした。

ところが、YouTube で電視ファインダーの作成なるものを見つけてしまいました。これはーと思って早速作ってみたら、うん、これは世界が変わるでした。それが2023年9月末。惑星のシーズンも終盤にさしかかったところでした。電視ファインダーの導入で変わったこと、
  • 無理な姿勢でファインダーを覗く必要がなくなった
  • 焦点距離を短めにして広範囲を表示してアライメントに迷うことない状態にし、導入で追い込む時は電子的に拡大してとファインダーの焦点距離を擬似的に複数持つことができてファインダーを一つに集約できた
  • ファインダーは PC で確認できるようになったので、別な PC からログインするというリモート活用ができるようになった

ドットファインダーの頃から
ファインダーの調整に1km ほど先にあるマンションの赤色灯を利用してます


左が FireCapture の ASI462MC x2.5 のバローレンズがすでに付いてます
右が SharpCap の Ceres-C (電子ファインダー) x800 の最大倍率での合わせ込み中

電視ファインダーをこんな感じで合わせ込みをしてます。表示したクロスゲージのど真ん中になるよう電視ファインダーのネジを調整しておきます。

トラッキング

今年は電視ファインダーの導入で急激に色々なことが変わり始めました。次に課題となってたのが、トラッキング。これも改善してしまいました(電視ファインダーとは関係ないんです。FireCapture です)。電視ファインダーを導入する前まで惑星の撮影は SharpCap 無料版で行っていましたが、ついでに FireCapture に変更しました(SharpCap 買い切りなら購入してもいいんだけど、毎年払うのは嫌だなと。で購入には至らず)。FireCapture はフリーでありながら惑星撮影には便利。導入に成功したら SynScan を ASCOM で FireCapture で接続し、Autoguide をオンにしておけばあとはその場を離れても FireCapture が撮影映像の木星が中心になるように AZ-GTi を自動で制御してくれて、ずっとトラッキングし続けてくれます。これでもう安心。撮影に集中できます。ROI(撮影範囲)を極力狭くして FPS を上げることもできますし、ピントを心ゆくまで追い込んだり、デローテーションのために複数回数撮影したり、ゲインや露出を変えるのを試したりなど色々やりやすくなりました。しかも PC は 家庭内 LAN に WiFi 接続してるので、離れた居間で暑さ寒さや蚊に悩まされることもなくビール片手にシーイングが回復するのを待つとか、雲の切れ目を待っての撮影などとても快適な環境になりました。良さげだなーとおもったら Autorun でポチッとワンセット撮ってしまいます。

赤丸で囲ったのが Autoguide のボタン
Autorun で撮影中の画面

おしまい。

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