ALPHA GPS模块
独家呈现的I2C接口的GPS模块,并且具有可自定义的I2C地址,免除I2C总线地址冲突之麻烦。
特点
- I2C总线接口,全模块化设计。
- 实际使用不占用串口,串口依旧可以用于调试
- 内部解码算法,协处理器机制,不会消耗系统资源
参数
主芯片:UBX-G7020-KT
接收频段:1575.42MHZ
接收通道:56CH
S11 SWR:⇐1.3
S22 SWR:<+1.3
S21 LOG MAG:>=20.0db
S11 SMITH:50Ω+—5%
定位性能
水平位置精度:<2.5m[Autonomous][50%] <2m[SBAS]
(CEP,50%,24时静态,信号强度 -130 dbm,大约6个可用卫星)
速率:<0.1 m/s 方向:< 0.5 Degrees
授时精度:30ns 参照坐标系:WGS-84
最大海拔高度:50000m 最大速度:500m/s
加速度:⇐4g
电性能:
跟踪灵敏度:-162dbm
捕获灵敏度:-160dbm
冷启动灵敏度:-148dbm
热启动灵敏度:-148 dbm
热启动灵敏度:-156dbm
冷启动时间:29s
温启动时间:28s
热启动时间:1s
AGPS[网络辅助星历数据]:3s
数据速率(UART/TTL):9600dps(默认)[可通过软件配置:4800,19200,38400,57600,115200,230400,460800,921600]
工作温度:-40℃ TO +85℃
参考图片
关于Arduino开发板使用
Arduino开发板无法直接堆叠ALPHA模块,GPS模块上丝印的5V、GND、SCL、SDA这四个管脚,连接到Arduino开发板的对应管脚后即可正常使用。
关于输出数据与应用问题
ALPHA GPS模块输出的数据是标准的WGS84坐标系坐标。这个坐标在国际上是通用的。中国大陆例外。
如果要配合电子地图使用,推荐使用google map,这样子坐标上去位置基本都是对的。
如果是百度地图、搜狗地图、高德地图等等,都不是标准的WGS84坐标系,都需要换算。
示例程序
需要OCROBOT_APLHA_GPS_Module 库
github:https://github.com/534659123/OCROBOT_APLHA_GPS_Module
#include <Wire.h> #include <OCROBOT_I2C_GPS.h> GPS GPS(0x02); byte hh,mm,ss,ms; byte y,m,d; uint16_t delayTime = 1000; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { /*显示时间*/ GPS.UtcDate(y,m,d); GPS.UtcTime(hh,mm,ss,ms); Serial.print("DATE:"); Serial.print("20"); Serial.print(y); Serial.print("/"); Serial.print(m); Serial.print("/"); Serial.println(d); Serial.print("Time:"); Serial.print(hh); Serial.print(":"); Serial.print(mm); Serial.print(":"); Serial.print(ss); Serial.print(":"); Serial.println(ms); /*显示纬度经度*/ Serial.print(GPS.LatitudeDirection()); //纬度 WGS84坐标系 Serial.print(":"); Serial.println(GPS.Latitude(),4); Serial.print(GPS.LongitudeDirection()); //经度 WGS84坐标系 Serial.print(":"); Serial.println(GPS.Longitude(),4); /*定位状态与有效卫星*/ Serial.print("Pos:"); Serial.println(GPS.Positioning()); //定位状态 0:无定位 1:SPS 模式定位 2:差分、SPS模式定位 3 :PPS 模式定位 Serial.print("Sat:"); Serial.println(GPS.Satellite()); //有效卫星数量 /*水平定位精度与椭球高度*/ Serial.print("HDOP:"); Serial.println(GPS.HDOP()); //水平精度 单位米 Serial.print("MSL:"); Serial.println(GPS.MSL()); //椭球高,单位米 /*航向与速度*/ Serial.print("Course:"); Serial.println(GPS.Course()); // 航向 单位度 Serial.print("Speed:"); Serial.print(GPS.Speed()); //速度,单位千米/小时 Serial.println("km/h"); /*海平面高*/ Serial.print("SeaLevel:"); Serial.println(GPS.SeaLevel()); // 海平面高,单位米 }
修改设备地址
本设备默认地址为2 十六进制:0x02,如需自定义I2C地址,首先准备如下程序 【在默认地址模式下,使用下面的程序更新自定义地址】
#include <Wire.h> /***********/ byte I2CAddr = 10; //需要修改的地址,请自行修改 (取值范围1-127) /***********/ void setup() { Wire.begin(); // 初始化I2C接口 Serial.begin(9600); Wire.beginTransmission(2); //设备默认地址 本设备GPS模块 = 2 Wire.write(200); // 修改地址的操作码 Wire.write(I2CAddr); //向I2C设备写入新地址 Wire.endTransmission(); // stop transmitting Serial.println("OK"); //串口显示OK则完成写入,拨动模块开关并重新上电即可 } void loop() { }
自行修改程序中需要写入的地址,程序显示OK后,拨动开关,断电后即可。
拨动开关示意图
下载
原理图: ALPHA GPS R1