C99PICNIC

ホーム CALSAT99 C99FT847 C99IC820 C99IC910 C99TS2000 C99PICNIC C99UsbAn C99UsbFsio

C99PICNICはCALSAT99のデータを使って、アンテナを自動制御します。

ここから、C99PICNICVer1.1.2.zip がダウンロードできます。

インストールおよび動作を保証するものではありません。

ダウンロード後は免責条項を確認の上、自己責任でご試用願います。

 

 C99PICNIC (Ver1.1.2)

  プログラムC99PICNICは、CALSAT99の拡張プログラム として動作します。 動作に必要なデータはDDE機能を使ってCALSAT99から取得しますから、C99PICNICを起動する前にCALSAT99を起動しておいてください。

 プログラムを起動すると左のようなフォームが開きます。 C99PICNICPICNICと呼ばれるLANに接続してパソコンからデジタル入出力やアナログ入力ができるインターフェースボードを使って、ローテータを自動制御してアンテナを衛星の方向へ向けるためのプログラムです。

 フォームには、CALSAT99で選択されている衛星の方位(Az)と仰角(El)をDDE(Deg)で数値表示し、同心円のグラフに赤い点でプロットします。 同心円のグラフは衛星が見える 方向を N,E,S,W の方位と一番外側の円が仰角0度、中心が天頂方向の仰角90度として表示します。

 実際のローテータ(アンテナ)が向いている方向は、ローテータが出力する電圧をPICNICのA/Dコンバータ機能を使って数値として取り込みます。 取り込まれた情報はPICNIC(V)で数値を表示し、C99PICNIC.INIに設定されている、方位0,360度、仰角0, 180度の時のローテータの電圧情報を基に角度情報に変換し、方位軸と仰角軸として表示します。

 4つの矢印は、ローテータを上下左右に動かすためのボタンで、手動ボタンが点滅しているときに有効です。 自動ボタンを押すとCALSAT99から取り込んだ衛星の方位と仰角の方向にローテータを自動制御し、制御している矢印ボタンが点滅します。 自動制御中は 水色の扇型の表示が現れ、実際のアンテナの方位と仰角を表示し、扇の先端が衛星の位置を示す赤い点を追いかけるように制御・表示します。 扇の開き具合は制御誤差の許容量で、低軌道の衛星では初期設定の5度で十分な精度で追尾できます。

 自動ボタンには自動N自動Fの2つのボタンがあります。 自動Nボタンでは仰角ローテータの0度〜90度の範囲を使って衛星を追いかけます。 自動Fボタンではフリップモードと呼ばれる動作で仰角ローテータの90度〜180度の範囲を使って衛星を追いかけます。 衛星が方位ローテータの回転起点を横切る場合にはフリップモードを利用すると連続した追尾を行うことができます。 衛星の仰角が0度以下になるとローテータの制御は停止します。

 1,2,3のボタンは、あらかじめC99PICNIC.INIに設定された方向にアンテナを向けるためのボタンです。 アンテナが設定された方向に向くとローテータの制御は停止します。

 

PICNICの設定

 PICNICの出荷時の設定は、C99PICNICが利用する入出力端子はアナログ入力とデジタル出力に設定されているため変更の必要はありません。

 出荷時のIPアドレスは、192.168.0.200(255.255.255.0)になっていますので、ご自分のパソコンのIPアドレスを調べて同じグループに変更が必要です。 パソコンのIPアドレスは、スタートボタンからアクセサリ、コマンドプロンプトを選択し、ipconfigコマンドで表示することが出来ます。

 上の例では、192.168.1.6が割り当てられていることが判ります。

 ADSLや光ファイバーを使っている場合にはターミナルアダプタ等にLANコネクタがありパソコンが接続されるとDHCPと呼ばれる機能で自動的にアドレスが割り当てられます。 割り当てるIPアドレスの数はターミナルアダプタ等の設定で変更することが出来ますが、通常は16〜32個程度かと思います。

 C99PICNICではPICNICに固定のIPアドレスが設定されていることを前提としていますので、自動的に割り当てられるIPアドレスの範囲以外の値を指定します。上のネットワークの場合には、192.168.1.0〜192.168.1.32の範囲をDHCP機能で割り振られるの可能性があるため、この範囲は避けます。 たとえば、192.168.1.200などを指定すれば良いでしょう。 ただし、さらに上のアドレス230〜255辺りは他のサーバー機能で利用される場合がありますので、PICNICが複数台接続されている場合には、200ではなく,201,202などの別アドレスを指定する必要があります。

 ipconfigで調べたパソコンのIPアドレスが、192.168.0.xx であった場合には、Internet Explrorer のアドレスバーに http://192.168.0.200 と入力してPCNICに接続します。 しかし、IPアドレスが異なった場合にはPICNICのブートストラップモードと呼ばれる方法で変更する必要があります。 PICNICのVer1,2 ではシリアルポートから、(新)PICNICではシリアルポートまたはUSBポートからコマンドを使って行います。 詳細についてはPICNICの説明を参照してください。 パソコンのネットワークの設定に詳しい方であれば、パソコンとPICNICだけをLAN接続して、パソコンのIPアドレスを一時的に192.168.0.10などに変更してInternet Explrorer を使って変更するのが、シリアルケーブルやUSBケーブルも不要で作業としてはラクになります。

 さて、IPアドレスの設定が出来て、Internet Explrorer からPICNICに接続すると、(新)PICNICでは、つぎのような状態を示す画面が表示されます。

 C99PICNICでは、Port−1を使用します。 すでにローテータとの接続が出来ている場合には、RA0に方位角度電圧RA1の仰角角度電圧が表示されます。 RE4のHボタンを押すとローテータが右回転RE5が左回転RE6が上回転RE7が下回転に対応します。 左右ボタンを同時に、上下ボタンを同時に押した場合にローテータがどのように振る舞うかは機種によって異なりますので注意して操作してください。

 PICNICのネットワーク関係の設定表示では、現在設定されているIアドレス等が表示されます。 (新)PICNICではLCDに設定されているIPアドレスが表示されますので、このアドレスを指定して接続した場合には、DHCPのチェックを外して、先に述べた方法で決めたIPアドレスを指定してください。

 Parallel Port# の値は10001を使いますので確認してください。 また、PICNIC Ver1,2ではパソコンとの通信はUDPで行いますが、(新)PICNICでは、TCPにチェックを入れてください。

 PICNICの設定をC99PICNICへ与えるためには、C99PICNIC.INIの変更が必要になります。

 

PICNIC(Ver.1,Ver2)とローテータの接続インターフェースの例

 

(新)PICNICとローテータの接続インターフェースの例

 

(新)PICNICとインターフェースを組み合わせた例

  電源は7V〜24Vが使えると説明書にありますが、最初に12Vを供給したところ3端子レギュレータの発熱が多く、長時間連続で動作させるには不安があっため、現在は秋月電子で入手した9V2Aの電源アダプタを使っています。 発熱も減少して不安無く使えるようになりました。

 C99PICNICでのコントロールにはLCDは不要なので、IPアドレスの設定などが済んだ後は外してもかまいません。

 

 このプログラムでは、PICNICを制御するための設定や追尾の精度を高めるためにC99PICNIC.INIを変更・設定することができます。 C99PICNIC.INIの初期設定は次のとおりです。

[PICNIC]
IP = 192.168.0.200

Protocol = 1

TimeOut = 5000
[ANTENNA]
RotatorKiten = N

RotatorAzFit = NO
RotatorElFit = NO
RotatorAzFitDim = 3
RotatorElFitDim = 3
RotatorAzOffset = 0
RotatorElOffset = 0
RotatorDeadZoon = 5

RotatorAzSpeed = 2
RotatorElSpeed = 2
RotatorAzMin = 0
RotatorAzMax = 360
RotatorElMin = 0
RotatorElMax = 180
PicnicAzMin = 0
PicnicAzMax = 5
PicnicElMin = 0
PicnicElMax = 5

[PRESET]
Preset1Az = 0
Preset1El = 0
Preset2Az = 180
Preset2El = 90
Preset3Az = 110
Preset3El = 0
[FORM]
frmMainTop = 0
frmMainLeft = 0
[END]

 順番に、C99PICNICの設定の意味と設定の方法を説明します。

IP = 192.168.0.200

 PICNICを識別するために、IPアドレス呼ばれるプライベートなLANの上で1つしかないユニークな番号を割り当てます。 192.168.0.200 はPICNICの出荷時の初期設定と同じアドレスです。 C99PICNICからPICNICを操作するためにはC99PICNICが動作するパソコンにLANに接続するための準備が必要です。 その形態はパソコンとPICNICをケーブルで直接接続するクロスケーブル1本の場合や複数の機器がHUBで集線されているかも知れません。 またこれらに割り当てられているIPアドレスも、たとえばADSLモデムなどが自動的に割り当てるアドレスとの関係で決 める必要があるかも知れません。 ここでは詳しくはふれませんが、PICNIC本体のIPアドレスの変更が必要になった場合には、PICNICの説明書にしたがって変更し、この設定値をPICNICのIPアドレスと同じ値になるように変更します。

 

Protocol = 1

 PICNIC Ver1 および PICNIC Ver2 では、通信をUDPで行っていましたが、(新)PICNICではUDPとTCPが使えるように機能が追加されました。 (新)PICNICでは、Protocol =1 、その他では、Protocol = 0 を指定してください。

 

TimeOut = 5000

 PICNIC との通信で、ここで指定した時間応答がないと異常として処理を終了する。 通常は5000(秒)の設定で問題ないと思われますが、環境によっては長めの設定が必要になる場合もあるかもしれません。 この設定キーは C99PICNIC.INI をメモ帳などで開き直接書き換えます。 数値の単位はmsで、最大値は 65535 で、0 を指定するとタイムアウト無しとなります。

 

RotatorKiten = N

 方位(Az)のローテータを左に回し切った時に、アンテナの指向性がどちらを向いているかを設定する値です。 C99PICNICではこのアンテナの向きを北、東、南、西の4方向のいずれかに設定できます。 上の設定例は北にしたときのもので、N,E,S,W のうちの1文字を設定します。 アンテナの指向性を設定した方位へ正確に設定してください。

 

RotatorAzFit = NO
RotatorElFit = NO
RotatorAzFitDim = 3
RotatorElFitDim = 3

 ローテータのポテンションメータの非直線性によって、回転軸の角度と角度電圧の関係を最小角と最大角の情報を与えただけでは、中間の角度で誤差が生じます。 このため、回転角と角度電圧の関係をテーブル(Az-V.TXT,El-V.TXT)に記述して与えて、より高精度なアンテナ制御を行います。 テーブルのデータを使って、直線近似から12次の曲線近似まで計算することができ、近似計算を行うか行わないかを指定(YES/NO)することができます。また、近似計算の次数を1〜12で指定します。

 

RotatorAzOffset = 0
RotatorElOffset = 0
RotatorDeadZoon = 5

 この3つの値は、フォームにある3つのスライダーの設定を保存するものです。 通常、プログラム終了時に自動的に保存し、プログラム起動時に読み込んで設定します。

 

RotatorAzSpeed = 2
RotatorElSpeed = 2

 自動制御時のローテータ回転速度を手動で可変することができますが、プログラム起動時の設定倍数(1〜10)を保存します。初期設定は2倍になっていますが、ローテータの回転速度や衛星の方位・仰角の変化スピードによっても最適値は変化しますが、よく使う値に変更することができます。

 

RotatorAzMin = 0
RotatorAzMax = 360

 C99PICNICでは、アンテナの方位(Az)の回転範囲をプログラムから制限することができます。 設定の方法は、回転範囲の最小値と最大値の数値を与えます。 初期設定では0〜360度か回転範囲として設定されていて、全範囲に回転することができます。 

 

RotatorElMin = 0
RotatorElMax = 180

 C99PICNICでは、アンテナの仰角(El)の回転範囲をプログラムから制限することができます。 設定の方法は、回転範囲の最小値と最大値の数値を与えます。 初期設定では0〜 180度が回転範囲として設定されていて、水平方向から天頂、さらに天頂からアンテナが反転した水平方向までの全範囲に回転することができます。 

 

PicnicAzMin = 0
PicnicAzMax = 5

 ローテータの回転位置は、ローテータのコントローラーから出力される角度に対応した電圧情報をPICNICのアナログ入力機能を使ってC99PICNICに取り込まれます。 プログラムが動作中は PICNIC(V)のフレームに、この電圧値が表示されています。 PICNICのアナログ電圧の入力範囲は0〜5Vなので、ローテータのコントローラーからの出力電圧が方位0〜360度で入力範囲になるようにあらかじめ確認・調整が必要です。 初期設定では、方位のローテータの回転軸が0度の時の電圧が0V、360度回転した時の電圧が5Vの場合です。 これらの設定値と PICNIC(V) Az: の電圧値から方位軸の角度は、つぎの関係から求めています。

 方位軸の角度 = (電圧値 - PicnicAzMin) / (PicnicAzMax - PicnicAzMin) * (RotatorAzMax - RotatorAzMin) + RotatorAzMin

設定の手順は以下を参考にしてください。

・方位のローテータを RotatorAzMin の方向に設定します。

・上の状態で、PICNIC(V) Az: に表示されている電圧を PicnicAzMin = の値とします。 

・方位のローテータを RotatorAzMax の方向に設定します。

・上の状態で、PICNIC(V) Az: に表示されている電圧を PicnicAzMax = の値とします。 

C99PICNIC.INIを変更して、C99PICNICを起動して、動作を確認します。

※Az-V.TXTを使う場合には一時的に無効となります。

 

PicnicElMin = 0
PicnicElMax = 5

 方位軸と同様な考え方です。 初期設定では、仰角のローテータの回転軸が0度の時の電圧が0V、180度回転した時の電圧が5Vの場合です。 これらの設定値と PICNIC(V) El: の電圧値から仰角軸の角度は、つぎの関係から求めています。

  仰角軸の角度 = (電圧値 - PicnicElMin) / (PicnicElMax - PicnicElMin) * (RotatorElMax - RotatorElMin) + RotatorElMin

設定の手順は方位の設定方法を参考にしてください。

※El-V.TXTを使う場合には一時的に無効となります。

 

Preset1Az = 0
Preset1El = 0
Preset2Az = 180
Preset2El = 90
Preset3Az = 110
Preset3El = 0

 フォームにある1,2,3のプリセットボタンの設定値です。 Preset1では方位0度、仰角0度が初期設定の値です。 方位のPreset1Azには0〜360度、仰角のPreset1Elには0〜180の値を設定することができます。 Preset2,Preset3についても同様です。  ボタンの上にカーソルを移動するとボタンに設定されている方位と仰角がポップアップ表示され、確認することができます。

 

frmMainTop = 0
frmMainLeft = 0

 この2つの設定値は、フォームの表示位置を保存するためのものです。 プログラム終了時に自動的に保存し、プログラム起動時に読み込んで設定します。

 

C99PICNICの改訂履歴

Version 1.1.2 (2014/01/03)

 ・PICNICの制御を見直した。
 ・PICNICの制御で自動制御停止時の処理を修正した。 
 

Version 1.1.1 (2011/01/23)

 ・PICNICとの通信で条件によってタイムアウト時間の最適設定が異なるため、C99PICNIC.INIに "TimeOut = 5000" (単位はms,5秒) の設定キーを追加し変更する機能を追加した。
 ・PICNICからのアナログ電圧読み込み時のWaitの指定誤りによる不具合を修正した。
 ・ローテータを制御でプロシージャー名変更により不要となっていたコードを削除した。
 ・カーソルキーでローテータを制御した時に連続してPICNICにコマンドを送る不具合を改修した。
 ・仰角軸に表示する変数の誤りを修正した。
 

Version 1.1.0 (2010/10/30)

 ・これまで利用していた PICOCX.OCX が「(新)PICNIC」に対応していないため、VB6 のコントロールから制御するように変更した。
 ・通信プロトコルにTCPを追加し「(新)PICNIC」の機能追加に対応した。
 ・C99PICNIC.INI に "Protocol = X" (X=0:UDP X=1:TCP) の設定を追加し、通信プロトコルを選択できるようにした。
 ・通信プロコルはPICNIC Ver1 および PICNIC Ver2 ではUDPのみ利用可、(新)PICNICではTCPを推奨。
 

Version 1.0.7 (2010/08/14)

 ・方位仰角画面でアンテナ方向の描画での不具合を修正した。

Version 1.0.6 (2010/07/26)

 ・カーソルキーでローテータを制御した時に連続してPICNICにコマンドを送る不具合を改修した。

Version 1.0.5 (2009/06/14)

 ・アンテナコントロールパネルに自動制御時のローテータ速度(1〜10倍速)を設定するスライダーを追加した。
 ・ローテータの回転角度と角度電圧の関係を多項式近似で計算して、より正確なアンテナ制御を行う機能を追加した。
   ・回転角と角度電圧の関係を記述するテーブルとして、Az-V.TXT と El-V.TXT を追加した。
   ・C99PICNIC.INI に多項式近似行うことを指示するための RotatorAzFit = YES/NO と RotatorElFit = YES/NO を追加した。
   ・C99PICNIC.INI に多項式近似の次数を指定するための RotatorAzFitDim = 3 と RotatorElFitDim = 3 を追加した。
 ・インストールパッケージにインストーラローダを含め、setup.exe を使ってインストールするように変更した。

Version 1.0.4 (2005/04/03)

 ・ローテータの方位角と仰角の電圧設定ポイントを0,360度および0,180度から、回転制限範囲の最小値と最大値に変更した。

Version 1.0.3 (2005/02/25)

 ・方位仰角グラフの背景色を変更した。
 ・CALSAT99.INIから仰角90度の電圧設定値を読み取る際のエラーを修正した。
 ・仰角ローテータの90度の電圧設定ポイントを180度に変更した。
 ・フリップモードを追加し方位角ローテータの回転起点を横切るパスの連続追尾が可能になった。
 ・衛星の仰角が0度以下になって可視範囲から外れたときに自動制御を停止するようにした。
 ・プリセットボタンを追加し、C99PICNIC.INI に方位と仰角を3点設定できるようにした。

Version 1.0.2 (2004/10/29)

 ・Visual BASIC 6.0をSP5からSP6に更新した。

Version 1.0.1 (2004/06/27)

 ・動作中にDDEのリンクが切れたときのエラー処理を追加した。

Version 1.0.0 (2004/04/18)

 ・「JR1HUOのWebサイトへようこそ!」で公開。