場所によって、精度が大きく変化するので、捕捉衛星数を表示するようにしました。ビデオの時刻と同期させるために時刻表示としてiTow時間も表示しました。
●プログラム作成用資料保存(SSD不調のため消失しないようにここに保存しておきます)
備忘録資料名 | リンク |
ublox-F9Pセンテンス仕様書 | u-blox_ZED-F9P_InterfaceDescription_(UBX-18010854) |
NAV-PVTテーブル | http://shinshu-makers.net/shinshu_makers/wp-content/uploads/2020/01/NAV-PVT_frame.pdf |
NAV-RELPOSNEDテーブル | http://shinshumakers.net/shinshu_makers/wpcontent/uploads/2020/01/RELPOSNED_frame.pdf |
UBXバイナリー変換アドレス行 Excel ファイル(VBA付) |
http://shinshu-makers.net/shinshu_makers/?attachment_id=7000 ZIP |
●LunchBox内マイコンNucleoF446RE用プログラム
F9Pから460800bpsで受信してバッファして、スマホ用のパラメータをバイナリーからDECに抽出してBlueToothで115200bpsで送信
mbedオンラインコンパイラ使用、
■追加点
PVTの6,7,8,9バイトにあるiTowをINTに換算してスマホへ送信
iTows=(iTow/1000)%86400として24時間を秒で表示するようにしてあります。
PVTの衛星補足数 numSV 1バイトをINTに換算してスマホへ送信
0000_BT_RELPOSNED_Calc_rev03_LunchBox |
#include “mbed.h” #include “SDFileSystem.h” Serial pc(USBTX,USBRX); Serial F9P(PC_6,PC_7);;//F9P uart1 TX,RX-F446RE Serial6 TX,RX 5.62MHz Serial BT(PA_9,PA_10);//Xbee TX,RX F446RE Serail TX,RX 5.62MHz Timer t; DigitalOut myled(LED1); //==================UBX_DEC parameters========================== long relN; long relE; long relD; long Length; long Long; long Lati; long Seah; long Acc2d; char numSV;//satellite number long iTow; int iTows; long su; int sNo;//pvt start int rNo;//relposned start int i=0; int j=0; char sen[]={}; unsigned char c; unsigned char bData[]={0xB5,0x62,0x1,0x7,0x5C,0x0,0x60,0xDA,0x2D,0xB,0xE4,0x7,0x2,0x4,0x4,0x5,0x24,0x37,0x1,0x0,0x0,0x0,0x28,0xBD,0xDD,0x17,0x3,0x83,0xEA,0x15,0x35,0x7,0x30,0x52,0x6E,0x95,0xEB,0x15,0xE6,0xF2,0xD,0x0,0x0,0x65,0xD,0x0,0x88,0x0,0x0,0x0,0x86,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xFA,0xFF,0xFF,0xFF,0x8,0x0,0x0,0x0,0xB,0x0,0x0,0x0,0xF2,0x4A,0x18,0x0,0xDA,0x0,0x0,0x0,0x80,0xA8,0x12,0x1,0x7B,0x0,0x0,0x0,0xBA,0x65,0x43,0x2C,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x35,0x5D,0xB5,0x62,0x1,0x3C,0x40,0x0,0x1,0x0,0x0,0x0,0x60,0xDA,0x2D,0xB,0xE8,0xFF,0xFF,0xFF,0x3F,0x0,0x0,0x0,0xA,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x5A,0x37,0xAA,0x0,0x0,0x0,0x0,0x0,0xA8,0x0,0x24,0x34,0x64,0x0,0x0,0x0,0x64,0x0,0x0,0x0,0x64,0x0,0x0,0x0,0x64,0x0,0x0,0x0,0x6A,0x4A,0x1,0x0,0x0,0x0,0x0,0x0,0x37,0x1,0x0,0x0,0x1A,0xCD}; //================================================================================================================ long B2L(char b4 , char b3 , char b2 , char b1 ) { //pc.printf(“B2L IN=%s,%x,%x,%x,%x,b4&0x80=%d\n\r”,sen,b4,b3,b2,b1,b4 &0x80); //pc.printf(“B2L IN=b4&0x80=%d\n\r”,b4 & 0x80);if ((b4 & 0x80) && 0x80){//最上位ビットたっていればマイナス su = -(256-(int)b1)+(255-(int)b2)*256+(255-(int)b3)*65536+(255-(int)b4)*256*256*256; //pc.printf(“B2L-:sen=%s,%d,%d,%d,%d,%d\n\r”,sen,b4,b3,b2,b1,su); } else { su=(int)b1+(int)b2*256+(int)b3* 65536+(int)b4*256*256*256; //pc.printf(“B2L+:sen=%s,%d,%d,%d,%d,%d,%d\n\r”,sen,b4,b3,b2,b1,su); } return su; //pc.printf(“Long=%d,Lati=%d,Seah=%d,Acc2d=%d\n\r”,Long,Lati,Seah,Acc2d); pc.printf(“et:%d,\n\r”,t.read_ms()); } //======================================================================================================= |
●スマホ側プログラム Processing Androidモード
BlueTooth受信は、KETAIライブラリーを使ってます。
Processing IDE 3.5.3使用 コピペする時は、全角記号が入ってしまう場合があるのでコンパイラエラーでてしまうので、全角スペース全部消してください。
RT_PVT_RELPOSNED_rev06_numSV |
//required for BT enabling on startup
import android.content.Intent; void onCreate(Bundle savedInstanceState) { } void onActivityResult(int requestCode, int resultCode, Intent data) { void setup() { //start listening for BT connections // data value
} //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //Call back method to manage data received } } String createFileName() {
|