APP下载

基于Arduino的定位系统设计

2021-05-31卫凯龙刘海亮董和磊

电视技术 2021年4期
关键词:经纬度高德单片机

卫凯龙,王 泉,刘海亮,董和磊

(1.中国兵器工业第二一四研究所,江苏 苏州 215010;2.中北大学 仪器与电子学院,山西 太原 030051)

0 引 言

随着科技的发展,定位系统对人们的生产生活方式产生了很大的影响,它已经走进每一个人的生活。定位系统重新定义了旅游业、物流行业以及众多与生活息息相关的行业。本文主要研究用于寻找失踪人口和野外探险紧急求救的定位系统。

我国每年有大量失踪人口,其中大多数为生活不能自理的老人和儿童。如何在失踪后的黄金24小时内寻找到失踪人口成为一个社会难题。如果有完备且使用简单的定位系统,可以在发现人口失踪的第一时间通过定位锁定大概位置,逐步缩小寻找范围,最后找到失踪人口[1-3]。

定位系统一般由空间部分、地面部分及用户部分3部分组成。空间部分由环绕地球的卫星组成。卫星的分布使得需要被定位的物体在任何时间都能被至少4颗卫星观测到。常见的卫星有我国的北斗卫星和美国的GPS等。地面部分主要由控制站和监测站组成。控制站控制卫星沿着规定轨道运行,监测站监测各卫星的各自时间。它们共同保障空间部分的正常运行,连接空间部分和用户部分。用户部分主要是用户使用接收机接收数据,导航仪就是典型的接收机。随着科技的发展,更精确的硬件、更人性化的软件以及数据更精确的地图会使定位系统的用户体验变得更好[4]。

1 整体设计方案及关键技术

1.1 整体设计方案

本文研究的主要内容是基于嵌入式Arduino的定位系统。整体设计方案如图1所示。GPS天线可以使GPS模块收集到卫星信号;GPS模块获取卫星的数据,解析出重要参数,如经度、纬度及时间信息;通过单片机控制GPRS模块将解析过的数据传输到云端服务器;GPRS模块需要插入SIM卡;服务器中储存的数据通过高德地图或者百度地图的开源接口,从地图中获取到较直观的地理位置,进而完成对位置的小范围锁定[5-7]。

图1 系统框图

1.2 GPS模块工作原理

GPS定位系统由21颗工作卫星组成(北斗卫星系统由55颗卫星组成)。含有GPS模块的接收机在任意地方和时间都可以观测到4颗及以上的卫星,通过计算已知位置的卫星到用户接收机之间的距离,观测到多颗卫星以后,就可以确定接收机的具体位置。根据距离公式可以得到4个卫星与观测物体之间的距离关系(以观测到4颗卫星为例),如下所示:

式中:c是GPS信号的传播速度,数值上与光速数值相同;ti为卫星时间差(i=1,2,3,4);t为接收机时间差;(xi,yi,zi)为第i个卫星的空间直角坐标(通过卫星导航数据获得);(x,y,z)为被观测物体的空间直角坐标;di为卫星到被观测物体的距离,可以通过信号传播的时间和光速相乘获得。通过式(1)~式(4)这4个公式即可计算出被观测物体的空间直角坐标(x,y,z)和t。实际上,在三维空间中,根据3点即可测得被观测物体的坐标,但根据上面的公式,di通过c×t计算得到,由于c值特别大,当信号传播时间特别短时,小误差可能会对结果造成大偏差,另外,GPS卫星信号在传输过程中还可能会因为天气等原因受到影响,因此需要增加1颗卫星的数据来校正误差,共需要4颗卫星才能实现精准定位。以上所述的定位原理称为单点定位(又称绝对定位),只需要通过一个GPS接收器来确定位置。除了单点定位,还有差分定位(又称相对定位),可以通过增加一个参考GPS接收器来实现更精确的定位[8]。

1.3 地图API

高德地图是国内使用率较高的免费地图导航产品。高德地图的应用程序接口(Application Programming Interface,API)以HTTP接口形式为开发者提供基于高德地图访问地图数据的能力。开发者不需要访问源码也无需理解地图内部工作机制的细节,只通过接口即可使用各类型的地理数据服务。

本文使用的是高德API的逆地理编码。将GPS获取到的经纬度信息经过转换加密发送到指定的接口,高德地图就可以将其转换为详细的地址,且返回附近的兴趣点(Point of Interest,POI)信息[9-10]。

使用高德API时,开发者需要申请Web服务的密钥。系统将申请的密钥和其他必填参数通过HTTP请求一同发送,接收HTTP请求返回的数据并解析数据。

2 硬件系统

单片机选择Arduino。Arduino基于Arduino IDE环境编译。Arduino板上的微控制器通过Arduino的编程语言编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现的。相比其他单片机,Arduino简单清晰,无需了解其内部硬件结构和寄存器设置。另外,Arduino及周边产品相对质优价廉,可以节约学习成本,缩短开发周期。最重要的一点是,代码烧录直接通过USB线即可完成,不需要通过烧录器。

GPS模块选用U-BLOX芯片。该芯片体积小巧,性能优异,使用非常方便。GPS天线选择陶瓷天线。除了陶瓷天线,还可以选择需要额外供电的有源天线。相对无源天线,有源天线的功耗较大,成本较高,但是灵敏度要比无源天线高。本设计通过内置放大电路提高无源陶瓷天线的搜星速度。GPS天线的供电使用单片机输出端口的3.3 V电压即可。GPS模块的原理如图2所示。

为了确定GPS模块的工作状态,在芯片的TIMEPULSE端口连接PPS时钟脉冲输出脚状态指示灯。PPS指示灯有2个状态:常亮表示模块开始工作,但定位不成功;闪烁表示模块已经定位成功。

图2 GPS模块原理图

发送数据的GPRS模块选用了SIMCOM公司的SIM800芯片。相比于上一代已经停产且只能在中国大陆使用的SIM900A,SIM800芯片可以在全球使用,而且能够以更低功耗实现语音、SMS、数据及传真信息的传输。GPRS模块原理如图3所示。

3 软件系统

3.1 系统整体程序

在系统软件部分,先进行GPS模块部分的编程,再进行GPRS模块部分的编程。之后将两个程序结合起来,经过修改,得到系统整体程序。程序结构如图4所示。GPS模块的RX和TX接口与GPRS模块的TX和RX接口通过单片机相连。将两个模块的波特率设置为一致,都设置为9 600。

GPS模块与单片机开发板连接,加载编写程序后,可在串口监视器获取到数据,也可使用USBTTL工具在串口调试助手中获取数据。

GPRS模块SIM800需要独立供电(若采用SIM900A则不要独立供电),GPS模块可通过单片机的5 V输出端供电,二者均可采用独立电池进行供电。获取GPS数据的过程中,定义GPS模块的波特率为9 600。由于NMEA-0183协议中GPRMC指令(也可以使用其他指令如$GPGLL定位地理信息和$GPGGAGPS定位信息)含有所需要的信息,对该条指令进行解析,信息保存的位置是一定的,即使数据获取为空位置也会保留。因此,按照位置读取所需要的数据。在实际操作过程中,时间的获取速度远快于纬度和经度,而且经纬度获取是一致的,因此只要判断经纬度之中的一个是否为空就可以了。本文程序中,若判断纬度为空,则继续扫描GPS获取的信息。若判断纬度不为空,即可输出信息。在最终程序定义了若数据不为空,在单片机板的输出口和GND端放置的二极管亮,若数据为空,二极管不亮。这样,用户在定位过程中即可判断是否获取到了经纬度信息。

3.2 数据处理程序

GPRS模块将GPS数据发送到数据库。系统要将得到的数据处理并显示出来,需要连接数据库,从中获取GPS模块得到的经纬度和时间信息。调用过程如图5所示。

数据库中的经纬度信息是通过GPS定位系统得到的原始经纬度,数据为原始坐标。要将数据库中的数据通过网页显示出来,需要先建立一个连接数据库的文件,再建立一个将数据库中的信息显示在网页上的文件。原始坐标经过转化后,可以得到基于WGS-84坐标系的经纬度。由于国内不允许直接使用WGS-84坐标系标注地图,国内不同地图通常采用不一样的坐标系,因此数据必须经过加密成为火星坐标、百度坐标、搜狗坐标及图吧坐标等才可以正常使用。2002年,国家测量局通过加密WGS-84坐标系,创立了我国通用的坐标体系——火星坐标(GCJ-02)。原始坐标系转化过程如图6所示。

图3 GPRS模块原理图

图4 程序结构图

图5 数据库调用过程

图6 原始坐标系转化过程

高德地图(国内)使用的是火星坐标,因此最后将转换好的火星坐标发送到高德地图的API接口。高德地图的API接口可以返回直接的汉字地址,也可以以地图的形式显示出来。本文使用的是通过地图显示出来的方式。火星坐标发送过程如图7所示。

本文使用的高德地图API接口是基于个人版开发的。基于企业版的API可以获得更高的权限,并且使用次数和地址解析的速度有更明显的优势。

4 测试结果

测试得到的数据经过换算,得到WGS-84坐标系下的经纬度,经过加密,得到GCJ-02坐标系下的数据。数据在数据库中直接进行转化和加密并保存。系统调用保存的数据库,并将数据库中的文件显示出来,数据结果如图8所示。将此数据进行逆地址解析,得到具体的位置信息。测试数据经过高德API的逆地址解析后,可以在高德地图上正确地显示位置信息。

图7 火星坐标发送至高德API接口

图8 定位测试结果图

5 结 语

本文通过GPS定位系统定位,经过单片机Arduinio处理数据,再经过GPRS数据模块将数据发送至客户端,调用高德地图API实时显示位置。经过测试,该系统可以实现定位并在高德地图上实时显示位置信息。该设计实现了定位系统模块的集成化,缩小了体积,减轻了重量,提高了通用性和可靠性,应用前景广阔,具有良好的社会效益。

猜你喜欢

经纬度高德单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
江苏高德液压机械有限公司
江苏高德液压机械有限公司
基于经纬度范围的多点任务打包算法
自制中学实验操作型经纬测量仪
澳洲位移大,需调经纬度
高德贸易有限公司
Microchip推出两个全新PIC单片机系列