天体自動導入


R7.2.2 GPiのM5StickPlusでのコントロール

 M5StickPlus2は他の機材( AFUUE2 というウィンドシンセ )に使うことにしたので、M5StickPlusに交換。スケッチはM5Unifiedを使っているため、ほとんど変更はない。

 ただ、コントローラにするジョイスティックを、色気をだしてM5Stack用I2CジョイスティックユニットからM5StickC ジョイスティックHatに交換してしまったので、多少面倒になった。

 スティックの状態取得が面倒になった?ようなのだ。もっと簡単にしてほしいものだな(^^;) ともかくハードは完成した。

 一体感があってよろしい(^^) スティックの前側にもGroveコネクタが隠れているようだ。カバーを切り取って使えるのかもしれない。商品の説明にはないな(^^;) 「分かるだろう〜」ってことか...

 このように動く(^^) テストのために、高速動作させている。PlusのAボタン短押しで速度を速く、長押しで遅くなるようにしてみた。倍率が高くなれば、細かな視野移動が必要になるからね。昨夜の実視テストでは好調だった(^^)


R7.1.30 GPiのM5StickPlus2でのコントロール

 NAOさんの「Sky-Watcher の モータープロトコル解説」を読んでみると、GTiとはシリアル通信で交信するようだ。serial.printで問いかけや命令を送ると、それに応じて回答してくれたり動作してくれる。40年ほど昔にはじめてやったな。最後はいつ頃かな? それはともかく、モーターを動かす命令さえ発すればどうにかなると踏んで、慣れているM5Stackで挑戦。3.3V系だし。ArduinoProMiniよりスケッチの書き換えが楽(^^;)

 動いた(^^)

 ついでに、使っていないM5StickPlus2でもやってみた。ただ、M5AtomLiteでも試してみたが、これは駄目だった。バッテリーを持っていないが、GTiのバッテリーでどうにかなるかな?と期待したのだが...残念。


R7.1.25 AZ_GPiのヌンチャクコントローラ導入

  Sky-Watcher AZ GTiという天体自動導入の経緯台(赤道儀にもなる)がある。スマホと連動させて使うのだけど、別売のコントローラもある。ただ、少々高価。そこまでいかなくてもスマホで自動導入できるのでありがたい。ただし、導入した後に細かく視野の中央に対象を持ってくるのはスマホの画面と視野とを交互に見るのは大変。

 ということで、NAOさんという方が、Nintendo Wii 用ヌンチャク を使って、AZヌンチャクというコントローラを作られており、その制作方法や使い方などを公開してくれている。

 私が持っているのは、 VIRTUOSO GTiなんだけど、同じGTiだから、そのままでいけるだろうと挑戦。

 それなりに動いたのだが、動かなかったりと動作が不安定。


R7.1.25 外部電源

 新しいパワフルなステッピングモーターを購入したので外部電源を取り入れることに。やっぱりM5Stack本体のGPIOピンに負担をかけてはいけないからね(^^) これで安心して運転できる。

 2極超小形単頭ジャック Φ2.5というのをモノタロウさんで購入。基板を切ってギリギリ入った。ここから外部電源を加圧する。下のようにしたらジャックを抜いたらDRV8834にM5Stackから5Vの加圧ができるようになった(^^)/ ちょっとテストに便利かも...

 電源コネクタにカバーが無いのはいつものミス。カバーを入れる前に半田付けするんだよね(^^;)


R7.1.20 新しいステッピングモーター入手

 ちょっとトルクのあるようなステッピングモータを入手。試しにM5Stackに付けてみた。最初は脱調していたが、ただの配線ミスだった。M5Stack内部の電源で回らないことはないが、GPIOピンで運用できる電流は決まっているようなので、モータ用の電源は別につけることにした。ただ、M5Stackバッテリーで動くのには驚き(^^)

 こんな具合に動くようになった


R7.1.14 76mm反射で自動導入

 昨年、80mm双眼鏡の片方のレンズを使って望遠鏡を作り、ついでにステッピングモーターを使ってGOTO経緯台を作成していた。これについては昨年の天文ガイド6月号で紹介していただけた。

 ただ、かわいい76mm反射をゲットしたので、GOTO経緯台のシステムをそのまま76mm反射に組み替えることにした。

 こんな具合に動くようになった

 動きに不安があるので、外部電源を取り入れる予定。それでも不安がある時は、ステッピングモーターをもっと強力なものに取り換える予定。


R6.3.1 完成

 時刻を得るタイミングを、最初のメニュー表示の時にすることにした。次々と見る対象を選択する際にそのメニュー画面に戻るので、戻る都度新たな現時刻を得ることができる。これによって、スケッチはほぼ完成した。

 後は、方位を動かすモーターとギヤの遊びが大きいので、これを改善しなければならない。


R6.2.28 完成間近?

 ようやくスケッチは完成した。最初に基準となる恒星を選択後見たいメシエを選択。見た後はそのメシエを基準に次のメシエへ。本当は視恒星時も再計算だろうけど、そのうち実装(^^;) こんなこと最近の機材では当然だろうけど、自分でやるとなるとなかなか難だ。

ここで見れます。


R6.2.27 仕上げの段階

 方位軸のステップモータの動きが良くない。ギヤのかみ合わせが悪いようなので、ここもベアリングを噛ませる。OriβからM42への近場でも度々ミス。ただ、バチッと合うときは嬉しい(^^)/ でも近場だからね(^^;)

 外で観望するものだから、家の中のWiFiにつながりにくい。年月日と時刻だけだから、最初に入力するようにするかな。あと大切なのは経緯台の水平度だ。南天に限っているので方位を真北にする必要がない。恒星とメシエの相対位置で導入するので。

 方位軸にもベアリングを噛ませたが、新たな課題として高度軸と同じ組み合わせのモータとギヤなのに遊びが大きい。

 今晩は雲もなく寒くもなく気分良く試運転(^^) シリウス基準でM46は一発で入った。更にシリウス基準でM42も入った(^^) M46からM42は不可(^^;)  何か間違ってる


R6.2.25 本体もできつつある

 ようやく2個のステップモーターが地平座標軸にくっついた。今の所負荷はないので動きはまあまあ。ここに899g口径8cmf300mm13倍4.7度視野のアクロマート望遠鏡がのっかる。結構バランスが微妙なので、モータの動きに影響が出るかもしれない。

 28BYJ48は改造しているし、平ギヤも使っている。スケッチの中での設定も昔のことなのでわからなくなっているので、1回転するのに何ステップ必要なのか計算できない(^^;) そこで、実際に試行錯誤で動かして求めてみると、偶然に36000ステップで1回転した(^^) これはラッキーだ。

ここで見れます。

 ほぼ組みあがった(^^) スケッチも目視では問題ないようだ。天気良さそうな夜を選んで実際に動かしてみる(^^) しかし、北天にしたときの高度操作の方向が逆になることには今後の課題だ。


R6.2.20 上手くいかない原因判明

 やっと原因判明。スケッチに入力した計算式は問題なかった。 int型で求めていた恒星時のLH時とLM分をまとめる時に、sidereal=LH+LM/60;とやってた。いつまでたっても分は反映されないよね(^^;) 気が付いて呆れた....

 方位角は北を0度とする場合と、南を0度とする場合がある。国立天文台の場合は前者だ。手計算する場合は後者になる。計算値に+180度すれば比較できるが、それに加え象限問題で混乱するわけだ。しかし、どうやらtan(方位)式の分子分母の符号で場合分けできそうだ(^^)

 どうにかここまで来た(^^) ステップモーターもそれなりに回転してくれたようだ。あとは微調整だな。おっと! 経緯台本体を作るという大きな課題があるな(^^;)

ここで見れます。


R6.2.18 ソフトの作成

 南天にある明るい基準恒星を選んでから、見たい星団を選ぶ。それらの赤経・赤緯と観測点の緯度・経度、時刻から高度・方位の差を計算する。その値をもとに2台のステップモータで望遠鏡をGOTOさせる予定。しかし、その赤道座標から地平座標への変換が上手くいかない(^^;) 方位は4象限あるので、場合分けが必要なようだ。象限については長沢先生の本や老猫こてつさんの「天体の位置計算 恒星の高度・方位角計算」を参考に。Stellariumのシミュレーションでスケッチの確認。Stellariumとスケッチの恒星・メシエデータはほぼ同じとなると計算式か様々な変換がまずいのだろう。

 ただ、Stellariumのシミュレーションと国立天文台の数値はだいぶ違う。もちろんスケッチで計算した数値とも違う。ただ、恒星とメシエの2つの相対関係でGOTOさせればいいので、絶対値が正しいか正しくないかは関係がないと思っている。自宅での地方恒星時だし。

ここで見れます。


R6.2.17 GOTO経緯台の作成

 ユニポーラの28BYJ-48をバイポーラにしてDRV8834で動かす件。以前やっていたスケッチを使って懸案の自動導入経緯台を計画。すっかり忘れているので動作テストから(^^;)。この環境で1500ステップで360度を得た(^^) アバウトです。

ここで見れます。


R3.5.20 ポタ赤を改良する

 一応ポタ赤はできたけれど、カメラの方向変換に手間がかかるので第2弾。昔ながらのポタ赤。高校生のころにかタンジェントスクリューの手回し方式で作ったものを再現。もっとも、今回はM5Stackとステッピングモーターを使用した自動追尾。

 以前からもマイコンを使った自動制御はあったのだけれど、素人の身には雲の上の話だったのです。それが案外簡単にできるのは、M5Stackの出現のお陰です。もちろん、マイクロビットやラズベリーパイでもできるだろうけれど。

 M5Stackの場合には、本体の中にステッピングモータードライバも入ってしまうし、ステッピングモータを動かすバッテリーも共用できるしで、コンパクトなことこの上ありません(^^)v

 ポタ赤本体中には、M5Stack以外にはステッピングモーターとギヤ群しか見えません。これなら、もっとコンパクトになるかも。

 完成はしたのですが、思ったよりも梅雨が早くなってしまったので試写ができませんでした。まあ、先の楽しみにして、次は8cm屈折のGOTO経緯台作成であります。


R3.5.5 ポタ赤を完成する

 作ったポタ赤で撮影してみると、下のような画像を得ることができました。小さい画像で見ると点像になっていますが、拡大すると伸びています。しかし、M5Stackによる追尾が遅いのか速いのかはこれではわかりません。少々プログラムを変えてそのあたりを分かるようにする予定です。この画像は、PentaxQ10、標準ズーム15mm(35mm換算75mm)で、iso1600の30秒露出です。

 一旦は、バランス錘を考えたのですが、これだと縦位置撮影になるので却下しました。錘を塩ビパイプで作成して気に入ってたんですけれど(^^;)

 ふと気が付いて、もう少しカメラを載せる部分を長くしてみると持っている軽量の雲台で180°近くをカバーできたので、この形にしました。極軸に対して深めの位置で支持するとカウンター錘を使う必要もなかったのでいい改造になりました。

 こんな感じにカメラを南天から北天まで動かせます。少々大型になってしまったのですが、全体を北極星の方向に向けて地面に置くだけで撮影できるので便利かなと納得しています。

 何といっても、M5Satckのプログラムとバッテリーで運用できるのが一番の利点なのではないかな。このポタ赤は2V動作のNPM PF25−48281という小型のステップモーターを使用していることが目玉になっていると思います。


R3.4.27 ポタ赤を作る

 ツイッターに書き留めておいたものをまとめておきます。

 月が明るすぎて星を撮影しても面白くないのでゆっくり作成していたポタ赤が完成間近です。
 作成中にいちいちスタックを分離するのも面倒だし、M5Stack内配線を忘れてしまうので内部配線の画像を作成しておきました。

 下のような形で完成を考えていました。35度固定にしておいて、撮影地の緯度が異なる場合に適当に厚紙挟んで変更します。私のところは34度なので、カメラ側に紙をはさみます。バランスが悪かったので錘を付けました。

 試運転したところ、ギヤの遊びが多すぎてスムーズに動きませんでした。結局、途中の平ギヤは止めてウォームギヤを使いました。遊星ギヤも2セット使って20:1にして、ウォームと合計で720:1にしました。60の倍数になったので、計算しやすいかもしれません。

 カメラ台との接続は3mmでは弱かったので、4mmに太くしました。これでどうか? さらに太くして5mmにしようとすると、手持ちのベアリングがないことと、ギヤに5mm穴をあけなくてはいけない。今の状態で撮影ができればな。

 こんな感じになって、

 完成形です。delay(887)として、887ミリ秒毎に2ステップ回してやれば恒星時追尾ができそうです。


R3.4.19 格安ステップモーターゲット

 ステップモーターがもっと必要だったので、低電圧で動くものを格安で購入しました。28BYJ-48というモータです。これは5線のユニポーラなのですが、加工すれば4線バイポーラとして使える情報があったので選んだのです。また、5Vということなので、M5Stackのバッテリーで動くかなということで...危険かも(^^;)

 まず加工が必要です。裏ぶたを外し.....簡単には書けるけれど、外すのが難しかった。いい工具があれば簡単なんだけど。さらに組み立てるときに4本のギヤ軸合わせが面倒でした.....2つのコイルが中央で赤コードでつながっているところを断線させます。つながっちゃまずいので、基板の銅箔を削って(写真で白くなっているところ)しまいます。赤コードは使いません。

 2つのコイルにつながる導線は、それぞれ桃と橙、黄と青がセットです。私はモーターから出ている状態で、桃と青、黄と橙をセットにして配線してしまったので、一方向にしか回らず、悩み抜きました(^^;)

 このステップモーターにはドライバボードもついていますが、M5Stackの2つのGPIOピンだけで1個のモーターを動かしたいので、これまでに作っておいた2枚のDRV8834が入ったBUSモジュールを使っています。上と下の側につけたGroveポート風(コネクタを使うだけで、Groveポートではありません)のところに2つのステップモーターをつなげる予定です。

動きはここで見れます。


R3.4.17 遊星ギヤをつなげる

 マイクロステップな進捗状況です(^^;) ステップモーターと遊星ギアボックスがつながりました。次は、遊星ギアと赤道儀の極軸と繋げなくてはいけません。

 タミヤのボードを使ったので、タミヤのギヤと位置ピッチが一緒だったのは嬉しい。ギヤを並べると6cmほどになり、遊星ギヤと赤道儀の極軸をつなげることができそう(^^)

 結局、直線配置でなく現物合わせで位置を決めました。


R3.4.14 1マイクロステップで2度かな(^^;)

 M5StackのGPIOピンとDRV8834のM0、M1の接続をいろいろやってみましたが、結局GPIOピンを2つ使うことにすると、1マイクロステップで2度弱が限界でした。使える人がやるともっと小刻みにできるのだろうけど(^^;) まあ、無理して考えるよりも、モーターと極軸との間に減速ギヤを入れればいいということで納得します。

 以前、購入して使わないでいた遊星ギヤボックス。最近購入したギヤセットやウォームギヤなどがあるのでどうにかなるでしょう。

 ギヤボックス3個を使って、100:1の減速比にしてみました。もともとマブチモーターを使うので、このステップモーターの2mm軸にギヤが合致して接続がうまくできています。あとは、固定金具の作成と遊星ギヤから極軸までの間の平ギヤ連携だけです。(^^)


R3.4.10 DRV8834に変更

 回ったはいいけれど、DRV8835ではM5StackのGPIOピンを4本使うので、モーターを1個しか使えないことに気づきました(^^;) さらに、マイクロステップという滑らかに回す方法を知り、探し回ったところ、DRV8834という1番違いのドライバを発見。注文しました、2個(^^) 

 すぐに届いたはいいけれど(スイッチサイエンスさんは速い!)、回らない! (^^;)

 資料を深読みして(グーグル翻訳しました(^^;))あれこれやってみると、ギュギュっと動きそうだったので、ポテンションメータなるものを回してみたところ、動きました! (^^)/

 面倒なこと(スミマセン)だけでなく、私のようなやり方で(いいと思うのは自分だけ?)調整もありなことを書いていてほしいです。しかし、ここの調整は必須ですし、かなり微妙です。ほんのわずか違うだけで止まってしまうし....

 資料では、測定やら計算やら面倒なことを書いていたので知らぬふりをしていたけれど、ここがポイントなことは気づいていました(^^;) まあ、回ればいいということで。下のような配線です。

ここで動きが見れます。

 資料を読んでいて気が付いたけれど、M0とM1を結線しなければ、1/4ステップモードになっているとのこと。やってみると動きますね。さらに、ステップサイズの表を見ると、M0・M1の双方をHIGHにすると、1/16ステップ。M5Stackで操作しなくても3.3V加電すればいいんじゃないかということでやってみると、回りました。もっとも1/4と1/16の違いが分からない(^^;) まあ、回ってればいいということで。

 さて、回ることが分かったところで、BUSモジュールにセットしてみました。ギリギリですが、入りました。

 横に窓を空けて、Groveコードでモーターとつなげればいい感じになりそうです。モーターのコードは4本なので、Groveコードが使える!


R3.4.7 DRV8835とNPM PF25-48281との組合せ

 一発で回りました(^^)/ kazurock0926さんの「Arduinoでステッピングモーターを回す」、物を作る者さんの「Arduinoでステッピングモータを制御してみる」、fum125さんの「ステッピングモーター 28BYJ-48 を DRV8835 で回してみる」をしっかり読ませていただきました。みなさん有難うございました。m(_ _)m ここで動きが見れます。

 見やすいように図面を描いてみました。最初はモーターへの電源供給を3.3Vで行いました。しかし、モーターが熱くなったので、図面にはありませんが、M5StackとDRV8835のVINとの間に5Ωの抵抗を入れて、3.3Vから5Vにしています。このモーターは2Vということでありましたので。


R3.4.6 VixenMT-1ステッピングモーター 付録

 GOTO赤道儀で星団を導入した後、微調整をするのにボタンを使えないので、Joistickを使ってみようかと思って注文してました。十字方向への移動が赤経・赤緯に対応するので便利。ケーブルを長くして使えそう(^^) 普通に販売されている赤道儀コントローラはみんなそうだものね。

 とりあえずうまくいきました。

 注文したドライバが夕方に届いてました(^^)/ モータも小さいけど、ドライバも小さい。大丈夫なのかな?(^^;) 製品の良し悪しでなく、こんなことを企てる自分自身が(^^;) 


R3.4.5 とりあえずポタ赤で試してみる

 モーターが1個しかないことと、アバウトな精度なら楽なので、最初はポータブル赤道儀をやってみます。

 入手しやすい平ギヤ10歯:50歯組み合わせだと、4.8秒毎にモーターを0.1度回転させれば恒星時追尾できそうだけど、間違いは無いかな? PentaxQ10は30秒まで露光できるので、涸沢で撮影してみたいものです。


R3.4.4 NPMさんから小さいステッピングモーターを入手

 乾電池で動く小さいステッピングモータを入手したので、かねてから計画していた8cm屈折の野外観察用GOTO経緯台作製計画を実行に移していくことにしました。下の画像はスケールが合っていないけれど... M5Stackだけのバッテリーで動かすつもりです。


R3.4.1 スケッチを更新する

 極軸を境に、鏡筒を西側置き東側を見る、東側置き西側を見るとに分けました。スケッチのsetup内に、ボタン押しで赤緯モータの回転方向を変える変数を+1か-1かに選択。観望するメシエと恒星を選んだ後に、モータ回転角度にその変数を乗じることにしました。上手く事が運びました。

 星団はしごモードのテスト。シリウスからM93はX! シリウスからM47→M46→M48はOK。M67に行こうとするもX。しかし、ポルックスからM44→M67はOK。

 M93が見えない! 大きくてそれなりに明るい散開星団なのに....なかなか難しいものです。


R3.3.28 VixenMT-1ステッピングモーター 付録

 モーターで動かすことができると、微調整に手動でも動かしたい。そうなると、赤緯モーターにもクラッチがあった方がいいので、探しました。しかし、Vixen純正品は製造終了しているような。仕方なく中古を探していら、オークションで、「赤道儀微動 クラッチ  製作品 」を発見。購入しました。下の写真のように、ケースまで作ってくれて送ってもらえました。 ありがとうございます(^^)/

 そうそう、このコントローラの為にM5Stackを一つ新調しました。Basicですけど。本当はCore2が良かったんでしょう。画面にたくさんボタンができそうだし。そうなると、他にも使いたくなるので、Basicということで。


R3.3.27 VixenMT-1ステッピングモーター制御7

 テレスコープイースト/ウエスト問題をプログラムで解決するのが面倒なので、とりあえずスケッチを東と西で分けました。単純に赤緯モーターの回転を逆にすればいいだけなので。ただ、これをプログラムするには判断材料を何にするかで迷うわけです。センサーでも入れれば簡単なのかも。

 西側の星空でGOTOテスト3回目。ぎょしゃ座β星を中心に、M35〜M38とM1を狙いました。散開星団はどれも入りましたが、M1だけは分からなかった(^^;) そこにある! と自信をもって言えないのです(^^;) M1は写真も取ったことあるのにな。月が満月近くなってきたので、もっと後に確認してみよう。

 どの対象もβ星からGOTOしたのですが、いちいち戻るには面倒です。星団をはしごする方がいいですね。スケッチを変更しよう。となると、スケッチを一から書き直した方がいいな。今までは、改善点をその都度加えただけなので、訳が分からんようになってしまった。しっかりとしたフローチャートを考えて計画的にしないといけないな。

 8cm小型屈折があるので、これをモバイルなGOTO経緯台にしてみようかの計画を考えてます。今度は、赤経・赤緯座標から方位・高度座標への変換になりますな(^^;) 脳トレです。


R3.3.26 VixenMT-1ステッピングモーター制御6

 昨晩、75倍0.8度の視野でGOTOテスト2回目を実行。小犬座α星からM48、大犬座α星からM41・M47は視野に入りました。ただ、M46は分からなかった(^^;)です。6等級ですが、細かい星が多い散開星団でそばに月があったためでしょうか。
 双子座β星から、少々遠目のM44は少し行き過ぎましたが、まあまあOKということで入りました。恒星時追尾も高倍率で見る惑星はだめでしょうが、低倍観望なら十分OKでした。ぎょしゃ座あたりの星団は、赤緯モーターが逆回りになるので次回のトライとします。

 M5Stackのボタンを使いきっているので、テレスコープイースト/ウエスト問題をどう解決つけるかが課題です。GPIOピンにスイッチを付けて決めるかしますかな? そうなると、経緯台の方がコントロールは楽なような気がします。以前あったビクセンのVMC110Lくらいであれば、乾電池動作のステッピングモーターとM5Stackを使ったら、キャンプ地で卓上GOTO経緯台を動作させられそうです。

 そういう製品が出てますね(^^;) 高価だけど。


R3.3.23 VixenMT-1ステッピングモーター制御5

 テストしてみて赤経・赤緯の両モーターが動いたところで赤道儀に装着しました。望遠鏡やウェイトが付いていないのであてにはなりませんが赤道儀は動きました。ただ、やはり動きは遅いですね。GコードのG1をG0にすると高速になるらしいのですが、脱調します。F100が今のところ動く上限です。F150になると脱調です。ここで動く様子が見られます。

 今晩、フィールドテストしてみます。


 ところで、M5Stackの専用ステッピングモーターモジュール、スタックできてスマートなのですがボトムを取り付けようとすると今ひとつしっくり重なりません。電解コンデンサがいいように嵌っていないので、下の電池を傷つけないように穴をカッターで大きくしてみましたが、どこかが邪魔している。仕方ないので、ボトムの基板を取り外し、ピンがなくなってできる隙間をプラスチック板でふさぐようにしてみました。おおっ! 重なる。このモジュール、私の使い方では発熱が大したことはないので、そのままボトムカバーでふさいでも大丈夫でしょう。? ということはもう少し電圧を上げてみたら、高速回転ができるかも? 


 晩にテストしました。最初に行ったM41。シリウスのほぼ真南にあるので分かりやすいのですが、2度近く届かない。1.9度ほどの望遠鏡の視野の先に見えてそう。モータ回転とスケッチの変換定数を検討しないといけないな、と思いました。
 オリオン座のリゲルからM42を辿ったら、辛うじて視野に入っていました。めげてきたけれど、シリウスからM47を狙ってみたら、尚更めげたした。

 しかし、観察後に確認してみたら、なんと! データにしたメシエの赤緯が微妙に違っていた(^^;) どうも赤緯のデータがあちこち違っていた。早速、妥当なデータに変更しました。

 トルクが十分だったことは収穫でした (^^)/


R3.3.21 VixenMT-1ステッピングモーター制御4

 田舎のおっさんさんから嬉しい情報。ここにG-codeの一覧表がありました。ありがとうございました。開いてみると オオッ! 膨大な量だ。しかも英語(^^;) でも、日本語に変えることができた。(^^)

 2台のMT-1ステッピングモーターがあるのですが、うまく動くモーターと脱調するモーターとに分かれました。同じスケッチにも関わらず(^^;) これは内部配線が違うなと推測し、モーターの中を開いてみました。確かに、2台のモーター、内部配線が微妙に違いました。間違えないように半田付け。

 ここで動く様子が見られます。

 同時に動かすと移動量(回転量)の関係か脱調することがあるので、順番に動かすようにしました。最初に赤緯軸の回転、次に赤経軸の回転。あとは実際の観望時の赤経・赤緯の差とモーターの回転角度との換算をできるだけ正確に求めてスケッチにするかです。それと、ドイツ式赤道儀なのでテレスコープイースト/ウエスト問題がありますね。その意味からも赤緯軸を始めに回転させておいた方がいい。西か東かは、最初にターゲットにした恒星の時角がプラスかマイナスかで判定してみようかな。


R3.3.19 VixenMT-1ステッピングモーター制御3

 問題は、GRBLコマンド SendCommand(STEPMOTOR_I2C_ADDR, "G1 X20Y0Z0 F100"); の中のXの値ですね。ここに計算値が入らねばいけません。
 " "で囲まれているので、単純に文字列か ということで String str = "G1 X" + String(deltaDec/0.108695652) + "Y0Z0 F100"; ではコマンドの中には入りません。私の弱いところで、変数・配列を理解していないのです。

 エラーメッセージを見ると、かつても悩んだところらしいので、思い出しながら調べたところ、次のような方法で解決を得ました。

  1. 配列を用意 char buf[100];
  2. 文字列を一旦用意 String str="G1 X"+String(deltaDec/0.108695652)+"Y0Z0 F100";
  3. 文字列長さを得る int len=str.length() +1 ; +1にすると良かった
  4. 文字列を文字配列に変換 str.toCharArray( buf , len );
  5. SendCommand(STEPMOTOR_I2C_ADDR, buff );
でうまく動いてくれました。


R3.3.19 VixenMT-1ステッピングモーター制御2

 昨日の結果が良かったので、もう少し先に進みました。GRBLコマンド SendCommand(STEPMOTOR_I2C_ADDR, "G1 X20Y20Z20 F500"); の速さ500が不調の原因でした。あの動きは"不調"だったようです(^^;) 脱調ということでしょうか。F100ほどでスムーズな動きとなりました。また、あえてYやZ値を指定する必要もないのでした(当然ですね 動かなかったのは接触不良でした)。さらに、Xの値指定は小数でもマイナス数値でもOKです。ただし、小数が正しく反映されるのかは実際に星空でモータを回してみないと分かりません。机上でできないことでもありませんが、実地での楽しみにしようと思います。

 下の画像をクリックすると、動画を見ることができます。

 計算してみたところ、217.4ミリ秒ごとに"G1 X1Y0Z0 F100"としてやると恒星時追尾ができそうです。GOTOの場合には、上の動画くらいの速さ(F100)で必要な赤緯差を回転させてやればよいようです。例えば、M110とAndβとの赤緯差は6.06度なので、GRBL数値を55.8にしていすればいいはずです(^^;)ホント? つまり、

SendCommand(STEPMOTOR_I2C_ADDR, "G1 X55.8Y0Z0 F100"); ですね。この55.8という値は、星雲星団の観察支援スケッチの中で計算値が出ていますので、Cボタンを押せばコマンドを送るようにすればいいわけです(^^;)ホント? まあ、やってみなければ分からない...ということで。


R3.3.18 VixenMT-1ステッピングモーター制御

 M5StackでGP2赤道儀を自動導入にしてみる計画。M5Stack専用のM5Stack用ステッピングモーターモジュールとVixen MT-1ステッピングモーターを結んで挑戦してみました。結果、何か呆気なく動作しました。使用したスケッチはモジュールのサンプル。

 これからサンプルスケッチの解釈とGRBL制御のコマンドとMT-1回転の変換を検討しなければなりません。 SendCommand(STEPMOTOR_I2C_ADDR, "G1 X20Y20Z20 F500"); で動くのですが、XYZ3軸の移動量とF速さをどう赤経・赤緯軸の回転量にするかが大きな課題です。でも、それだけなら楽なものです(^^)

 さて、ここに至るまでのことを覚書にしておかねば、すぐに忘れてしまいます。

  1. MT-1は日本パルスモータの PF42-48I3Gというステッピングモーター。ユニポーラ型。6本のコードが出ています。20ohms/phase、315mA/phase、g.ratio1/120。天文・我楽苦多工房さんによれば 「ステップ角は2相励磁で7.5度ということなので1回転48(=360/7.5)ステップです。PF42-48の-48がステップ数を表すようです。モーター減速比は1/120なので144歯のウオームを持つ赤道儀につけると総減速比1/17280となり1ステップ1.56888秒角(=7.5X3600/17280)となります。一方恒星は1秒あたり15秒角動くので1秒間に9.5609(=15/1.56888)ステップすなわち約104ms(=1/9.5609X1000)ごとにステップを進めれば良いことになります。」このあたり、GRBL制御のコマンドとの変換が必要ですね。
  2. モジュールは3つのステッピングモータを制御できます。XYZの立体方向ですね。精密工作ができるようなモジュールです。今回は、赤経・赤緯の2方向で十分です。ピンと合わせに3個目を使うこともできそうです。(やらないけど)
  3. モジュールの1つのポートはGroveAと同じコネクタなのでこれを使いますが、端子が4本です。MT-1はユニポーラですが、バイポーラでも使えるという記事がありました。良く使われるテクニックらしいです。
  4. 配線は、下図の左側のように回転子の周りにある2つのコイルそれぞれの半分だけを使うというようです。その結果、MT-1の6本のうち茶と黄のケーブルは使いません。残りの4本をペアにしてGroveAのポートに接続します。

  5. 電源には、手持ちの9.5Vのものを使ってみました。M5Stackにも供給されますし、モーターの方にもコイルを通してパルスで供給されます。そして、回転する。
 MT-1の6本ケーブルのうちの4本とモジュールの4端子とどうつなぐかが唯一悩んだところでした。まだまだ検討中です。このステッピングモーターの動きで合ってるかどうかは疑問なので(^^;)

 様子は、ここで見ることができます。


R3.3.12 星雲星団の観察支援スケッチ

 というわけで、M5Stackによるステッピングモーター制御を計画。専用モジュールとDIN8ピンコネクタを注文しました。届く前に、ソフトの方を作成。

 これまでのものを流用します。現在の視恒星時を調べ、前後2時間の範囲で見ることができるメシエをリストアップします。これが下の画面。Aボタン短押しで移動しながら選択。長押しで決定します。同時に画面変更。

 次の画面になります。対象となるメシエが中央に配置。近辺の明るい恒星をピックアップ。右側には、その恒星を選択できるよう配置。ここで選んだ恒星を、望遠鏡では予め視野に入れておくことになります。Bボタン短押しで移動しながら選択。長押しで決定です。同時に最終画面に変更。

 最終画面では、選んだ対象メシエと恒星の情報が表示されています。さらに、それら2つの赤経差、赤緯差も表示。とりあえず、ソフト的には現在ここまで。後は、ステッピングモータードライバモジュールの到着待ち。

 ステッピングモーターがうまく動いてくれれば、先ほどの赤経差・赤緯差をモータードライブして望遠鏡を動かすことになります。恒星時追尾は結構精度が必要でしょうが、単に動かすだけならそう精度は要らないので、眼視観望程度であれば十分だと思います。

 うまく動いたらいいのにね。


R3.3.12 星雲星団の観察支援スケッチ

 私の望遠鏡はGP2赤道儀で自動導入システムが付いていないので、眼視観望の時に天体を視野に入れるのが難題です。そこで、M5Stackで支援プログラムを作成してみました。

 既に、視恒星時の計算や主な恒星・星雲星団の赤経・赤緯のリストが分かっているので、スケッチ作成はほぼコピペで完成します。後は、チョコチョコの調整。このチョコチョコが面倒な時もありますが。

 内容としては、観測時の視恒星時前後の赤経を持つメシエ天体をリストアップし、その周辺の明るい恒星も表示するというもの。暗い中で星図は不要! (大丈夫?) 外灯が明るいので、3等級以上の星しか見えないためその程度の星を表示してガイドする。その恒星を望遠鏡の視野に入れ、赤経と赤緯の差を手動(!)で調整するというもの。役に立つかな?

 改良して、下左の画像では近辺の星座姿が分かるように広角にして、青のメッシュ6度角。下右は青メッシュ3度角にして詳しく見るようにしました。星座名と恒星の赤経赤緯を添えています。観望するのは低倍なので大雑把でも使えるでしょう。

 せっかくM5Stack使ってるんだから、星雲星団と恒星との赤経赤緯差を計算して、望遠鏡のモーターを動かせたらいいのにと思います(^^;)

 私のGP2赤道儀、赤経モーターしかついていない。と思ったら、モーターが1個遊んでいたことが判明! できるかな?


R3.3.12 木星と火星の見え方

 今は観望期ではない火星と木星の様子を提示するスケッチを作ってみました。といっても、パラパラ動画です。予め画面をキャプチャーしてM5StackのSDカードに保存しておいて、時刻にあったものを提示するだけ(^^;)

 PCソフトに、Kazuto Wada さんが作成された Jupiter.exe For Windows やMars.exe For Windows があって、使わせていただいています。画像は、Constantine Thomas' Planetary Map Siteからの入手画像に加筆・修正された....とあるのですが、このサイトは私が探した限り現在見当たりません。いろいろ探した結果、画像は https://jpl.nasa.gov からのものであることが判明。私も、Cassini's Best Maps of Jupiter と Map of NASA's Mars Landing Sites の表題がある画像を頂きました。ただ、これらの画像をそのまま使っても、Wadaさんのようにはキレイに表示されません。きっと、うまく減色してあるんだろうと思います。

 Wadaさんのソフトで、中央経度が0hから1時間刻みで表示するようにしてキャプチャーして保存しておきます。M5Stackでは、直近の経度0hが中央に見えている日時を基準に、現在時刻と火星の自転周期とを使って計算して、現在火星の中央に見えている経度が何時なのかを計算して、一番近い画像を表示するようにしています。まあ、観望するときにどんな模様が見えているかを分かればいいだけのスケッチです。

 木星の場合は緯度によって複数の自転周期があるのですが、大赤斑が見えるかどうかを知りたいので、その周辺の速度で計算しています。これらの速度や経度も変わるようなので、時々に修正が必要のようです。


R3.3.12 金星の追加

 金星についても追加しました。よく見える時期がありますからね。夕方に見えるのも有難い。しかし、いつどのような形で見えるかを知っていないと、いちいち調べねばならない。ということで追加です。今回は、地球からの距離も計算させました。

 距離が1.71AUですから、太陽の向こう側にいますね。従って視直径も10秒ありません。外合が近いようです。しばらくは、見ても面白くない金星です(^^;)


R3.3.5 太陽・惑星の高度&方位角 図表示

 どうにか天体の高度と方位角が計算できるようになったので、見える化してみました。なんかそっけない背景ですが、太陽と金星が没しようとしています。西の地平下に木星と土星が没しています。画面からはみ出るまで描画されます。

 明日朝の様子が楽しみだね。みんな表示されるかな? 時々行方不明になるからなぁ〜(^^;)


R3.3.4 太陽・惑星の高度&方位角

 太陽系の星々の赤経と赤緯が算出できているので、これをもとにその時間に見える星々の高度と方位角を求めてみることにしました。

 これには変換式がありますので、その通りに求めていけばいいのです、その通りに。ただ、その通りに実現できるかは、頭の体操になります(^^;)

  1. sin(方位角)*cos(高度)=-cos(赤緯)*sin(時角)
  2. cos(方位角)*cos(高度)=sin(赤緯)*cos(緯度)-cos(赤緯)*sin(緯度)*cos(時角)
  3. sin(高度)=sin(赤緯)*sin(緯度)+cos(赤緯)*cos(緯度)*cos(時角)
※時角=地方視恒星時−天体の赤経、赤緯:天体の赤緯、緯度:観測地の緯度

 既に地方視恒星時と各天体の赤経・赤緯は求まっています。従って、上の3の式の右辺に値を代入して、求まった値のarcsinを取れば高度が求まります。求まった高度を1の式に代入してやれば方位角が求まるということです。

 やってみた結果が下の通り。めちゃめちゃでした(^^;)

 慣れている人はお判りでしょうが、M5Stack画面表示は角度単位で表示したいのですが、スケッチ内の三角関数で使う数値はラジアンを使います。さらに、arcsinを取った時には求まる解が2つあります。第1象限と第2象限に、あるいは第3象限と第4象限に出てきますね。だから、出た値によってそれが−20度なのか−160度なのか、あるいは200度なのか340度なのかを判定させるスケッチが必要です。(間違えてないかな?)

 また、最初から計画的にプログラムを組まず、だんだんと積み重ねて(スタックして(^^;))きたスケッチなので、上に挙げた天体のデータがどういった種類の変数にしているのか、グローバル変数にしておけば良かったのに、何気なく関数の中で定義してしまったのか.... プログラムの流れも含めて全体構想が必要でした(^^;)

 まあ、それでも大きなスケッチではないので、修正はできるでしょう。一応、エクセルでのシュミレーションではいい結果になったので(^^)

 なお、今回のことで日本語表示方法を変更しました。

 String filename ="/marugotic16";
 M5.Lcd.loadFont(filename,SD);

 これを使うと、コンパイルの時にエラーすることが無くなりました。また、テキストカラーを指定するときは、背景色も指定すると文字がスッキリ表示されます。

 M5.Lcd.setTextColor(WHITE,BLACK);


R3.2.28 太陽系位置関係を知る

 木星の位置を計算できるようになったので、同様の計算方法を使って金星・土星・太陽の位置も計算できるようになった。図中、金星の赤経が空欄になっているけれど、y座標を130ドットのところを1340ドットと指定してしまって画面外にはみ出したことが原因(^^;) 

 上の結果を利用して、手書きで日の出時の様子を描いてみた。こんな具合になっているようだ。朝起きが遅くなったので確認できていない(^^;)

 各天体の赤経赤緯を計算できるようになったので、これを全天恒星時にプロットしてみた。これも天体の赤経赤緯とM5Stack画面の座標変換ができているので、簡単に表示することができた。
 もっとも、計算式を間違えて、午後の様子はプロットできたが、翌日になったら、忽然と4つの天体が消えた! という大事件が起きた...こともある(^^;)

 天球は円形・球形なので、M5Stack画面でも円形を意識した描画をするのが良いのかもしれないが、座標変換式が面倒になるのと、小さい画面をフルに使った方がいいということでメルカトル風にしている。


R3.2.23 惑星位置を知る

 月令を計算できるようになると、以前から懸案でほぼ諦めかけていた「惑星位置計算」もできるような気がしてきた。そこで、挑戦。

 海上保安庁さんが公開しているデータと説明を使ってやってみました。海洋情報部トップ > 海の情報 >天文・暦情報 に入って下の方へいくと「コンピュータによる天体の位置計算式」が見つかるので、これを利用します。

 大まかには次のような流れ(惑星の赤経・赤緯のみ求めました)

  1. 観測日の年月日から1月0日を第0日としての通日を求める
  2. 観測時刻の世界時を日の端数で表す
  3. 計算用の時刻引数を求める
  4. θ = cos-1((2 t − (a + b))/(b − a))としてθを求める
  5. 天体の赤経・赤緯を求める
※cos-1:アーク コサインのことね

4.天体の赤経・赤緯を求める のところで、2021年用には惑星ごとに3通り(4カ月間)のデータ列があります。観測日の年月日があたる列を決定します。人間ですと、見て分かりますがM5Stackに判定させるわけですね。各列には、C0からC17行まで赤経、赤緯、距離ごとにデータが入っています。C0 + C1cosθ + C2cos 2θ + ・・・ + C17cos 17θとして総和を求めると、赤経、赤緯、距離毎の値が得られるようです。
 この文書には、宣言なく変数が使われていることがあり、一般人の私には ??? となってしまうのですが、式の通りにスケッチを組んでコンパイルしてみると、何となく 国立天文台 > 暦計算室 > 暦象年表 > 惑星の地心座標で示されるものとだいたい合っているようなことになったので、良しとしました(^^;)

 これができるとなると、他の惑星や太陽の位置を決めることができるので、これまでやってきた星座早見盤と組み合わせてM5Stack用の使える星座早見盤ができそうです。しかし、なにぶんにも画面が小さい! 実用的でないですね(^^;) それに、今回の惑星位置計算、計算データが毎年更新されるし.....(^^;)


R3.2.21 月齢を知る

 以前から任意の月齢を知りたいな、と思ってネット検索していたけれど、ふと気が付いた。恒星時のプログラムを書けているんだから、これを利用できないかということ。
 つまり、直近の新月の日時を知ってその時のユリウス通日を計算する。これを基準とする。次に、任意の日時のユリウス通日を計算して基準との差を求める。その差が月齢となる。もちろん日にちが経っていれば大きな月齢となってしまうが、平均朔望月(今回は、29.53日とした)以内になるまで減算してやれば、それが月齢。

 実写版の月面を使ってもいいが、ファイルが多くなるのでスケッチの中で描画することにした。

 満月を黄色で描き、欠け際を月齢/平均朔望月としたものの余弦を取る。新月から上弦、満月、下弦、次の新月と4つに場合分けし、半分を黒塗りしたり、楕円で中を黒塗りor黄塗りしたりしてみた。今のところは正常に描いているようだ。


R3.2.17 観天望用星図

 軽便な8cm望遠鏡を作成したので、一寸見用の星図をM5Stackで実現しようと考えた。まずは、滝さんが作られた滝星図をM5Stackに入れて、3段階の拡大率で使用しようと考え、スケッチを吟味。タブレットやスマホ(私のはJelly_Proだから小さい(^^;))で見ればいいんだろうけど、どこまでも手軽に!ということで.....

 詳しく見る表示。しかし、これをやるにはM5StackCore2が便利だろうなぁ。タッチパネルだから。

 M5StackCore2を購入するまで拡縮は捨てて、星雲・星団等を導入する基準星が入るように、メシエカタログの80個ほどをチマチマと星図から切りだしてみた(^^;)。さらに、観察時の恒星時を計算して、その近くの赤経に位置する星雲・星団から表示するようにしてみた。

 暖かくなったら、花粉を避けて8cm望遠鏡で試してみようと思う。14cm反射も使って見比べてみよう。ただ、この両者は同じような見え方だ。ビクセンの15cm反射はよく見えるので、これもドブソニアン架台を作ってみてみようかと思っている。