GM−38(マーキュリー)用
|
GPSレシーバ(GM−38)と、一般のハンディー機だけで、ナビトラ局を運用できるというアダプタです。使用するCPUは、380円のPIC16F84だけで、RS232Cの受信から、データ解析、AX25/Bel202でビーコンの発生までやってしまうので、TNCはおろか、モデムICすら必要ありません。
INFOMATION
2000.4.15 秋月のPICプログラマ以外でプログラムを書きこむ場合。
2000.3.15 プログラムの不具合を修正しました。
2000.2.3 CQ誌掲載の回路図に誤りがありました。
最終更新日 : 2000.4.15
GM−38用ディスプレイの2号機がやっと完成しました。2号機はGM−38から出て来るデータを表示する機能だけではなく、なんとTNC無しでナビトラビーコンを出せる機能を持っています。それも、モデムICも使わずPICだけ処理できますので、製作費はケースまで含めても2000円で足りるでしょう。また、データ表示機能もGPS315のような信号強度を表示することも可能になりました。ただし、メモリの都合でビーコン発生と信号強度の表示の両方はできません。
GM−38データディスプレイの種類
GM-38データ表示 | ナビトラビーコン発生 |
緯度・経度 高度・対地速度・真角度(移動方向/矢印表示) 日付・時刻 可視衛星と衛星番号・信号強度(バーグラフ表示 |
PIC16F84だけで、モデムLSIすら使用せずに AX25(Bell202)のナビトラビーコンを発生する。 安価で小型なので、ハンディー機と組み合わせて 徒歩ナビトラを実現させることができる。 LCDに、緯度経度、高度、速度、方向を表示。 |
いやはや、パケットのUIフレームをPIC単体で作のには苦労しました! 普通、TNC2のファームウエアですらシリアル変換にはSIOが使えるので、HDLCやらCRCなど考える必要はないのですが、全部PICで作となると、1200/2200Hzのトーン発生から、NRZI、CRC計算、HDLCのゼロインサート、シンクバイトやシリアル変換まで、全部ソフトでならねばなりません。AX25がどんな内容のデータを送ってるかという資料は有っても、SIOが何をしているかなんて資料は殆どありません。おまけに、CRC計算アルゴリズムなんかパケット関連の書籍では全くありません。結局、TNC2が出力する波形と、自分が作ったPIC回路が出力する波形をロジアナでビット単位で比較してチェックするという、途方も無い作業を強いられました!詳細は、2000年2月号のCQ誌に公開する予定です(実は、まだ執筆していない)。PICだけでAX25を発生するのに興味がある方は見てみてください。AKI-80とTCM3105を使えば、あっというまに完成してしまう内容ですけど、PICだけで処理するのはとっても困難で面白いです。
GM−38ディスプレイ/データ表示専用タイプの画面
時刻・高度・速度・方向(矢印)表示 | |
上記と同じだが、衛星を捕捉していない時は「LOST」と表示する | |
測地方法(2D/3D)・可視衛星数・捕捉衛星数・衛星番号(PRN)・受信感度(バーグラフ)の表示 |
データ表示専用タイプ 更新 2000/1/1 |
ナビトラビーコン発生タイプ gm38ax.lzh(HEX) 更新 2000/3/15 ソースリスト(秋月PICアセンブラ専用) gm38axs.lzh(ASM) 更新 2000/1/15 |
回路図のダウンロード
gm38disp.pdf 更新 2000/2/3 |
※ 詳細は、CQ Ham Radio誌 2000年2月号を参照してください
秋月のPICアセンブラで作成したHEXファイルを、秋月のPICプログラマ以外のプログラマで書きこんだ場合、正常に作動しない場合があることが確認されましたので、ご注意ください。
うまく、プログラムが書けない場合は、このファイルで試してみてください。秋月のプログラマを使って書いたPICから、再びデータを吸い出して作ったHEXファイルです。ただし、他のプログラマを持っていないので動作確認はできていません。
ビーコン発生タイプのプログラムに、チェックサムが正しく出力されないというバグを発見しましたので修正致しました。GPSプレーヤなどで表示されない不具合が発生する場合があります。修正済みプログラムはこちらからダウンロードできます。他にもおかしいと思われる部分がありましたらお知らせください。
CQ誌掲載の回路図に誤りがあります。お詫びして訂正致します。訂正個所は、PIC16F84の6,7,8,9pinとDAC(抵抗)との配線の部分で、以下の用に手直ししてください。誤ったままでも、とりあえずどうさするようですが、トランシーバの機種によっては著しくとおりが悪くなる場合が考えられます。
誤った回路図では、PIC16F84の6ピンはR7の抵抗に接続されていますが、正しくは9ピンに接続されているR4に接続します。また、PIC16F84の7,8,9ピンについても同様で、以下の表のように変更してください。
PIC16F84のpin番号 | 誤った回路 | 正しい回路 |
6 (RB0) | R7 | R4 |
7 (RB1) | R6 | R5 |
8 (RB2) | R5 | R6 |
9 (RB3) | R4 | R7 |
GM−38に接続して、緯度経度などを表示するディスプレイを作ってみました。標準でSIOを持っているAKI80なんかで作っても全然面白くないので、今回はPICを使ってみることにします。PICでソフト処理だけでシリアルを処理するのは少し厄介ですけど、表示するだけの用途ならPIC程度のCPUでも十分です。ちなみに、GM−38の転送速度は4800bpsですので、速度的には十分余裕があるのですが、LCDディスプレイを制御しながらの受信はちょと小技が必要なようです。
開発は、ジャンクの16桁×1行のLCDディスプレイ(ADOで100円だった)を取り付けた実験用の基板を使いました。最終的には秋月の16桁×2行の物を使いたいと思うのですが、めんどうでハードがなかなか完成しません(^^;) とりあえず、現在完成しているバージョンで公開しておくことに致します。
オープニングタイトル 起動後以下の表示を10秒毎に切り替える | |
緯度経度表示 データが無効な場合は中央に×を表示する 度、秒等の区切りを入れる余裕が無いので LCD画面にマジックで「.」でも書くと良さそう | |
日付・時刻表示(UTC) 表示はUTCのままです 緯度経度表示でマジックで画面に区切りを 書いた時に丁度良いようなレイアウトにした | |
高度・対地速度・真角度表示 高度は+9999m〜-999mまで 真角度(移動方向)は矢印でも表示する |
先日GPS315を初めて見たのですが、見えている衛星の位置と信号強度をバーグラフで表示していました。位置の表示はキャラクタLCDディスプレイでは無理ですが、バーグラフなら出せそうなのでプログラム中ですが、メモリ容量が足らずに未だ実現していません。AKI-80やAKI-H8なんか使えば、とても簡単なんですけどね・・・