基于Android手机的六旋翼飞行器状态实时监测系统Word格式文档下载.docx
- 文档编号:5784173
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:78
- 大小:3.16MB
基于Android手机的六旋翼飞行器状态实时监测系统Word格式文档下载.docx
《基于Android手机的六旋翼飞行器状态实时监测系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Android手机的六旋翼飞行器状态实时监测系统Word格式文档下载.docx(78页珍藏版)》请在冰点文库上搜索。
1.1研究的相关背景1
1.1.1六旋翼飞行器的发展1
1.1.2飞行器的状态参数2
1.2设计目的2
1.3论文的构成概要2
2Android、ARMTinyM0开发板与无线数传模块4
2.1系统概述4
2.2Android软硬件平台介绍4
2.2.1Android软件平台架构4
2.2.2Android基本组件7
2.2.3Android硬件平台7
2.2.4Android开发环境搭建8
2.3ARMTinyM0开发板介绍9
2.3.1ARMTinyM0开发板9
2.3.2ARMTinyM0开发环境搭建10
2.4无线系统12
2.4.1蓝牙技术及HC-06蓝牙模块12
2.4.2485MHz无线传输技术及FT52D数传模块14
3系统各功能模块的设计与实现16
3.1系统构成16
3.1.1系统模块构成16
3.1.2系统功能概述16
3.2数据采集模块17
3.2.1温度数据采集17
3.2.2气压数据采集19
3.2.3高度数据采集19
3.2.4航线数据采集21
3.3485MHz远距离无线数传模块22
3.3.1485MHz无线子系统的构成22
3.3.2模块收发功能实现22
3.4蓝牙无线数传模块23
3.5Android数据处理显示模块24
3.5.1Android蓝牙控制功能的实现24
3.5.2Android数据动态曲线显示功能的实现29
4系统集成31
4.1系统集成31
4.2TinyM0端数据采集软件设计与实现32
4.3Android端监测软件设计与实现36
5结论41
5.1本设计所做的主要工作41
5.2本设计实现的功能41
5.3本设计的不足之处41
参考文献42
致谢43
外文原文44
中文翻译54
1绪论
1.1研究的相关背景
1.1.1六旋翼飞行器的发展
六旋翼飞行器,是一种具有六个旋翼的旋翼航空器。
由每个轴末端的电动机转动,带动旋翼从而产生上升动力。
旋翼的角度固定而不像直升飞机那样可变。
通过改变不同旋翼之间的相对速度可以改变推进力的扭矩,从而控制飞行器的运行轨迹。
六旋翼飞行器以其独特的结构和简洁的系统构架与传统飞行器相比有明显的优势。
(1)以高能电池作为能量与油动力飞行器相比噪音更低,可实现低空飞行不易察觉。
(2)垂直起降可在较狭小的空间就可以稳定飞行,与定翼飞行器相比有不受场地限制的优势。
(3)简单的机械部件组成(仅电机轴承为机械部件)与传统直升机(有较复杂的机械部件与传动结构)相比,维护相当简单。
(4)体积小、重量轻、载重量大是六旋翼飞行器的一个明显优势。
(5)整机全电子增稳,操作简单。
自主导航可实现全自动飞行。
性能优异的动力系统提供了机动灵活的飞行姿态,抗风能力强。
六旋翼飞行器在各个行业的应用有一下几点:
(1)公安系统的应用
六旋翼飞行器具有便携、质轻、飞行稳定、噪音低等特点,携带影像设备与侦测设备可以为秘密侦查提供强有力的手段,尤其是人不易接近的区域,可以提供空中第一手影像资料。
同样在群体性事件中也可以发挥巨大的作用,除侦查外甚至可以携带小型催泪瓦斯进行空中投掷。
(2)消防行业的应用
现场火灾的蔓延、林区火势的详情、高层起火的救生等方面都是消防工作部署的关键,多轴飞行器可以到现场迅速升空,有了高度就能把详细情况实时传送到地面指挥车,可以为消防部署提供真实有效地参考。
(3)电力系统的应用
高压线路的巡视,高压线塔的检修维护是一个长期而艰巨的工作,有了六旋翼飞行器这一有力的工具,让线路巡视、线塔检修成为简单易行的工作。
尤其是在多山地区的传输线路,更能发挥飞行器的优势。
同样在交通巡查、油田管路巡查、高铁高架巡查等都比较类似。
(4)农业行业的应用
我国作为农业大国,农作物病虫害的防止任重而道远。
往往像水稻田等类似的农药喷洒一直都是人力有所不及。
多轴飞行器以稳定飞行和操作简单的特性,携带药液进行低空喷洒,可以实现喷洒均匀,药效好,极大的节约了人力,实现高效率作业。
飞行器携带病虫色谱摄影设备还可以对大面积植被进行病虫害监测和预警,做到及早发现,及时治理。
(5)影视行业的应用
小型飞行器飞行相对不稳定。
公司多年来致力于飞行器功力系统与影像稳定方面,现在的六旋翼飞行器可以携带高清摄像机、高画质单反相机进行稳定飞行,可完成空中的视频航拍和摄影航拍。
而且六旋翼飞行器可以尽可能的低空飞行达到动感的视频效果,这也是载人直升机不能完成的超低空飞行,填补了在超低空领域航拍的空白。
1.1.2飞行器的状态参数
飞行器状态参数可归结为以下几类:
(1)飞行参数——飞行高度、速度、加速度、姿态角和姿态角速度等;
(2)动力系统参数——飞行器转速、温度、燃油量、进气压力、燃油压力等;
(3)导航参数——位置、航向、高度、速度、距离等;
(4)武器瞄准系统参数——目标的熟读、温度、高度、雷达警告、攻击警告等;
(5)生命保障系统参数——座舱温度、湿度、气压、氧气含量、氧气储备量等;
(6)飞行员生理参数——飞行员脉搏、血压、睡醒状态等;
(7)其他系统参数——电源系统参数、设备完好程度、结构损坏程度等。
本毕业设计所涉及的状态参数有:
温度,气压,高度,航线。
MS5534B气压传感器来获得气压值和温度值,并利用已得气压值和温度值来估测六旋翼的高度值,利用GPS_MSP430F149_V1模块来测得六旋翼的位置。
1.2设计目的
本设计的目的是基于Android技术和蓝牙技术设计并实现一个六旋翼飞行器姿态控制系统。
该系统由Android手机、TinyM0开发板、HC-06-S蓝牙模块、FT52D数传模块、六旋翼飞行器及多种传感器组成。
一方面,通过Android手机的蓝牙串口与六旋翼飞行器建立连接。
另一方面,通过Android手机的蓝牙串口采集六旋翼飞行状态参数信息并以图像的方式对信息进行显示。
在设计实现的过程中,主要工作包括Android软件编程,单片机开发技术,蓝牙协议分析,HC-06-S蓝牙模块、FT52D数传模块和多种传感器分析。
通过一个完整的系统分析、设计和实现的过程,我掌握了硬件分析和软件设计的流程,学会了如何分析问题,如何通过一些测试方法找到问题的根源,并且解决问题。
通过本次设计,我在对专业知识的理解、掌握上都有了提高,对嵌入式领域也有了一定的认识和收获。
1.3论文的构成概要
本论文共分为5章。
第一章:
绪论。
介绍本设计涉及的六旋翼飞行器的的发展及飞行器的状态参数,同时对设计的目的和要求进行概要说明。
第二章:
Android开发平台以及ARM开发板TinyM0的介绍。
首先介绍了软件开发采用的软硬件平台,以及关于Android的一些基本知识。
然后介绍了ARM开发板,即TinyM0开发板以及其开发环境。
第三章:
系统各模块的设计及其功能的实现。
介绍了数据采集模块,433MHz远距离无线数传模块,数据转发模块,蓝牙无线数传模块及Android数据处理显示。
第四章:
系统整体功能的实现及测试。
介绍系统的构成,对系统中重要模块的实现工程进行了介绍,包括Android端监测软件的实现,TinyM0端数据采集软件的实现,数据转发软件的设计和实现并对系统的整体性能进行测试。
第五章:
结论。
总结毕业设计所做的主要工作、实现的功能和存在的不足,并介绍了自己在设计和实验过程中掌握的设计方法和心得体会。
2Android、ARMTinyM0开发板与无线数传模块
2.1系统概述
本系统组成如图2-1所示。
主要的的功能有:
(1)Android蓝牙控制功能。
(2)Android数据动态曲线显示功能。
图2-1系统构成
2.2Android软硬件平台介绍
2.2.1Android软件平台架构
对操作系统而言,必须做到设计合理、层次分明,同时还需考虑整个系统的结构要聚耦适当,Android系统是基于linux内核的,因此还必须具备开源的特性,以符合开源人员共同工作。
从系统的组成要件来讲,Android平台架构包括硬件设备、板级支持包、驱动程序、操作系统内核、程序运行库,运行框架,应用程序等,它们的有机结合和协同工作共同完成了整个系统的正常运行和对事务的处理。
依据Google开源资料可知,整个系统由Linux内核、程序库、AndroidRuntime、应用程序框架和应用程序等5部分组成,系统架构如图2-2所示。
图2-2Android系统平台架构
参照图2-2,由上而下对组成系统各部分的主要组件作以下描述。
(1)Linux内核
Android基于Linux2.6内核,但并非完全照搬内核,而是对内核作了部分增删和修改,在Linux2.6内核的基础上,Android核心系统实现了安全性、内存管理、进程管理、网络协议栈和驱动模型等功能,Linux内核也同时作为硬件和软件栈之间的抽象层。
硬件驱动程序:
完成与各种硬件的通信,Linux内核提供了大部分设备的驱动程序,如显示屏,摄像头,内存,键盘,,无线网络,音频设备,电源等组件。
系统内存管理:
对所有可用的内存进行统一编码管理,定义一整套内存定位,使用与回收的策略。
系统进程管理:
内核管理进程的创建与销毁,管理进程间的通信,以及采取必要的措施避免死锁等内容。
网络管理系统:
无线网络设备工作原理,内核掌控如何读取网络设备中的缓存数据。
(2)程序库
程序库是指可供使用的各种标准程序、子程序、文件以及它们的目录等信息的有序集合,Android包含一些C/C++库,,Android系统中不同的组件通过应用程序框架可以使用这些库,以下是一些核心库:
SurfaceManager:
管理显示子系统,并且为多个应用程序提供2D和3D图层的无缝融合;
MediaFramework:
基于OpenCORE的多媒体框架,支持多种常用的音频、视频格式文件的回放和录制,同时支持静态图像文件。
SQLite:
一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
OpenGLES:
3D图形库,用于3D图形渲染,该库可以使用3D硬件加速。
FreeType:
位图(Bitmap)和矢量(Vector)字体显示。
WebKit:
支持Android浏览器和一个可嵌入的Web视图。
SGL:
2D图形库,用于2D图形渲染。
Libc:
一个从BSD继承的标准C系统函数库,它是专门为基于嵌入式Linux设备定制的。
(3)AndroidRuntime
Android运行库包括两部分:
一是核心库,二是自身的虚拟机。
核心库提供Java编程语言核心库的大多数功能。
Dalvik虚拟机是Google专为Android开发的,比SunJava虚拟机的效率更高,功能也更为复杂,以更好的支撑Android平台,并拥有独立的版权。
每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,Dalvik虚拟机执行.dex的可执行文件,该格式文件针对小内存的使用进行了优化,同时虚拟机是基于寄存器实现的,所有的类由Java编译器编译,然后通过SDK中的相应工具转化成.dex格式,最后由虚拟机执行。
(4)应用程序框架
应用程序框架是指定义了一个应用程序运行所必须的全部功能组件,开发者也可以访问核心应用程序所使用的API框架。
该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,并且任何其他的应用程序都可以使用其所发布的功能块(应该遵循框架的安全性限制)。
同样,该应用程序的重用机制也使用户可以方便地替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统,其中包括:
①活动管理器(ActivityManager):
用来管理应用程序生命周期,并且提供常用的导航回退功能。
②丰富而又可扩展的视图(Views):
可以用来构建应用程序,它包括列表(Lists)、网格(Grids)、文本框(TextBoxes)、按钮(Buttons),甚至包括可嵌入的Web浏览器。
③内容提供器(ContentProviders):
使得应用程序可以访问另一个应用程序的数据,或者可以共享它们自己的数据。
④资源管理器(ResourceManager):
提供非代码资源的访问,如本地字符串、图形和布局文件(LayoutFiles)。
⑤通知管理器(NotificationManager):
使得应用程序可以在状态栏中显示自定义的提示信息。
Android程序框架体显了“统一”与“兼容”的原则,其优势归纳为:
①任何一个应用程序都可以发布它的功能块;
②所有的应用程序在Android平台上都是平等的;
③所有的应用程序与资源都被按类别进行分别管理;
④所有程序各司其职。
(5)应用程序
Android系统发布时,会同一系列核心应用程序和常用程序一起发布,如常用的手机功能程序,包括语音电话、通讯录、短信收发、照相、话机设置等;
数据应用程序,包括邮件工具,日程表,浏览器,地图导航等,以及AndroidMarket上的各种应用程序;
所有的应用程序都是使用Java语言编写。
2.2.2Android基本组件
应用程序组件是一个Android应用程序的基本构造块。
每个组件都是系统可以进入你的应用程序的切入点。
不是所有的组件都是实际的切入点,它们之间一些是互相依赖的,但每一个的存在都作为自己的实体,扮演着特定的角色,每个组件都是一个独特的建筑块,它可以帮助确定您的应用程序的整体行为。
有四种不同类型的应用程序组件。
每种类型提供不同的目的,并具有明显的生命周期定义组件如何被创建和销毁。
(1)activity
一个activity代表与用户交互的单个界面。
例如,电子邮件应用程序可能有一个activity用来显示新的电子邮件列表,一个activity用来撰写电子邮件,另一个activity用来阅读电子邮件。
虽然每个activity一起形成在电子邮件应用程序中有凝聚力的用户体验,但每一个activity都是相互独立的。
因此,不同的应用程序可以启动这些活动中的任何一个(如电子邮件应用程序允许的话)。
例如,照相机的应用程序可以启动撰写电子邮件的activity,构成新的邮件,为了共享一个图像的用户。
(2)service
service是运行在后台执行长时间运行的操作或执行远程工作进程的组件。
service不提供用户界面。
例如,一个服务可能会在不同的应用程序中播放音乐,也可以获取在网络上的数据而不会阻塞用户交互的活动。
另一个组件,如一个activity,可以启动该服务,并让其绑定到它,使得与它进行交互。
(3)contentprovider
contentprovider管理着应用程序数据的共享集。
你可以将数据存储在文件系统中,SQLite数据库,网络上,或任何其他您的应用程序可以访问的持久性存储方式。
通过contentprovider,其他应用程序可以查询,甚至修改数据(如果这个content允许的话)。
例如,Android系统提供了管理用户的联系人信息的contentprovider。
因此,具有适当权限的任何应用程序都可以通过contentprovider(如ContactsContract.Data)来读取和写入有关某一个人的信息的一部分。
contentprovider也可用于在你的应用程序中读取和写入私有的数据,而不是共享的。
例如,记事本应用程序使用一个contentprovider,以保存笔记。
(4)broadcastreceive
broadcastreceive是响应系统范围的广播公告的组件。
许多广播由系统发出,例如,广播宣布,该显示屏已经关闭,电池电量低或图片被捕获。
应用程序也可以发起广播,例如,让其他应用程序知道某些数据已经被下载到设备上,可供他们使用。
虽然广播接收机不显示用户界面,它们可以创建一个状态栏来通知用户广播事件发生。
更常见的是,对于其他组件而言,广播接收器仅仅是一个“网关”,承担非常小的一个工作量。
例如,它可能会启动一个服务来执行基于事件的一些工作。
2.2.3Android硬件平台
目前可供程序开发的Android平台版本从1.5至4.4,市场上的Android手机或平板所安装的Android版本主要为2.2、2.3和4.0。
本毕业设计中相关实验硬件平台为华为公司生产的智能手机,型号为C8813Q,搭载操作系统为Android4.1,支持多点触控,内置蓝牙。
华为C8813Q外观如图2-3所示。
图2-3华为C8813Q外观
2.2.4Android开发环境搭建
(1)登陆
图2-4Android下载界面
点击图中蓝色按钮,开始现在下载ADT套件。
在ADT套件包括需要开始开发应用程序的一切:
①Eclipse+ADT插件;
②AndroidSDK工具;
③Android的平台工具;
④最新的Android平台;
⑤用于Android模拟器。
android-sdks文件夹下包含,如图2-5所示。
图2-5SDK文件夹内容
(2)启动SDKManager.exe,即可看到安装界面,如图2-6所示。
图2-6SDKManager
选择需要安装的工具,点击InstallPackages即可安装开发所需要的工具。
这时开发环境搭建成功。
2.3ARMTinyM0开发板介绍
2.3.1ARMTinyM0开发板
TinyM0是广州致远电子股份有限公司为广大企业用户、电子工程师和高校师生精心设计的Cortex-M0开发平台,核心控制器是基于NXP公司LPC1100系列芯片,应用简单灵活。
LPC1100系列微控制器采用ARM公司最新发布的Cortex-M0内核,工作频率高达50MHz,功耗低至110μA/MHz,性能卓越、应用简单,更突出的是,它能够显著降低所有8/16位应用的代码长度,并且是目前市场定价最低的32位MCU,其价值和易用性比现有的8/16位微控制器更胜一筹,为追求ARM架构的8/16位用户提供了一种全新的32位解决方案。
此外,Cortex-M0内核指令向上兼容Cortex-M3内核,LPC111x系列LQFP48引脚封装的芯片和LPC1300系列LQFP48引脚封装的芯片完全兼容。
TinyM0开发板实物图如图2-7所示。
图2-7TinyM0开发套件
2.3.2ARMTinyM0开发环境搭建
TKStudio集成开发环境(又称TKStudioIDE)是广州致远电子有限公司开发的一个微处理器软件开发平台,是一款具有强大内置编辑器的多内核编译调试环境,支持80
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 手机 六旋翼 飞行器 状态 实时 监测 系统