オリジナル OnStep基板 Rev3.0(ESP32)

<ナビゲーション>
オリジナル OnStep基板 Rev3.0(ESP32)
オリジナル OnStep基板 Rev3.0(ESP32) +Focuser
オリジナル OnStep基板 Rev3.0(ESP32) +Bluetooth

OnStep基板 Rev3.0(ESP32) にGPSを載せる方法

 基板概要

 この基板は、オープンソース赤道儀制御ソフトウェア OnStep の実装基板です。ESP32をコアに使用します。必要な部品を実装し、OnStepを書き込むことにより、赤道儀の自動制御が可能になります。
詳しくは、OnStepのオフィシャルサイトOnStep Wikiにまとめられています。
また、ソースコードは OnStep GitHub を参照してください。
OnStepバージョンは 4.24以降 を推奨します。

基板は私個人が作成したもので、オフィシャルのPCBとは設計が多少異なります。主な仕様は次の通りです。

  • ピンマップは MaxESP3に一応準拠
  • ESP32-DevKitC モジュールに対応
  • 赤道儀ドライバはDRV8825、TMC2100、TMC2130、TMC5160などに対応
  • DCモジュールOKI-78SRを採用。5V必須。 代替品はこちら。
  • フォーカサー用のドライバを実装可能(オプション)
  • フォーカサー用ドライバはDRV8825、DRV8834、TMC2100などに対応
  • Raspberry Piサイズ。ケースはPi 4用のものを使用可。(ケース高さが必要)
  • ST4インターフェイスあり
  • Smart Hand Controller (SHC) に対応

表面

主要部品の実装面です。
ESP32 は ESP32-DevKitC という、ESP32評価開発ボードを使用します。載っているESP32モジュールによって、ESP32-DevKitC-32D とか ESP32-DevKitC-32E があります。
ステッピングモータードライバは、RA、DEC、フォーカサー用の3つ搭載可能です。
また、拡張I/Oポートを基板下側に引き出してあります。

裏面

ステッピングモータードライバの設定を行うためのはんだジャンパがあります。
MaxESP3に準拠した AUX2ジャンパもあります。

回路図

※オフィシャルのPCB図面と異なる点
ST-4ポートのピンアサインが異なります。本基板は赤道儀メーカーが多く採用している並びに合わせています。
ST-4ポートを Smar Hand Controller として使用する場合、この信号ラインの並びが違いますので、回路図を見て接続配線を変更してください。

実装パターン

ESP32 + RA、DECモータードライバ がベース実装になります。
ESP32, モータードライバ2個, DCモジュール5V が実装必須となります。
フォーカサードライバ をオプションで追加できます。拡張I/Oポートを使えば、GPSモジュールの搭載も可能です。

ベース実装

パーツ表

記号番号パーツ名備考
U2
ESP32-DevKitC1丸ピンソケット化推奨。
秋月 ESP32-DevKitC-32E
Axis1
Axis2
モータードライバ
DRV8825
TMC5160など
2RA, DEC用
同じドライバを2つ使用することが前提です。丸ピンソケット化推奨
U1OKI-78SR 5V1DCモジュール
代替品参照
C1, C2コンデンサ
100μF
2耐圧25V以上あればとりあえず。
R1抵抗
330Ω
1LEDに適応する値に。
RN1抵抗アレイ12.2KΩ 4素子。
共立エレショップ 抵抗アレイ
D1ショットキーバリアダイオード1基板5VとESP32ボードUSB電源の衝突防止用。
秋月 SB340LS
D2LED1ステータス用。ヘッダピンにしてLEDを引き出してもOK
J4, J5MINI-DIN4P コネクタ2秋月 ミニDINソケット4P (※1)
J66極6芯モジュラ1秋月 6極6芯モジュラ (※1)
J1DCINジャック1秋月 2.1mm標準DCジャック (※1) 
J3ヘッダピン 2P1電源ライン用
-丸ピンソケット(1列) 8P4モータードライバ用
秋月 丸ピンICソケット(1列)
-丸ピンIC連結ソケット(1列)8P4モータードライバ用
秋月 DIP連結ソケット(1列)
-丸ピンソケット(1列) 19P2ESP32-DevKitC-32E用
秋月 丸ピンICソケット(1列)
-丸ピンIC連結ソケット(1列)19P2ESP32-DevKitC-32E用
秋月 DIP連結ソケット(1列)
-Raspberry Pi 4用ケース1OKI-78SRの高さがあるため、厚みのあるケースを選択してください。
私が使用しているのは、
共立エレショップ Raspberry Pi 4用 ABSケース (黒)
シンプルで加工しやすくオススメです。

(※1) 他メーカーのものだとピン位置が異なる場合があります。
(※2) 実験中に焼いてしまうのはモータードライバあるあるなので、ピンソケットで取り換えられるようにした方がいいです。

DCモジュールのOKI-78SRシリーズの代替品はこちら。

部品調達先

秋月電子通商 いつもお世話になっています。
スイッチサイエンス モジュール系強し。変わったパーツ多数あります。
共立エレショップ 関西ならここ。学生時代に入り浸ってました。
マルツオンライン 部品点数の多さならここ。特殊部品も見つかったりします。
aitendo 液晶が豊富。モジュール系が充実。
朱雀技研工房ストア ロボット系部材、モータードライバなど扱いあり。
ストロベリー・リナックス 電源系のモジュール探すならここ。
ロボショップ ロボット系のパーツが豊富。Teensy, DRV8825の扱いあり。
Amazon 中華系ショップは海外発送だったりするので注意。コピー品が送られてくることがあるので品質は期待してはいけません(^^;

部品実装

Rev2.xと比較して表面実装もありませんので、はんだ付けの困難さはないと思います。
別途配線するような特にテクニカルな個所もありません。
丸ピンソケット化しておくと、後々、ドライバモジュールを交換したり、壊れた場合の交換に抜き差しできるのでオススメします。




記号番号備考
J3電源ラインのジャンパ。通常ショートして使用します。
電源スイッチやヒューズなどの保護回路をはさむことができます。
DCINの入力電圧がそのままモータードライバへかかります。DCIN=12V を想定していますが、DCモジュール OKI-78SR の入力定格(7V~36V)以内であれば動作します。
J2電源関係。DCIN(VCC), 5V, 3.3V, GND に接続します。
3.3VはESP32ボード上のレギュレータから得られる電源です。
D1ショットキーバリアダイオード。
ESP32ボードをUSB接続したき、USBからの5Vが基板上の電源と衝突しないように入れておきます。
D2ステータス表示用のLED。A、Kは図の通り。
今回の基板はレイアウトの都合上、LED位置がケースの穴位置からずれています。
RN1
ST-4ポート用の抵抗アレイです。ST-4ポートを実装しない場合は省略できます。
ST-4ポートを Smart Hand Contoller として使用する場合も実装が必要です。
▲位置がコモンピンです。
その他モータードライバの向きは図のピンがVMOTです。

ESP32-DevKitC(-32E)

秋月などで入手できます。

搭載している、ESP32のリビジョンによって、 -32D とか -32E があります。
ESP-32DはNRND(新規設計非推奨)になっているので、選ぶなら32Eが良いかと思います。秋月で正規品が入手できます。

AmazonやAliで売られている激安品の中には、出所の怪しいESP32が積まれているモノがあります。技適マークも正規品とはちょっと違う謎マークになっています。
技適も通っていない、リマーク品かもしれないのでお勧めしません。

よく似たボードとして、ESP32-DevKit V1 という類似品があります。こちらはピン数が違うので使用できません。ご注意ください。

コネクタ類


6極6芯モジュラ

ST-4互換インターフェイスです。
ピンアサインはポート正面から見て図のとおりです。オフィシャルのPCB設計とはピン配列が異なります。本基板は一般的なST-4ポートのピン配列に準拠しています。

MINI-DIN4P

コネクタ正面から見て、DRV8825ピンへの接続は図のとおりです。
モーターのラインへ接続してください。

ステッピングモータードライバ

この基板で利用できるステッピングモータードライバをいくつか例示します。
ここで挙げたもの以外でも、ピンアサインがDRV8825に近いものであれば利用できる可能性があります。各ドライバの電気特性やピン配線を確認の上、使用してください。
また、同じドライバチップでもモジュールメーカー、モジュールバージョンによってピンアサインが異なっている場合があります。
必ず、メーカーのデータシートを確認して使用しましょう。

DRV8825

おなじみのドライバです。
本基板はこのドライバを基準に設計されているので、そのまま実装すれば問題なく使用できます。
モーターを接続前に必ず電流調整を行ってください。

TMC2100

TMC系のドライバモジュールは複数のメーカーから設計の異なるものが出てます。似て非なるものがあったりするので注意してください。
ここでは、 Silent2100 FYSETC.COM V1.3 というモジュールを取り上げます。
この基板は、マイクロステップの設定がモジュール上のジャンパで設定するようになっています。詳しくは、OnStep基板rev1.1 de TMC2100 こちらの記事を参照してください。
OnStep基板へはそのまま実装することができます。
電流調整をお忘れなく。

TMC5160

TMC5160はSPIモードをサポートしています。このモードは、ドライバチップの各種設定や動作をSPIシリアル通信によって制御する方式です。
TMC5160は電流制御用の可変抵抗がなく、ハードウェアによる電流調整が不要です。その代わり、SPIを使ったソフトウェアよる細かな電流制御が可能になっています。また、非常に低発熱です。

ここでは、 BIGTREETECH TMC5160 V1.2 を取り上げます。

このモジュールを実装するには、基板裏面の JP2, JP3 にあるジャンパ(デフォルトでショートしています)をパターンカットします。
このジャンパはDRV8825において、RESET と SLEEPピンをショートさせているパターンになりますが、TMC5160の場合、該当するピンが SDO と CLK になるため、パターンを切り離し問題なく動作するようにします。

もし、TMC5160以外に再度載せ替える場合は、JP2, JP3 をはんだでショートさせてください。

パターンカットしたら、あとはそのまま実装すればOKです。
電流制御は、OnStep の Config.h  で行います。RA/DECのドライバ設定箇所に電流値の設定があります。

#define AXIS1_DRIVER_MODEL            TMC5160_QUIET //    OFF, (See above.) Stepper driver model.                                      <-Often
#define AXIS1_DRIVER_MICROSTEPS       32 //    OFF, n. Microstep mode when tracking.                                        <-Often
#define AXIS1_DRIVER_MICROSTEPS_GOTO  OFF //    OFF, n. Microstep mode used during gotos.                                     Option
#define AXIS1_DRIVER_IHOLD            200 //    OFF, n, (mA.) Current during standstill. OFF uses IRUN/2.0                    Option
#define AXIS1_DRIVER_IRUN             330 //    OFF, n, (mA.) Current during tracking, appropriate for stepper/driver/etc.    Option
#define AXIS1_DRIVER_IGOTO            OFF //    OFF, n, (mA.) Current during slews. OFF uses same as IRUN.                    Option
#define AXIS1_DRIVER_REVERSE          OFF //    OFF, ON Reverses movement direction, or reverse wiring instead to correct.   <-Often
#define AXIS1_DRIVER_STATUS           OFF //    OFF, TMC_SPI, HIGH, or LOW.  Polling for driver status info/fault detection.  Option

AXIS1_DRIVER_IHOLD, AXIS1_DRIVER_IRUN, AXIS1_DRIVER_IGOTO が電流値(mA)です。詳細は、ここに説明がありますが、IHOLD が静止時の保持電流、IRUN がトラッキング時の動作電流の上限値を指定します。IGOTO はGOTO時の駆動電流ですが、無指定なら IRUNが適用されます。

AXIS2にも同じ設定がありますので、モーターに合わせた値を指定してください。

OnStepの書き込み

OnStep ver4.24をベースに解説します。旧バージョンについては解説しません。
新しいバージョンを強く推奨します。

Arduino IDE において、 ESP32-DevKitC で開発する環境を整えます。
ボードマネージャでの導入方法などは説明しませんので他のサイトにて調べてください。
ボードタイプは ESP32 Dev Module を選択します。
OnStepの設定は、基本的に Config.h のみを触れば、様々なパターンの回路ピンマップに対応できるようになっています。
OnStep基板Rev3.0では、ピンマップ MaxESP3 をモデルにデザインしています。
Config.hの設定はいくつか必須の設定項目があります。

PINMAP (必須)

#define PINMAP                        MaxESP3
基板デザインを選択します。MaxESP3を指定してください。

MOUNT_TYPE (必須)

#define MOUNT_TYPE                    GEM
駆動する架台タイプです。一般的な赤道儀ならGEMです。

LED_STATUS (オプション)

#define LED_STATUS                     ON
ステータス用のLEDを使用するスイッチです。OnStep基板のD2を実装している場合は、ONにするとLEDが点灯します。

ST4_INTERFACE (オプション)

#define ST4_INTERFACE                 ON
ST4インターフェイスを使用する場合は ON に設定してください。

AXIS1_* AXIS2_* 関係 (必須)

2軸ギアから計算される各種パラメータは、オフィシャルサイトで配布されているExcelの計算シートにて計算した値を設定してください。
これを間違えると、正しい角度で軸が回転せず、まったく明後日の方向を向いてしまいます。

※OnStepビルド時にエラーが出る
Arduino IDEのESP32ボードバージョンによって、ビルドエラーが出たり、正常に動作しなかったりします。動かない場合はArduino IDEのボードマネージャより、ESP32ボードバージョンを下げてみてください。

その他

ケース

コネクタ類のレイアウトを Raspberry Pi4 に合わせたので、RasPi4用のケースを推奨します。また、OKI-78SR の高さがあるため、ケースも厚めのものが必要です。


写真のケースはRasPi4用でファン取り付けが可能になっているため、ケース高があります。また、RasPi4 GPIO引き出し用のスリット部分から配線も引き出せたり、加工もしやすいのでオススメです。

オリジナル 基板頒布

オープンソースの架台制御ソフト、OnStepのハードウェア実装基板などの話題です。


頒布状況 2022/12/1
○ OnStep基板 Rev2.1
○ OnStep基板 Rev3.0
○ GBC-SHC 基板 Rev1.0
頒布ご希望の方はこちら、基板頒布のお知らせ をご覧ください。

このブログを検索

Blog Archive

QooQ