SS2000
SW-BOX vega 2006.3.03〜
改 2006.3.21
改 2006.11.30 (AVR版)
改 2007.11.18 (pic版ソース)
スカイセンサーの外部スイッチボックスです。
スカイセンサーは、MINI DIN 8P
のコネクタがありパソコンなどと接続し、外部からその動き
をコントロールできます。
ここをパソコンではなく、1チップマイコンからコントロールすることもできます。軽量なSW BOX
を作れば、長時間快適に操作することができます。
私は、SS2000を持っていませんが、わけあってSS2000のシリアルポートに接続する
SW−BOXのソフト(ファーム)を作成しました。 頼まれたわけでもないんですが。
せっかく作ったのだから、公開します。 SS2000を持っている人が幸せになれば良い
と思いますが、不幸にしてSS2000を壊すことも考えられるので、製作する人は、最悪
を覚悟した方が良いかもしれません。
又このHPの内容が理解できない場合は、SS2000を壊す確率大なので製作を止めたほうが良いでしょう。
あるサイト(1チップマイコンから、SS2000制御)を参考にしました。
参考サイトのファーム(アセンブラソース)の機能をほぼそのまま再現してあります。
異なる点は、キーを同時に押した場合、オリジナルは、優先度に従い1つのコマンドしか発信しませんが、当ファーム
では、複数のコマンドを交互に発信することです。
実験用基板を製作し、動作確認は、実験基板とパソコンを接続して行いました。パソコンで受信できたので、SS2000でも
受信できると思います。
機能
4個のSWがあり、ボタンを押している間シリアルポートに下記コマンドを出します。
SW−E : #Me#
SW−W : #Mw#
SW−S : #Ms#
SW−N : #Mn#
(注) 各コマンドの後ろには、改行コート(16進コードで、0D、0A)が付きます。
これで、追尾時に視野中心から少しずれた時に調整できる(らしい)。
ボタンを同時に押したときは、複数のコマンドが代わる代わる出ます。(オリジナルと異なる)
例えば、SW−E と SW−S
を同時に押した場合
#Me#
#Ms#
#Me#
#Ms#
#Me#
#Ms#
のようになります。 ss2000の仕様はわかりませんが、南東方向に移動できるかもしれません。
回路図
シンプルにしました。 多少経験があるなら簡単に製作できそうでしょ。
PIC12F675は、内部に発振子を持っているので(4Mhz)外部部品を省略できます。
普通は、RS232C用とドライバー/レシーバー用IC(MAX232等)を使用しますが、
ここでは、300Ω1個で済ませています。受信側の閾値は、普通1〜2Vの間にあることを利用して
います。(ここにMAX232等を使用しても、論理が反転しているので動きませんので注意して下さい)
SWがポートに繋がっているだけですが、PICの内部にあるプルアップ機能を使用しています。
SWを閉じることでポート電圧が、およそ電源電圧から0Vに変化します。
R1は、プルアップ抵抗なので、10K〜200K程度なら(たぶん)OKです。大きい方が省エネ。
電源SWや電源表示用LEDは必要に応じてつけて下さい。ただし電池駆動の場合、LEDを付けると電池が
長もちしません。
電源は安定化する必要はありませんが、あまり低いとマイコンは動いても、通信できなくなる恐れあります。
12F629でも同じ回路で多分動作すると思います。 ファームは、12F629用を使用して下さい。
SS2000との接続
ここにSS2000の説明書があり、MINI DIN8 ピンとの接続方法があります。
http://homepage2.nifty.com/STARCAMP/sub0449.html
![]() |
|
図の向きは、SS2000のメスコネクタを正面から見た向き(と思われます) 又上記回路を接続するMIN DIN 8P オスを裏から(半田付けする面から)見た向きでもあります。 |
拡大するとこのようになっています。
MIN DIN 8PのRS−232Cでの規格は不明ですが、手持ちのD−SUB9ピンとMIN
DIN 8P の接続ケーブルも
信号線はこのようになっていました。信号名は、パソコンなど外部から見た名前です。
確認方法 (現物が手元に無いので想像で書いてます)
GND
SS2000の電源を入れていない状態で電源のアース端子とゼロΩ又はゼロΩに近い値。
電源を入れた状態で、この電圧(電源アースに対して)は0V。
Txd
SS2000の電源を入れていない状態で電源のアース端子に対して高抵抗値。
電源を入れた状態で(電源アースに対して)0Vに近い値。
上記回路図のTxdを接続します。
動作時に−10V付近又は、+10V付近の線は、SS2000から他にデータを送る線なので
決して接続してはなりません。 接続するとSS2000又は、本機が壊れる恐れがあります。
ファームウエア PIC12F675用ファーム
これをマイコンに書き込む必要があります。
殆ど同じ構成のPIC12F629用のファーム (手元にないので動作確認していません)
ソース 上記ファームを生成したソースです。以前作ったマクロを使用していてわかりにくいと思います。
UPする予定でかったので、化粧直しもしてません。
MPLABで以前(2006年)生成できましたが、今のMPLABで生成できるか不明です。
PIC12F675用のソース
消費電流 SWを押さない状態で 0.33mA でした。(省エネにしました。)
SWを押した状態では、1.75mAです。
電池動作させる場合は、LEDなど余計な部品を省けば、かなり電池は長もちすると思います。
電源 PIC12F675自体は、2V〜5.5Vまで使用できます。
5V
と 2.56V(弱ったニッカド2本)を使用し、でパソコンで通信できることを確認しました。
電圧が低い場合、マイコン自体は動作しても通信できない場合があるかもしれません。
パーツ PIC12F675は、下記で入手可能です。 安価。
秋月 http://akizukidenshi.com/catalog/g/gI-00253/
共立
PICの書き込みにライターが必要です。
http://feng3.cool.ne.jp/ ここで、有償、無償のライターが手に入ります。
有償のショップは http://halfmat.ocnk.net/ です。 私は、RCDライターが手元にありますが、問題なく
動作してます。
製作
1. 本体(電源も)をSS2000の近くに置き、SWのみケーブルで伸ばすのが軽くて使いやすいと思います。
ボタンSWの位置関係は、こんな感じで。
![]() |
2. ファーム書き込み時は、工場出荷時の周波数校正の値を書きつぶすと全く動きませんので、注意して下さい。
校正値を正しくない値(34xx)にした時は、マイコンが動いても、通信できませんので注意して下さい。
購入後、最初から書き込まず中身を読み出して、最終アドレスの内容をメモすれば、もし書きつぶしても復旧できます。
(チップの裏に書き込んでおくと良い。)
PICライターソフトにより、「はい」/「いいえ」の指定誤りで簡単に変わってしまうので、要注意です。
3. 通信のチェックは、いきなりSS2000に接続せずパソコンを相手にしてテストした方が良いでしょう。
パソコンとの接続は、SS2000との接続のリハーサルだと思ったほうが良いです。
d-sub9のNo.5ピンがGND、No.2ピン(ストレートケーブルの場合は同じNo.2)がパソコン側の受信です
からここに300Ωの先を接続します。
No.2ピンは、0Vですから確認して下さい。+10Vとか−10Vとかに決して接続してはなりません。
パソコン又は本機が故障するかもしれません。
最初の確認はなるべく5V近くの電源で使用しください。
ボタンSWに従い、コマンドが出るのを確認します。
ソフトはハイパーターミナルを使します。(9600BPI) ハイパーターミナルのセットアップはこれを参考に
https://ss1.xrea.com/vega.s58.xrea.com/astro/mirror/h8gcc/part02.htm
SW押し、下記このようにボタンに対応したコマンドが表示されたら成功です。
4個のボタンが機能することを確認して下さい。
4. パソコンで動けば、SS2000でもOKだと思います。
SS2000の接続は、慎重に。
電源を電池にする場合、最初から2個にせず、動作を確認してから2個に試して下さい。
パソコンとSS2000の受信側の(H,Lの)閾値は違います。
電池2個でパソコンに通信できたからといって、SS2000も受信できるとは限りません。逆も。
パソコンが電池2個で受信できないからといって、SS2000も受信できないとは限りません。
又消費電流は少ないですが、電圧が下がると通信できないかも(長時間使用できるない)しれません。
不安定な場合は、電池3個をお勧めします。
もしパソコン相手でも全く動かない場合。マイコンが生きているのか壊れているのか分かりませんね。
又最初にこれで動作を確認してから、パソコンに接続する方法も良いでしょう。
まずこの回路を作ります。
![]() |
まず電源につないで、光ることを確認して下さい。電圧は5Vが良いです。
電池なら3個。 これを12F675のNO.3ピンに接続します。
何もしない場合は、LEDは光りません。 4個のボタンどれかを押すと、LED点滅します。これは通信のパルス
をLEDの光で見ている分けです。 これはPIC動作しているいことを表しています。 LEDが光り通信できない場合
は、
(可能性として) Txdの配線を確認すなどして下さい。
光らない場合、マイコンが動いていません。回路を確認して下さい。 回路が正しようなら、このテスト用ファーム
で動かしてください。 テスト用ファーム (12F675用ですが12F629でも多分動作すると思います)
周波数校正値を使用していないので、通信は運が良くなければできないと思います。しかし、本物のファームがSWを押しても
LEDが光らず、このファームで光るなら周波数校正値が書きつぶれています(マイコンは生きています)。
ライターを使用し、マイコンの内容を読み出してください。
アドレス3FFの内容が、34xxでないはずです。この値を正しくする必要があります。
ここを参考にして、失われた値を復旧して下さい。
http://www.geocities.jp/orange_denshi/writer509alpha.html 失われたキャリブレーションデータを求めて
その他
ボタンを押している間、コマンドが絶え間なく高速に出ます。ここが気がかりな点です(オリジナルも同じ)。
間隔を空けて出す(時間当たりの送信コマンドの数を減らす)のは簡単なので、移動速度が速すぎる場合
は教えてください。
ソフト(ファーム)の具合が悪い場合は、連絡ください。
AVR版です 改 2006.11.30
ATtiny2313は、秋月で120円(2006.11)です。
調整方法は、上記のPICのを参考にして下さい。
消費電流は、4〜5mAです。
省エネ版は、ボタンを押していない状態では、0.07mAの消費となり、PIC版より省エネになりました。
電池で動作はさせていません。仕様では、2.7V以上となっているので、ニッカド電池等の2本では
動かないかも(動いても電池が長持ちしないかも)しれません。
ソース ss2000-1.c
ss2000-2.c (省エネ版)
hexファイルなど(Winavrでのソース類)は、
ss2000-avr1.lzh
ss2000-avr2.lzh (省エネ版)
フューズビットは、工場出荷時のままで使用します。
通信部分(suart.s)は、chanさんのを流用してます。
発振器は、工場出荷時の8Mhzの1/8分周 で、1Mhzとなります。
AVRのライターが必要ですが、ここを参考にして下さい。
https://ss1.xrea.com/vega.s58.xrea.com/telescope/qcamft/control/control.htm
お勧めは、chanさんのです。 COMポート接続のはキットが発売されています。
私も使用してます(キットではありませんが)。
http://strawberry-linux.com/catalog/items?code=72001
ライターなんか、製作できるか! という人やUSB接続が条件の場合は Atmelの純正ライターがあります。(\6,000)
ただし古い石(AT90S2313,など)は、対応していません。
http://www.compass-lab.com/STK_CAN/ATAVRISP.htm