基于arm-linux的gps导航系统毕业论文(编辑修改稿)内容摘要:
系统后,重启系统,将出现如下画面。 图 操作系统启动画面 Figure operating system to start screen 系统烧写成功 卫星接收测试 卫星接收测试的目的是检测接收到卫星的数量,以便在接收到相同卫星的情况下,检测 gps 信号。 测试位置:四川省成都市。 第一次测试:位置 — 室内 卫星数量 0 如下图: 20 图 第一次卫星接收测试 Figure The first test satellite reception 第二次测试:位置 — 室外空旷地带 卫星数量 7 如下图: 图 第二次卫星接收测试 Figure The second test satellite reception 第三次测试:位置 — 街道 卫星数量 6 如下图: 21 图 第三次卫星接收测试 Figure The third test satellite reception 经测试,在室内不能接收到卫星的 gps 信号。 故此系统只能在户外使用。 地图显示测试 地图显示测试的目的是测试载入地图的正误、验证地图上下左右移动的功能。 第一次测试: 能实现上下左右移动,显 示地图如下图: 22 图 第一次地图显示测试 Figure The first map shows test 第二次测试:能实现上下左右移动,显示地图如下图: 23 图 第二次地图显示测试 Figure The second map shows test 第三次测试:能实现上下左右移动,显示地图如下图: 图 第三次地图显示测试 Figure The third map shows test 经测试地图能准确的载入,并能实现上下左右移动的功能 gps 信号检测测试 Gps信号测试的目的是测试 gps 信号的精确度,测试数据列于表 3中。 表 3 gps 数据测量表 测试次数(次) 第一次 第二次 第三次 24 显示经纬度 东经: 北纬: 东经: 北纬 : 东经: 北纬: 实际经纬度 东经: 北纬: 东经: 北纬: 东经: 北纬: 误差计算 % % % 从上表可以看出, gps 数据精确度较高,误差都在 %左右 功耗测试 测试环境:户外 系统使用硬件: gps 模块、 sd 卡、液晶屏 测试次数(次) 第一次 第二次 第三次 电流 300 毫安 350 毫安 320 毫安 电 压 功耗 从上表可看出,系统功耗在 1w左右。 能满足设计技术指标。 其他测试 1)地图路径变更测试。 功能实现,测试通过 2) gps串口波特率设置。 功能实现,测试通过 测试结果分析 由以上的测试数据可以看出:本 GPS导航系统能很好地实现题目要求的各项功能。 测试期间运行稳定,基本达到了设计要求。 5 总结 25 本系统成功的模拟了个人手持 gps 导航系 统。 用户通过点击触摸屏幕、方便的使用软件。 实现了地图的显示、拖动; gps 信息、卫星数量的显示;地图路径的更改; gps波特率的更改的功能。 系统低功耗、高处理速度、操作简易、界面有好。 已具有一定的实用价值。 通过这次毕业设计,我在更加牢固 、灵活地掌握了所学的专业知识的同时。 大量学习了嵌入式方面的相关知识: arm 体系结构、操作系统、 c++编程、 shell 编程、硬件驱动程序。 参考文献: [1] 杜春雷 ARM 体系结构与编程 清华大学出版社 20200812 [2] c++语言程序设计(第三版) 郑莉 董渊 张瑞丰 编著 清华大学出版社 20201011 [3] 嵌入式系统开发 齐宇 徐俊 编著 人民邮电出版社 20200605 [4] [美 ]Douglas Boling 嵌入式 linux 编程 北京科彦科技发展公司 译 北京大学出版社 20200312 [5] 张洪斌 QT 编程指南 电子科技大学出版社 20200612 [6] 李先力 文苍茂 GPS 原理及应用清华大小而出版社 20200827 [8] 李新峰 何广生 赵秀文 基于 ARM9 的嵌入式 Linux 开发技术 电子工业出版社20200318 [9]Thomas Devices [M]. PrenticeHall Inc, New jersey 19990519 致谢 至此,我的毕业设计已经基本完成。 回想过去的点点滴滴,如果没有学校、学院、老师、同学的关心和帮助,我也无法按期完成这令我满意的作品。 在此,我首先感谢学校和学院为我提供 优越的实验场所和器材,使我能够更加方便、顺利地进行作品设计与调试,减少了设计周期; 其次,我要感谢指导老师周永宏老师在百忙之中抽出时间同我一起探讨系统构架和软件的编写,并不厌其烦地替我修改论文,给我了莫大的帮助,并使我学到了很多东西。 周老师严谨负责的治学态度,给我留下了深刻的印象,将使我终身受益。 我再次对周老 26 师这一年多来对我的关心和帮助表示最诚挚的谢意; 最后,向在整个设计过程中关心和帮助过我的其他老师和同学致谢。 附录: 附录 1:测试仪器 表 7 测试仪器设备清单 序号 型号、名称 用途 数量 1 PC机 编译程序 1 2 UT33D 数字万用表 测量各电路工作情况 1 3 Gps 导航仪 测试显示的 gps正误 1 4 vm 虚拟机 测试操作系统 1 5 成都、南充市区地图 测试显示地图正误 2 6 精密电流、电压表 测试系统功耗 2 附录 2:部分参考源程序 Maintab 类程序: include include include include include include include include include include include include include include include include include 27 include include include include include //============ include include include include include MainTab::MainTab(QWidget *parent,const char * name):QTabWidget(parent,name) { GpMainLayout=new MainLayout。 GpGPS=new GPS。 GpConfig=new Config。 GpConfigGetObject(GpMainLayout)。 GpConfigGetObject(GpGPS)。 GpConfigsetCOMBDRate()。 GpConfigsetMapPath()。 addTab(GpMainLayout,QString(MAP))。 addTab(GpGPS,QString(GPS INFO))。 addTab(GpConfig,QString(CONFIG))。 timerid=startTimer(1000)。 } void MainTab::timerEvent(QTimerEvent * event){ GPS_DATA mGPSData。 int i。 PDF(3,TABMaster timer alarm!\n)。 //==================设置好卫星信号强度数据。 GpGPSmpSatSNRSetData(GpMainLayoutpzhDrawRectpGpsdrivermGPSStaSNR)。 //===================== GpMainLayoutpzhDrawRectpGpsdriverGetData(mGPSData)。 28 GpGPSmpGPSinfoSetData(mGPSData)。 //=============== PDF(3,TABMaster timer end\n)。 } int main(int argc, char** argv) { QApplication app(argc,argv)。 MainTab t。 (amp。 t)。 ()。 return ()。 } Gps_driver 类程序: include include include sys/ include sys/ include include /*NMEA 0183 的 Checksum 只能作 8位异或包括 ,的运算,但不包括 $ 及 * 定义符号的运算。 最后的两位是检验码的 hex(16 进制 )转成 ASCII 两个符号 (09, AF)。 */ char nmea_checksum(char *sentence) /* is the checksum on the specified sentence good? */ { unsigned char sum = 39。 \039。 char c, *p = sentence,csum[2]。 c = *p。 while (c != 39。 *39。 ) { sum ^= c。 p++。 c=*p。 } //================== csum[0]=sumamp。 0x0f。 if(csum[0]=10) csum[0]+=39。 A39。 else csum[0]+=39。 039。 //======== csum[1]=(sumamp。 0xf0)4。 if(csum[1]=10) csum[1]+=39。 A39。 else csum[1]+=39。 039。 29 c= (csum[1]==toupper(p[1]) amp。 amp。 csum[0]==toupper(p[2]) )。 return c。 // 0 is error } int zh_gpsDriver::fifoctl(FifoType * priv ,int data ,const unsigned char flag) { int temp = 1。 unsigned int widx = 0。 widx = privw_idx。 /* Save the old index before proceeding */ if (flag == WR) //write data { /* Save it to buffer */ if (((privw_idx + 1) % BUFSIZE) == privr_idx) { /* Adjust read index since buffer is full */ /* 无法写入来处理 fifo 满。 can wd to fifo */ //privr_idx = (privr_idx + 1) % BUFSIZE。 //保证是环状的 FIFO。 PDF(2,buffer full\n)。 return 1。 } privbuffer[privw_idx] = data。 privw_idx = (privw_idx + 1) % BUFSIZE。 //保证是环状的 FIFO。 return 0。 } else //read data { if ((privr_idx == widx)) { PDF(2, buffer empty\n)。 return 1。 } else {。基于arm-linux的gps导航系统毕业论文(编辑修改稿)
相关推荐
下图所示的界面,在 Project Name下键入工程的名字,这里采用默认模式 Project1, 在 Project Directory下键入工程保存的路径: 设置好后,点击 OK,出现如下图: 16 四、 添加自己的源码 点击菜单 Project下的 Add File To Project„„ ,在弹出的窗口中,浏览自己的 Project文件夹下面的程序代码,将代码添加到创建的项目。
0x0 _ (0x2020001) ROM( Nandflash): K9F2G08,128字节 ; K9F2G08,256字节。 并没有映射到总线空间,近似认为是个外接 U盘。 在 nandflash启动模式下,上电后只有前 4K代码会自动运行(一般远远大于 4K),所以,其余部分要用户写程序复制到内存运行。 移植 Linux操作系统后,就选择这种模式。 SDRAM连接:地址线并联,数据线串联
算能力。 整体设计融合了 MMU、 AMBA BUS 和 Harvard(哈佛)结构。 具有独立的 16KB 指令 Cache 和 16KB 数据 Cache。 6 其内部结构框图见 图 11: 图 11 S3C2440A结构框图 7 硬件系统整体结构 体系结构: ( 1) 为手持设备和通用嵌入式应用提供片上集成系统解决方案。 ( 2) 16 或者 32 位 RISC 体系结构和 ARM920T
远来说,希望操作人员只要给出要完成的任务,而机器能自动形成完成该任务的步骤,并自动完成它。 另一方面是,提高智能移动机器人的适应性,提高智能移动机器人适应环境变化的能力,这是就智能移动机器人与环境的关系而言,希望加强它们之间的交互关系。 智能移动机器人涉及到许 多关键技术,这些技术关系到智能移动机器人的智能性的高低。 这些关键技术主要有以下几个方面:多传感信息耦合技术
所需的宗地 取得费 用 默认值 ; 市场比较法、假设开发法中所需的 默认值 等 ,如表 1。 表 1估价参数数据库 字段 字段类型 字段长度 缺省值 必填 土地还原利率 双精度 10 0 是 地价指数 双精度 10 0 否 容积率修正系数 双精度 10 0 是 楼层分配比例 双精度 10 0 是 房屋的耐用年限 整型 10 0 是 重置价 双精度 10 0 否 残值率 双精度 10 0 否 (
图 23:控制点配准数据 ( 3)在 Arccatalog内新建图层,并在 ArcMap软件里分图层进行矢量化,并添加对应属性数据,实现空间数据和属性数据相关联。 校园建筑物三维模型的建立 校园的建筑物 (主要是楼房 )在二维电子地图中表现为面状对象,只能反映楼房底面分布的平面坐标信息,并没有建筑物高度和其外结构的三维数据,因此,要对这些数量庞大、结构复杂的地物进行建模非 常困难。