06 SP赤道儀の改造 Feed

2016年2月20日 (土)

性懲りもなく、赤道儀モータドライブ用自作コントローラの改造

先週は、11~14日に帰省して、機材調整、あわよくば遠征もと思っていたのですが、帰省前日の9~10日は快晴となったものの、以後は曇り/雨と天候はままなりません。

機材の調整、主にBKP150の光軸調整とスパイダー隠しの仕上げを行ったのですが、実写ができずに調整結果の確認まではできませんでした。

ほんと、福岡市が日本海側気候であることを思い知らされた次第です。

5月の連休までは帰省の予定が立たないので、この期間は単身赴任先で機材(主にコントローラ)の改善に当てたいと思っています。

そこで、SP赤道儀を改造した一軸ノータッチガイド機一式を単身赴任先に送り、コントローラ7号機の製作と平行して、一軸制御コントローラの改造に取り組むことにしました。

目標は、コントローラを小型化し、赤道儀にキチッと搭載できるようにすること、ピリオディックモーションキャンセラー機能を搭載し、180~300mmの長時間露出を可能にすることです。

ここで、改めて今までに作成した赤道儀モータドライブ用自作コントローラの変遷についてまとめてみました。

【自作コントローラの変遷】

  1. < 1号機>
    ・タンジェントスクリュー式式用
    ・ユニポーラ型ステッピングモータ
    ・モータドライバ STK672-050   
    CPU PIC16F886 モータドライバ STK672-050の動作が不安定で、マイクロステップが機能しない。
    動作不安定の原因は、外付け回路の不備が原因と思われたが、追求せず、新しいドライバ(外付回路不要)を選択。
  2. <2号機>
    ・タンジェントスクリュー式用    
    ・バイポーラ型ステッピングモータ    
    ・モータドライバ L6470    
    ・CPU Arduino Uno
    モータ回転はスムースになるも、タンジェントスクリュー式に限界(撮影可能時間、追尾精度)を感じ、放棄する。
  3. <3号機>
    ・ウォームホイル式用   
    ・バイポーラ型ステッピングモータ   
    ・モータドライバ L6470    
    ・CPU ATMega328(Arduino互換) + PIC12F629(モータ駆動パルス発生用)    
    ・シャッタータイマー機能付き    
    ・結露防止ヒータ温度制御機能付き
    モータコントローラの構成・機能は本機でほぼ完成、これ以降のコントローラはこの構成を踏襲。
    ほぼ、意図どおり動作するも、ギア等の機械部品の精度からか再現性に乏しく、追尾精度が向上しない。市販赤道儀の改造へ方針変更。
  4. <4号機>   
    ・ナノトラッカー用   
    ・バイポーラ型ステッピングモータ   
    ・モータドライバ L6470    
    ・CPU ATMega328(Arduino互換)    
    ・シャッタータイマー機能付き
    ナノトラッカーの精度向上を目指して導入するも、再現性が悪く放棄。 現時点で考えると、再現性の悪さの最も多いな原因は、カメラを搭載機構(雲台を含めた)の強度不足ではなかったかと思われる。
  5. <5号機>   
    ・SP/GPD赤道儀用二軸制御   
    ・バイポーラ型ステッピングモータ   
    ・モータドライバ L6470    
    ・CPU ATMega328(Arduino互換) +  PIC12F629(モータ駆動パルス発生用)    
    ・オートガイドへ対応    
    ・天体導入補助機能付き    
    ・シャッタータイマー機能付き    
    ・結露防止ヒータ温度制御機能付き
    焦点距離1,000mmでもオートガイダー使用でほぼ満足できる精度がでており、機能的には満足できたが、コントローラの操作性が悪く、使い勝手に不満が残った。
  6. <6号機>   
    ・SP赤道儀用一軸制御   
    ・バイポーラ型ステッピングモータ   
    ・モータドライバ L6470    
    ・CPU ATMega328(Arduino互換) + PIC12F629(モータ駆動パルス発生用)    
    ・シャッタータイマー機能付き
    ほぼ、意図どおり動作するも、赤道儀への搭載方法、ノータッチ追尾精度に180mmカメラレンズでも露出90secが限界と不満が残る。
  7. <7号機>(5号機の改善版、製作中)   
    ・GPD赤道儀用二軸制御   
    ・バイポーラ型ステッピングモータ   
    ・モータドライバ L6470    
    ・CPU Arduino nano + PIC12F629(モータ駆動パルス発生用)    
    ・天体導入補助機能付き    
    ・シャッタータイマー機能付き    
    ・結露防止ヒータ温度制御機能付き
    本体/手元コントローラに分割し、操作性の向上を意図している。
  8. <8号機>(6号機の改善版、製作中)   
    ・SP赤道儀用一軸制御   
    ・バイポーラ型ステッピングモータ   
    ・モータドライバ L6470    
    ・CPU Arduino nano + PIC12F629(モータ駆動パルス発生用)
    SP赤道儀への搭載のための小型化、PEC機能によるノータッチ追尾精度の向上を意図するのがメイン、小型化のためシャッタータイマー機能を省く。

こうやって見てくると、なにか天体写真を撮ることよりも、電子工作そのものを楽しんでいるのではないかと思えてしまいます。

製作や改造がなくなったら、撮影のモチベーションが下がってしまうのではないかと心配です。

2015年9月28日 (月)

大手山2000年公園への遠征の総括

今回の大手山2000年公園へ遠征についての総括をしておきます。

撮影場所としての大手山2000年公園は、

  • アクセスは、杷木ICから10分で、道は細いですが全部舗装してあり、案内板もしっかりしていて分かりやすい
  • 視界は北側にピークがあり若干樹木にさえぎられるものの、ほぼ全周良好
  • 駐車場は舗装されており、機材の設営等には好都合
  • 駐車場には、水銀灯が1基あり、点灯されればと心配しましたが、夜間の点灯はなく障害なし
  • トイレがチョット遠いのは玉に疵
  • 清和高原天文台と比較すれば、明るいのは確かですが、南西~北西側(久留米~福岡方面)を除くと光害は少なく、特に東半球は良好

です。

117 【撮影データ】
2015/09/22
Nikon D610 + Ai Nikkor 24mm f2.8
SP赤道儀(改) ノータッチガイド
f4.0 ISO3200 30sec 1枚 Capture NX2

<<ガイド環境>>

GPD赤道儀 + D60/F4ガイドスコープ + QHY5L-Ⅱ + PHD Guidingについては、特にQHY5L-Ⅱが高感度で、明るいD60/F4ガイドスコープとの組み合わせで、ガイドスコープは固定としていますがガイド星に困ることはなく、PHD Guidingソフトの安定性もあって、非常に快適なガイド環境だと思います。

<<GPD赤道儀>>

GPD赤道儀については、遠征地では赤緯側に若干アバレがありましたが帰宅後の調整(前述)で、ほぼ解消できたものと思っています。
但しガイド結果のグラフを良く見ると、赤経側に明瞭な規則的波があります。

※下のグラフは、いつものように縦軸は1ピクセル3.2秒で換算した秒角単位で、周期性をみるため、ログの5データを移動平均したもの。

Gpd

これは、ウォームホイール/ギアのピリオデックエラーをPHD Guidingが打ち消しきれていない結果で、PHD Guidingのパラメータを詰めれば解消できるのかもしれませんが、600秒周期であることから、ウォームギア側に偏芯か何かの原因があるものと考えられますので、一度分解・調整をし直して見るつもりです。

<<コントローラ>>

自作コントローラに付けている導入補助機能を使用してみました。
この導入補助機能は、基点になる天体(通常は1等星などカメラのファインダでも確認できる天体)からの赤経、赤緯の差を±○○.○度と指定して動かすものです。
今回は、ディネブを基点とし、網状星雲、M33を導入してみましたが、いずれも300mmレンズのほぼ中央に導入することができました。
また、1000mmの反射望遠鏡の直焦点でもアルタイルを基点にM27を導入したところ、ど真ん中に目標を導入することができました。

300mmでほぼ中央、反射望遠鏡の直焦点でど真ん中の差は、赤道儀への取付方の差が要因になっている思っています。
反射望遠鏡の軸は、ほぼ正確に赤緯軸に直角(表現がおかしい?)に取り付けられていますが、カメラレンズは、赤緯軸に雲台で取り付けているため、必ずしも直角ではないためだと思います。
カメラレンズの取付については、赤緯軸に対してできる限り直角になるよう十分に注意して設定すれば、実用上はほとんど問題ないものと思っています。
カメラの取付をスリーウエイ雲台に換えましたので、赤緯軸に対する角度を固定しても構図の調整は軸周りの回転を使えますので、不自由はないと思います。

事前に赤経、赤緯差を計算しておくこと、望遠鏡が東側か西側かで赤緯の符号を反転させる必要があること、移動時の架台との接触の有無は事前に自分で確認しておくことなど、煩わしさも有りますが、ほぼ満足できるものと思っています。
これは、オリジナルのモータドライブと比べ、モータがギア付きモータでないこと、ウォームギアへの接続に平ギアを介さず、直接駆動しているなど、バックラッシュの要因が少なくなっていることが寄与しているものと考えています。

但し、導入後に微調整が必要な場合については、赤緯側は、手動でつまみを動かせるものの、赤経側はコントローラでの操作となり、微動の使い勝手がよくありません。
改善の余地ありです。
現在は、手動時には高速と低速で、ボタンを押している間動くようにしていますが、目標がファインダ上で見えない場合、調整→試写の繰り返しになるため、これではなかなか調整がうまくいきません。
ボタンを押す毎に一定角度移動させ、うまくいかない場合、元の位置に戻るような機能がほしいところです。
L6470ドライバーには、現在位置をホームポジションにし、移動後には、ホームポジションに戻せる機能がありますから、これを使えば実現できるものと考えています。

<<SP赤道儀(改)>>

赤経軸のみとした1軸制御のノータッチガイド改造機です。
試写の結果、D610 + 180mm 3分では星像が伸びていたので、1.5分(ISO2500)での撮影としました。
この露出では点像で星像の伸びは見られませんでした。
これは、前に書いたとおり、極軸のセット時に北極星を間違えるという痛恨のミスをしてしまい、その後の設定を雑にしてしまい、極軸の設定が甘かったこともあるかもしれません。
本当は、感度をISO1000程度に抑えておきたいので、3~4分程度の露出ができれば完璧なんですが、今後さらに詰めていきます。

<<電源について>>

今回の遠征では、22時~04時まで稼働時間6時間で、GPD、SP赤道儀の2台、結露防止ヒータ3枚、QHY5L-Ⅱ、PHD Guiding用PCを稼働させました(カメラは内蔵電池)。
結果としては、現状の自動車用バッテリーで一晩もちましたが、PCの内蔵電池(約3時間しか持たない)の残量が減った時点でつなぐと、5A程度を消費してしまいますので、ちょっと心配が残ります。
PCの充電がほぼ100%で、自動車用バッテリーからの接続で動かしておき(充電しない状態)、撮影の残り時間が3時間程度になったところで、内部バッテリー駆動に切り換えるやり方のほうがよいのかもしれません(これなら1.5A程度以内に納まると思う)。

でも精神衛生上はパソコン用に別のバッテリー電源を用意したいところです。

2015年8月21日 (金)

SP赤道儀の1軸制御化と夏休み撮影行の総括

GPD赤道儀の入手に伴い、SP赤道儀を1軸制御の簡易タイプに変更しました。

20150816_1681ウェイトの搭載を考えて、L字部分を丈夫にしようとした結果、なんとも大層な躯体となってしまい、1軸制御簡易赤道儀と言うにはいささか気が引けるものになっています。
これならば、赤緯体を付けたままでも良かったかもしれません。
簡易赤道儀とするため、コントローラは、同架することとし、本来モータがつくスペースに取り付けました。

20150719_1504_01

一応、オートガイダ用端子も付けて、オートガイドにも対応できるようになっています。
機能としては、1軸制御(オートガイド対応)、タイマーレリーズを持っていますが、結露防止ヒータの制御機能はありません。
極力コントローラを小型化したのですが、極軸傾斜角固定用ボルト(新たに追加したもの)との干渉を避けれず、縦置きに設置しています(LCDディスプレイは見にくい)。
また、この置きかたでは、本来のモータより背が高く、赤経軸のクランプと干渉してしまい8月~11月ぐらいの極軸設定に支障が出てしまいます。
コントローラは着脱式ですので、コントローラを外して極軸設定を行うとこでなんとか成りそうです。

実写については、前回書いたように、コントローラ内配線を間違えていたのに気付かず、現地に持ち込んだため未了となっています。

この夏における自宅での試運転/試写と遠征では、使用機材の大半がぶっつけ本番に近かったので、色々と不都合がでました。
次の撮影機会は9月の連休になりますので、それに向けて明らかになった今後解決すべき課題等について列記しておきます。

  1. GPD/SP赤道儀の極軸設定方法は前に書いたとおりの手順で、ほぼ満足できる精度での設定が可能。但し、季節により、赤緯体の取付を事前に点検(モータ等の干渉がなく設定可か否か)しておくことが必要。また、極軸望遠鏡のレチクルは見にくく、明視野照明は必須であるが、メーカー物は明るすぎて北極星が見づらい。要改良。
  2. 結露防止ヒータの効果は一時霧が発生するような状況でもOKで、効果大。
  3. インターバルタイマーの動作は、ミラーアップ撮影も含めて安定。
  4. PHD Guidingの動作は現環境(自作コントローラとの組み合わせ)で安定して動作。但し、DEC側のモータ速度については、現在値(10秒角/sec)の速度を大きくして試すことが必要。
  5. カメラの搭載に使用しているバル自由雲台は、強度不足の可能性大←ガイドが安定しているのに、撮影した星の移動が見られる。もともと自作赤道儀用に買った「スリック プロD700 III三脚」の3ウェイ雲台に変更が必要。
  6. 電源(自動車用メンテナンスフリーバッテリー(28Ah)については、赤道儀2台、3枚の結露防止ヒータ、PHD Guiding+パソコンを一夜駆動できたが、ほとんど余裕なしか。
  7. バッテリーボックスの端子の接続が不安定(アクリル板で作成した端子盤に割れやぐらつきがある)・・・電圧計に加えて電流計を装備するなど、端子盤を再作成する。
  8. 撮影対象天体の導入が難しい→導入補助ソフトの試験/実用化が必要。導入補助機能を使わない場合の手順として、極端な高感度設定での試写による確認/調整を繰り返して本撮影フレームを設定することが考えられる。

など、まだまだ手をいれなければいけないことも多く、今後、これらを潰していき、完成度を高めて天体撮影用望遠鏡の導入(いつになるかわかりませんが)に備えたいです。

2015年6月25日 (木)

SP赤道儀の極軸望遠鏡の調整法

SP赤道儀のオーバーホールをやった時に極軸望遠鏡の調整について考えてみました。

この極軸望遠鏡の調整方法についても、ネット上に色々情報はあるのですが、なかなか理解できなかったので、自分で試行錯誤して、やっとその原理について自分なりに理解出来たと思いますので、以下記載します。
勘違いがあるのかもしれませんが・・・・。

この赤道儀と極軸望遠鏡の構成ですが、

20150621_1494_2

  1. 三脚台座上の「水準器」
  2. 赤経軸に固定(張り付け)された「時刻環」
  3. 極軸望遠鏡に取り付けられた「日付環」  
    これには、経度補正目盛りも付いている。  
    赤経軸の回転と一緒に回転しますが、これ単独でも回せる。
  4. 同じく極軸望遠鏡に付いている「指標環」  
    固定用ビスがあり、これを緩めると回転する。

この組み合わせでの調整方法は、

  1. 赤経部を回転させても、レチクルのセンターが動かないようセンタリングを調整
    これが、意外に手間が係るし、設置精度にも影響を与えます。
    この極軸望遠鏡では、芯だし調整は望遠鏡自体を動かすのではなく、レチクルを3点のイモねじで押して支えてあり、これを調整しながら赤経軸を回転させてもセンターが視野に対して動かないようにするわけですが、このイモねじの調整が全ての方向にスムースに動くわけではなく、こつが必要です。
    また、緩めすぎると、レチクルが外れてしまいます。 ここは、丁寧に合わせて、移動量を線1本分以下にまで詰めます。
  2. 赤道儀の水平を取る
    "水平を取る"は、レチクルの線を鉛直に設定した時と、実際の観測前の極軸調整時とが同条件となるよう設定すれば別に水平でなくてもよいわけですが、容易に同一条件で設定するには、やはり水平を基準にするのが最も設定しやすいので、三脚台座上の「水準器」を使い水平にセットします。
  3. レチクルの上下線を鉛直に設定
    ほぼ鉛直と考えられる建物等を利用して、赤経軸を回して十字線を鉛直(北極星を示す円が視野の下方)となるように合わせる。
  4. 南中月日と時刻を一致させる
    「日付環」を回して、北極星の南中時刻(東経135度での時刻)を「時刻環」と一致させる 北極星の南中時刻は、レチクルの基準年のものを使用し、合わせやすい24時前後となる日付を利用する。
  5. 「指標環」の固定
    「指標環」の固定ネジを緩め、指標が「日付環」の「経度調整用目盛り」の「0」の位置にくるように合わせて固定する。

これで、組み付け・調整は終わり。

極軸望遠鏡に固定された指標と赤経軸に固定された時刻環の位置関係が正しく固定されたことになり、以降の設置が可能になります。

実際の設置では、

    6.赤道儀の水平を取る

    7.設置場所の経度と東経135度の差分を計算し、その差分を日付環を回して、「指標」と「日付環」の「経度調整目盛り」とを一致させる。

    8.設置の日付、時刻を「日付環」と「時刻環」の目盛りで一致するよう、赤経軸を回転させる

    9.極軸望遠鏡のレチクル目標位置に北極星がくるよう、傾斜と方向ねじを使って調整する 但し、歳差による北極点の移動を考慮し、合わせる北極星の位置はレチクルの十字線に対して斜めにずらすことが必要。 これは年とともに歳差の影響で、南中時刻、赤緯(極点からの離隔)の両方が変化するため。

以上ですが、北極星の南中時刻等の位置情報が理科年表だけしかなかった時代と異なり、現在では、この手順をちょっと変更することで、古いレチクルでも、それなりに正確性を確保できるのではないかと、以下のとおり修正手順を考えました。

1~3までは機械そのものを調整ですから一緒です。
4.5.の南中時刻を利用して、「時刻環」と「日付環」の関係(実際は時刻環と指標の位置関係)を合わせる方法については、ステラナビゲータ等の天体案内ソフトを利用して、現在年の設置場所での北極星の南中時刻(歳差を含んだ情報で表示されている)を調べ、これで合わせます。
私の場合、ホームグラウンドの東経130.3度での南中時刻(2015/10/10で02h00m)を使いセットします。

20150621_1492
7.の「指標」は「日付環」の「0」にセットします。 これで、「日付環」と「時刻環」で示された日時/時刻の北極星の位置は、レチクルの線上となるはずです。 

20150621_1489_4
前述のセット方法だと、セットすべき北極星の位置が上写真の青矢印のように斜め方向にずれて、セット位置が曖昧になります。

万一遠征した場合は、このホームグラウンドからの経度差を「指標」にセットすることとします。
こうすれば、北極星を合わせる位置は、レチクルの線上で、かつステラナビゲータ等で示された赤緯分だけ中心からずれた位置に合わせればよいことになり、より簡単に正確に合わせることができるのではないかと思っています。

レクチルには40'~60'まで5'単位で短線が引かれていますから比較的簡単に合わせれると思います。
但し、ぴったり線上に合わせると、北極星は見えなくなってしまいますが。

でも、これで、高いお金を出してレチクルを新しいパターンに換えなくても、同等の正確な極軸設定ができると思います。

2015年6月22日 (月)

SP赤道儀2軸制御改造が完了

中古で手に入れたSP赤道儀の2軸制御用モータの取り付けが完了しました。

20150621_1477上のアルミ板(厚さ10mmに、ガイドスコープと撮影用カメラを同架するつもりです。

20150621_1481赤経側モータの位置については、最初に付けた側が三脚架台の水準器側であったため、水準器が見にくいことが判明、反対側へ取り替えました。

20150621_1479赤緯用モータ台座については、ウォームギア軸との距離があり、14mm下駄をはいた状態になっています。
DINコネクタの取り付けは、写真では反対にとりついていますので、後日反転予定です。
モータカバーを付けないといけませんが、これも後日です。
減速ギアのないステッピングモータをダイレクトに接続していますので、運転には非常に静かで、恒星駆動×300倍の高速駆動でも、ほとんど音はせず、スムースに動きます。
でも、ウォームギア軸上にモータを配置した影響で、干渉する位置が多々出そうで、取りまわしに制限がつきます。

天候が悪く追尾精度等の検証はできていませんが、夏の観測シーズンまでにはなんとかなるでしょう。

2015年6月 6日 (土)

SP赤道儀2軸制御用コントローラ(4) <<オートガイドのテスト結果>>

梅雨入り前に久々の晴天に恵まれ、SP赤道儀コントローラのオートガイドの試験ができました。
試験環境は、天体写真撮影用赤道儀3号機を使用して行いました。
3号機は赤経側側のみの制御ですので、RA信号だけでのテストになります。
3号機にガイドスコープとガイドカメラをセットし、撮影用カメラは乗せずにテストしました。
テスト結果です。
PHD GuidingのLogから、dxとRADinstansを読み取り、ガイドスコープの焦点距離240mm、ガイドカメラの素子ピッチ3.75μmから求まる3.2秒/ピクセルで、誤差を秒角で表したグラフです。
事前に東西方向とカメラのX軸を合わせておきましたので、dxが赤経方向のズレとほぼ一致していると思います。
RADinstansについては、極軸合わせがうまくいっていないので、その影響があると思います。
まずは、ガイドしないときの3号機のピリオディックモーションを測定したものです。

Photoその後、RA側ガイドを有効(パラメータは既定値)にして測定しました。

Photo_2ガイドの精度はさておき、PHD Guidingからの信号で、修正は実行されていることが確認できました。
これで、赤道儀コントローラ5号機のハード/ソフトとも基本的にはOKと言えると満足しています。
今後は、コントローラ側の修正速度とPHD Guidingのパラメータを詰める作業が残っていますが、まずはオートガイドがきちんと動作することが確認でき、めでたしめでたしです。

2015年6月 5日 (金)

SP赤道儀2軸制御用コントローラ(3) <<内部構成-2>>

<<赤緯側の制御>>

赤緯側の回路構成図です。

Dec赤緯側は、通常は停止で、ボタンを押した時あるいはオートガイダからの信号によって駆動することになります。
また、駆動速度は赤経側ほどの厳密さは必要ありません。
そこで、駆動はL6470のRUNコマンドとし、恒星追尾速度の300倍速(HIGH)と10倍速(LOW)、オートガイド時の±10秒角/秒の3種類を持つようにしました。
通常、モータは停止していますが、ステッピングモータの場合停止時に最大電流が消費され、かつ保持力も強く、このままでは無駄に電力を消費してしまいますので、停止時はL6470のハイインピーダンス状態となるようHardHiz(又はSoftHiz)コマンドで停止するようにしました。
こうすると、駆動電流は流れず、モータ軸は手で容易に回転できる状態(手動操作が可能)になります。

駆動部分のプログラムは以下のとおりです。

/* --- スイッチを押し続けていることの判定用ルーチン */
unsigned char sw_ON(unsigned int sw) {
  unsigned char ans = HIGH;
  if (digitalRead(sw) == LOW){
      delay(SW_D);                       // チャタリング防止用待ち時間(10msec)
      if (digitalRead(sw) == LOW) ans = LOW;
      else HIGH;   }   return ans; }
/* --- 指定方向で指定ステップ数だけ移動 */
void L6470_Move(unsigned int CS_Pin,unsigned int Busy_Pin,unsigned char c,unsigned long sp){

// ドライバの選択(CS_Pin)  ビジー信号ピン(Busu_Pin)  回転方向(c)  回転ステップ数(sp)
 L6470_RegW_3byte(CS_Pin,0x40+c,sp);
   while ( Busy_Pin == LOW );
}

/* --- モータの停止 */
void L6470_HardHiz(unsigned int CS_Pin){
  SPI_write(CS_Pin,0xa8);                   // 即時 ハイインピーダンス(電流停止)状態へ
}

/* --- 赤緯赤経調整状況の表示/駆動 */
void Monitor_Display2(void) {
   if (sw_ON(DEC_INC) == LOW ) {       // DEC+時
        if ( Motor_ON == OFF ) {             // モータが止まっている場合のみ
            L6470_Run( CS_Pin2,Busy_Pin2,FWD,DEC_SPEED);// モータを10秒角/秒の速度で、DEC+方向へ起動
            Motor_ON = ON;                     // モータ起動フラグを起動へ
        }
        LCD_setCursor(5,0);                   // モニタ表示
        LCD_print_STR("DEC+");
    }
    else{
        if ( Motor_ON == ON ) {             // DEC+オフ時(モータ起動中)
            L6470_HardHiz( CS_Pin2);      // モータを即時停止(ハイインピーダンス状態へ)
            Motor_ON = OFF;                   // モータ起動フラグを停止へ
        }
        LCD_setCursor(5,0);                  // モニタ表示を消す
        LCD_print_STR("    ");
    }
    if (sw_ON(RA_DEC) == LOW ) {      // DEC-時
        if ( Motor_ON == OFF ) {            // モータが止まっている場合のみ
            L6470_Run( CS_Pin2,Busy_Pin2,RWD,DEC_SPEED);// モータを10秒角/秒の速度で、DEC-方向へ起動
            Motor_ON = ON;                    // モータ起動フラグを起動へ
        }
        LCD_setCursor(5,0);                  // モニタ表示
        LCD_print_STR("DEC-");
    }
    else{
        if ( Motor_ON == ON ) {              // DEC-オフ時(モータ起動中)
            L6470_HardHiz( CS_Pin2);       // モータを即時停止(ハイインピーダンス状態へ
            Motor_ON = OFF;                    // モータ起動フラグを停止へ
        }
        LCD_setCursor(5,0);                    // モニタ表示を消す
        LCD_print_STR("    ");
    }
}

※Arduino v.1.05による。

<<天体導入補助機能>>

せっかく2軸化したので、天体導入補助機能を付けることにしました。
市販品のようには行きませんので、目につく天体を基準とし、赤経側、赤緯側で指定角度分移動する方式としました。
L6470ドライバーでは、動かすステップ数を指定して回転させる機能がありますので、これを利用します。
L6470ドライバーは、起動時のポジションを「0」とし、22ビット長でステップ数を保持するレジスタがあり、また、この22ビット長分だけ動かすコマンドをもっているので、これを利用します。
22ビット長の位置データは、符号付きデータで-2,097,152~2,097,151までを扱うことができ、マイクロステップ単位です。
2,097,151マイクロステップ分は、
360/(144×400×128)×2,097,151 = 102.4度
ですから、私の目的には充分のはずです。
0.1度単位で指定すると、
2,097,151/102.4/10 = 2,048ステップ/0.1度
ですから、分解能的にも充分だと思います。
使用するL6470のマンドは、
GoTo_DIR(DIR,ABS_POS)    DIR;回転方向(0/1)、ABS_POS;移動量=マイクロステップ数
で、回転方向と動かすステップ数を指定します。

この時の回転速度は、MAX_SPEEDレジスタ(add.=0x07)で指定した回転速度になります。
MAX_SPEEDは、約30r.p.m(=300倍速)としています。
ちなみに、この動作では増速加速度、減速加速度の設定値従って増速、減速を行います。
0.1度単位の指定は、6分角度単位ですので、300mm程度のカメラレンズを使った撮影では充分な精度ではないかと思います。
なお、導入精度には赤経・赤緯ギアのバックラッシュが大きく影響を与えると思われるので、実用になるかどうかは不明ですが。
導入補助機能のLCD画面です。

20150605_1473基準天体(1等星など)を手動で導入後、移動量を赤経/赤緯の角度差で指定することにしました。
指定後にスタートすると、赤経側→赤緯側の順でモータを駆動し、指定量だけ移動させます。
移動中は、L6470のBUSYピンを監視し、動作完了を待ちます。

2015年6月 3日 (水)

SP赤道儀2軸制御用コントローラ(2) <<内部構成-1>>

<<共通部>>

駆動用モータは、秋月電子で入手したバイポーラ型ステッピングモータST-42BYH1004とし、その諸元は、

・入力定格電圧5V
・定格電流1.0A/相
・400ステップ/回(0.9度/ステップ)
・静止トルク4.4kgf・cm(=0.43N・m)
・価格1,900円也
です。
これを同じく秋月電子製L6470ドライバーキットでそれぞれ駆動することとしました。
L6470のモータ駆動電源の指定は8V~45Vであり、カーバッテリを電源としていることから12Vになります。
これで、定格5Vのモータを駆動するためには、L6470の電圧制御機能を使い、
・KVAL_HOLD(add.=0x09),設定値0x7a  = 停止時の最大電圧→12.5V = 6V
・KVAL_RUN (add.=0x0a),設定値0x51  = 定速時の最大電圧→12.5V = 4V
・KVAL_ACC (add.=0x0b),設定値0x7a  = 加速時の最大電圧→12.5V = 6V
・KAVL_DEC (add.=0x0c),設定値0x7a  = 減速時の最大電圧→12.5V = 6V
L6470ではPMW制御でモータ駆動電圧がモータの状態別に細かく制御でき、出力される電圧は、指定のレジスタに設定値を入力することで、 駆動電圧=入力電圧/256×設定値 となります。
ここでは、電源バッテリの電圧を12.5Vとしたときの設定値として、定格よりやや高めの6Vで設定しています。
モータは若干熱を持ちますが、触れなくなるほど熱くはならない程度です。
また、L6470の初期設定は、
・CONFIG   (add.=0x18),0x2ea8とし、VSCOMPを有効
・MIN_SPEED(add.=0x08),0x1001とし、低速時最適化を有効
これらについてはどれほど有効性があるのか確認しておらず、おまじないの領域です。
また、L6470の健全性については、初期設定後にCONFIGレジスタを読み込んで、設定値と比較して判断しています。

<<赤経側の制御>>

赤経側の回路構成図です。

Ra赤経側は、L6470のステップ動作モードを使い、PIC12F683のTimer1割り込みを使って発生させたパルスで動作するようにしています。
基本的にコントローラの電源投入後は常に恒星追尾で動作しています。 L6470は1/128のマイクロステップ動作、ステッピングモータは400ステップ/回(0.9°/ステップ)

恒星追尾用パルスの計算

赤経軸ウォームホイールの減速比は1/144、モータは400ステップを1/128のマイクロステップで動作させますので、
144回転×400ステップ×128÷(1436分/日×60秒/分) = 85.57Hz
となります。
よって、PIC12F683のTimer1割り込みは、85.57Hz×2 = 171.14回/秒のサイクルで発生させればよいことになります。
そこで、Timer1のプリスケーラとTimer1レジスタの初期値を調整し、タイミングを合わせました。
オートガイド時のRA+/-への対応は、このステップ駆動パルスの周波数を変更することで対応しています。
具体的には、駆動速度を恒星追尾時は15秒角/秒なのに対して、±10秒角/秒となるよう、Timer1レジスタの初期値を変更することで対応しています。
つまり、RA+の指示をうけると15秒角/秒→25秒角/秒、RA-の指示に対しては5秒角/秒の速度になるような設定です。
非常に単純なプログラムで動いています。

/* ============= システムの初期化 */ 
void SystemInit( void ){
    OPTION_REG = 0b000000000;  // プリスケーラ off(WDTが使用に設定)
    T0CS = 0;                      // TMR0 clock system clock * Fosc/4
    CMCON0 = 0b00000111; // コンパレータ不使用手続き
    ANSEL  = 0b00000000;   // AD変換pinなし
    ADON   = 0;                   // AD変換off
    TRISIO = 0b00101111;   // GPIOの入出力方向設定
    WPU =    0b00000111;    // GP0、GP1はpull-up入力
    TMR1ON  = 1;                 // enable timer 1
    TMR1CS  = 0;                 // 0=internal clock FOSC/4
    nT1SYNC = 1;                // 1=do not synchronize external clock
    T1OSCEN = 0;                // do not enable oscillator
    T1CKPS1 = 0;                 // Prescaler bits 00=1:1, 01=1:2, 10=1:4, 11=1:8
    T1CKPS0 = 1;                 // Prescaler bits in order 1-0
    T1GE    = 0;
    T1GINV  = 0;
    TMR1IE  = 0;                    // timer1 割り込み off
    PEIE    = 1;                        // ペリフェラル割り込み on  
    GIE     = 0;                        // 割り込み総合 off
}

/* =========== 割り込み処理関数 */
// Timer1割り込み Timer1レジスタ(TRM1)の初期値を調整し、所要のパルスを得る
void interrupt func(){
    if (TMR1IF == 1) {        // Timer1割り込みの判定
        TMR1 = PULS;           // timer1レジスタを初期化
        TMR1IF = 0;             // timer1割り込みフラグのクリア
        PF = ~PF;
        OUT_PUT = PF;         // 出力ピンの信号を反転 パルス出力
    }
}

/* ===========  main            */
void main(void){
    SystemInit();        // システム初期化
    PULS = Puls_Init;   // timer1レジスタ初期値を変数に代入(標準速度初期値)
    TMR1 = PULS;            // timer1レジスタにセット
    TMR1IE = 1;            // timer1 割り込み許可
    GIE = 1;                    // 総合割り込み許可
    OUT_PUT = HIGH;    // パルス出力用端子の初期化
    while(1){
        if (RA_INC == LOW){  // RA+指示(RA_INCピン)時の処理
            PULS = Puls_RA_inc; // RA+指示時のTMR1レジスタの初期値をセット
            while ( RA_INC == LOW); // RA+指示が有効な間待つ
            PULS = Puls_Init; // RA+指示がなくなったらTMR1レジスタの初期値を戻す
        }
        if (RA_DEC == LOW){  // RA-指示(RA_DECピン)時の処理
            PULS = Puls_RA_dec; // RA-指示時のTMR1レジスタの初期値をセット
            while ( RA_DEC == LOW); // RA-指示が有効な間待つ
            PULS = Puls_Init; // RA-指示がなくなったらTMR1レジスタの初期値を戻す
        }
    }
}

※MPLAB IDE v8.92 HI-TECH C v9.82で作成しています。

※システム初期化の手順、値はどうにも私の理解度が悪く、不必要なもの不適切なものもあるかもしれませんが、取り敢えず意図どおり動いているので良しとしています。

これでうまくいくのかどうか、市販のコントローラの制御速度がわかりませんので、これについては試験しながらつめていくしかありません。
オートガイド時の赤経側モータの制御は、PIC12F683のみで行うようになっています。
手動モード、自動導入モード時の制御はATMega328が行い、RA+/-の指示ボタンが押されている間、L6470のRUNコマンドで300倍又は30倍での動作を行うようにしています。
なお、RA+/-ボタンが押されている間、および自動導入モードが動作している間は、ATMega328はwaitループに入っていますので、他のボタン操作は受け付けません。

2015年6月 2日 (火)

SP赤道儀2軸制御用コントローラ(1)

SP赤道儀用の2軸コントローラを作成するについて、いくつか経験のない事項がありましたので、あらかじめテストしながら作成しました。

<<L6470とArdiunoのSPI通信について>>
2軸制御するためには、当然2台のモータを別々に制御しなければなりませんが、手慣れたL6470を使うためには、SPI通信で複数のスレーブを制御することになります。
ネットで検索すると、複数のL6470を制御する場合、デイジーチェーンでないとうまくいかないような記事が多く、並列接続+CSピンでの制御を考えていた私としては非常に不安でした。
テストすると、なかなかうまく動作しません。 いろいろとあたってみたところ、ArduinoのSPI通信に1つ落とし穴にはまっていました。
それは、ArduinoのCSピンは「10」が標準ですが、他のピンを割り当てることも可能と言うものです。
試しに、CSピンを「9」ピンにするとうまくいきません。
何回かの試行錯誤とネット検索の結果わかった原因は、ArduinoのSPI通信ライブラリでは、「10」ピンが「OUTPUT」でマスタ、「INPUT」でスレーブとなるよう設定されており、CSピンとしてなにを使ってもよいが、SPI通信ライブラリを呼び出す前には、「10」ピンを必「OUTPUT」に設定しておかなければならないと言うことです。

/* -------------------- SPI port の初期化 -------------------------- */
void SPI_init(){
  pinMode(10,OUTPUT);                     // SPIライブラリを使用する場合10番ピン(CSpin)をアウトプットにしておくことが条件 
  SPI.setBitOrder(MSBFIRST);              // 入出力データのビット並びを7→0の順に設定
  SPI.setClockDivider(SPI_CLOCK_DIV4);    // SPIクロックをシステムの1/4(8MHz)に設定
  SPI.setDataMode(SPI_MODE3);             // SPIモードを3(CPOL = 1,CPHA = 1)
  SPI.begin();                            // SPI通信を開始
}

そこで、実際のCSピン割り当てには関係なく、SPI通信の初期化ルーチンの最初に10ピンを「OUTPUT」モードにする一文を入れて解決です。
これ以降、2つのL6470を並列に接続し、CSピンで選択してのコマンド送/受信は、今のところうまくいっています。
まあ、2つのモータの同期等難しい制御はいりませんので、これで良しとしています。
ちなみに、ステッピングモータドライバは秋月電子のL6470キットを使っていますが、同じ秋月電子で、「Arduino用モーター・シールドキット V2.3」と言うものが売っています。
これは、2つのステッピングモータをドライブできて、2,370円ですので、L6470キットを使うより安上がりなのですが(1,800円×2個)、また1から勉強しなおすのも億劫なのと、1個は既に持っているので、追加としては1個のみと言うことで、L6470キットを選択しています。

<<オートガイダCCDカメラQHY5L-IIMの端子について>>
QHY5L-IIMのガイド端子はRJ11、いわゆる6ピン6線のモジュラー端子です。 各端子の配置は、ネットの情報検索では、
1番・・・NC
2番・・・GND
3番・・・RA+
4番・・・DEC+
5番・・・DEC-
6番・・・RA- となっています。
これをRJ11→2.54mmピッチ変換基板で受けて、コントローラ内へ接続しました。
ここで心配したのは、調べた限りの情報では各ピンはリレー出力みたいだというだけで、QHY5L-IIM内の回路構成等がわからないため、へたにつないでだめにしてしまうのではないかということです。
テスタを使ってチェックしただけですが、単純なリレー出力で、GNDもUSB側とは繋がっていないみたいです。
そこで、各ピンをスイッチと同様に取扱い、プルアップ抵抗を入れて、ATMega328、ボタン、PIC12F683(RAのみ)の入力ピンに並列で接続しました。
これで手動用ボタン、オートガイダからの信号、ATmega328からの信号のいづれかからも正常に動作しています。

<<LCDキャラクタディスプレイのI2C化>>
前回までのコントローラに対して、赤経・赤緯駆動用ボタン4個分が追加となり、ATMega328のピン数が不足してしまいました。
そこで、LCDキャラクタディスプレイで使用している6ピンをI2C化することで2ピンとし、4ピンをひねりだすことにしました。
I2Cのディスプレイを使用しても良かったのですが、種類が少ないこと、3.3V駆動がほとんどであることから、昔使って余っているPIC16F88を使って、I2C化ディスプレイとしました。
これは、大きなつまづきもなくスムースに動いています。

<<モータ電源コードについて>>
3号機は、本体内にモータ及びコントローラを全て収納しましたので、特にモータ電源コードについて悩む必要がなかったのですが、今回は、モータが2個で設置場所が離れているため、どうしてもコントローラ-モータ間のモータ電源コードが必要になってしまいます。
先々代は、4ピンプラグを利用したのですが、非常に高く(1,000~2,000円/組)、今回は4組も必要なため使う気になれません。
作りやすさや価格など、LANケーブル、Dsub9、ミニDINなど今まで使ったことのあるいずれも線の細さ(許容電流量が小さい?)、コネクタ製作時のハンダ付けがしにくいなど、いまいちの感がありました。
いろいろ悩んでいたのですが、灯台もと暗しで、結局SP赤道儀の純正モータでも使用されているDIN4Pプラグに行き着きました。
ミニDINプラグに比べてはるかにハンダ付けは楽ですし、安いですし、それなりの太いコードが使えます。 1組360円+120円/mの4心スピーカーコード(0.3sq)で、格安に仕上がりました。

20150602_1471

今回のSP赤道儀用2軸モータを使ったオートガイダにかかった費用は、

SP赤道儀・・・・・・・・・・・・・・・・・・・・13,500円
オートガイダ(スコープ含み)・・・・・43,500円
コントローラ部品・・・・・・・・・・・・・・・18,000円(モータ2個を含む手持ちの部品の価格も含む)
計・・・・・・・・・・・・・・・・・・・・・・・・・・・75,000円也です。

安かったのか高かったのか?です。
プログラムのデバックはほぼ完了したので、とりあえず天体写真撮影用赤道儀3号機を使って1軸でのガイドテストに向けて準備中ですが、なかなか天候に恵まれません。
SP赤道儀は自宅待機中すので、本番は次の帰省のときまでお預けです。

2015年5月31日 (日)

オートガイダーの導入

SP赤道儀の中古を手に入れた勢いで、とうとうオートガイダにまで手を出してしまいました。 天体写真撮影用赤道儀の自作をはじめたときに自ら設定した基本方針、

1.製作過程を楽しむ。

2.自分の力(工作技術や工夫)でどこまでできるかに挑戦

3.高価な機材は使わない(身の回りで調達できるものを使う)。

をねじ曲げた感がありまが、今後の改造等を自力で楽しむのだと自己弁護しています。

今まで、タンジェントスクリュー式(寸切りボルト→台形ねじ)→ウォームホイル式、モータコントローラも2種類と様々な方法を試してきましたが、最も悩ましかったのは、機械的安定度(=再現性)が決定的に不足していることで、結局これの解決方法を試行錯誤してきたとも言えます。

今回中古のビクセンSP赤道儀を手に入れて動かした感想は、あまりに衝撃的でした。

1万円そこそこで手に入れた中古品の精度が従来、私が持っていた感じとは大きくことなっていたことです。

このビクセンSP赤道儀、価格的にも、取り扱いやすさ(分解・改造)からも、私の遊びのベースマシンとして重宝するのではないかと思います。

と言うことで、自作赤道儀はこの辺で終わりにし、以降はSP赤道儀で遊ぶことにします。

さて、今回手に入れたオートガイダは、QHY5L-IIMと言うオートガイド用CCDカメラとガイドスコープφ60mm f=240mmのセットで、天文ハウスTOMITAで43,500円也でした。

20150531_1456

20150531_1447オートガイダに手を出した理由の一つとして、オートガイダ用CCDカメラは、赤道儀制御用信号をリレー出力で直接赤道儀のコントローラに出力でき(ON CAMERAと言うのだそうです)、自作のコントローラへの接続が簡単そうであること、PHD Guidingと言うフリーソフトが使えること、安くなってきたことが挙げられます。

またまた、赤道儀用コントローラを新しく作成することにしました。

当然2軸制御したいので、2つのモータを制御しなければなりません。今回のコントローラの構成図です。

Spt要点は、

1.  L6470ステッピングモータドライバとバイポーラ型ステッピングモータを2組

2.  赤経側は、L6470のステッピングモードでの駆動とし、ステップ用パルスはクリスタルオシレータ+PIC12F683で発生させる。

3.  赤緯側は、L6470のRUNモードでの駆動とする。

4.  2つL6470は並列接続し、CSピン(チップセレクトピン)で区別して制御する。

5.  結露防止ヒータ、カメラのシャッター制御機能は付ける。

6.  せっかく2軸制御するので、なんらかの天体導入補助機能を盛り込む

としました。

オートガイダ入力用端子やスイッチ入力など、ATMega328のピン数では足りなくなりましたので、LCD表示をI2C通信で切り離し、LCD表示専用にPIC16F88を使っています。

これらの選択は、自作赤道儀の製作過程での勉強で手慣れていて、今までに開発したプログラムが使えること、必要な部品の大半が、今までに買った手持ちがあることです。

出来上がったコントローラです。 新たにパターンを起こして作成しました。 はて、最初から何代目なのでしょうか。

(1) タンジェントスクリュー式用

初 代・・・ユニポーラステッピングモータドライバ(STK672-050) + PIC16F886

2代目・・・バイポーラステッピングモータドライバ(L6470) + Arduino uno

(2) ウォームホイル式用

3代目・・・バイポーラステッピングモータドライバ(L6470) + ATMega328

ですから4代目になるんでしょうか。でも、間でナノトラッカー用コントローラを作っているので5代目なんです・・・。

一応5号機としておきます。

20150531_1461内部です。無理せず、大きなケースを使用しましたので、内部的には余裕を持って配線できています。

20150531_1466コントローラの前面です。

20150531_1467端子面です。