rDUINOScope
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
![]() |
| × | 10 | |||
![]() |
| × | 1 | |||
| × | 1 |
このプロジェクトについて





説明
世界初のスタンドアロンArduinoベースの望遠鏡制御後藤。
利用可能なすべてのオープンソース望遠鏡コントロールは、大量の電力を消費するRaspberry Piを使用するか、コンピューター、スマートフォン、またはタブレットの拡張機能としてArduinoを使用します。 rDUINOScopeは、アマチュア天文学者が夜空を楽しむことを可能にする、最初のArduinoベースのスタンドアロンデバイスです。
最初のアイデアは、SkyWatcher、Orion、Vixenなどによって製造されたもののような市販のGOTO製品の安価で簡単に構築できる代替品を作成することでした。したがって、ハードウェアアーキテクチャは、ArduinoDUEボードと市場で入手可能な安価なセンサー上に構築されています。 構築方法に関する説明 およびユーザーガイド プロジェクトのウェブサイトで作成されました。システムの中心には、機能を追加するために絶えず開発されているソフトウェアがロードされたArduinoDUEボードがあります。
Stellariumを備えたrDUINOScope:
詳細
rDUINOScope はオープンソースのArduinoDueベースの望遠鏡制御システム(GOTO)です。スタンドアロンシステムとして作成されたrDUINOScopeは、操作して素晴らしい景色を提供するために、PC、タブレット、携帯電話、インターネット接続を必要としません。
基本的に、 THE BEST 250の恒星オブジェクト(Messier and Hidden Treasures Catalogues)と200個の星を含むデータベースがあります 、空での位置を計算し、望遠鏡を向けます。実装された位置合わせ手順により、選択したオブジェクトに旋回するときに「常に接眼レンズ内」のエクスペリエンスが可能になり、オブジェクトが接眼レンズ内に入ると、システムはそれを追跡し続けます。
ただし、電子機器を利用したい場合は、 #rDUINOScopeはBluetooth通信を利用します (ワイヤーフリーセットアップ)すべての電子機器と接続し、MEADELX200通信プロトコルに基づいてコマンドを受け入れます。
このシステムは、すべてのタイプのステッピングモーターで動作し、DIYマウント、またはSkyWatcher、MEADE、Orion、Vixenなどの市販製品の両方にマウントできます。
機能:
rDUINO SCOPEの内部には何がありますか?
rDUINOScope Github
ビルド手順
ステップ1準備
開始する前に、変更を加えてカスタマイズできるようにするために、ソフトウェアがどのように機能するかを理解することが重要です。結局のところ、これはこのプロジェクトの最も重要な強みの1つです!
この部分を理解するには、「ライブラリ」ファイルと一緒にプロジェクトファイルからコードをダウンロードする必要があります...または単にパッケージ全体を次の場所からダウンロードします: http://rduinoscope.co.nf/downloads.php 。参照されるすべての行番号は、V2.1のコードに準拠しています。ボイアナEQ
Arduinoコードがどのように機能するかを知っておく必要があります。通常、Arduinoプログラムには2つのセクションがあります-SETUP();およびLOOP(); SETUP()はプログラムの最初に実行され、基本的にシステムを利用します。 LOOP()は、1秒間に複数回起動する定数ループ関数です。したがって、画面やタッチ入力などがあり、LOOP()が原因で画面がちらつかないようにするには、Arduinoにユーザーが何を期待しているのかを知らせるメカニズムを考案する必要があります。したがって、LOOP()セクションには、「タッチを検討する..または時間を検討する...」などとだけ書かれたコードのごく一部が表示されます。残りのアクティビティはこれらの関数内で行われるため、画面が1秒間に複数回更新されないようにするためのプログラムのフロー。
計算 :私は、恒星の物体の位置を計算する方法について、インターネットで見つけたいくつかの情報を使用しました。次のリンクから収集した情報のほとんど:http://www.stargazing.net/kepler/altaz.html-時角(HA)を計算するために必要な式とアプローチ、場所、現在の時刻、および恒星オブジェクトRAについて説明しています。およびDEC。
HA / row 678を計算するコードを作成したら:voidcalculateLST_HA()/
、私はこのページを使用して、問題なく動作するかどうかを確認しました:http://www.jgiesen.de/astro/astroJS/siderealClock/、そして後の段階でメシエ天体を含むDBを追加したときに、Stellarium(http:// www.stellarium.org/)同じチェックのアプリケーション。
私が見つけた主な問題は、数式自体ではなく、Arduinoが変数タイプを処理する方法、特に計算の精度でした。
ここで、特定のオブジェクトのHAとDECを計算したら、マウントポイントを望遠鏡にします。そのためには、モーターをどれだけ正確に回転させる必要があるかを何らかの方法で知る必要があります。これを成功させるには、ウォームとギアの比率を知る必要があります。つまり、ギアが360°になるためにウォームが何回転する必要があるかを知る必要があります。私はVixenSuper Polarisを持っていますが、インターネットですばやく検索すると、RAシャフトとDECシャフトの両方に144歯のギアが使用されていることがわかりました。簡単なExcelファイル(* .XLS-http://rduinoscope.co.nf/downloads/Gears_Stepper_Calculation.xlsx)を作成して、HAとDECを計算した後のモーターの回転量と、「発火」の頻度を計算しました。 「地球の自転を補償するためのモーター。
Gears_Stepper_Calculation.xlsxXLSで使用したのと同じ数学モデルがコードにも実装されているため、コードの先頭(行34から37)のマウントの値を単純に置き換える必要があります。
//ここにマウント、ギア、ドライブの情報が表示されます。//...HourAngleとmicroStepsの比率を計算するために使用されます//セットアップに従ってこのパーツを更新します// ------ --------------------------------------- // NB:RAとDECは同じギアを使用しています比率(私の場合は144歯)!// --------------------------------------- ------- int WORM =144; int REDUCTOR =4; // 1:4ギア減速int DRIVE_STP =200; //ステッピングドライブには1回転あたり200ステップありますintMICROSteps =16; //恒星時を駆動するために1/16マイクロステップモードを使用します-また、最低速度を決定します。
比率を計算すると、コードは望遠鏡を対応する座標に向けるためにモーターをどれだけ回転させるか、またマウントがオブジェクトを追跡できるようにクロック速度を認識します。上記を処理する関数は、行906と行917から始まります。
void Sidereal_rate(){} void cosiderSlewTo(){}
考慮事項 :ご存知のとおり、これは消費者向けの製品ではありません。ニーズに合わせてカスタマイズできるため、非常に柔軟性がありますが、柔軟性にはいくつかの欠点があります。 To Doリストから削除されないようにするために、この「考慮事項」セクションを含めました。
- 取り付けモーター は単純なタスクですが、計算の動作に影響を与えます。私のシナリオでは、Vixen SuperPolarisの元のギアがウォームシャフトの右側に配置されています。しかし、ギアをプーリーに交換するためにこれらのシャフトが短いことがわかり、シャフトの反対側(左)のプーリーを動かしました。そのため、望遠鏡の位置を上げるためにモーターを実際に後方に回転させる必要があり、作成した元のコードを修正する必要がありました。モーターが他の方向に回転する方向を確実に修正する必要があります。これにより、歩数のカウントが間違ってしまい、位置が間違ってしまいます。私が何を意味するかをお見せしましょう:STP_BACKにモーターを命令する行1028を参照してください、しかし行1031で私はカウンターを増やします+ =... (参照されるすべての行番号はV2.1のコードに従います。BoianaEQ 。
if(SLEW_RA_microsteps> RA_microSteps){digitalWrite(RA_DIR、STP_BACK); digitalWrite(RA_STP、HIGH); digitalWrite(RA_STP、LOW); RA_microSteps + =RA_mode_steps;} else {digitalWrite(RA_DIR、STP_FWD); digitalWrite(RA_STP、HIGH); digitalWrite(RA_STP、LOW); RA_microSteps- =RA_mode_steps;}
アクション: コードの次の部分を修正します。 voidconsider_Manual_Moveint xP、int yP )、 void cosiderSlewTo() および void Sidereal_rate()。
- 北部VS。 南部 半球:コードは、配置されている半球に応じて、前方への移動も逆にします。これはコードの一部で行われ、タッチ入力を処理します。コードセクションの修正が必要になる場合があります。
- DECおよびRA軸のギアリング :私のコードは、DEC軸とRA軸の両方が144歯の歯車を使用していると仮定して機能します。これは、Vixen SuperPolarisの場合です。別の設定をしている場合は、コードの一部を修正する必要があるかもしれません。コードのこれらの部分を特定するのに問題がある場合は、メッセージを送ってください。サポートさせていただきます。
活動を計画する: これで、rDUINO ScopeGoToシステムを実際に構築するためのアクティビティを計画する必要がある段階に到達しました。大まかな見積もりでは、必要なもの(ハードウェア、ツール、および材料)がすべて揃っていることを考慮すると、2〜3日でシステムを完成させることができるはずです。毎晩ではなく、夜しか働けなかったことを考えると、完成までに4〜5か月かかり、多くの調査が必要でした。すべてをまとめると、次のようになりました:
- シールドボードを構築してシステムを稼働させるための1日
- すべてを箱に詰めるのに1日
- モーターとプーリーをマウントに固定するのに1日
ステップ2資料
プログラムの基本的な仕組みがわかったので、調達を計画し、必要な資料を入手する必要があります。
部品表 :私が使用した材料のほとんどは、インターネット上の中国のサプライヤーから購入したものです。しかし、GPS、Bluetooth、ジョイスティックなど、持っているのが良いと考えられ、遅延を避けたかったので、ローカルで購入することにしたものはほとんどありませんでした。およそ $ 190 USD の費用がかかりました これらすべてを手に入れるために、メーカーからそのようなシステムを購入するのに比べて、実際には低コストです。材料のリストとその価格、およびそれらを購入できる場所は、プロジェクトのWebサイト(http://rduinoscope.co.nf/rDUINO_step2.html)にありますが、このリストは、このWebサイトの[コンポーネント]セクションでも入手できます。 。
より安く見つけたり、より早く配達したりできる場合は、そうすることを強くお勧めします。
さらに、設計によっては、40ピンが必要になる場合があります。 TFT用のコネクタ付きケーブル、ジョイスティックを固定するためのいくつかのプラスチックボルト、Arduino Dueをボックス、ファンなどに収納したときにプログラム可能であることを保証するUSBケーブル。
(私が持っていなかったように)家にそれらがない場合は、はんだ付け材料、はんだ、ニッパー、デジタルマルチメーターなども購入する必要があります。
必要なソフトウェア :rDUINOScopeを構築する上で重要なことの1つは、Arduino IDEとすべての関連ソフトウェア(ドライバー、ボード定義、ライブラリ)をダウンロードしてインストールすることです。コンピュータに必要なものをインストールするには、以下のリストに従ってください:
- Arduino Webサイトにアクセスし、IDEをダウンロードします:https://www.arduino.cc/en/Main/Software。ソフトウェアのインストール–ソフトウェアがインストールされると、接続時にコンピューターがArduinoボードを認識するように必要なドライバーもインストールされます。
- Arduino IDEを実行し、次の場所に移動します:ツール -> ボード -> ボードマネージャー 、そこに到達したら、ArduinoDueボード定義「ArduinoSAMボード(32ビットARM Cortex-M3)」をダウンロードしてインストールします;
- プログラムの一部として使用したライブラリパックをダウンロードし、ArduinoIDEインストールの「libraries」フォルダーにコピーして貼り付けます。 (注:「libraries」はコンピューター上のフォルダーですが、プロジェクトのWebサイトで入手できるCOMPLETE PACK内のフォルダーでもあります: http://rduinoscope.co.nf/downloads.php なので、パックをダウンロードし、拡張子の名前を.ZIPに変更して開き、「_ libraries」フォルダーの内容をZIPからコンピューターの「libraries」フォルダーにコピーする必要があります。)
- IDEを再起動し、メインプログラムファイル「_02_Boiana_EQ.ino」を開きます。さらに4つのファイルが別々のタブで開くことに気付くでしょう。これらは、ソフトウェアのさまざまな部分を処理するファイルをサポートしています。
これで、Arduinoをコンピューターに接続した後、コードをコンパイルしてArduinoDueボードにロードできるようになります。
注: Arduino IDEがどのように機能し、Arduinoをプログラムするために何をする必要があるかわからない場合は、次のWebサイトとチュートリアルを参照してください:https://www.arduino.cc/en/Tutorial/HomePage
ステップ3組み立てる
詳細な手順については、プロジェクトのWebサイトにアクセスしてください:http://rduinoscope.co.nf/rDUINO_step3.html
今がシールドボードを作成する時です。シールドボードは、ArduinoDUEボードの上に積み重ねるピン配列のあるボードです。一部のコンポーネントはそのボード上に配置する必要があり、一部のコンポーネントは代わりにエンクロージャーボックスに配置する方が適切です。私の分割は次のようになります:
- シールドボードの保持:DRV8825ドライブ、RTC3231クロック、BluetoothモジュールHC-05、ピエゾスピーカー、12V用コネクタ、および残りのコンポーネント用のピン配列の両方。
- ボックスコンポーネントの月次は次のとおりです。GPSモジュールNEO6M-アンテナが常に空を向くようにするRX、穴からボックスの外側に突き出たDHT22温度センサー、PS2ジョイスティック、TFTスクリーン、およびすべてのスイッチ(ON / OFFスイッチとデイ/ナイトモードスイッチ)。さらに、モータードライブコネクタ、12V電源コネクタ、およびArduinoDUEネイティブポートに接続するUSBケーブルポート用の穴を開けて、ボックスを開かなくてもソフトウェアを更新できるようにしました。
コンポーネントをARDUINODUEボードに接続する方法:
コンポーネント....ハードウェアピン.... Arduinoピン
GPS
- GPS NEO 6M .... RX .... 16
- GPS NEO 6M .... TX .... 17
RTC
- RTC DS3231 .... SDA .... A4
- RTC DS3231 .... SCL .... A5
Bluetooth
- BT HC-05 .... TXD .... 14
- BT HC-05 .... RXD .... 15
DHT
- DHT22 .... out .... 3
スピーカー
- ピエゾスピーカー.... 2
PS2
- PS2ジョイスティック.... VRx .... A1
- PS2ジョイスティック.... VRy .... A0
偏角DRV8825
- DEC DRV8825 ....ステップ.... 6
- DEC DRV8825 .... DIR .... 7
- DEC DRV8825 .... M0 .... 10
- DEC DRV8825 .... M1 .... 9
- DEC DRV8825 .... M2 .... 8
- DEC DRV8825 .... RESET DEC DRV8825 ....スリープ
赤経DRV8825
- RA DRV8825 ....ステップ.... 4
- RA DRV8825 .... DIR .... 5
- 3V
- RA DRV8825 .... M0 .... 11
- RA DRV8825 .... M1 .... 13
- RA DRV8825 .... M2 .... 12
- RA DRV8825 .... RESET RA DRV8825 ....スリープ
TFT画面
- TFTシールドで使用....ピン(22-53)+ SPI
- 昼/夜....モードスイッチ.... A3
そうです...これで、シールドボードを組み立てる準備が整いました。 プロトタイピングPCBを入手し、それを切断する方法を評価します。これにより、すべてのコンポーネントを保持して配線用のスペースを確保し、Arduinoの上に積み重ねることができるようにピン配置をはんだ付けできます。ボックス自体に取り付けられたコンポーネントも接続できるように、Arduinoで使用されるすべてのピンをはんだ付けし、シールドボード上のコンポーネントまたはこのシールドボード上のコネクタに接続する必要があることに注意してください。
以下にプロセスの写真をいくつか掲載します:



それらが終わったら、ボードを接続してシールドをテストしました!機能していませんでした! :( 配線を確認したところ、2つの接続の間にブリッジが作成され、修正する必要がありました。 Arduinoや他のものを間違った配線で燃やさないことが本当に幸運だったので、この瞬間から私はすべてのはんだ付けに問題がないかチェックし始めたことに注意してください。 注意:すべての接続を確認してください。 重要なため、DRV8825とモータードライブの次の配線図に必ず従ってください。

電源をオンにする前に、適切な電源アダプター(12V、1.6A)を使用し、モータードライブを接続してください。 注意:DRV8825に負荷がかかっているときは、ドライバーを焼く可能性があるため、モータードライブを接続しないでください。
すべてのコンポーネントが所定の位置にはんだ付けされているので、モータードライブも接続し、ソフトウェアをArduinoボードにロードして、セットアップ全体をテストすることをお勧めします。この時点では、問題なく動作するはずです。
これで、ソフトウェアを試して、ユーザーインターフェイスを理解できるようになります。インターフェイスを支援するために、プロジェクトのWebサイトにユーザーガイドページを作成しました:http://rduinoscope.co.nf/guide.html
設定は次のようになります。


ステップ4一緒に箱に入れます
シールドボードの準備ができたら、箱を取り、残りのすべてのコンポーネントのレイアウトを開始し、穴を開ける必要がある場所と、形状とサイズを計画します。穴を開ける最良の方法は、小さなポケットナイフを使うことです(少なくとも私にとっては)。丸い穴でも四角い穴でも構いません。小さな鋭利なナイフで簡単に彫ることができます。
唯一の例外は、長くて均一で四角い穴が本当に必要な画面の場合です。私は助けを求めました、そして私の父は彼の切断機でそれをしました。
レイアウトに満足し、それが実行可能であると考えたら、穴を開け始めます。これは長いプロセスであり、混乱を招きますが、2〜3時間以上かかることはありません。丸い穴を開ける必要があるときにドリルを使用することがありました。たとえば、12V電源コネクタ、RAおよびDECモーターコネクタです。

以下に示すように、ホットグルーガンを準備し、ボックスへのコンポーネントのホットグルーを開始します。




これで、ボックスの前面にあるコンポーネントを除いて、すべてが接続され、ボックス化されました。そこにTFTスクリーン、PS2ジョイスティック、デイ/ナイトモードスイッチを配置することにしました。 TFTスクリーンに着いたとき、オスとメスのコネクタを使用して単純なリボンケーブル接続を作成し、それをスクリーンに接続しました。しかし、これは機能しませんでした!その理由は、ピンがミラーリングされ、TFTスクリーンが機能しなくなったためです。そこで、問題を解決するために、複雑な2Dから3Dへの変換を行い、リボンケーブルで使用していたコネクタを作成することにしました。
長い話、短い: ロケット科学ではありませんが、解決策が見つかるまで苦労しました。醜い解決策ですが、それは機能し、1年後も機能していました。以下に私が何を意味するかを見ることができます。
基本的に、ここに表示されるのは次のとおりです。



- リボンケーブル
- 40ピンメスコネクタ
- アレイを形成するためにカットされたPCBにはんだ付けするピン(2 x 20ピン)
それは魅力のように機能し、私は箱を完成させることができました!






ステップ5ドイツの赤道儀
モータードライブをマウントに接続する方法を皆さんと共有したいのですが、できません。真実は、どのメーカーも独自のデザインを作成しているため、すべての人に役立つソリューションはありません。
私は80年代のVixenSuper Polarisを使用していますが、以下の方法で使用できます。 ステップ1 で行った決定を思い出してください。 コード内の値を変更する必要がある場所は、作業に影響します。以下に私のプーリーとベルトのセットアップを示します。
セットアップ用に2セット購入しました。それがどのように機能するかわからなかったので、1:4の削減のセットと1:3の削減のセットを購入しました。ベルトのサイズも、減少が両方のプーリー間の距離に影響するため、異なる必要があります。良い計画と設計があれば、どのように進めてお金を惜しまないかを前もって決めることができることを認めますが、私は急いでいました。私はそれを機能させる必要がありました!

ベルト、プーリー、マウントを目の前に置いた後、すべてがマウントに完全にフィットしているように見えたので、1:4の縮小を使用するのが最善の方法であると判断し、モーターハウジングの作業を開始しました。半日後、私はこれを思い付くことができました:
セットアップ全体をテストし、ソフトウェアにいくつかの変更を加えて(35行目の変数値を4に更新)、最終的な設計上の決定を表すようにしました。もう一度テストしたところ、すべてが魅力として機能しました。


きちんとテストするために星月夜を待たなければなりませんでしたが、待つまで、何かがおかしいことに気づきました!
私は最高の望遠鏡制御GOTOシステムを持っていて、趣味の予算で購入できるものよりもはるかに優れていましたが、正しく見えませんでした。最後の仕上げが必要でしたが、後でrDUINOScopeを誇りに思いました!

最後に、私のrDUINOScope Vixen SP Ferrariは、見た目どおりに見えます!



ファイル
_READ_ME.txt:最終リリースv.2.1 BoianaEQの説明といくつかのF.A.Q。
_READ_ME.txt_02_Boiana_EQ.ino:メインのArduinoファイル
_02_Boiana_EQ.inographics_screens.ino:グラフィックファイル-メインファイルにリンクされています
graphics_screens.inotouch_inputs.ino:TOUCH INPUTSFILE-メインファイルにリンクされています
touch_inputs.inoBT.ino:BLUETOOTHCOMMUNNICATION-メインファイルにリンクされています
BT.inoregular_updates.ino:TIMEUPDATES-メインファイルにリンクされています
regular_updates.ino
コード
- コードスニペット#1
- コードスニペット#3
コードスニペット#1 プレーンテキスト
//ここにマウント、ギア、ドライブの情報があります。// ...時角とマイクロステップの比率を計算するために使用されます//セットアップに従ってこのパーツを更新します// --------- ------------------------------------ //注意:RAとDECは同じギア比を使用します(144私の場合は歯)!// ------------------------------------------ ---- int WORM =144; int REDUCTOR =4; // 1:4ギア減速int DRIVE_STP =200; //ステッピングドライブには1回転あたり200ステップありますintMICROSteps =16; //恒星時を駆動するために1/16マイクロステップモードを使用します-また、最低速度を決定します。
コードスニペット#3 C / C ++
if(SLEW_RA_microsteps> RA_microSteps){digitalWrite(RA_DIR、STP_BACK); digitalWrite(RA_STP、HIGH); digitalWrite(RA_STP、LOW); RA_microSteps + =RA_mode_steps;} else {digitalWrite(RA_DIR、STP_FWD); digitalWrite(RA_STP、HIGH); digitalWrite(RA_STP、LOW); RA_microSteps- =RA_mode_steps;}
Github
https://github.com/dEskoG/rDUINOScopehttps://github.com/dEskoG/rDUINOScope 回路図
ステッピングモーターとDRV8825を配線し、ArduinoDUEに接続する方法 

製造プロセス