MAX-M8Q GNSS HAT
| |||||||||||||||||
| |||||||||||||||||
说明
产品简介
产品参数
引脚分布
定位原理
什么是GNSS?
GNSS全称Global Navigation Satellite System(全球导航卫星系统) , 是多个卫星系统的总称 , 目前世界上有BDS(中国) , GLONASS(俄罗斯) , GPS(美国) , Galileo(欧洲) , QZSS(日本) , IRNSS(印度)导航卫星系统 , GNSS特性如下:
- GPS系统是现阶段应用较为广泛 , 技术较成熟的卫星定位技术 . 相继发展出L1C/A , L2C , L5等频段信号提高了定位精度 .
- 多系统多频段GNSS模组能够捕获来自不同卫星系统的卫星 , 使得有效卫星数大幅度提升 , 提高定位精度和稳定性 .
- GNSS模组接收到的信号包含反射和折射信号 , 产生多路径效应影响定位精度 , 多频段多星座系统技术可以有效抑制削弱大气层误差 , 提高定位精度 .
- 随着GNSS发展 , 出现了多种定位技术如RTK , PPP-RTK和多传感融合定位DR(Dead Reckoning 航位推测法)等 , 满足差异化高精度定位需求 .
GPS工作原理
本小节简述GPS接收机定位的工作原理如下图所示 细节描述如下5点 . 定位原理详情请参考GPS定位基本原理 GPS工作原理 , Fundamentals of gps receivers , FUNDAMENTALS OF GPS
- GPS卫星在空中连续发送带有自身时间和位置信息的无线电信号 , 供GPS接收机(GNSS模组如ZED-F9P)接收
- 卫星和接收机内部会产生伪随机码 , 一旦两个伪随机码实现同步 , 接收机便能测定无线电信号发射时间与到达接收机的时间之差(简称时延) , 将时延乘上光速便得到距离(简称伪距)
- GPS系统时间是由每颗卫星上原子钟的铷原子频标保持的 . 这些星钟一般来讲精确到世界协调时(UTC)的几纳秒以内 , UTC是由海军观象台的“主钟”保持的,每台主钟的稳定性为若干个10^(-13)秒 .
- GPS卫星上的计算机和导航信息发生器精确地了解其轨道位置和系统时间 , 而全球监测站网保持连续跟踪卫星的轨道位置和系统时间 . 位于科罗拉多州施里弗(Schriever)空军基地内的主控站与其运控段一起 , 至少每天一次对每颗GPS卫星注入由复杂模型基础上计算出的轨道位置和星上时钟校正数据 .
- 计算GPS接收机(GNSS模组)的三维位置 , 要求GPS接收机至少接收来自4颗卫星的信号 , 根据空间三角形勾股定理和四元一次方程计算得到三维位置.
什么是RTK?
RTK全称Real Time Kinematic (实时动态技术) , 又称载波相位差分技术 , 是一种支持厘米级定位精度的GNSS定位技术(简称RTK技术) , 是实时处理两个测量站载波相位观测量的差分方法 , RTK技术工作过程如下图所示,通过移动网络实时将基准站(GNSS接收机)的生成的DGPS corrections传输给流动站(GNSS接收机)进行计算实现厘米定位 .
RTK技术的应用
- 各种控制测量比如传统的大地测量 , 工程控制测量采用三角网 , 导线网方法来施测,采用RTK技术实时测得定位精度保证观测质量 , 提高作业效率 , 相比常规GPS静态测量 , 快速静态 , 伪动态这些非实时性方法在测量完成后,后续处理若发现精度不合要求还须返测 . 另外RTK技术用于公路控制测量 , 电子线路控制测量 , 水利工程控制测量 , 大地测量 , 可减少人力强度 , 节省费用 , 在几分钟甚至于几秒钟内就可完成控制点测量 .
- 地形测图 . 采用RTK时,仅需一人背着仪器在要测的地形地貌碎部点呆上一二秒种,并同时输入特征编码,通过手簿可以实时知道点位精度,把一个区域测完后回到室内,由专业的软件接口就可以输出所要求的地形图,这样用RTK仅需一人操作,不要求点间通视,大大提高了工作效率,采用RTK配合电子手簿可以测设各种地形图,如普通测图、铁路线路带状地形图的测设,公路管线地形图的测设,配合测深仪可以用于测水库地形图,航 海海洋测图等等。
- 放样程放样是测量一个应用分支,采用RTK技术放样时,仅需把设计好的点位坐标输入到电子手簿中,背着GPS接收机,它会提醒你走到要放样点的位置,既迅速又方便,由于GPS是通过坐标来直接放样的,而且精度很高也很均匀,因而在外业放样中效率会大大提高,且只需一个人操作。
产品尺寸
windows测试
1. 下载安装u-center软件,启动u-center
2. 板载跳冒置于A,连接GNSS天线,将天线放置在户外空旷可视天空区域,接入MicroUSB并连接电脑
3. 注意天线无文字标签面正对天空,打开设备管理器查看串口号, u-center连接MAX-M8Q,选择自动波特率
4. 启动MAX-M8Q进入3D模式后,选择菜单File的Database Export的Google Map Html选项导出文件
5. 点击下载解压文件后用Chrome打开,导入刚才u-center保存的文件.可查看定位信息.
6. u-center软件使用请查阅手册User guide
RaspberryPi使用
硬件连接
功能引脚 | 树莓派接口(BCM) | 树莓派接口(WiringPi) | 描述 |
5V | - | - | 5V电源正 |
GND | - | - | 电源地 |
RXD | P14 | P15 | 模组UART接收引脚 |
TXD | P15 | P16 | 模组UART发送引脚 |
SDA | P2 | P8 | 模组I2C的SDA引脚 |
SCL | P3 | P9 | 模组I2C的SCL引脚 |
PPS | P18 | P1 | 模组PPS信号输出引脚 |
INT | P27 | P2 | 用于唤醒模组,低电平有效 |
开启UART接口
打开树莓派终端,输入以下指令进入配置界面,然后重启树莓派
sudo raspi-config #选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口 sudo reboot
安装软件与修改参数
- 安装Python函数库
sudo apt-get update sudo apt-get install gpsd gpsd-clients sudo pip3 install gps3
- 修改gpsd参数
#打开gpsd文档 sudo nano /etc/default/gpsd #将文档以下参数修改后保存退出 USBAUTO="false" DEVICES="/dev/ttyS0" GPSD_OPTIONS="/dev/ttyUSB0"
- 下载源码
mkdir ~/Documents/MAX-XXX_GNSS_HAT_Code cd ~/Documents/MAX-XXX_GNSS_HAT_Code/ wget https://www.waveshare.net/w/upload/0/0f/MAX-XXX_GNSS_HAT_Code.zip unzip MAX-XXX_GNSS_HAT_Code.zip
python例程
进入相应python目录,执行例程,国外用户可直接在谷歌地图查看信息,国内大陆用户在高德地图或百度地图查看信息,详情看使用效果.
cd ~/Documents/MAX-XXX_GNSS_HAT_Code/RaspberryPi/python/coordinate_converter sudo python3 main.py
NTP服务器
个人电脑,服务器等设备的系统时钟存在会走偏等情况如下图所示,在高频交易系统,自动化生产线等对高精确时钟场景会收到影响,而NEO-M8T在恶劣信号环境下实现覆盖和完整性特点,依靠卫星上原子钟保证时钟的精确性不受网络等因素影响,本节使用NEO-M8T和树莓派搭建NTP服务器,在室内封闭环境下为局域网内设备提供授时功能
1. NEO-M8T GNSS TIMING HAT连接天线,将天线另一端放置在靠近外墙或窗台边上
2. 将连接天线的NEO-M8T接入树莓派,上电开机,等待NE0-M8T输出PPS信号
3. 复制粘贴下面命令到树莓派命令行执行
sudo apt-get install git cd ~/Documents sudo git clone https://github.com/beta-tester/RPi-GPS-PPS-StratumOne.git cd RPi-GPS-PPS-StratumOne sudo chmod 777 install-gps-pps.sh
4. 安装时间较长,完成后重启树莓派
5. 打开/boot/config.txt文件,跳转到最后一行,将gpiopin=4改成gpiopin=18后,先按Ctrl+X再按Y按Enter保存
sudo nano /boot/config.txt dtoverlay=pps-gpio,gpiopin=18,capture_clear # /dev/pps0
6. 使用下面指令测试pps0运行,树莓派时间此时已经使用NEO-M8T提供的时间系统
watch -n1 chronyc syntaxhighlightstats -v
7. 为其它设备授时,获取运行NTP的树莓派地址比如192.168.6.93
8. 对于Linux设备,使用下面指令进行对时
sudo apt install ntpdate sudo ntpdate 192.168.6.93
STM32使用
硬件连接
模组 | XNUCLEO-F103RB | 描述 |
5V | - | 5V电源正 |
GND | GND | 电源地 |
RXD | P9(TX) | 模组UART接收引脚 |
TXD | P10(RX) | 模组UART发送引脚 |
HAL库例程
下载例程到XNUCLEO-F103RB开发板,使用Serial Port Utility连接XNUCLEO-F103RB的串口2查看相关信息
Jetson Nano使用
- 安装Python函数库
sudo apt-get update sudo apt-get install python-serial sudo apt-get install gpsd gpsd-clients python-gps sudo pip3 install gps3
- 修改gpsd参数
#打开gpsd文档 sudo nano /etc/default/gpsd #将文档以下参数修改后保存退出 USBAUTO="false" DEVICES="/dev/ttyTHS1" GPSD_OPTIONS="/dev/ttyUSB0"
- 下载源码
mkdir ~/Documents/MAX-XXX_GNSS_HAT_Code cd ~/Documents/MAX-XXX_GNSS_HAT_Code/ wget https://www.waveshare.net/w/upload/0/0f/MAX-XXX_GNSS_HAT_Code.zip unzip MAX-XXX_GNSS_HAT_Code.zip
- 查看端口获取数据
sudo chmod 777 /dev/ttyTHS1 sudo minicom -D /dev/ttyTHS1 -b 9600 sudo cat /dev/ttyTHS1 sudo gpsd /dev/ttyTHS1 -F /var/run/gpsd.sock sudo cgps -s sudo killall gpsd sudo reboot
python例程
进入相应python目录,执行例程,国外用户可直接在谷歌地图查看信息,国内大陆用户在高德地图或百度地图查看信息,详情看使用效果.
cd ~/Documents/MAX-XXX_GNSS_HAT_Code/RaspberryPi/python/coordinate_converter sudo python3 main.py