【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)

实验七十四:GY-NEO-6MV2新款飞控GPS模块 (带陶瓷有源天线)

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第1张图片
NEO-6M
是 ALIENTEK 生成的一款高性能 GPS 模块,模块核心采用 UBLOX 公司的 NEO-6M 模组,具有 50 个通道,追踪灵敏度高达-161dBm,测量输出频率最高可达 5Hz。NEO-6M 模块自带高性能无源陶瓷天线(无需再购买昂贵的有源天线了),兼容 3.3V 和5V 单片机系统,并自带可充电后备电池(支持温启动或热启动)。NEO-6M 模块非常小巧(25.5mm*31mm),模块通过 4 个 2.54mm 间距的排针与外部连接。
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第2张图片
NEO-6M 模块特性
• u-blox 6 定位引擎:
o 跟踪灵敏度 –162dBm ,冷启动灵敏度–148 dBm
o 更快的捕获速度,带有 AssistNow Autonomous功能
o 可配置的电源管理
o GPS/SBAS 混合型引擎(WAAS、EGNOS、MSAS)
o 抗干扰技术
• 易于与 u-blox 无线模块集成
• A-GPS:AssistNow Online 和 AssistNow Offline 服务,符合 OMA SUPL 规范
• 向后兼容(硬件和固件);可从 NEO-5 系列或NEO-4S 轻松迁移
• 采用可靠的 LCC 封装,制造性价比高
• 工作温度范围:–40° C 至 85° C

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第3张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第4张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第5张图片
注 1:冷启动是指模块所有保存的 GPS接收历史信息都丢失了(相当于主电源和后备电池都没电了),这种情况下重启,称之为冷启动。温启动是指模块保存了 GPS 接收历史信息,但是当前可视卫星的信息和保存的信息不一致了,这样的条件下重启,称之为温启动。热启动则是指在模块保存了 GPS 接收历史信息且与当前可视卫星信息一致,这样的条件下重启,称之为热启动。

注 2: 此电流为连续工作模式下的电流,可以选择省电模式(Power Save Mode)以节省用电。

注 3: 当 VCC 大于 3.3V 时 VCCX=3.3V,否则 VCCX=3.3V。

注 4: 模块的 TXD 和 RXD 脚内部接了 510 欧电阻,做输出电平兼容处理,所以在使用的时候要注意,导线电阻不可过大(尤其是接 USB 转 TTL 串口模块的时候,如果模块的 TXD、RXD 上带了 LED,那就会有问题),否则可能导致通信不正常。NEO-6M GPS 模块支持多种通信波特率,通过串口进行设置,并可以保存在模块自带的 EEPROM 里面,模块默认波特率为:38400(8 位数据位,1 位停止位,无奇偶校验)。

NEO-6M 模块主要参数

1、精确度

定位2.5MCEP

SBAS 2.0mCEP

捕获冷启动29s

温启动27s

辅助启动<3s

热启动<1s

2、灵敏度

捕获-162dBm

跟踪-147dBm

冷启动-146dBm

3、多径抑制

智能化多径检测与抑制

A-GPS

支持AssistNow Online及AssistNow Offline

4、运行限制

速度515m/s(1000节)

串口1个UART接口

1个USB V2.0,全速12Mbit/s

1个DDC接口

1个SPI接口

串口和I/O电压3V电平

协议NMEA、UBX二进制

数字I/O接口可配置的时间脉冲

1个EXTINT输入接口

5、电气参数

电压2.7V – 3.6V

功耗<80mW @ 1.8V

120mW @ 3.0V

备用电源1.3V -4.8V有 30uA

天线类型有源与无源

运行温度-40℃- +85℃

存储温度-40℃- +85℃

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第6张图片
GPS陶瓷有源天线
GPS就是通过接受卫星信号,进行定位或者导航的终端。而接收信号就必须用到天线。 GPS卫星信号分为L1和L2,频率分别为1575.42MHZ和1228MHZ,其中L1为开放的民用信号,信号为圆形极化。信号强度为-166dBW左右,属于比较弱的信号。 这些特点决定了要为GPS信号的接收准备专门的天线。GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、接头。
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第7张图片
GPS天线工作原理
1)陶瓷片:陶瓷粉末的好坏以及烧结工艺直接影响它的性能。现市面使用的陶瓷片主要是25×25、18×18、15×15、12×12。陶瓷片面积越大,介电常数越大,其共振频率越高,接受效果越好。陶瓷片大多是正方形设计,是为了保证在XY方向上共振基本一致,从而达到均匀收星的效果。

2)银层:陶瓷天线表面银层可以影响天线共振频率。理想的GPS陶瓷片频点准确落在1575.42MHz,但天线频点非常容易受到周边环境影响,特别是装配在整机内,必须通过调整银面涂层外形,来调节频点重新保持在1575.42MHz。

3)馈点:陶瓷天线通过馈点收集共振信号并发送至后端。由于天线阻抗匹配的原因,馈点一般不是在天线的正中央,而是在XY方向上做微小调整。这样的阻抗匹配方法简单而且没有增加成本。仅在单轴方向上移动称为单偏天线,在两轴均做移动称为双偏。

4)放大器:承载陶瓷天线的PCB形状及面积。由于GPS接收信号有触地反弹的特性,当背景是7cm×7cm无间断大地时,天线的效能可以发挥到极致。虽然受外观结构等因素制约,但尽量保持相当的面积且形状均匀。放大器增益的选择必须配合后端LNA增益。Sirf的GSC3F要求信号输入前总增益不得超过29dB,否则信号过饱和会产生自激。

GPS天线在室外空旷地区接受信号较好,在车内,因金属外壳和玻璃的防爆膜尤其是含金属粉的车膜,以及车内音响等都会对内置GPS天线接收信号产生干扰甚至阻碍,在室内受钢筋混凝土的遮挡,甚至无法接受GPS信号。

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第8张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第9张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第10张图片
NEO-6MV2飞控GPS模块 (带陶瓷有源天线)

型号:GY-GPS6MV2

3V-5V供电通用

模块带陶瓷有缘天线,信号超强

EEPROM掉电保存配置参数数据

带数据备份电池

有LED信号指示灯

天线尺寸25*25mm

模块尺寸25mm*35mm

安装孔径3mm

默认波特率:9600

兼容各种飞控模块,GPS电脑测试软件

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第11张图片
6MV2飞控GPS模块电原理图
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第12张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第13张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第14张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第15张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第16张图片
6MV2飞控GPS模块实验开源代码

/*

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)

实验七十四: GY-NEO-6MV2新款飞控GPS模块 (带有源陶瓷天线)

*/



#include 

SoftwareSerial ss(4, 3);



void setup()

{
     

 Serial.begin(9600);

 ss.begin(9600);

}



void loop()

{
     

 while (ss.available() > 0)

 {
     

   

  byte gpsData = ss.read();

  Serial.write(gpsData);

 }

}

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第17张图片
放到窗口,接收了一些信号
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第18张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第19张图片
了解NMEA语句
● 110617 - 表示固定地点的时间,UTC时间11:06:17
● 41XX.XXXXX,N - 北纬41度XX.XXXXX’N
● 00831.54761,W - 经度008度31.54761’W
● 1 - 固定质量(0 =无效; 1 = GPS修正; 2 = DGPS修正; 3 = PPS修正; 4 =实时运动学; 5 =浮动RTK; 6 =估计(航位推测); 7 =手动输入模式; 8 =模拟模式)
● 05 - 正在跟踪的卫星数量
● 2.68 - 水平位置因子
● 129.0,M - 海拔高度,以米为单位
● 50.1,M - 大于WGS84椭球体的大地水准面(平均海平面)的高度
● 空字段 - 自上次DGPS更新以来的秒数
● 空字段 - DGPS台站ID号
● * 42 - 校验和,数据总是以*开头
其他NMEA句子提供了其他的信息:
● $ GPGSA - GPS DOP和主动卫星
● $ GPGSV - 详细的GPS卫星信息
● $ GPGLL - 地理纬度和经度
● $ GPRMC - 基本的GPS pvt(位置、速度、时间)数据
● $ GPVTG - 速度很好

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第20张图片
GPS数据遵循NMEA-0183协议,该数据标准是由NMEA(National Marine Electronics Association,美国国家海事电子协会)于1983年制定的。统一标准格式NMEA-0183输出采用ASCII 码,其串行通信的参数为:波特率=4800bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。

数据传输以“语句”的方式进行,每个语句均以“$”开头,然后是两个字母的“识别符”和三个字母的“语句名”,接着就是以逗号分割的数据体,语句末尾为校验和,整条语句以回车换行符结束。

NMEA-0183的数据信息有十几种,这些信息的作用分别是: G P G G A : 输 出 G P S 的 定 位 信 息 ; GPGGA:输出GPS的定位信息; GPGGAGPSGPGLL:输出大地坐标信息; G P Z D A : 输 出 U T C 时 间 信 息 ; GPZDA:输出UTC时间信息; GPZDAUTCGPGSV:输出可见的卫星信息; G P G S T : 输 出 定 位 标 准 差 信 息 ; GPGST:输出定位标准差信息; GPGSTGPGSA:输出卫星DOP值信息; G P A L M : 输 出 卫 星 星 历 信 息 ; GPALM:输出卫星星历信息; GPALMGPRMC:输出GPS推荐的最短数据信息等。

一、 输出语句说明:1,$GPRMC语句

(Recommended Minimum Specific GPS/TRANSIT Data-RMC,推荐定位信息1次/1秒)

对于一般的GPS动态定位应用,GPRMC语句完全满足要求。该语句中包括经纬度、速度、时间和磁偏角等字段,这些数据为导航定位应用提供了充分的信息。下表详细说明GPRMC语句中的各个字段:

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,,<12>

字段 $GPRMC语句意义——取值范围

<1> UTC时间:hhmmss.ss——000000.00~235959.99

<2> 状态,有效性 ——A表示有效;V表示无效

<3> 纬度格式:ddmm.mmmm——0000.00000~8959.9999 (标准的度分格式)

<4> 南北半球——N北纬;S南纬

<5> 经度格式:dddmm.mmmm——00000.0000~17959.9999(标准的度分格式)

<6> 东西半球——E表示东经;W表示西经

<7> 地面速度——000.00~999.999

<8> 速度方向——000.00~359.99

<9> 日期格式,月日年——010100~123199

<10> 磁偏角,单位:度——00.00~99.99

磁偏角方向——E表示东;W表示西

<12> 模式指示及校验和—— A=自主定位,D=差分,E=估算,N=数据无效

例如:$GPRMC,074529.82,A,2429.6717,N,11804.6973,E,12.623,32.122,010806,W,A*08

2,$GPGGA语句

(Global Positioning System Fix Data-GGA,GPS定位信息, 输出1次/1秒)

GPS定位主要数据,该语句中包括经纬度、质量因子、HDOP、高程、基准站号等字段。下表详细说明GPGGA语句中的各个字段:

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,,<12>,,<14>

字段 $GPGGA语句意义——取值范围

<1> UTC时间:hhmmss.ss——000000.00~235959.99

<2> 纬度,格式:ddmm.mmmm ——0000.00000~8959.9999(标准的度分格式)

<3> 南北半球——N北纬;S南纬

<4> 经度格式:dddmm.mmmm ——00000.0000~17959.9999(标准的度分格式)

<5> 东西半球——E表示东经;W表示西经

<6> 质量因子——0=未定位,1=GPS单点定位固定解,2=差分定位,3=PPS解;4=RTK固定解;5=RTK浮点解;6=估计值;7=手工输入模式;8=模拟模式;

<7> 应用解算位置的卫星数——00~12

<8> HDOP,水平图形强度因子——0.500~99.000 ;大于6不可用

<9> 天线高程(海平面)——-9999.9~99999.9

<10> 线线高程单位(m) ——m

大地水准面起伏——地球椭球面相对大地水准面的高度

<12> 大地水准面起伏单位(m) ——m

<13> 差分GPS数据期——差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空),不使用DGPS时为空

<14> 基准站号——0000~1023;不使用DGPS时为空

$GPGGA,074529.82,2429.6717,N,11804.6973,E,1,8,1.098,42.110,M,M,*76

3,$GPGSV语句

(GPS Satellites in View-GSV,可见卫星信息,1次/5秒)

GPS可见星的方位角、俯仰角、信噪比等每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:(4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比

$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>,<18>,<19>

字段 $GPGSV语句意义——取值范围

<1> 总的GSV语句电文数——0~12

<2> 当前GSV语句号

<3> 可视卫星总数——0~32

<4> 卫星号——1~32

<5> 仰角——00~90

<6> 方位角——000~359

<7> 信噪比——00~99dB无表未接收到讯号

<8> 卫星号——1~32

<9> 仰角——00~90

<10> 方位角——000~359

信噪比——00~99dB无表未接收到讯号

<12> 卫星号——1~32

<13> 仰角——00~90

<14> 方位角——000~359

<15> 信噪比——00~99dB 无表示未接收到讯号

<16> 卫星号——1~32

<17> 仰角——00~90

<18> 方位角——000~359

<19> 效验和,格式:*效验和——检查位

$GPGSV,3,1,11,1,83,54,32,3,19,192,28,6,26,57,36,7,51,140,37*7D

$GPGSV,3,2,11,14,40,136,34,16,64,266,36,20,21,293,22,2,168,*4C

$GPGSV,3,3,11,23,10,321,25,53,7,40,30,2,46,*48

4,$GPVTG语句

(Track Made Good and Ground Speed-VTG,地面速度信息)

格式:$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh

字段 $GPVTG语句意义——取值范围

<1> 以真北为参考基准的地面航向——000.000~359.999

<2> 以磁北为参考基准的地面航向——000.000~359.999

<3> 地面速率——000.000~999.999节

<4> 地面速率——0000.0~1851.8公里/小时

<5> 模式指示——A=自主定位,D=差分,E=估算,N=数据无效(仅NMEA0183 3.00版本输出)

<6> hh 校检位

$GPVTG,257.314,T,257.314,M,10.739,N,19.888,K,A*2F

5,$GPGSA语句

(GPS DOP and Active Satellites-GSA,当前卫星信息,1次/1秒)

GSA : GNSS 的当前卫星和精度因子,包括可见卫星PRN号,以及PDOP、HDOP、VDOP。如:

<1> 模式 ——M = 手动, A = 自动。

<2> 定位类型——1 = 未定位, 2 = 二维定位, 3 = 三维定位。

<3> PRN 数字——01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。正在用于解算位置的卫星号(01~32,前面的0也将被传输)。

<4> PDOP位置精度因子——0.5~99.9

<5> HDOP水平精度因子——0.5~99.9

<6> VDOP垂直精度因子——0.5~99.9

<7> Checksum.(检查位).

$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>,<7>

$GPGSA,A,3,19,11,03,23,27,13,16,3.43,1.67,2.99*0E

6,$GPGLL语句

(输出大地坐标信息)

$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7>*61

字段 $GPGLL语句意义——取值范围

<1> 纬度:ddmm.mmmmm——0000.00000~8959.9999

<2> 南纬或北纬——北纬N,S南纬

<3> 经度:dddmm.mmmmm——0000.00000~17959.99999

<4> 东、西经 ——东经E,西经W

<5> UTC时间——hh:mm:ss

<6> 数据状态——A有效,V无效

$GPGLL,2431.25310,N,11806.15429,E,081401.00,A,A*61

7,$GPZDA 语句

(输出UTC时间和日期信息)

$GPZDA, <1>,<2>,<3>,<4>,<5>*hh

字段 $GPZDA语句意义——取值范围

<1> 时间:hhmmss.ss——0000000.00~235959.99

<2> 日——00~31

<3> 月——00~12

<4> 年——0000~9999

<5> 地方时与世界时之差

<6> 检校位 hh——

$GPZDA,081401.00,14,09,2006,00,00*62

8,$GPGST 语句

(GPS 伪距噪声统计,包括了三维坐标的标准偏差信息)

字段——示例——说明

Sentence ID ——$GPGST

UTC Time——024603.00——UTC time of associated GGA fix

RMS deviation——3.2——Total RMS standard deviation of ranges inputs to the navigation solution

Semi-major deviation——6.6——Standard deviation (meters) of semi-major axis of error ellipse

Semi-minor deviation——4.7——Standard deviation (meters) of semi-minor axis of error ellipse

Semi-major orientation——47.3——Orientation of semi-major axis of error ellipse (true north degrees)

Latitude error deviation——5.8——Standard deviation (meters) of latitude error

Longitude error deviation——5.6——Standard deviation (meters) of longitude error

Altitude error deviation——22.0——Standard deviation (meters) of latitude error

Checksum—— *58

$GPGST,024603.00,3.2,6.6,4.7,47.3,5.8,5.6,22.0*58

9,$GPCN0语句

各颗用于解算的卫星信噪比:

$GPCN0,30,40,35,26,24,36,31,38

二、 输出时间说明:

GPGGA(1次/1秒)

GPGSA(1次/1秒)

GPGSV(1次/5秒)

GPRMC(1次/1秒)

另可选用GLL,VTG或SiRF二进制格式.

三、坐标系统WGS84

WGS-84坐标系(World Geodetic System)是一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直角坐标系的Z轴指向国际时间局(BIH)1984.0定义的协议地极(CTP)方向,X轴指向BIH1984.0的协议子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系。这是一个国际协议地球参考系统(ITRS),是目前国际上统一采用的大地坐标系。GPS广播星历是以WGS-84坐标系为根据的。

WGS84坐标系,长轴6378137.000m,短轴6356752.314,扁率1/298.257223563。

实验开源图形编程(Mind+、编玩边学)

【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第21张图片

一大早,把6MV2飞控GPS传感器放到窗台上,接收的GPS信号情况
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第22张图片
【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块_第23张图片

你可能感兴趣的:(【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块)