Suzulan > しろうと無線 > ハンドメイド > ローテータコントローラ > |
ローテータコントローラ(ソフトウェア)
< Rotator Controller Software >
ローテータをコントロールするソフトウェアは大別して次の2つが必要です。 |
||
1、方位角度検出基板に搭載したR8C/15マイコンをA/Dコンバータとして動作させるプログラム。(C言語で記述) 2、実際にローテータを制御するプログラム。(VBで記述) |
||
■ 方位角度検出基板に搭載したR8C/15マイコンをA/Dコンバータとして動作させるプログラム ■ R8C/15マイコンにA/D変換させるわけですから当然このプログラムはR8C/15マイコンにロードし実行させます。R8C/15マイコンはこのプログラムにより0〜4.5Vのアナログ電圧を8Bitパラレルデータ.に変換し出力します。処理は無限ループによりアナログ電圧の変化は常に8Bitパラレルデータに変換され追従出力されます。下図方位角度検出基板のデータの流れを見てください。方位角度を示すアナログ電圧DIRはP1-0端子に接続されています。したがってP1-0端子はアナログ電圧入力用として占有されるため、出力端子としては使用できません。このためA/D変換されたADレジスタのb0データはP3レジスタのb4を経由で出力するようにしてあり、ハードウェア上もこのように配線されています。シリアルインターフェースアダプタ側からみると、正規の8Bitデータとして受け取ることになります。プログラムの作成はここがポイントです。筆者はトランジスタ技術(2005年4月号)に付属のAD変換サンプルプログラム(C言語)に一部コードを追加してこの動作を実現しました。(コードは下部参照) なおR8C/15マイコンに対するプログラムの作成やロード・デバッグ方法などについては同誌を参照してください。 |
||
R8C/15マイコン A/Dコンバータ ソースコード(C言語) |
||
■ ローテータを制御するプログラム(VB) ■ | ||
製作した一連の基板間の接続イメージを下図に示します。ローテータを制御するプログラムは、Serial_InおよびSerial_Outプロシジャーを使用し、以下の5パターン(@〜D)の組合わせで作成します。この5パターンのプログラムの組み合わせでプリセット動作を含むG-1000DXAローテータの全ての制御が可能になります。アクセスは全てシリアルインターフェースアダプタに対して行います。(方位角度検出基板や回転制御基板に対して直接アクセスすることはありません。) Serial_In
および Serial_Out プロシジャーの詳細についてはシアルインターフェースアダプタ製作記事を参照してください。プログラム記述上の留意点として記述順序の制約があります。回転速度を変える場合は、必ず回転開始データを送出したあとで回転速度データを送出します。もし回転速度データを先に送出し、そのあと回転開始データを送出しても、回転速度データに回転開始データが上塗りされ意味を失います。(エラーにはなりませんが動作は高速回転として振る舞います。) 回転停止および方位角度の検出はどの位置に記述してもかまいません。 |
■ 参考:筆者の作成したローテータコントロールプログラム (VB) ■ |
||
◎ このコーナーで公開した自作品は、筆者の単なる個人的な趣味で製作したものです。
本機製作により発生したいかなる不具合もしくは損害について、筆者が責任を負うものではありません。
◎本機の製作にあたり、JA8JCR(松田OM)から技術的な支援をいただきました。TNX .
◎引用文献:VBと製作で学ぶ初めてのパソコン応用工作 ( CQ出版社 )
:トランジスタ技術(2005年4月号・5月号) ( CQ出版社 )
:G-1000DXA ローテータマニュアル(八重洲無線株式会社)