ublox社製GPSモジュール NEO-7Mから、SPI経由でGPSデータをUBXプロトコルで読み出すライブラリです SPI経由ではGPSの出力設定が出来ないので、予めUART接続でPCから出力データを変更する必要があります。ここら辺の詳細については https://ameblo.jp/tsukuba-step/entry-12282936077.html を参考にして下さい。 出力設定は、 NAV-POSLLH,NAV-TIMEUTC,NAV-VELNED のみを出力して下さい

Dependents:   SensorManager

Committer:
kim1212
Date:
Tue Feb 13 04:25:54 2018 +0000
Revision:
1:2457089ca195
Parent:
ublox_Nav.h@0:956653b6d3ad
Child:
2:5992db47f3c3
???

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kim1212 0:956653b6d3ad 1 #ifndef UBLOX_NAV_H
kim1212 0:956653b6d3ad 2 #define UBLOX_NAV_H
kim1212 0:956653b6d3ad 3
kim1212 0:956653b6d3ad 4 #include "mbed.h"
kim1212 0:956653b6d3ad 5 #include "obsvdStruct.h"
kim1212 0:956653b6d3ad 6
kim1212 0:956653b6d3ad 7 #define TIMEUTC_LEN 20
kim1212 0:956653b6d3ad 8 #define POSLLH_LEN 28
kim1212 0:956653b6d3ad 9 #define VELNED_LEN 36
kim1212 0:956653b6d3ad 10
kim1212 0:956653b6d3ad 11 typedef union{
kim1212 0:956653b6d3ad 12 unsigned char Raw[TIMEUTC_LEN];
kim1212 0:956653b6d3ad 13 struct{
kim1212 0:956653b6d3ad 14 unsigned int iTOW;
kim1212 0:956653b6d3ad 15 unsigned int tAcc;
kim1212 0:956653b6d3ad 16 int nano;
kim1212 0:956653b6d3ad 17 unsigned short year;
kim1212 0:956653b6d3ad 18 unsigned char month;
kim1212 0:956653b6d3ad 19 unsigned char day;
kim1212 0:956653b6d3ad 20 unsigned char hour;
kim1212 0:956653b6d3ad 21 unsigned char min;
kim1212 0:956653b6d3ad 22 unsigned char sec;
kim1212 0:956653b6d3ad 23 unsigned char valid;
kim1212 0:956653b6d3ad 24 }Data;
kim1212 0:956653b6d3ad 25 } bufToTIMEUTC;
kim1212 0:956653b6d3ad 26
kim1212 0:956653b6d3ad 27 typedef union{
kim1212 0:956653b6d3ad 28 unsigned char Raw[POSLLH_LEN];
kim1212 0:956653b6d3ad 29 struct{
kim1212 0:956653b6d3ad 30 unsigned int iTOW;
kim1212 0:956653b6d3ad 31 int lon; //1e-7
kim1212 0:956653b6d3ad 32 int lat; //1e-7
kim1212 0:956653b6d3ad 33 int height;
kim1212 0:956653b6d3ad 34 int hMSL;
kim1212 0:956653b6d3ad 35 unsigned int hAcc;
kim1212 0:956653b6d3ad 36 unsigned int vAcc;
kim1212 0:956653b6d3ad 37 }Data;
kim1212 0:956653b6d3ad 38 } bufToPOSLLH;
kim1212 0:956653b6d3ad 39
kim1212 0:956653b6d3ad 40 typedef union{
kim1212 0:956653b6d3ad 41 unsigned char Raw[VELNED_LEN];
kim1212 0:956653b6d3ad 42
kim1212 0:956653b6d3ad 43 struct{
kim1212 0:956653b6d3ad 44 unsigned int iTOW;
kim1212 0:956653b6d3ad 45 int velN;
kim1212 0:956653b6d3ad 46 int velE;
kim1212 0:956653b6d3ad 47 int velD;
kim1212 0:956653b6d3ad 48 unsigned int speed;
kim1212 0:956653b6d3ad 49 unsigned int gspeed;
kim1212 0:956653b6d3ad 50 int heading;
kim1212 0:956653b6d3ad 51 unsigned int sAcc;
kim1212 0:956653b6d3ad 52 unsigned int cAcc;
kim1212 0:956653b6d3ad 53
kim1212 0:956653b6d3ad 54 }Data;
kim1212 0:956653b6d3ad 55
kim1212 0:956653b6d3ad 56 } bufToVELNED;
kim1212 0:956653b6d3ad 57
kim1212 0:956653b6d3ad 58
kim1212 0:956653b6d3ad 59
kim1212 0:956653b6d3ad 60 class GPS {
kim1212 0:956653b6d3ad 61
kim1212 0:956653b6d3ad 62 public:
kim1212 0:956653b6d3ad 63
kim1212 0:956653b6d3ad 64 GPS(PinName mosi,PinName miso,PinName sck,PinName _cs);
kim1212 0:956653b6d3ad 65
kim1212 0:956653b6d3ad 66 bool updateData();
kim1212 0:956653b6d3ad 67
kim1212 0:956653b6d3ad 68 void chkData(obsvdData* obs);
kim1212 0:956653b6d3ad 69
kim1212 0:956653b6d3ad 70 void chkTime(timData* t);
kim1212 0:956653b6d3ad 71
kim1212 0:956653b6d3ad 72
kim1212 0:956653b6d3ad 73
kim1212 0:956653b6d3ad 74 private:
kim1212 0:956653b6d3ad 75 SPI _gps;
kim1212 0:956653b6d3ad 76 DigitalOut cs;
kim1212 0:956653b6d3ad 77
kim1212 0:956653b6d3ad 78 bufToTIMEUTC timeData;
kim1212 0:956653b6d3ad 79 bufToPOSLLH posData;
kim1212 0:956653b6d3ad 80 bufToVELNED velData;
kim1212 0:956653b6d3ad 81 unsigned char buf0[50];
kim1212 0:956653b6d3ad 82 unsigned char buf1[50];
kim1212 0:956653b6d3ad 83 unsigned char buf2[50];
kim1212 0:956653b6d3ad 84
kim1212 0:956653b6d3ad 85 };
kim1212 0:956653b6d3ad 86
kim1212 0:956653b6d3ad 87
kim1212 0:956653b6d3ad 88
kim1212 0:956653b6d3ad 89
kim1212 0:956653b6d3ad 90 #endif