PIC AVR 工作室別館 arduinoの館->TopPage->つくってみた->赤道儀

ポータブル赤道儀

Arduinoを利用して、ポータブル赤道儀をつくってみました。

赤道儀とはなんじゃらほい?というお話はとりあえずこちらのページに

Arduinoを利用といっても、市販のArduinoをそのまま使ったというよりは、1枚のオリジナル基板に「Arduino互換CPU+赤道儀コントローラ」 の機能を搭載したものです。

つまり、オリジナルの「赤道儀ドライバ基板」を作り、それに小型のステッピングモータやキャラクターLCD、 ウォームギヤなどを組み合わせて、ポータブル赤道儀(以下ポタ赤)として組み上げたものです。

このページでは、赤道儀本体の部分と、ソフトウェア処理について触れます。 コントローラの回路部分については、こちらをご参照

特にArduinoという視点では、ソフトウェア部分のコーディングを楽するために、 ArduinoのIDEでサクッとスケッチ書いて動かせるよう、Arduino互換基板を搭載しました。

機械部分については、ある程度絶対的な精度が必要になるので、市販のウォームギヤとウォームホイールを入手して使いました。 ネコの目式で使う場合は、 こんな高価なギヤを手に入れる必要は無いでしょう。普通の寸切りネジでも精度がだせます。

作戦とねらい

今回は、単にモータやセンサなど色んなものを繋いでみるというだけではなく、一つのモノとして動作するものを作るので、 私の稚書Arduino本 の第6章で触れているような開発行程に沿ってつくっています。といってもArduinoだし、「素人工作」なので、 実際の開発現場のようなシビアなことはやってません。いじくりまわしながら、アレコレ微調整しながら。

ネコの目式 は三角関数計算をマイコンで行う必要があるので、数値演算ライブラリが利用でき、 かつ、それが収まるメモリ容量のマイコンでなければなりません。ArduinoでもMEGA328コアならその程度なんとでもなるでしょう。 そういった視点から、制御基板のコアCPUはArduino互換(MEGA328チップ)としてみました。 普通の赤道儀(三角関数を使うネコの目式や蝶番式でない)ならば、たくさんの機能を盛り込んでも、MEGA168コアでも大抵は間に合うでしょう。

出来るだけ追尾精度を出すには、

といったあたりがネックになります。手に入る材料、手元にある加工器具、素人でも可能な調整方法…と、 お金を掛けずに作るには色々制約があるので、このへんは、ご都合主義で考えながら。

(1)は、一眼レフと200mmF2.8クラスの重さに耐えることを念頭におきます。 あまり本体が華奢だと、回転にしたがってカメラの重量バランスの移動の影響で赤道儀自体がしなってしまい、精度が出せません。 (まぁ、追尾精度は、さすがにこのクラスの画角だと厳しそうですが…)

(2)は意外と厄介な部分で、単純なDDS(後述)でやろうとすると、Arduinoの単精度浮動小数点では充分な精度が出せなさそうです。
一方、経過時間の分解能を1/100秒単位と仮定して、DDSを改良した方式を考えてみたところ、結構な誤差が出るか、 稼働時間(桁あふれせずに計算可能な限界時間)が短くなるか、いずれにしても悪影響が出ます。 また、回転速度を「恒星時」「太陽」「月」といった、微妙な速度の差も正確に追尾したいのと、 かつモータの振動も考えてマイクロステップが欲しくなります。
このあたりのモロモロに折り合いをつけます。

(3)は、普通の「ウォームギヤ」式の場合、「ピリオディックモーション」に直接影響するところです。 (「ネコの目式」では追尾速度に直接影響するところです)
あとで調整が効く様に、「ウォームギヤ式」では軸間の調節が出来るようにしておきます。 (なお「ネコの目式」では、実測値を元にソフト側で微調整が可能です)

このあたりを念頭に、極力ホームセンターで買える材料とか、どこのご家庭にでもある工具類や、 ホームセンターの加工サービス程度で工作できる範囲で作れる程度を年頭に細かいところを詰めていって、 ポータブル赤道儀(ポタ赤)として実用レベルまでもっていきます。

機能概要

制約や前提となることを整理したうえで、搭載する機能の全体的な概要を整理していきます。

制約事項、前提事項

基本方針は、極力ホームセンターで入手できる、安くて加工しやすい材料を使いたい。

加工のしやすさ(柔らかさ)とは裏腹に、精度を満たす充分な強度を得られる高硬度の材料を使う。
→つまり、「硬くて柔らかいもの」を材料に。 (しかも、持ち運びを考慮して軽いもの)  →言うまでも無く、矛盾したスペックが求められています。

手持ちの工具は、電動ドリルと、ミニボール盤程度。出来れば電動ドリルだけで済ませたい。

可搬性を加味して、電池駆動。単三電池で数時間は連続で稼動できるようにしたい。 (ここは、以前の実験に沿って、 昇圧回路と負荷の消費出力を元に検討)

使用するパーツ類は、ホームセンターで売ってるモノか、市販のカメラパーツなどで済ませたいところ。 三脚とか自由雲台とかは市販の「カメラ用品」の流用を想定。

ただし、ウォームホイールとウォームギヤは、東急ハンズとかで入手できるものだと、軸径や歯数、材料、強度、精度などに制約が大きい →ココだけは肝なので、きちんとした「ギヤ」メーカーの、ウォームホイールとウォームギヤを取り寄せて使うことに。

出来れば、200mm画角程度で、数分間追尾できる精度が欲しい。広角なら、多少長時間でも「ビシッ」と像が止まる精度が欲しい。

極軸あわせは、「極軸望遠鏡」を使わずとも、出来るだけ正確にあわせたい。

なんと言っても、カメラバッグに「ポンッ!」と入れて持ち運びしたい。旅行に行くときに、「カメラ」「三脚」と、 ”ついでに赤道儀”という感覚で持ち歩けるサイズ・重さにしたい。

要件定義・機能概要

出来るだけ欲張りつつ、ただし可能な範囲で「要件」を盛り込んでいき、盛り込む機能を絞り込んでいきます。

追尾速度

「(1)恒星追尾」「(2)太陽追尾」「(3)月追尾」「(4)星野撮影」「(5)一時停止」の5つの追尾モードを設けます。

これは、以前にいくつかの赤道儀を使って、または試作品を試用してみて、欲しい機能、かつ技術的に可能そうなものをチョイスしました。

恒星追尾は、1恒星日(=23時間56分4秒=86164秒)で1回転する速度、太陽追尾は1日(=24時間丁度=86400秒)で一回転する速度、 月追尾は平均値24時間50分(=89400秒:後述)で一回転する速度、 星野撮影は「恒星」と「静止した地上」の平均速度で一回転する速度(=48時間=172800秒)として扱います。

月は楕円軌道で公転しているので、日によって公転速度が変化します(ケプラーの第二法則)。 また、月の公転面は地球の公転面と一致していないため、高度(緯度)も時々刻々変わります。

なので、あくまで平均時間として 「南中時刻が一日あたり50分ずつ遅れる」天体と見做し、また天球面上での高度は変化しないものと近似させ、これを追尾することにします。 言い換えれば、月は円軌道で公転し、地球の公転面と同一面上を公転している天体とみなします。 (…実際は、天球上で、経度・緯度が微妙にズレながら移動)

一日あたり50分ずつ遅れて南中するということは、南中から南中まで24時間50分=89400秒で1周ということになります。

太陽追尾は、日食などで太陽を追尾しながら撮影するときにも使えますが、機会の少ない日食よりは、 機会の多い月食の時の、「地球の影(=太陽と丁度反対側にある)」を追尾するときに使うことが多いでしょう。

厳密には、地球の公転軌道が円ではなく楕円のため、太陽が天球上を進む速度も一定ではなく、「24時間0分0秒で一周」というのは近似値です。 厳密には、アナレンマ が有名な均時差を考慮する必要があります。 ただし、計算は複雑だし、月同様に1軸追尾では厳しいので、24時間0分0秒で1回転する天体とみなします。

そういう意味では、その他の「恒星」を追尾する「23時間56分4秒」も平均値であり、楕円軌道で公転する地球では近似値といえます。

星野撮影モードは、「星と地上物」を広角レンズで一度に撮る場合のモードです。 地球が自転している都合上、地上と天球の両方をピタリと止めて一枚の写真に収めることは出来ないので、 その丁度中間の速度(=地球の自転の半分の速度)、つまり1周48時間で追尾して、広角レンズで短時間で撮影することにより、 ブレの量を許容範囲とする撮り方で使います。

他にも、「彗星」追尾モードなどあると便利ですが、月と同様、1軸追尾では正確な追尾は難しいでしょう。

追尾誤差と連続稼動時間について

Arduinoの「float型」変数(浮動小数)は、単精度(4バイト=32ビット)変数です。 「double型」(倍精度浮動小数)も定義はされていますが、実装の内容は「float」と同一で32ビット変数です。

この浮動小数を使って、DDS(Direct Digital Synthesizer)による信号波形で追尾する「試算」をしてみると、 浮動小数点計算で精度の誤差が生じ、計算誤差が少しずつ「追尾誤差」として蓄積していきます。

タイマ割り込み周期や、モータのギヤ比などにも因るんですが、ザックリ計算してみると、 200mm画角のレンズを使って5分も追尾すると、明確に星が軌跡をを描いてしまうレベルになりそうです。

なので、この誤差を排除する計算方法を考える必要があります。

具体的には、DDSの様に「微小時間ごとに回転角を積み上げていく」のではなく、「微小時間の積み上げ=経過時間」を元にして、 「その時刻における角度を都度都度計算」することにします。

「現時点の経過時間は何秒?」という値を変数に記憶しておいて、その経過時間から角度を計算するということがポイントです。

なぜそうするかと言うと、「角度」と「経過時間」では、変数に格納する際の「型」が異なるからです。

回転角度は、「微妙な端数」を内包するので、浮動小数型の変数が必要です。 浮動小数型は、32ビットのメモリを「仮数部」と「指数部」に分けて記憶します。その仮数部は23ビットしかありません。 それより小さい桁の部分は切り捨て(または四捨五入)で丸められてしまいます。

DDSによる制御では、微小時間での回転角を「丸めた」後の数値を使って、時々刻々と角度を蓄積していく処理方法なので、 時間のが経過に比例して蓄積誤差が大きくなっていきます。

一方、経過時間であれば、例えば1/100秒ごとにタイマ割り込みを発生させるのであれば、 タイマ割込みが「何回発生したか」を100で割れば「秒数」で把握できます。つまり、経過時間は「整数型変数」で正確に計算でき、 累積誤差が生じないことになるわけです。

Arduinoには、「long型」という32ビット変数があります。例えば1/100秒毎にタイマ割り込みを発生させ、 経過時間を1/100秒単位で計測するのであれば、long型で2,147,483,648÷100秒まで、unsigned long型なら4,294,967,296÷100秒まで計測できます。

unsigned long型なら、理論上は桁あふれするまでに1万時間以上の経過時間を計測することができます(約1年)。 赤道儀の場合、実用上は12時間(半日)も計測できれば充分です。

long型を使えば、事実用、常に時刻を正確に把握できる(蓄積誤差=完全にゼロ)といってもかまわないでしょう。 その経過時間を元に「回転角度」を計算してモータを動かせます。

この方法は、DDSと違って、精度の蓄積誤差を気にする必要がありません。 しかも、DDS同様に角速度を微妙な速度(恒星追尾や太陽追尾など)の制御でもうまく機能します。

よって、DDSの代わりにこの方法を用いることにします。

が、実際は、1万時間超を自由自在に扱えるというわけでもなく、 「経過時間」→「角度」→「モータのステップ波形」に計算していく仮定で、一旦float型に変換する必要があったりするので、 実際に制御できる時間はもっと短くなります。

そこらへんについて、色々と悩んでた記録がブログに残ってました

この手の計算では、「有効桁数」とか「桁あふれ」とか「型変換」とか、色々面倒です。

まぁ、計算方法をある程度詰めて、ザックリ計算してみたところ、おおよそ目処が立ったので、細かいところは詳細設計で詰めることにします。

ユーザインターフェースまわり(1) 人→赤道儀

ユーザインターフェースで考える必要があるのは、大きく分けて2つです。一つは赤道儀の動作モードを指示する手段。 つまり「人→赤道儀」の方向。もう一つは、赤道儀側からの情報伝達手段。つまり「赤道儀→人」の方向。

追尾モードと停止モード

まず「人→赤道儀」の方向としては、まず追尾モード切替が挙げられます。4つのモード選択に加えて、「一時停止」モードも設けます。 一時停止モードの必要性は、「極軸望遠鏡を使わない極軸あわせ」にあるのですが、 詳細は別ページで。

もちろん、一時停止モードは、文字通り一時的に追尾を停止しておく時にも使用できます。 その際、モータへの制御信号をカットして、モータへの給電を「ゼロ」にして、その間消費電力を抑えるようにします。 なお、モータに信号を送らなくても、通常はデテントトルクで静止しているはずなのと、 さらには減速機構によってデテントトルクが増大されるので、カメラが勝手に明後日の方向に回転してしまうことは無いはずです。

音出力、北半球/南半球表示

それ以外に、「音」出力のオン/オフ制御、「北半球/南半球の回転方向」切り替えの機能を盛り込みます。

さらには、ポタ赤だけでなく、「望遠鏡用赤道儀」のコントローラとして使う場合についても考慮しておきます。

望遠鏡用の機能(倍速モード)

望遠鏡レベルの焦点距離ではファインダーを覗きながら直接赤道儀を操作して星を導入するのが厳しい (視野が狭過ぎて、ちょっと移動しただけで星が視野から外れてしまう)ので、 「倍速追尾モード」というものも考えておく必要があります。

この「倍速モード」と「一時停止モード」を組み合わせると、星の位置を「ファインダーを覗きながら微調整(任意の場所に導入)」 することが可能です。実際は、もっと速いモードや、逆回転モードまで設けると、すばやい導入が出来るのですが、 ギヤのバックラッシとかモータのトルクとか消費電力とか、色々面倒な問題に直面するので、取り合えず「倍速モード」だけで我慢します。

インターフェースまわり(2) 赤道儀→人

「赤道儀→人」のインターフェースは、これまでの試作品を通して、「こんな機能が欲しい」と思ったものを盛り込んでいきます。

「必要」な機能:「動作モード」と「バッテリー電圧監視」

「動作モード」は、現在どのモードで動いているのかのユーザフィードバックです。

今現在「どのモードで動いているか」が判らなければ、追尾したい天体をまともに追尾できないため必須になるでしょう。 具体的には「どの追尾速度で追尾しているのか」と「北半球なのか南半球なのか」にに関する情報のフィードバックです。

また、「バッテリー電圧監視」は、残りのバッテリー量を表示するための機能です。 急に止まっちゃったときに、バッテリー切れなのか、故障なのか判断できないのと、残りの稼働時間の目安も立てられないため。

「できれば欲しい」機能:「経過時間」とその周辺の機能

LCDはオプションにしているので、これらをLEDの点滅やブザー音でも判るように表現しないと困ってしまいます。

とはいえ、さすがにLEDとブザーだけでは表現力が低いので、とりあえずLCDで可能な範囲で「動作モード」「バッテリー電圧」「経過時間」 を表示します。そして、「ブザー音」や「LEDのオン/オフ」でも、可能な範囲でこれらを出力出来るようにします。

大事なのは、たった3つのボタンで、しかも暗闇の現地で、「操作方法」や「表示の意味」に迷うことなく、操作を簡単に行えて、 状態を的確に把握できること。現地で「ユーザーマニュアル」広げて悩んでいるようじゃだめ。

これらを、16文字×2行のスペースだけで、無理なく行えることを目指します(具体的なデザインは詳細設計やりながら)。 こういう時に、「誰のためのデザイン? 」で学んだ「アフォーダンス」という概念が活きてきます。「見た目」と「操作内容」を、直感で結び付けられるようにします。

厳しいのは、たった3つのタクトスイッチだけで操作しつつ、その3つのボタンの操作内容を、現地で「何も見ずに」行えるようにすること。 (LCDの16×2の情報量は意外と少ないことに注意…しかもLCDなしの場合も考慮に入れておく)

「表示内容」と「ボタンの配置」を、ある程度連動し、「デザイン」として統合出来るようにしていく方針で考えていきます。

追尾機構(回転機構)

回転機構(いわゆる歯車関係)は、ステッピングモータの回転を大きく「減速」する機能を発揮し、かつ「高い精度」が求められます。 (最終的には、およそ1日に1回転程度まで減速を行う必要があります)

「ウォームギヤ式」の赤道儀の精度では、「ピリオディックモーション(またはピリオディックエラー)」 に関する問題は重要です。このあたりに関することです。

(※:恒星や太陽、月を追尾するには、角速度の「ムラ」がなく、かつステッピングモータの回転速度を大きく「減速」できる必要があります)

減速の仕組みの基本は、ギヤ機構を用いた「てこの原理」です。理論上は、自由自在な減速比を実現できます。
ただし、単なるギザギザの歯車(山と谷の歯車)では、ギヤの「山と谷」の部分で速度に変化が生じてしまい、「高い精度」は得られません。
(歯を1枚1枚通過するごとに速度に緩急が付く…いわゆるピリオディックモーションが生じる)

一般に、 「インボリュート曲線」で歯が切られた「インボリュート歯車」を使うと、伝達できる「角速度」が「理論上一定」にできます。 つまり、インボリュート歯車を使うと、「角速度」に緩急をつけずに、任意の減速を行うことが可能です。

(「タンジェントスクリュー式」や「ネコの目式」では、インボリュート歯車は必要ないので部品代が安くなるのですが、 「ウォームギヤ式」では、このような部品加工精度にコストが乗ってくるわけです)

インボリュート歯車はさすがに自作することは難しいので、市販の「インボリュート歯車」を用いた「ウォームギヤ」と「ウォームホイール」 を使うことにします。

具体的に、どのような減速機構を設けて、どのメーカのどの製品を使うか、については、あとで詰めることにします。

ちなみに、インボリュート歯車を使っても、歯車の「軸間距離」を厳密に合わせないと、ピリオディックモーションは生じてしまいます。 最低限、調整は可能な形にしておくとして、いかんせん、ココの誤差をゼロに近い形に追い込んでいくのは難しいので、 調整の仕方はあまり細かく触れないことにします。

筐体の形状と強度について

「小さく」「軽く」作ることが出来れば、理想にしている「カメラバッグにポンッ!」が実現できます。 しかし、小さくすれば、大きく重いカメラを支えられる強度は取れそうにありません。

そこそのサイズで、そこそこの強度を確保する必要はあります。また、形状に因っても、大きさや強度は影響を受けます。

いくら、理論的に高精度な仕組みを作ったとしても、筐体の剛性がヘニャヘニャでは、その精度を生かすことは出来ません。 筐体自体の剛性が、ある程度強靭である必要があります。

一般に、「球形」や「立方体」などにすると簡単に「高い剛性」を得ることが可能です。 が、球形や立方体で赤道儀を作ると、形状として無理があります。なにより、作りにくいです。

なので、工作が簡単で、充分強靭な形状を模索しました。

加工がラクチンといえば、「平面の板」が真っ先に挙げられます。「平板の板」は、曲面のような面倒は無く、 しかも比較的簡単に加工が可能です。

この、「平面」形状を使って実用レベルの剛性が得られれば、ラクチンに仕上げられそうです。
しかし、当たり前ですが、単なる「平板の板」は、曲げ剛性が強くありません。

「板の剛性」は、「板の厚み」に対して、ざっくり「厚みの2乗に比例」します。 つまり、厚みが2倍になれば剛性は4倍、3倍になれば9倍と言う具合です。

実用上充分な剛性が出せる素材で、充分な剛性が出せる厚みの「平板」を使って、出来るだけ安く作ることにします。(早い、安い、旨い)

1mmのアルミ板に対して、3mmなら9倍の強度、5mmなら25倍の強度が得られます。 MDFの木材などでも、数mm程度では簡単にポッキリいきますが、15mmもあれば、人の力では折れない程度の剛性が得られるでしょう。

冒頭の写真では、5mm厚のアルミ板を使ってます。別バージョンでは、15mm厚のMDF材を使ったものも作りました。 どちらも人の手では曲げられないほどの剛性があります。(個人の感想です。人により個人差があります)

動力関係

動力関係の核心はなんと言ってもモータ。しかも、Arduinoで簡単に制御…と考えるなら、 やっぱりステッピングモータ

DCモータに比べて、消費電力の割りに「トルク」や「パワー」が得にくいステッピングモータなので、 そこそこの大出力を追求すると、消費電力が大きなモータが必要となります。しかし一方、出力を求めれば消費電力が大きくなり、 バッテリー負荷が大きくなります。

(結果、たくさんの電池を持ち歩くか、短い稼働時間で我慢するか…といった二律背反になってしまいます)

実用に足る範囲(充分な出力)で、しかも「ニッ水の単三電池4本」程度という範囲で、 出来るだけ安くて、入手性についてもあまり困らないもの…

といった感じで、色々な実験を通し、ユニポーラタイプで、ギリギリの出力ながらも実用に耐えそうなモータとして、 コパル社の「SPG20シリーズ」に白羽の矢を立てました。

このシリーズで、コイル抵抗が68Ω品(大出力タイプ)の、内蔵ギヤがそこそこの「ギヤ比」のものなら、 色々実験してみた結果、「減速比」も加味すると、なんとか実用になりそうです。

とにかく、1日に1周程度の回転が出来ればいいので、単純に考えれば、「小さな出力のモータでも、大きく減速すれば動く」わけです。 あとは「追尾の精度(割り込み頻度やギヤの精度)」や「減速後のトルク(ギヤ比)」について、現実的な落としどころを探せばok。 結果、「SPG20シリーズ」でなんとかなりそうだなぁと。

モータと減速比

重要なのは、「モータを駆動するpps値とトルク」と、「減速比」のこと。 ppsとは「pulse per cecond」…つまり「毎秒何パルスの信号を入力するか」のことで、「減速比」は「どのくらいの減速を行うか」ということ。

減速比を大きく取れば、当然てこの原理で「トルク」は増しますが、その分、モータを「高速回転」させる必要があります。
一方、ステッピングモータは「高速回転」させた場合「トルクが急速に細く」なります。

そこそこ大きい減速比を適用しつつ、モータ自体のトルクが細らないパルス数に収められる「スイートスポット」を探して、 ギヤ比の設定を行う必要があります。

<ギヤの減速比、モータの軸トルク、出力トルク、PPS、のイメージ(グラフは不正確)>

青はモータ単体の軸トルク出力で、ステッピングモータは、高速(右方向)になるにつれてトルクが減少しています。 赤はギヤによるトルクの増強を示し、減速比=1.0からギヤ比が高まるにつれて、減速後のトルクは増して行きます。 緑は、モータとギヤを組み合わせた、変速後の「最終出力軸の出力トルク」です。

一般に、ステッピングモータのトルクは、高速回転になればなるほど、トルクは劇的に減少していき、ある程度で「ほぼゼロ」となります。 例えばSPG-20シリーズのデータシートによると、500pps程度で回転させると、 殆ど使い物にならない程度のトルク(ほぼゼロ)になるようです。

減速ギヤを通して、倍速モードを搭載することも考慮すると、充分なトルクが得るには、速くても50~100pps以内が限界でしょう。 それ以下の速度でモータを回し、ギヤの減速で充分なトルクが得られるスイートスポットを求めることにします。 まぁ、スイートスポットじゃなくても、実用レベルのトルクが得られれば充分です。(以下の、「pps値と画素サイズ」も参照)

なお、逆に「トルクが太いモータ」の場合、使うモータにも因りますが、 減速比をあまり取らないとpps値が小さくなり(ステップの間隔が広い)、ステップごとにカタカタと振動が出てしまったり、 1ステップする間に星が日周運動で移動し、一つの星が複数画素にまたがって露光する恐れがあります。

pps値と画素サイズ

あまりpps値が低い(遅い)と、パルスとパルスの間に星が日周運動をして、星の像が弧を描いてしまいます。 これは、ステッピングモータを使用する限り、避けられないデメリットです。

しかし同時に、デジカメの画素は、無限大に小さい(なんちゅう日本語)わけではなく、ある程度の大きさを持った素子です。 この1つの画素の範囲内で、「ほぼ」露光がされれば、星は「点像」に写るはずです。

現実的には、ポタ赤に載せて使うレンズの画角といえば、せいぜい200mm以下ということになるでしょう。 このレンズの画角を元に、ステップの間隔をどのくらいに取れば、星が「ほぼ」点像になるかを詰めていきます。

とりあえず、モータが1ステップする間に、日周運動が1画素の1/10程度に収まるpps値を、「ほぼ1画素内に収まる範囲」とみなすことにします。

諸データ:

これを計算したころのデジカメが600万画素だったので、こんな数値になっています。 最近のデジカメなら、画素数が4倍になるごとに、pps値は2倍になるとして、換算すればよいでしょう。 仮に2400万画素のカメラなら、24.3ppsといった具合です。

pps値とギヤ比

ちなみに上の計算は、「コチコチ」とモータがステップすることを前提にした値です。

今回使用するマイコン基板(Arduino互換基板)は、PWMを使った「マイクロステップ」の使用が可能です。 普通の「コチコチ」としたモータのステップと、「マイクロステップによる中間ステップ」は、精度の点では、 ほぼ同じものとみなしてよいでしょう。(実際は、マイクロステップによる角度はそれほど正確ではありませんが)

市販のギヤを組み合わせて減速ギヤを組む場合、その入手性のために、自由自在にギヤ比を組むことが出来ません。 実際は、組み合わせ可能なギヤによる「ギヤ比」を優先して、それに合わせてステップ数を設定していくという作り方になるでしょう。

これらを加味すると、マイクロステップも含めて、ギヤ比に合わせてpps値を極力自由自在に設定できるように、 基板側デザインはマイクロステップ用にPWM端子を前提に考えました。

マイクロステップを使って角度を細分化した場合は、分解できる角度のリニアリティーはそれほど高くないのですが、 元のモータのステップ数に比べて、およそ1桁ほど細かくステップできると考えて良さそうです。 (設計の自由度の範囲が一桁広くなる)

pps値の範囲

結局、トルクを充分に発生させつつ、1画素でキチッと止めて撮ることを考えると、 以上のことから、12pps~100pps程度の範囲に収められれば、SPG20シリーズでも上手く動かすことが出来そうです。

回転軸とギヤ

回転軸は、その上にカメラやレンズの重量物を載せて、「強度的に充分」、かつ「変形などで精度を落とさず」、 「スムーズに回転」でき、減速ギヤと組み合わせて使用できる必要があります。

ギヤは、市販品の中からウォームギヤとウォームホイールを探してくる必要があります。 ウォームギヤは汎用品(色々な歯数のウォームホイールと組み合わせて使える)のものが、比較的容易に入手できますが、 ウォームホイールは、大き過ぎず、小さ過ぎず…というものがなかなか見つかりません。

今回は、 小原歯車工業(KHK)のネズミ鋳鉄(FC200)のウォームホイール、 「CG1-60R1」に白羽の矢を立てました。60枚歯、条数=1、軸穴径=10mmというギヤです。ギヤの直径が大き過ぎず小さ過ぎず、 減速比などがポタ赤に丁度ヨサゲ。 またモジュールは1mmで、加工手段や加工精度の点から大き過ぎず小さ過ぎずといったサイズ。

ウォームホイールの「軸棒」は、カメラやレンズなどの重量物が載ることになるので、 出来るだけ太い軸棒を使う…つまり出来るだけ太い軸穴を持つウォームホイールが必要です。一方、あまり太過ぎる軸棒では、 軸受けや自由雲台を取り付ける際にも部品選択で色々困るので、他の部品との親和性とかモロモロ考慮して、CG1-60R1としてみました。

CG1-60R1を「メインの減速ギヤ」に選ぶことは、精度や設計自由度、加工で求められる精度などに大きく影響するのですが、 とりあえずこのギヤを元に全体を詰めていくことにします。(いわゆる大前提=ここが崩れると、全体が崩壊するという前提事項)

欲を言えば、「軸穴」は大きく、「歯数」は多く、「モジュール」は小さく、というギヤが欲しいのですが…。

回転軸(軸受け)は、重量に耐える強度と、スムーズに回転できる(ベアリング内蔵)必要があります。ベアリングを内蔵した 旭精工の「ひしフランジ型ユニット」を2個組み合わせて使うことにします (ボデーの表裏に1個ずつ)。都合よく、軸穴10mmからラインナップがありました。

10mmの軸棒自体は、真鍮、ステンレス、アルミなど色々な素材のモノが入手可能です。 重量物を載せても曲がったり折れたりしない強度が必要ですが、軸棒を短く作れば、 アルミでも数kg程度では折れたり曲がったりすることはなさそうです。 (ちなみに、この軸棒を長くすると、曲げモーメントが大きくなり、強度に悪影響)

加工のしやすさから、10mm軸「アルミ棒」を選択しました。長さは10cm(100mm)程度あれば足ります。東急ハンズとかでも手に入ります。

2段階の減速

CG1-60R1で可能な減速は「1/60」です。これは、歯1枚が通過するのに、およそ24時間×60分×(1/60) = 24分掛かります。

つまり、ウォームギヤ側を約24分で1回転させると、ウォームホイールが1日で1回転ほど回る計算です。

まず、ウォームギヤにモータを直結すると仮定することを想像してみます。

モータにSPG20-332(内蔵ギヤも含めて)を使う場合、このモータは1回転あたり480ステップです。 24分で480ステップなので、3秒で1ステップ(0.3pps)程度ということになります。

これだと、200mmレンズクラスでは、さすがに星を点像で写すことはできません。また、マイクロステップで微小角度の制御を行っても、 先ほどの必要pps値ではちょっと遅い(pps値あたりのモータの速度が速い)感じかなぁ…といったことが見えてきます。

pps値が小さいということは、トルク的には有利ですが、逆に星を点像にするための「ステップの細かさ」が足りません。

もう1段階の減速を行うようにしました。(トルクのスイートスポットを探るプロセス)

具体的には、中間の減速ギヤとして、市販品で入手しやすく、実機上に組み込める程度サイズのギヤから出来るだけ比の大きい「30歯と12歯」で、 「12÷30 = 0.4倍」に減速することにしました。これにより、0.75pps程度でモータを回すと、ウォームホイールが1日1回転程度になります。 (写真の、白いポリアセタールのギヤ2個)

さらにマイクロステップを組み合わせることで、トルクはそのままで、12.15pps以上の精度(相等)を両立させることにします。 (細かいところは、Arduinoのタイマ割り込み関係と合わせて、あとで詰める)

ちなみに、中間ギヤの減速でも、歯が1枚1枚通るごとにピリオディックモーションが生じます。 具体的には、モータに取り付けた12枚歯が1回転するたびに12回生じます。 モータが1周480ステップだとすると、480歯÷0.75pps÷12歯 = 53.33秒毎に「短い周期のピリオディックモーション」が生じ、 24分ごとに「長い周期のピリオディックモーション」が生じる計算です。

使用するギヤの精度や調整の度合いなどにも因りますが、通常はギヤ比の関係で、 短周期の方は誤差の幅は小さめに、長周期の方は大きめになるでしょう。

なお、今回使用した、中間ギヤ(ポリアセタール製)では、加工精度があまり高くなく、53秒周期のピリオディックモーションは大きめでした。 別バージョンでは、減速ギヤに真鍮製0.5mmピッチのモノをつかいました。

このあたりの「ギヤ選択」は、ピッチの種類、組み合わせられる減速比、直径、シャフト径などのバリエーションが自由自在とは言えず、 都合の良い部品を探すのに苦労します。

ウォームギヤはシャフト径6mm固定で、今回使用したモータは3mmなので、 中間ギヤは、これらのシャフト径で選択可能なギヤから選ぶ必要があります。

その他の部分

赤道儀は、通常三脚を取り付けて使います。専用の三脚を用意するのは大変なので、 普通のカメラ用三脚が使えるようにしておきます。

アルミ板をボデーに使ったのは、(アルミ板に充分な強度があれば)背面に1/4Wサイズでネジ穴空けて置くだけですむためです。

5mm厚のアルミ板なら、下穴空けてから、1/4Wネジ用のタップでネジ切りすれば、カメラ用三脚が取り付けられます。 W1/4ネジのネジ/ネジ穴は、日本ではカメラの三脚などで広く一般的に使用されており、日本で流通しているカメラは大抵この穴径でokです。

シャフトの軸心と、このネジ穴は、一直線に並んでいることが望ましいでしょう。 横方向にオフセットがあると、モータの回転にしたがってカメラの重量バランスがずれて、シャフトの軸心が微妙にぶれたりする恐れがあります。

現地で赤道儀をカメラ三脚に取り付けたら、あとは回転軸を北極星方向に向けて「極軸あわせ」を行います。 極軸あわせを行いやすい形状の三脚と組み合わせて使うのが便利です。(…自由雲台より、普通の雲台の方が使いやすいと思います)

MDF材みたいな木材でボデーを作る場合は、ただネジ穴を空けるだけでは強度不足になるでしょう。 5mm厚程度のアルミ板(5cm×10cmくらい)を用意して、真ん中にネジ穴を空け、四隅にはボデーに取り付ける穴を空けたものを用意します。 つまり、三脚取り付け専用の金属板を作るわけです。

加工はちょっと面倒かもしれませんが、MDF材+小さなアルミ板の方が、材料費は大幅に安く上がります。

さて、赤道儀には、カメラを取り付けなければなりません。

アルミ棒の先端には、自由雲台などを取り付けて、そこにカメラを載せます。 アルミ棒に自由雲台を取り付けるには、ちょっとした苦労があります。(詳しくは詳細設計で)

左と中央は、「コの字」型のアルミ押し出し材を使って、自由雲台を10mm径アルミシャフトに取り付けられるように加工したものです。 右は、押し出し材の代わりに、アルミ板とアルミ棒を組み合わせて、もう少し強度的に強そうなものをつくりました。

後者は加工が結構骨折れました。前者でも、一眼レフを載せても大丈夫な強度にはなっています。 このサイズで「ロの字」の押し出し材があれば、安上がりで強度的にもバッチリで、なお良しだったんですけどねぇ。

なお、CG1-60R1は、ハブ部分に、軸棒にイモネジで固定するためのネジ穴が空いていません。 ドリルやボール盤で、自分で穴あけしてネジ切りするか、最初から穴が空いている製品(多分他社製になる)を買うかする必要があります。

軸が滑らない程度の固定力があれば充分なので、M3とかM4とかで適当にネジ穴を空けます。 イモネジで留めるのがお勧めですが、工具を使わず手作業で留められるという意味では、M規格で「手で締められるネジ」が便利かと思います。

といった感じで、おおよそ目処が立ったので、具体的な寸法や制御プログラム、配線などに落とし込んでいきます。

詳細設計以降は、次のページに続きます。