概要
事前準備
利用方法
バグと改良予定
MS-Windows, UNIX系のOSで稼働すアプリケーションの場合、個別の設定はそれを指定したファイルを作成しますが、Arduinoの場合は、コンパイル時に指定する(#includeする)ファイルでスケッチ上の変数に定義してしまいます。
したがって、設定を変更(あるいは初期設定)する度に、コンパイル、M5Stackへの書き込みという作業が必要になります。
個別設定を cppのヘッダーファイル形式で作成してください。
/* $Id: sample-gps.h,v 1.2 2021/06/20 07:09:38 yahiro Exp $ Personal Configuration GPSモジュールあり 移動を伴う利用 GPSモジュールなしもこの設定でOK */ #define CALLSIGN "N0CALL-5" #define PASSCODE 00000 /* interval [sec] */ #define INTERVAL_SEND_POSITION 60 const char * ap_list[] = { "SSID1,crypt_key1", "SSID2,crypt_key2", "SSID3,crypt_key3" }; // #define HOME_LAT 30.0000 // #define HOME_LNG 130.0000 #define DEFAULT_DISPLAY_MODE 2 #define LIST_MODE_COLOR
#define USE_M5STACK_CORE2
M5Stack Core2の方は、USE_M5STACK_CORE2を定義してください。 無印M5Stack(CORE)方は、なにも定義する必要はありません。
#define USE_GPS
GPSモジュールを利用する場合は USE_GPS を定義してください。
Core2
M5Stack Core2 で Grove接続のGPSユニットの場合は、さらに#define USE_GPS_GROVE
も定義してください。
M5Stackの場合は、GPSモジュールを利用してください。
#define CALLSIGN "ご自分のコールサイン"
※GPSを利用する場合、システム上、位置情報をKetaiTrackerのサーバに送信し、データベースに登録されます。 その時の識別子となります。 できれば、専用のSSIDをKetaiTracker for M5Stack用に割り当ててください。 位置情報はAPRS-ISには送信されませんが、KetaiTracker, ktmini2015, KetaiTracker for M5Stack上では表示されます。
#define PASSCODE 000000
CALLSIGN
に対応するパスコードを指定してください。
KetaiTracker for M5Stackのサーバアクセス時に認証を行います。
const char * ap_list[] = {"SSID,Crypt_KEY1"};
Wi-FiアクセスポイントのSSIDおよび暗号キーを下記の書式で指定してください。
例えば、SSIDがHAM
、暗号キーがHogeHoge
の 場合、const char * ap_list[] = {"HAM,HogeHoge"};
としてください。
複数のWi-Fiアクセスポイントを指定する場合は、const char * ap_list[] = {"HAM,HogeHoge","RADIO,foofoo"};
と指定してください。
最大n箇所指定できます。(nの数は不明....)
複数のWi-Fiアクセスポイントを指定した場合、どのアクセスポイントに優先的に接続するかということに関しては、、Arduinoライブラリーの WiFi関係を調査してください。
#define UPDATE_INTERVAL 60
位置情報をKetaiTracker for M5Stackサーバに送信し、関連情報を得る間隔を秒単位で指定してください。 これが画面更新間隔となります。 実際には間隔ではなく、前の処理が終了後の経過時間となります。
最初のうちは、15秒から20秒程度に設定して遊んでください。 60秒だとあまりおもしろくありません。
#define DEFAULT_DISPLAY_MODE n
起動直後の画面モードを指定してください。
#define LIST_MODE_COLOR
定義すると近隣局一覧をカラー表示します。
近隣局への相対方向および近隣局の移動方向から自局へ接近中か、離隔中かで表示の色が違います。
色 | 適用 | 条件 |
---|---|---|
緑 | 接近中 | 方角と進行方向の差異が 180±60度 以内 |
白 | 微妙...判断が難しい | |
赤 | 離隔中 | 方角と進行方向の差異が ±60度 以内 |
定義しない場合は、コールサインしたの距離を示すバーがカラー表示となります。
自局と近隣局の移動速度は判定条件として考慮していませんので、緑(接近中)であっても離れていくことがあります。
#define YOUNG_HAM
、#define OLD_HAM
いずれも未定義状態でフォントサイズ3(21x18 px)で表示します。YOUNG_HAM
を定義するとフォントサイズ2(14x12 px)、OLD_HAM
を定義するとフォントサイズ4(28x24 px)で表示します。
一覧に表示される局数の数も影響を受けます。
車中利用する場合は、OLD_HAMの文字サイズにしておかないと認識できないと思います。スマートフォンの画面とは視認性に雲泥の差がありますので、屋外では基本的に見にくい画面です。
#define NORTH_UP
NORTH_UPを定義すると、マップモード、レーダモードにおいて常時、北が上になります。 定義されていない場合、進行方向が上になります。 NORTH_UPを定義することにより地図を回転するスケッチ(コード)がコンパイルされませんので処理速度が若干早くなります。
NORTH_UPを定義しない場合、マップモード、レーダモードにおいてBボタンの長押し(2秒)でノースアップとヘディングアップが切り替わります。
#define START_NORTH_UP true|false
起動時におけるマップおよびレーダーモードをノースアップにする場合は#define START_NORTH_UP true
、ヘディングアップにする場合は#define START_NORTH_UP false
と定義してください。
#define NORTH_UP
を定義している場合、START_NORTH_UPの定義は無視されます。
固定運用する場合は、#define FIX_MODE
を指定し、さらに座標を指定してください。
#define FIX_MODE
FIX_MODEが指定されるとHOME_LAT, HOME_LNGで指定された座標を利用します。
#define HOME_LAT 00.0000
、#define HOME_LNG 000.0000
固定運用する場所の座標を指定してください。
#define CX 160
、#define CY 120
マップ表示(レーダ)における中心位置(自局)を画面座標で指定してください。M5Stackの場合、画面は320 x 240ですので、その中心は160, 120となります。 通常はこのままで大丈夫だと思われますが、自宅が海岸部などになり、マップの特定方向には誰もいないということが明らかな場合、中心位置をずらすことで、画面を有効に利用できます。
#define TARGET_STATIONS "CALL-1,CALL-2,CALL-3"
一覧(リスト形式、マップの両方に共通)に表示する局を特定の局に限定したい場合、TARGET_STATIONSで指定してください。
この章(節)は制作中です。完成までしばらくおまちください。
#define ,....
一覧に表示したくない(すなわち、無視する)局がある場合、....で指定してください。 例えば、特定の場所に複数の固定局がある場合(JG6YCL-1,JG6YCL-2,JG6YCL-3,JG6YCL-5,JG6YCL-13などIGate, Digi, WX局が同じ場所に複数)など、一つを残して、他のSSIDを指定することにより、マップ上がこちゃこちゃしなくて済みます。
ということで、実装準備中(予定 )です。
#define USE_OTA
OTAを利用する場合は、USE_OTAを定義してください。
#define DEMO
DEMOを定義するとデモンストレーションモードになります。 画面モードが一定間隔で切り替わります。 間隔は、INTERVAL_SEND_POSITIONで調整してください。 10秒から20秒程度が最適? 表示されるデータの基準になる局は、移動局のうち、最新のデータを利用します。 表示レンジ等は変化しませんので、その場に応じて調整してください(地図表示画面で操作)。
/* $Id: sample-gps.h,v 1.2 2021/06/20 07:09:38 yahiro Exp $ Personal Configuration GPSモジュールあり 移動を伴う利用 GPSモジュールなしもこの設定でOK */ #define CALLSIGN "N0CALL-5" #define PASSCODE 00000 /* interval [sec] */ #define INTERVAL_SEND_POSITION 60 const char * ap_list[] = { "SSID1,crypt_key1", "SSID2,crypt_key2", "SSID3,crypt_key3" }; // #define HOME_LAT 30.0000 // #define HOME_LNG 130.0000 #define DEFAULT_DISPLAY_MODE 2 #define LIST_MODE_COLOR
ここで指定するコールサイン(SSID)で別途APRS機で位置情報を送出している場合、KetaiTracker上のデータベースでAPRS機から送出された位置情報とKetaiTracker for M5Stackから送信される位置情報の両方が登録されます。 微妙なタイミング(遅延)の違いにより、軌跡が乱れることがあります。 したがって、KetaiTracker for M5Stack専用のSSIDを利用するが、あるいは同時にAPRS機で位置情報を送出しないようにしてください。
なお、この軌跡の乱れが生じるのはKetaiTrackerのサーバのみで、APRS-ISにはまっったく影響ありません。
この利用事例が最も多いと思います。
移動利用であるがGPSモジュールがない場合は、他のAPRS機で送出した位置情報を利用することができます。 この場合、#define CALLSIGNでご自分の-9, -7などを指定してください。 M5StackからKetaiTracakerサーバに位置情報は送信(登録)されませんので、実APRS機と同じSSIDが利用できます。
/* $Id: sample-vehicle.h,v 1.1 2021/06/17 13:45:52 yahiro Exp $ Personal Configuration GPSモジュールなし 移動を伴う利用 */ #define CALLSIGN "N0CALL-9" #define PASSCODE 00000 /* interval [sec] */ #define INTERVAL_SEND_POSITION 60 const char * ap_list[] = { "SSID1,crypt_key1", "SSID2,crypt_key2", "SSID3,crypt_key3" }; // #define HOME_LAT 30.0000 // #define HOME_LNG 130.0000
/* personal configuration */ #define CALLSIGN "N0CALL-5" #define PASSCODE 00000 /* interval [sec] */ #define INTERVAL_SEND_POSITION 60 const char * ap_list[] = { "SSID1,crypt_key1", "SSID2,crypt_key2", "SSID3,crypt_key3" }; #define HOME_LAT 30.0000 #define HOME_LNG 130.0000 #define FIX_MODE //#define TARGET_STATIONS "JG6YCL-1,JG6YCL-2,JG6YCL-7,JG6YCL-9,JG6YCL-5,JE6YBE-5" #define DEFAULT_DISPLAY_MODE 3 #define LIST_MODE_COLOR