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

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 機能の実装はサボっています(めんどくさかっただけ。実装が複雑という訳でも無いのですが)。

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







2020/10/20

MAK127SP focuser Ver.2 (概要)

初代 focuser Ver.1

試作しかけていた初代 focuser はM5Stack のコンテストが開かれるということを知り、急遽適当に完成させて応募しました(コチラ)。強豪のいる中、単純なこの作品は入賞はしませんでしたが、個人的に便利だったので、誰でもなるべく簡単に作れて、入手性が高く、低予算で、使いやすいモノ Ver.2 へと改良してみました。

初代 focuser Ver.1

NO WARRANTY (無保証)ですが、制作方法とソフトを公開していきますのでよかったら試してみてください。MAK127SP 向けとタイトルには書いていますが、モータさえ取り付けられれば他の望遠鏡にも適用できるのではないかと思います。DRV8825 を使用したフォーカサーの作例はボチボチ見かけますね。

使用している様子。サクサク使えてます。



ただ一つ問題があります。モータが出っ張るので、天頂プリズム、カメラアダプター、バローレンズなどを挟む必要があります。こんな風に。普段カメラアダプター 挟んでるのであまり気にはなりませんが。




システム構成

キーとなるデバイスは初代と同じく M5Stack社 の製品を極力使い、電子工作を極力避けるため半田付けなど面倒な作業は一切省きます。初代はモータのマウントに3Dプリンターも使いましたがこれも廃止。

メインのシステム構成は望遠鏡 (MAK127SP) + ステッピングモータ + ATOMIC ステッピングモータードライバキット+コントローラです。ATOMIC ステッピングモータードライバキットは、M5Stack 社の ATOM lite に TI 社の DRV8825 が付いたモジュールで、ATOM lite にステップパルスの生成とコマンド受信を担ってもらっています。

生成パルス数と方向のコマンドを受信すると、ステッピングモータを動作させるという仕組みです。

コマンドは Grove 端子の I2C Slave 接続と USB ケーブルからの USB-serial の二系統をサポートします。

電源電圧は 12V。このキットのモジュールは電源 12V を与えると 5V を生成するので、Grove 端子に接続したコントローラの M5Stack 等に電源を供給できるので単電源でOKです。

余談ですが初代ではその時の手持ちの ON Semiconductor 社の LV8548MC で Full step, Half step のみ実現していましたが、新たに購入した ATOMIC キットの DRV8825 だと Full step ~ 1/32 までのマイクロステップ動作が可能で、それを任意に選択できるようにしました。



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

コントローラはエンコーダーでグリグリとフォーカス制御したかったので、これが実現できる PC (エンコーダーは無いのでマウスで)、M5Stack + PLUS エンコーダモジュールM5Stack + FacesボトムベースFaces 用エンコーダパネルの3種類が選択できます。

M5Stack や Faces を選ぶときには更に複数の選択がありますが、好みや予算に応じて選ぶと良いと思います。3種類の違いは価格と操作感です。GUI としてはほぼ同じです。価格が高い方が操作感は良いと思いますが、予算に応じてステップアップもアリでしょう。元々は Faces 用エンコーダで作っていたのですが、他に安い実現方法もあるなと手を広げてしまった次第です。

もちろんお好きなコントローラを Grove 接続したり、シリアルコマンドを他のソフトで送り込んで制御することも可能なので他のコントローラをご用意していただいても結構だと思います。

左からPLUSエンコーダ、Facesエンコーダ、PC


ではハードウェア制作編コントローラ選択編そしてソフトウェア編を順次アップして行きます。