为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 基于嵌入式QT平台下GIS(GPS)电子定位系统设计

基于嵌入式QT平台下GIS(GPS)电子定位系统设计

2020-04-15 5页 doc 1MB 10阅读

用户头像 个人认证

油条

暂无简介

举报
基于嵌入式QT平台下GIS(GPS)电子定位系统设计基于嵌入式QT平台下GIS/GPS电子定位系统设计兰见春三明学院物理与机电工程学院08电子科学与技术[摘要]:本设计主要由三星ARM9芯片s3c2440、nandflash、norflash、sdram、群创7寸触摸屏、GPS模块等硬件组成,使用linux2.6.30.4内核,QT4.5嵌入式开发环境,mitab源码,madplay源码等等软件组成,软硬件组合搭建好嵌入式环境,实现电子地图的显示和定位、语音提示功能。具有精简、高效、调试简单的特点[关键字]:linux嵌入式QTmitabGPS/GIS引言1.1背景意义GPS是...
基于嵌入式QT平台下GIS(GPS)电子定位系统设计
基于嵌入式QT平台下GIS/GPS电子定位系统设计兰见春三明学院物理与机电工程学院08电子科学与技术[摘要]:本设计主要由三星ARM9芯片s3c2440、nandflash、norflash、sdram、群创7寸触摸屏、GPS模块等硬件组成,使用linux2.6.30.4内核,QT4.5嵌入式开发环境,mitab源码,madplay源码等等软件组成,软硬件组合搭建好嵌入式环境,实现电子地图的显示和定位、语音提示功能。具有精简、高效、调试简单的特点[关键字]:linux嵌入式QTmitabGPS/GIS引言1.1背景意义GPS是英文GlobalPositioningSystem(全球定位系统)的简称,GIS是在地理学、地图学、测量学和计算机科学等学科基础上发展起来的一门学科,目前市面上的导航仪大部分都是使用WinCE系统,界面很漂亮,支持很多PPC版的导航软件。但是WinCE不开源,对于嵌入式开发不利。本系统采用了开源linux做为系统内核,很好的支持了开发者的开发,同时也支持大量的开源软件。满足嵌入式开发者的各种需求。系统使用开源的mitab和QT4.5,解决了电子地图图形界面要求,搭配GIS开发软件mapinfo制作的基于WGS84坐标系的电子地图,与sirf第三代的GPS模块,共同实现了电子定位,同时调用madplayMP3播放器,实现语音播报功能。目前国内关于GPS/GIS的研究已经很火热了,关于GPS的周边学科也得到迅速发展,地图数据公司群雄崛起,导航软件也很出色,往嵌入式发展的趋势已经很明显。Linux平台下的开源导航软件很少,但是支持GPS的源码和工具还是很多,像GPSd,GPSdriver等,这些开源的工具软件给开发者提供很好的开发思路。同时QT4也是linux开发的利器,这几年QT发展迅猛,已超越MFC,仅次与java。最近Android(一种以Linux为基础的开放源码操作系统)操作系统很热门,大部分的导航软件的开发都有往安卓发展的趋势。当下苹果的mac操作系统和谷歌的Android系统竞争手持智能设备终端,已经趋于白热化了。综合上述信息,使用Linux内核+QT4+mitab+mapinfo地图制作嵌入式电子地图,是一种比较精简的做法,满足嵌入式平台小内存、小体积的要求,程序设计过程中,采用尽量压缩地图数据内存的方法,以提高嵌入式平台的反应速度与工作效率。1.2嵌入式发展和QT介绍1.2.1嵌入式的发展近几年,嵌入式系统产品日臻完善,并在全世界各行业得到广泛应用。嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。随着消费家电的智能化,嵌入式更显重要。像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(SetTopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都是典型的嵌入式系统。据预测,随着Internet的迅速发展和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。在中国,嵌入式软件发展过程中,政府已充分认识到它的重要作用,并在政策、资金等方面给予了大力支持。2004年国家发改委、科技部、商务部联合颁布的《当前优先发展的高技术产业化重点领域指南》,把嵌入式软件产业作为国家发展的一个重要领域。最近几年来,中国的嵌入式软件发展速度一直高于中国软件产业的发展速度和全球嵌入式软件的发展速度,在中国软件产业和全球嵌入式软件产业中所占的比重越来越大。目前,中国嵌入式软件产业在整个软件产业中的比重已经超过了三分之一强。从2006年至2010年,中国嵌入式软件产业规模仍将保持快速增长态势,年均复合增长率为25.8%,到2010年将达到3339.6亿元的规模。中国嵌入式软件产业的发展面临着良好的发展环境与机遇,这包括政府的重视与扶植、信息产业与传统产业的融合机遇、垄断局面尚未形成、中国制造的良好基础、自由软件运动的兴起等等。1.2.2QT简介Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE的基础。基本上,Qt同XWindow上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但Qt具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。信号和槽是QT自行定义的一种通信机制,它独立于的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为moc(MetaObjectCompiler)的QT工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。设计与系统2.1总体方案论证目前关于电子导航地图的方案有好多,选择一个合适的方案,实现在嵌入式平台下稳定运行显得尤为重要,下面是几种比较成熟的方案。方案一:使用谷歌地图API和百度地图API函数接口,实现地图浏览显示功能。下面是使用方案一在windows下的运行效果优点:实现方法简单,界面简介。缺点:需要网络支持,不能离线浏览地图,不利于嵌入式手持设备上应用。在windows下运行卡顿现象明显,由网速决定地图显示效果,在嵌入式linux下基本是不能运行的。方案二:下载地图图片在QTGraphicsView架构中添加,实现平移和缩放等等显示功能由于地图图片在高精度下,数据量很大,而且像素值巨大。这里考虑把大图分割成多张小图,小图片根据经纬度进行编号。当需要显示某个经纬度范围时,在QTGraphicsScene中实现多张图片无缝拼接。然后根据经纬度显示当前的位置。优点:界面质量比较高,显示效率比较高无缝拼接显示图片有效的降低了系统内存,提高了系统效率缺点:无缝拼接图片操作麻烦,显示区域较大(不能显示较小区域)下面是下载的拼接图片显示效果:从图中可以看出,显示区域较大,三明学院基本看不到再来看看google地球的效果从图中很明显的看到当放大到很大的时候图像毛边现象明显,显示比较模糊方案三:使用mitab源码解析地图信息或者使用数据库存储地图信息这两种方法都是现在比较流行的方法,特别是数据库存储地图信息,是一种万金油做法。只要是涉及到数据存储处理,常规做法都是使用数据库。而且嵌入式平台下数据库SQLite操作简单,节省内存,有效的提高了系统效率。Mitab是一个专用于GIS平台处理TAB、MIF等地图文件的源码。能够直接从地图文件中读取出经纬度、地图要素,中间省去了一些步骤,直接操作文件,接下来把数据交给QT去处理,显示地图界面,进一步提高了系统效率综合上面三种方法,得到运行在嵌入式上的最优方案:mitab源码解析地图文件2.2系统的体系结构设计根据上面得到的方案,设计出下面的系统架构硬件部分:操作系统层面:QT4图形界面(map_layer类中包括了mitab解析):2.3开发工具链Window下使用的开发工具:QtSDKbyNokiav2010.05(opensource)QT开发工具包VS2005Windows下编译mitab获取动态库文件SecureCRT.exe串口调试工具远程登录linux工具串口调试助手用于模拟GPS数据发送VMwareWorkstation虚拟机UltraEdit和Insight代码编辑查看工具MapInfoProfessional7.0SCP地图绘制软件MIFandTABMIF、TAB相互转换工具Google地球地图数据来源、后期调试工具Linux下使用的开发工具:4.3.3交叉工具链QT4.5包括QT/X11和QT/Embedsky硬件部分3.1系统硬件平台本系统使用的是天嵌科技的TQ2440开发板,TQ2440体积小,便于携带;接口丰富,易于扩展;功耗低。3.1.1处理器电路主控芯片为s3c2440的6层核心板,该核心板性能稳定、工艺精良部分电路的原理图3.1.2外围电路Nandflash部分Norflash部分Sdram部分3.2sirf3代GPS模块本系统使用的是韩国产的NSA-C3M3535BR的sirf第三代的GPS模块该模块提高了搜星的速度和定位精度(精确到小数点后4位)、冷启动时间也缩短了。GPS输出的数据格式遵循NMEA0183协议,后面GPS应用程序设计中只使用到GPEMC这一条语句读取出经纬度。$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>1)标准定位时间(UTCtime)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。2)定位状态,A=数据可用,V=数据不可用。3)纬度,格式:度度分分.分分分分(ddmm.mmmm)。4)纬度区分,北半球(N)或南半球(S)。5)经度,格式:度度分分.分分分分。6)经度区分,东(E)半球或西(W)半球。7)相对位移速度,0.0至1851.8knots8)相对位移方向,000.0至359.9度。实际值。9)日期,格式:日日月月年年(ddmmyy)。10)磁极变量,000.0至180.0。11)度数。12)Checksum.(检查位)3.3max232串口制作MAX232串口RS232转TTL用于模拟GPS数据格式和串口调试电子地图设计4.1地图设计方案一般使用最多的GIS软件有AutoCADMap3d和Mapinfo,这两款软件都有各自的优点和缺点,AutoCADMap3d对地图的3D模型绘制比较方便,而Mapinfo是2D地图绘制的主流,大多数的地图数据制造商都是使用后者,后者对其他程序的兼容性很好,并且有自己的编程语言,方便开发人员使用。所以,电子地图设计使用Mapinfo软件。4.2MapInfoProfessional简介MapInfo是美国MapInfo公司的桌面HYPERLINK"http://baike.baidu.com/view/5201.htm"地理信息系统软件,是一种数据可视化、信息地图化的桌面解决方案。它依据地图及其应用的概念、采用办公自动化的操作、集成多种数据库数据、融合计算机地图方法、使用地理数据库技术、加入了地理信息系统功能,形成了极具实用价值的、可以为各行各业所用的大众化小型软件系统。MapInfo含义是“Mapping+Information(地图+信息)”即:地图对象+属性数据。MapInfoProfessional7.0SCPMapInfoProfessional是一套强大的基于Windows平台的地图化解决方案,可以方便地将数据和地理信息的关系直观的展现,其复杂而详细的数据分析能力可帮助用户从地理的角度更好地理解各种信息;可以增强报表和数据表现能力,找出以前无法看到的模式和趋势,创建高质量的地图以便做出高效的决策;凭借其新特性和增强功能,MapInfoProfessional使得桌面地图化和分析功能更快和更容易-并可延伸至整个企业。MapInfoProfessional提供一整套功能强大的工具来进行复杂的商业地图化、数据可视化和GIS功能。通过MapInfoProfessional可连接本地及服务器端的数据库,创建地图和图表以揭示数据行列背后的真正含义。也可以定制MapInfoProfessional以满足用户的特定需要。支持Oracle8i完全读/写,通过OCI对Oracle8i及通过ODBC对其它数据源的实时访问。4.3电子地图设计一般地图都是由一个个地图要素组成,Mapinfo中分别定义了这九种地图要素:点(point)、直线(line)、折线(polyline)、区域(region)、圆弧(arc)、文本(text)、矩形(rectangle)、圆角矩形(roundedrectangle)、椭圆(ellipse)。每个要素由多个属性构成,如名称,是否显示,更新时间,点,对应点的经纬度等属性,每种要素的属性类型和个数是不相同的。但要素的名字和经纬度数据则是必须的。同时使用Mapinfo绘图时,可以把地图分为多层,每一层都可以显示响应的地图要素。mapinfo格式的地图是由四个文件构成的,如map.TAB,map.ID,map.MAP,map.DAT四个文件共同构成一个地图。如果是多层地图,每一层都是由这四个文件组成。4.3.1获取地图栅格文件绘制地图时使用的参考图,对比参考图绘制地图很方便,数据偏差较小。Mapinfo地图所需的栅格文件支持几乎所有的图片格式。所以直接使用截图工具在google地球上获取三明学院的地图图片4.3.2绘图坐标系的选择由于市面上的GPS模块大部分都遵循NMEA0183协议,NMEA0183协议中规定的经纬度是采用WGS84坐标系,为了省去坐标系转换,设计地图时同样采用WGS84坐标绘制,这样用mitab读取出来的经纬度就可以直接使用,省去了中间繁琐的坐标系转换。4.3.3分层次绘制地图分为4层来绘制,把4层全部显示出来就是我们所绘制的地图。Background层:该层中把三明学院分为南北区两部分,分别用不同颜色的画刷来显示。Build层:该层中把三明学院的建筑物都绘制出来,同时用不同颜色区分建筑物。红色:行政中心蓝色:教学楼绿色:宿舍区和田径场、蓝球场墨绿色:食堂黑色:商业区紫色:图书馆浅蓝色:教学辅楼Road层:该层中显示三明学院的主要道路。黄色:道路粉红色:阶梯、楼道Char层:该层中显示三明学院的建筑名称及标注信息。将上面的4层地图显示出来,在QTSDK中显示效果:(1000*1000像素)(使用VS2005编译mitab获取动态链接库)4.4TAB文件转换MIF与MID由于制作的地图是由.TAB、.ID、.MAP、.DAT组成,而mitab源码解析的文件是mid和mif格式的地图数据,所以要把TAB文件转换为MID和MIF文件。使用MapInfoProfessional自带的转换工具和MIFandTAB(网友制作的转换器),再做适当的修改。获取的正确的MIF和MID文件下面是MIF和MID的文件格式:MID中一般存放的标注信息,包括所需标注的内容和标注的位置。MIF中存放地图要素及坐标位置、画笔颜色、画笔大小、画笔线型、画刷颜色。REGION15地图要素:区域类型117.55947926.202542117.55947926.202782117.55990226.202782坐标位置:闭合区域的顶点坐标117.55990226.202542117.55947926.202542PEN(1,2,16711680)画笔的大小和颜色(RGB格式)、类型Brush(2,16711680,16777215)画刷的颜色(RGB格式)软件部分5.1GISmitab源码介绍Mitab是国外的一个开源项目,它是一个动态链接库,支持多个平台。程序可以调用库直接进行文件操作,实现地图文件中信息的读取。Mitab本身是C++编写的,它的功能很强大,不仅可以读取,也可写入即实现地图的编辑。同时,为了方便调用,此项目还提供了一个简便的C语言的函数接口,方便开发人员使用。下面列举部分函数加以说明:mitab_c_get_pen_color获取画笔颜色mitab_c_get_pen_pattern获取画笔类型mitab_c_get_pen_width获取画笔线宽mitab_c_get_vertex_x获取经度mitab_c_get_vertex_y获取纬度mitab_c_get_text获取文本信息还有好多函数,这里就不一一列举了。5.2QTGraphicsViewFramework简介QtGraphicsView提供了用于管理和交互大量定制的2D图形对象的平面以及可视化显示对象的视图widget,并支持缩放和旋转功能。GraphicsView使用BSP(二进制空间划分)树形可非常快速地找到对象,因此即使是包含百万个对象的大型场景,也能实时图形化显示。GraphicsView提供一个model和一个view。所谓model就是我们添加的种种对象,所谓view就是我们观察这些对象的视口。同一个model可以由很多view从不同的角度进行观察,这是很常见的需求。使用QPainter就很难实现这一点,这需要很复杂的计算,而Qt的GraphicsView就可以很容易的实现。GraphicsView提供了一个QGraphicsScene作为场景,即是我们添加图形的空间,相当于整个世界;一个QGraphicsView作为视口,也就是我们观察的窗口,相当于照相机的取景框,这个取景框可以覆盖整个场景,也可以是场景的一部分;一些QGraphicsItem作为图形元件,以便scene添加,Qt内置了很多图形,比如line、polygon等,都是继承自QGraphicsItem。设计程序时,我们先将所有的地图元素都添加到item中,让后再把item中的元素在Scene中显示,最后在主界面中显示Scene,这样地图就显示出来了。移动、缩放功能GraphicsView都自动帮你实现了。5.3GPS应用程序设计GPS模块输出的是TTL电平,S3C2440芯片的串口同样是TTL电平,所以中间不要再经过什么转换了,只需把两个串口交叉连接。GPS模块波特率为9600,设置和普通的串口差不多。由于Linux内核中包括了三星官方的开发板SMDK2410的配置,只需稍作修改就可以在TQ2440上使用,驱动程序就直接拿来用。GPS的应用程序设计的目的是为了解析GPS数据中的经纬度等信息。完成这个目的,可以参考单片机串口通信模式,首先要初始化串口,设置波特率、起始位、停止位等等,然后用中断或者是查询方式读数据。LINUX编程中为串口设置等问题得到了完美的解决,它提供一个库,波特率等的设置只需调用函数,输入参数,当然具体的设置远远没有这么简单。解决了串口初始化的问题,下面就是数据处理的问题。GPS模块输出的是ASCII码的字符型,而且每秒输出的数据量大,单片机处理的思想是:将接收到的数据(ASCII码)转换为2进制的数据,而且只能一位一位的转换,显示处理速度就慢很多了。Linux编程中提供了处理fifo数据的接口函数,一次处理的数据量大,使用strstr函数可以快速的获取一个数组的指定格式的起始位置,使用sscanf函数可以用一个数组中获取指定格式的数据,并且自动将数据转换为字符型,整型,浮点数据等等,相比单片机一个一个的解析数据要快得多,操作也跟简单。5.4madplay移植与使用Madplay的编译是参考国嵌的试验手册来做的,移植只需用交叉编译器编译即可。把编译好的madplay放在文件系统中Madplay*.mp3就可以播放mp3的歌曲了系统组合与调试6.1系统组合将上述的软硬件组合,添加mypoint类(定位点),设置在最上层显示,在QT程序中添加timerEvent事件,设置每秒读取一次GPS的数据,调用update(),实时刷新显示图像。同时在指定区域内设计程序,实现在某个区域内调用madplay播放器,实现语音播报功能。6.2调试由于地图是用软件绘制的,与栅格图像还存在偏差,栅格图像是从google地球上获取的,google地球与GPS输出的经纬度同样也有偏差,所以系统有两个误差,这两个误差都只是水平和竖直方向的漂移,应该是没有线性漂移的,所以只需要计算水平和竖直方向上的偏移就可以了6.2.1串口模拟调试从google地球上获取一点的坐标,再在绘制好的地图上获取这个点的坐标。经过多次测量,发现水平方向偏移较小,可以忽略,竖直方向偏移较大,多点平均值得到的数据为0.0093度。修改程序,用串口模拟GPS的数据格式,可以准确的显示当前点在指定位置上6.2.2室外调试系统连上GPS模块,实地测量经纬度数据,对比界面上的位置,记录数据 系统经度 实地经度 精度偏差 系统纬度 实地纬度 纬度偏差 正门 117.5595 117.5598 0.0004 26.2040 26.2037 -0.0003 理工一 117.5608 117.5608 0.0000 26.2013 26.2010 -0.0003 图书馆 117.5600 117.5601 0.0001 26.1980 26.1979 -0.0001 田径场 117.5601 117.5603 0.0002 26.1953 26.1954 -0.0001 南校门 117.5579 117.5583 0.0004 26.1976 26.1973 -0.0003 平均偏差 0.00022 -0.00022得到的偏移经纬度分别为:0.00022和-0.00022根据偏差修改程序,再次实地测量,记录数据 系统经度 实地经度 精度偏差 系统纬度 实地纬度 纬度偏差 正门 117.5597 117.5598 0.0001 26.2039 26.2037 -0.0002 理工一 117.5610 117.5608 -0.0002 26.2011 26.2010 -0.0001 图书馆 117.5600 117.5601 0.0001 26.1980 26.1979 -0.0001 田径场 117.5602 117.5603 0.0001 26.1956 26.1954 -0.0002 南校门 117.5582 117.5583 0.0001 26.1973 26.1973 -0.0000 平均偏差 0.00006 -0.00012平均偏差较小可以忽略,系统总体调试完成。从系统运行速度和显示速度来看,没有卡顿的情况,系统效率较高。总结本次毕业设计是在谢华老师精心指导下完成的。不管是论文的选题、资料查询,还是论文定稿过程中,谢华老师都给了我很多的帮助。她多次询问我的课题设计的进程,帮助我开拓研究思路,精心点拨、热忱鼓励。还要感谢在旁边一直无私帮助我的老师、同学,正是他们的帮助、鼓励支撑着我想办法尽量去解决遇到的每一个问题,使我顺利完成了毕业设计。当然,本次设计的成功与帮助我的网友离不开,他们给了我一些建议和宝贵的资料,谢谢他们的帮助。同时通过这次毕业设计,我熟悉了整个嵌入式软件开发的,从中得到锻炼,为我将来进入社会参加工作提供了帮助。最后,祝愿老师、同学们工作顺利,心想事成!
/
本文档为【基于嵌入式QT平台下GIS(GPS)电子定位系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索