基于android手机的多轴飞行器姿态控制系统_第1页
基于android手机的多轴飞行器姿态控制系统_第2页
基于android手机的多轴飞行器姿态控制系统_第3页
基于android手机的多轴飞行器姿态控制系统_第4页
基于android手机的多轴飞行器姿态控制系统_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ANDROID手机的多轴飞行器姿态控制系统摘要随着ANDROID开发技术的日趋成熟,基于ANDROID操作系统的手机使用也越来越广泛,从而ANDROID手机的音频接口技术的发展也引起了软件开发人员的广泛关注,可以利用音频接口进行相关的控制。音频接口通常与前置麦克、线路输入和其他一系列的输入设备配合使用。在深入理解ANDROID开发技术和音频接口后,构建了一个小型控制系统。该系统中通过ANDROID平台播放纯音文件,纯音文件播放使得音频接口输出正弦波信号,并通过ANDROID端的程序控制信号的幅度和频率。ANDROID端通过音频线与ARM开发板连接,ARM开发板将接收的信号转换为遥控器所需的模拟信号,从而控制遥控器发出无线电波控制多轴飞行器的姿态。ANDROID端的音频接口输出四路信号,左、右两个声道的幅度和频率信号分别对应多轴飞行器的俯仰,横滚,偏航和油门四个姿态。该设计最终实现了将ANDROID平台输出的音频信号转换为四路的数字信号,还未能在实体的多轴飞行器上进行测试。关键词ANDROID;音频;单片机THEMULTIROTORATTITUDECONTROLSYSTEMBASEDONANDROIDABSTRACTWITHTHEMATURINGOFANDROIDDEVELOPMENTTECHNOLOGY,BASEDONTHEANDROIDOPERATINGSYSTEMISBECOMINGMOREANDMOREWIDELYUSEDSOTHEANDROIDMOBILEPHONEAUDIOINTERFACETECHNOLOGYDEVELOPMENTALSOCAUSEDWIDEATTENTIONOFSOFTWAREDEVELOPERS,CANUSETOCONTROLAUDIOINTERFACEAUDIOINTERFACEANDPREMIKEUSUALLY,LINEINPUTANDAHOSTOFOTHERINPUTDEVICESINTHEDEEPUNDERSTANDINGOFTHEANDROIDDEVELOPMENTTECHNOLOGYANDAUDIOINTERFACEIBUILTASMALLCONTROLSYSTEMTHESYSTEMTHROUGHTHEANDROIDPLATFORMINTHEPLAYPURETONEFILES,PURETONEFILEBROADCASTAUDIOINTERFACEOUTPUTSINEWAVESIGNAL,ANDTHROUGHTOTHEANDROIDPROGRAMCONTROLSIGNALAMPLITUDEANDFREQUENCYANDROIDTHROUGHAUDIOLINECONNECTEDTOTHEARMDEVELOPMENTBOARD,ARMDEVELOPMENTBOARDWILLRECEIVESIGNALSINTOANALOGSIGNALSREQUIREDFORREMOTECONTROL,REMOTECONTROLTOCONTROLARADIOCONTROLMULTIAXISVEHICLEATTITUDEANDROIDSAUDIOOUTPUTINTERFACEFOURWAYSIGNAL,THEAMPLITUDEANDFREQUENCYOFTHELEFTANDRIGHTTWOCHANNELSIGNALSRESPECTIVELYCORRESPONDINGTOTHEPITCHOFMULTIAXLEVEHICLEROLLANDYAWANDTHETHROTTLEFOURGESTUREFINALLYACHIEVEDTHEDESIGNOFTHEANDROIDPLATFORMOFTHEOUTPUTAUDIOSIGNALCANBECONVERTEDINTOFOURDIGITALSIGNALOFTHEROADBUTNOTONTHEENTITYOFMULTIAXLEVEHICLETESTKEYWORDSANDROIDAUDIODEVELOPMENTBOARD目录摘要IABSTRACTII1绪论111研究的相关背景1111多轴飞行器的发展1112多轴飞行器的控制方式2113多轴飞行器的手机控制方法212设计目的213论文的构成概要32ANDROID开发平台及ARM开发板421系统概述422ANDROID软硬件平台介绍4221ANDROID架构4222ANDROID硬件平台6223ANDROID开发环境623ARM开发板TINYM0介绍9231TINYM0开发板9232TINYM0开发环境1024CY8CKIT050开发板133系统各功能模块的设计与实现1931系统构成1932双声道音频信号控制模块19321ANDROID音频应用开发19322音频信号幅度控制21323音频信号频率控制2233位姿控制模块23331ANDROID传感器应用开发23332ANDROID方向传感器数据的获取2434控制信号转换模块2535飞行器遥控器的改造294系统集成与功能测试3141系统整体构成3142ANDROID端控制软件设计与实现3143TINYM0端控制软件设计与实现355结论4251本设计所做的主要工作4252本设计实现的功能4253本设计的不足之处42参考文献43致谢44外文原文45中文翻译551绪论11研究的相关背景111多轴飞行器的发展多轴飞行器,是一种具有两个旋翼以上的旋翼航空器。由每个轴末端的电动机转动,带动旋翼从而产生上升动力。通过改变不同旋翼之间的相对速度可以改变推进力的扭矩,从而控制飞行器的运行轨迹。因为多轴飞行器容易制造和控制,所以常用来制作模型和遥控飞行器,常见的有四轴、六轴、八轴飞行器。20世纪50年代,CONVERTAWINGS公司在纽约的AMITYCILLE制造了一架旋翼式四轴直升机,CONVERTAWINGSMODEL“A”飞行器。CONVERTAWINGSMODEL“A”飞行器设计中,其两侧并没有添加额外的旋翼,而是利用旋翼间协调,产生不同的推力对飞行器进行飞行姿态控制,因此CONVERTAWINGSMODEL“A”飞行器是第一个设计成功的真正意义上能够成功向前飞进的四轴飞行器。近年来,随着新材料科技、MEMS等一些学科的蓬勃发展,小型多轴飞行器的开发和研制又出现了新的方法,也使得多轴飞行器的研究有了新的方向。国际上针对多轴飞行器已经有很多的研究案例与研究成果,然而我国对多轴飞行器的研究成果还很少。近年来,很多国内高校开展关于多轴飞行器方面的研究工作。从多轴飞行器的发展现状可以看出我国在该领域与发达国家的差距还很大,必须加大自身的研发力度,开展自主研发工作。多轴飞行器以其独特的结构和简洁的系统构架与传统飞行器相比有明显的优势。(1)以高能电池作为能量与油动力飞行器相比噪音更低,可实现低空飞行不易察觉。(2)垂直起降保证其在在较狭小的空间就可以稳定飞行,与定翼飞行器相比有不受场地限制的优势。(3)简单的机械部件组成仅电机轴承为机械部件与传统直升机(有较复杂的机械部件与传动结构)相比,维护相当简单。(4)体积小、重量轻、载重量大是多轴飞行器的一个明显优势。(5)整机全电子增稳,操作简单。自主导航可实现全自动飞行。性能优异的动力系统提供了机动灵活的飞行姿态,抗风能力强。多轴飞行器在各个行业的应用有以下几点(1)公安系统的应用多轴飞行器具有便携、质轻、飞行稳定、噪音低等特点,携带影像设备与侦测设备可以为秘密侦查提供强有力的手段,可以提供空中第一手影像资料。(2)消防行业的应用现场火灾的蔓延、林区火势的详情、高层起火的救生等方面都是消防工作部署的关键,多轴飞行器可以到现场迅速升空,有了高度就能把详细情况实时传送到地面指挥车,可以为消防部署提供真实有效地参考。(3)电力系统的应用高压线塔的检修维护是一个长期而艰巨的工作,有了多轴飞行器这一有力的工具,让线路巡视、线塔检修成为简单易行的工作。尤其是在多山地区的传输线路,更能发挥飞行器的优势。(4)农业行业的应用多轴飞行器以稳定飞行和操作简单的特性,携带药液进行低空喷洒,可以实现喷洒均匀,药效好,极大的节约了人力,实现高效率作业。(5)影视行业的应用小型飞行器飞行相对不稳定,而现在的多轴飞行器可以携带高清摄像机、高画质单反相机进行稳定飞行,可完成空中的视频航拍和摄影航拍。112多轴飞行器的控制方式现有的市场上,多轴飞行器的控制方式主要为无线电遥控器的控制的方式。目前多轴飞行器常用的遥控发射机有三种类型一种是盒式按键手持用的小型遥控发射机;一种是便携杆式遥控发射机;还有一种是手持枪式遥控发射机。第一种多为开关式模拟电路的遥控系统,电路的设计和制作比较简单,动作的指令都为“开”和“关”两种,虽然通道的数量可以很多,遥控的性能和距离较低。而发射机为杆式和枪式两种通常为比例式的无线电遥控器,在动态仿真模型中是当今最为流行的遥控操作系统,由于这两种在调制、编码和电路的组成等方式的不同,其性价比有很大的差异,所以在价格上也不同。比例遥控杆式发射机有两个操纵杆,通过左、右两边的杆来控制多轴飞行器的俯仰、横滚、偏航和油门。枪式发射机用一个转轮(方向盘)和一个类似手枪扳机的操纵杆来控制多轴飞行器的俯仰、横滚、偏航和油门。除了这些基本功能之外,一些较高级发射机还运用了先进的电脑技术,增加了许多附加的功能,如储存多种模型的调整数据,一机多用。这两种遥控发射机的基本原理大体上是相同的,只是遥控发射机的外形和操控方式不同。总体而言,无线电遥控器操作繁琐,对操作人员的熟练程度要求较高。113多轴飞行器的手机控制方法利用手机平台控制多轴飞行器的方式主要有蓝牙控制、手机WIFI控制、利用外置手机红外线发射器等进行控制的方式。WIFI控制,信号直接由多轴飞行器发出,手机遥控终端直接接收信号,无需借助网络。蓝牙控制,手机蓝牙与多轴飞行器的蓝牙模块相连接,实现直接控制。但是蓝牙是一种短距离无线通信技术,其控制飞行器距离有限。外置手机红外线发射器控制,把外置红外线发射器与手机的耳机接口相连,将手机控制信号转换为红外信号,从而控制多轴飞行器的飞行姿态。ANDROID手机的市场占有率早已超过50,基于ANDROID手机平台对多轴飞行器的姿态进行控制,不仅操作简单,还省去了手持无线电遥控发射机,而且只要是持有ANDROID手机用户,都能通过自己的手机实现对多轴飞行器的姿态控制。12设计目的本设计的目的是基于ANDROID手机,利用ANDROID手机平台的音频输出口的信号控制多轴飞行器的姿态。硬件平台的音频输出接口常见为耳机接口,音频输出口的信号主要包括通道数、信号幅度和信号频率三个参量。通过左右声道的信号幅度和频率控制多轴飞行器的俯仰、横滚、偏航和油门。在设计实现的过程中,主要包括ZPADT8的音频输出口信号的振幅及频率的分析,ANDROID开发平台的编程和音频信号的转换。通过一个完整的系统分析、设计和实现的过程,我掌握了硬件的分析和软件设计的流程,学会了如何分析问题,如何通过一些测试的方法找到问题的根源,并且解决问题。通过本次设计,我在对专业知识的理解、掌握上都有了提高,对ANDROID领域也有了一定的认识和收获。13论文的构成概要本论文共分为5章。第一章绪论。介绍本设计涉及的多轴飞行器的的发展及其控制方式,并着重介绍了多轴飞行器的控制方式,同时对设计的目的和要求进行概要说明。第二章ANDROID开发平台以及ARM开发板TINYM0的介绍。首先介绍了软件开发采用的软硬件平台,以及关于ANDROID的一些基本知识。然后介绍了ARM开发板,即TINYM0开发板以及其开发环境。第三章系统各模块的设计及其功能的实现。介绍了ANDROID平台音频信号的幅度和频率的控制,ANDROID传感器的应用开发和数据获取,及控制信号的转换。此外,还介绍了相关的通信协议,并对遥控器改造。第四章系统整体功能的实现。介绍系统的组成,对系统中重要模块的实现工程进行了介绍,包括ANDROID端控制软件的实现,TINYM0端信号转换的实现,并对系统的整体性能进行测试。第五章结论。总结毕业设计所做的主要工作、实现的功能和存在的不足,并介绍了自己在设计和实验过程中掌握的设计方法和心得体会。2ANDROID开发平台及ARM开发板21系统概述本论文所述系统是基于ANDROID平台控制多轴飞行器,其结构如图21所示。图21系统结构本系统所采用ANDROID平台是ZPADT8,在其上编写的软件控制纯音文件的播放,通过控制播放纯音的左右声道信号的幅度和频率实现对多轴飞行器的控制。由于ZPADT8的双声道音频信号不能被飞行遥控器接收,所以要通过TINYM0对ZPADT8的音频信号转换成四路的数字信号,分别对应遥控器的四个不同的姿态。而遥控器端所需的信号为模拟信号,则需要用CY8CKIT050开发板将TINYM0输出的数字信号转换成遥控器所需要的信号。多轴飞行器的遥控器本身并没有接收外来遥控信号的功能,因此应对遥控器改造。改造后的遥控器可以接收经CY8CKIT050开发板转换后的信号,从而控制多轴飞行器的飞行姿态。22ANDROID软硬件平台介绍221ANDROID架构ANDROID系统的底层建立在LINUX系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件叠层SOFTWARESTACK的的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无须任何改变。图22显示了ANDROID系统的体系结构。图22ANDROID系统的体系结构从图22可以看出,ANDROID系统主要由5部分组成,下面分别是对这5部分进行简单介绍。(1)应用程序层ANDROID系统将会包含系列的核心应用程序,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等。这些应用程序都是JAVA编写的1。(2)应用程序框架当我们开发ANDROID应用程序时,就是面向底层的应用程序框架进行的。从这个意义上来看,ANDROID系统上的应用程序时完全平等的,不管是ANDROID系统提供的程序,还是普通开发者提供的程序,都可以访问ANDROID提供的API框架。(3)函数库ANDROID包含一套被不同组件所使用的C/C库的集合。一般来说,ANDROID应用开发者不能直接调用这套C/C库集,但可以通过它上面的应用程序框架来调用这些库。下面列出一些核心库。系统C库一个从BSD系统派生出来的标准C系统库LIBC,并且专门为嵌入式LINUX设备调试过。媒体库基于PACKETVIDEO的OPENCORE,这套媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片。主要包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG等多媒体格式。SURFACEMANAGER管理对显示子系统的访问,并可以对多个应用程序的2D和3D图层机提供无缝整合。LIBWEBCORE一个全新的WEB浏览器引擎,该引擎为ANDROID浏览器提供支持,也为WEBVIEW提供支持,WEBVIEW完全可以嵌入开发者自己的应用程序中。SGL底层的2D图形引擎。3DLIBRARIES基于OPENGLES10API实现的3D系统,这套3D库既可使用硬件3D加速,也可使用高度优化的软件3D加速。FREETYPE位图和向量字体显示。SQLITE供所有应用程序使用的、功能强大的轻量级关系数据库。(4)ANDROID运行时ANDROID运行时由两部分组成ANDROID核心库集和DALVIK虚拟机。其中核心库集提供了JAVA语言核心库所能使用的绝大部分功能,而虚拟机则负责运行ANDROID应用程序。(5)LINUX内核ANDROID系统建立在LINUX26之上。LINUX内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外,LINUX内核也是系统硬件和软件叠层之间的抽象层。222ANDROID硬件平台目前可供程序开发的ANDROID平台版本从15至44,市场上的ANDROID手机或平板所安装的ANDROID版本主要为22、23和40。在本毕业设计中相关实验硬件平台为万利达集团有限公司生产的平板电脑,型号为ZPADT8,搭载操作系统为ANDROID22,支持多点触控,内置蓝牙、光敏传感器和重力感应器。ZPADT8外观如图23所示。图23ZPADT8223ANDROID开发环境ANDROID程序必须在ANDROID手机上运行,因此ANDROID开发时必须装备相关运行、调试环境。准备ANDROID程序的运行、调试环境有如下两种方式。(1)使用真机作为运行、调试环境使用真机作为运行、调试环境时,只要完成如下3步。用USB连接线将ANDROID手机连接到电脑上。在电脑上为手机安装驱动,不同手机厂商的ANDROID手机驱动略有差异,请登录各手机厂商官网下载手机驱动。打开手机的调试模式。打开手机,依次单击“所有应用设置开发者选项”,进入图24所示的设置界面。按图24所示,勾选“USB调试”、“允许模拟位置”3个选项即可。若开发者还有其他需要,也可以勾选其他的开发者选项。图24打开调试模式(2)使用AVD作为运行、调试环境ANDROIDSDK为开发者提供了可以在电脑上运行的“虚拟手机”,ANDROID把它称为ANDROIDVIRTUALDEVICEAVD。如果开发者没有ANDROID手机,则完全可以在AVD上运行ANDROID应用。创建、删除和浏览AVD之前,通常应先为ANDROIDSDK设置一个环境变量ANDROID_SDK_HOME,该环境变量的值为磁盘上一个已有的路径。若不设置环境变量,开发者创建的虚拟设备默认保存在CDOCUMENTSANDSETTINGSANDROID目录下;如果设置了ANDROID_SDK_HOME环境变量,那么虚拟设备就会保存在ANDROID_SDK_HOME/ANDROID路径下。在图形界面下管理AVD比较简单,因为可以借助于ANDROIDSDK和AVD管理器完成,完全可以在图形用户界面下操作。通过ANDROIDSDK安装目录下AVDMANAGEREXE启动AVD管理器,系统启动如图23所示的AVD管理器。单击该管理器左边的“VIRTUALDEVICES”项,管理器列出当前已有的AVD设备。单击图25所示窗口右边的“NEW”按钮,AVD管理器弹出如图26所示对话框。图25查看所有可用的AVD设备图26创建AVD设备在图25所示的对话框中填写AVD设备的名称,ANDROID平台的版本和虚拟SD卡的大小,然后单击该对话框下面的“OK”按钮,管理器即将开始创建AVD设备。23ARM开发板TINYM0介绍231TINYM0开发板TINYM0是广州致远电子有限公司为企业用户和高校师生设计的一款开发工具,核心微控制器采用的NXP公司推出的LPC1100系列CORTEXM0内核芯片。LPC1100系列微控制器采用了ARM公司发布的CORTEXM0内核,工作频率高达50MHZ,功耗低至150A/MHZ,性能卓越、应用简单,更突出的是,它能够显著降低所有8/16位应用的代码长度,并且具有极低的市场定价,其价值和易用性比现有的8/16位微控制器更胜一筹,为追求ARM架构的8/16位用户提供了一种全新的32位解决方案。TINYM0开发板实物如图27所示,由TKSCOPECK100仿真器和TINYM0核心板两部分组成,中间通过邮票孔连接。TINYM0可以整体使用,也可以断开独立使用,应用简单灵活。图27TINYM0开发工具实物图TINYM0开发工具特点(1)板载仿真器TINYM0板载TKSCOPECK100仿真器,支持目前市场上的KEL、IAR和TKSTUDIO等主流集成开发环境。(2)配套核心板TINYM0核心板电路为LPC111芯片的最小系统,硬件支持254MM间距的标准排针。TINYM0核心板断开后,可配套用户自行设计的底板,直接进行产品开发。(3)支持多款芯片TINYM0核心板全面支持NXPLPC1100和LPC1300系列LQFP48引脚封装的芯片,用户可以根据设计要求随时更换核心控制器。(4)配套资料TINYM0开发板配套提供深入浅出CORTEXM0LPC1100电子版教材和丰富的实验例程,是工程师学习、开发CORTEXM0微控制器的最佳选择。232TINYM0开发环境TKSTUDIO集成开发环境(又称TKSTUDIOIDE)是广州致远电子有限公司开发的一个微处理器软件开发平台,是一款具有强大内置编辑器的多内核编译调试环境,支持8051、ARM、AVR等多种微控制器,可以完成从工程建立和管理,编译,链接,目标代码的生成,到软件仿真,硬件仿真挂接TKS系列仿真器等硬件等完整的开发流程。TKSTUDIOIDE主界面如图28所示。图28TKSTUDIO主界面TKSTUDIO集成开发环境包括工程管理器、代码编辑器、编译工具链、源码级调试器和外部工具等。(1)工程管理器TKSTUDIO工程管理器可以管理工程中用到的所有源文件、库文件和其它输入文件。在工程窗口中分为工程、文件组、源文件三级结构,并且根据文件类型显示为不同的图标,直观而又醒目,更方便用户管理工程。TKSTUDIO工程窗口如图29所示。图29工程窗口(2)代码编辑器TKSTUDIO代码编辑器以最大化用户编码体验为目标,功能强大,能非常有效地提高编码效率,并提高整体开发效率。TKSTUDIO代码编辑器功能特点总结如图210所示。图210TKSTUDIO代码编辑器功能特点(3)编译工具链TKSTUDIO具备丰富的编译器选项配置信息,对各种工具链的编译、链接、调试提供了灵活的配置参数,对MCS51、ARM、AVR等芯片都提供了支持,主要有C51、SDCC51、GCCARM、ADSARM、REALVIEWMDK、GCCAVR等编译工具链。TKSTUDIO代码编译工具链如图211所示。图211编译工具链LPC1100系列微控制器开发需要用到的编译工具链是REALVIEWMDK4X,如果用户在安装TKSTUDIO前已经安装了该编译器,安装程序会自动将编译器的路径设置到TKSTUDIO中。但如果用户之前没有安装REALVIEWMDK编译器,则需在TKSTUDIO安装过程中根据提示到相关网站下载安装。在安装好REALVIEWMDK编译器后,用户需要将该编译器的路径设置到TKSTUDIO中。打开TKSTUDIO集成开发环境,如图212所示,选择【工程】【编译工具设置】菜单,将弹出如图213所示对话窗口。图212打开编译工具设置图213编译器设置对话框点击按钮,选择REALVEWMDK所在路径,如图214所示。图214选择编译工具路径注意需要定位到【KEIL】【ARM】【BIN40】目录,然后点击确定,即完成了编译工具的设置。24CY8CKIT050开发板PSOCPROGRAMMABLESYSTEMONCHIP,可编程片上系统是一种可编程的混合信号阵列架构,由一个芯片内建的MCU所控制,整合可组态的模拟与数字电路阵列,包括放大器、ADC、DAC、滤波器及比较器等模拟电路以及定时器、计数器、PWM、SPI和UART等数字电路。单个PSOC可集成多达100个外围部件,提高系统质量并节省设计时间,缩减板级空间和功耗,大幅降低系统成本3。CY8CKIT050PSOC5LPDEVELOPMENTKIT以下简称CY8CKIT050是针对CY8C5868的开发板,其开放的资源有LED、LCD、串口、电容传感器、模拟数字端口与USB,并可通过JTAG、SWD与USB下载程序,开发板如图215所示。LCD串口模拟端口USB数字端口电容传感器电容传感器电容传感器LED面包板图215CY8CKIT050开发板CY8CKIT050开发板自带光盘中的开发环境为PSOCCREATOR21,该开发环境由于版本过低,不能识别CY8C5868处理器,故实际需要到CYPRESS官方网站上下载最新开发环境。本次实验用的是PSOCCREATOR22,需要注意的是该软件不识别中文路径,故在安装以及存放项目文件时必须选择英文路径。安装完成并打开PSOCCREATOR22后,点击【FILE】【NEW】【PROJECT】新建一个项目,在此选择器件类型与型号,如图216与图217所示。图216选择EMPTYPSOC5LPDESIGN器件类型图217选择CY8C5868AXILP035器件型号点击【OK】即可建立工作空间与项目,如图218所示。图218新建工作空间与项目示意图点击项目中的【TOPDESIGNCYSCH】原理图文件,即可在该原理图中绘制系统的电路原理与逻辑关系图。同时可在右边窗口的【COMPONENTCATALOG】栏中选择模数器件,如图219所示。图219【COMPONENTCATALOG】模数器件库在此,点击【ANALOG】【ADC】【DELTASIGMAADC】选择DELTASIGMA模数转换器,将其拖放到原理图中,并双击予以配置,如图220所示。图220DELTASIGMAADC配置图图中,将DELTASIGMAADC配置为连续采样,16位分辨率,10000HZ采样率,单极输入,输入范围为VSSAVDDA,缓冲模式为轨到轨,具体的配置参数说明可点击配置表的左下方【DATASHEET】进行参阅。点击【COMPONENTCATALOG】栏中的【PORTSANDPINS】【ANALOGPIN】选择ADC的模拟输入引脚,将其拖放至原理图,并连接至ADC的输入端口。点击输入引脚,配置其参数如图221所示。图221模拟输入引脚配置图点击【DISPLAY】【CHARACTERLCD】选择字符LCD模块,将其拖放至原理图,并双击予以配置,配置表结果如图222所示。图222字符LCD配置图点击项目中的CYDWR文件,对各模块的引脚进行配置,如图223所示。图223CYDWR文件示意图在右边栏,根据数据手册的电路原理图,选择各个端口对应的引脚。在此,选择LCD的引脚为P260,模拟电压输入引脚为P65,如图224所示。图224引脚配置示意图配置完的电路原理如图225所示。图225系统电路原理为了采用最新的器件与API,需要对其进行更新升级,点击【PROJECT】【UPDATECOMPONENTS】,选中所有器件与API进行升级,如图226所示。图226器件与API升级示意图至此,系统的电路搭建完毕。3系统各功能模块的设计与实现31系统构成本系统主要由双声道音频信号控制模块、位姿控制模块、控制信号转换模块等模块构成。双声道音频信号控制模块主要是指手机端的软件部分,该模块用来控制通过ANDROID端音频接口输出双声道音频信号的幅度和频率。位姿控制模块主要是获取ANDROID平台方向传感器的实时数据,根据获取的数据控制ANDROID平台的双声道音频信号的幅度和频率。控制信号转换模块的主要部分是烧入了转换程序的TINYM0单片机及烧入DA转换程序的CY8CKIT050开发板。其主要作用是将ANDROID端输入的双声道音频信号转换为改造后的遥控器所需信号。32双声道音频信号控制模块321ANDROID音频应用开发音频信号可分为模拟音频信号和数字音频信号,通常也将模拟音频信号成为音频信号。音频信号是一种连续变化的模拟信号,又称声波。音频信号有两个重要参数,即频率和幅度。频率指单位时间内完成的周期性变化的次数,声音的频率体现在音调的高低;幅度指振动的物理量偏离平衡位置的最大值,声音的幅度体现在音强的大小。耳机接口最常见的为TRS接口,T(TIP,左声道)、R(RING,右声道)、S(SLEEVE,地)分别代表接口的三个接触点,如图31所示。TRS接口有1/4(63MM)(俗称大三芯)、1/8(35MM)(俗称小三芯)和3/32(25MM)三种尺寸(符号”表示英寸)。图31TRS接头定义ANDROID软件平台提供的音频播放控制API包括AUDIOMANAGER、AUDIOTRACK、MEDIAPLAYER和SOUNDPOOL,ANDROID23版本后又增加了AUDIOEFFECT(主要包括VISUALIZER和EQUALIZER)。6个API主要功能如表31所示。表31ANDROID音频播放控制APIAPI中文名称功能特点AUDIOMANAGER音频管理器管理音频系统,如设置声音类型、音量等AUDIOTRACK音轨管理控制声道的声音播放MEDIAPLAYER媒体播放器较长音乐的播放,资源占用量高、时间延迟大,不支持多音频同时播放SOUNDPOOL音效池较短声音片段的播放,资源占用量低、时间延迟小,支持多音频同时播放VISUALIZER观察器音频的波形或条状图显示EQUALIZER均衡器音效均衡器ANDROID系统支持的音频文件格式包括3GPP(3GP)、MPEG4(MP4,M4A)、MP3(MP3)、TYPE0AND1(MID,XMF,MXMF)、RTTTL/RTX(RTTTL,RTX)、OTA(OTA)、IMELODY(IMY)、OGG(OGG)和WAVE(WAV)。考虑音频幅度控制实现的难易程度及控制的效果,本研资涉及实验采用AUDIOMANAGER获取系统音量管理权,采用MEDIAPLAYER实现对声音文件的播放控制。采用AUDIOMANAGER获取系统音量控制权时,共有7种声音类型可以指定,其相关信息如表2所示。表32ANDROID音频类型说明参数名中文名称音量参数调节范围STREAM_MUSIC媒体015STREAM_RING铃声07STREAM_ALARM警告/闹铃07STREAM_NOTIFICATION通知07STREAM_SYSTEM系统07STREAM_VOICE_CALL语音通话05STREAM_DTMF双音多频015在使用MEDIAPLAYER时,只能控制媒体的音量。经过测试发现,在媒体音量调节时,对于双声道整体音量同步控制和左声道音量单独控制可以实现16级调节,对右声道音量单独控制在07范围内正常,在815范围内左声道会自动与右声道音量保持一致。因此,为实现对左右声道信号幅度的单独控制,在实验中将音量调节范围控制在07范围内。MEDIAPLAYER共有10个状态可以控制,其状态转换图如图32所示。图32MEDIAPLAYER状态转换图322音频信号幅度控制双声道输出信号幅度控制软件分为两大功能模块音频播放控制模块和音量调节模块。音频播放控制模块需要按照图4所示的MEDIAPLAYER状态转换图控制音频资源的加载、播放、暂停、停止、清理操作;音量调节模块需要用两个拖动条分别实现对左右声道的音量控制。界面设计采用相对布局设计,以保证软件在不同硬件平台上的界面一致性。界面中涉及的字符信息,统一在资源文件STRINGSXML中进行定义,以利于软件的国际化。程序设计采用MVC架构,在不同的文件中实现数据模型定义(MODEL)、用户界面设计(VIEW)和程序逻辑控制(CONTROLLER)。程序设计基本流程如图33所示。图33幅度控制程序流程图323音频信号频率控制功能设计双声道输出信号频率控制软件分为两大功能模块音频资源加载模块和频率调节模块。音频资源加载模块采用HASHMAP进行管理,其中键KEY取SEEKBAR的值PROGRESS,值VALUE取音频资源在资源文件中的ID。频率调节模块即对SEEKBAR滑块位置的监听。当滑块处于不同位置时,播放不同频率的声音文件,实现频率的改变。界面设计界面设计采用相对布局设计,以保证软件在不同硬件平台上的界面一致性。界面中涉及的字符信息,统一在资源文件STRINGSXML中进行定义,以利于软件的国际化。程序设计程序设计采用MVC架构,在不同的文件中实现数据模型定义(MODEL)、用户界面设计(VIEW)和程序逻辑控制(CONTROLLER)。程序设计基本流程如图34所示。图34频率控制程序流程图33位姿控制模块331ANDROID传感器应用开发ANDROID系统的特色之一是可以通过传感器获取手机设备运行的外界信息,包括手机运动的加速度、手机摆放方向等。大多数运行ANDROID系统的设备具有内置的传感器,这些传感器能够提供高精密度和准确度的原始数据。ANDROID平台传感器可以分为两大类基于硬件类和基于软件类。基于硬件的传感器是内置于手机或平板设备的物理组件。该类传感器通过直接测量特定的环境参数,如加速度,磁场强度或角度变化为平台提供数据。基于软件的传感器从一个或多个基于硬件的传感器获取数据,也称为虚拟传感器或合成传感器。该类传感器模仿基于硬件的传感器,但不对应物理设备。线性加速度传感器和重力感应器就是基于软件的传感器。按照功能划分,ANDROID平台支持如下三大类传感器(1)运动类传感器该类传感器测量加速力和旋转力在三轴上的分量,包括加速度传感器,重力感应器,陀螺仪,旋转矢量传感器。(2)环境类传感器这类传感器测量各种环境参数,如空气温度、气压、光照强度、湿度等,包括气压传感器,光线传感器和温度传感器。(3)位置传感器这类传感器测量设备的物理位置,包括方向传感器和磁场传感器。ANDROID传感器框架(SENSORFRAMEWORK)是实现传感器应用的规范。通过传感器框架,程序能够访问传感器并取得原始数据。该框架定义了如表33所示的4个类及接口。表33ANDROID传感器框架构成序号类/接口名说明1SENSORMANAGER传感器管理器,传感器所有服务管理者2SENSOR传感器对象,定义传感器类型及参数3SENSOREVENT传感器事件,定义传感器对象4SENSOREVENTLISTENER传感器事件监听器,监听传感器对象的变化根据ANDROIDAPI规定,开发传感器应用的步骤如下。(1)获取传感器管理器调用CONTEXTGETSYSTEMSERVICESENSOR_SERVICE获取SENSORMANAGER对象。(2)获取传感器对象调用SENSORMANAGER的GETDEFAULTSENSOR(INTTYPE)方法获取指定类型的传感器。TYPE值可以取表1中的传感器标识符。(3)获取事件监听器在ACTIVITY中实现SENSOREVENTLISTENER接口,实现ONACCURACYCHANGED和ONSENSORCHANGED方法,监测传感器的精度和值的变化。(4)为指定传感器注册监听器在ACTIVITY中的ONRESUME方法中调用SENSORMANAGER的REGISTERLISTENER方法为指定传感器注册监听器,监测传感器对象的变化。332ANDROID方向传感器数据的获取在ANDROID传感器应用开发中,多种传感器(如方向传感器、加速度传感器、重力感应器等)需要用到ANDROID平台坐标系统。ANDROID传感器框架使用一个标准的3轴坐标系来表示数据值,该坐标系根据ANDROID设备的默认方向进行定义。在常见的ANDROID设备中,手机类设备的默认方向为纵向,平板类设备的默认方向为横向。当一个设备摆放处于默认方向时,坐标系统定义规则如下(1)X轴为设备正面从左指向右;(2)Y轴为设备正面从下指向上;(3)Z轴为垂直于设备屏幕正面从背面指向前面。ANDROID坐标系示意如图35所示。图35ANDROID设备三维坐标系统图ANDROID平台传感器坐标系统是固定的,不随设备方向的变化而变化。当设备由纵向变为横向时,调用GETROTATION方法检测屏幕方向的变化,调用REMAPCOORDINATESYSTEM方法重新将传感器坐标系统映射到设备上。方向传感器用于监测设备相对于地球坐标系(磁北,地理北极)的位置。方向传感器通过组合使用设备的磁场传感器与加速度传感器这两个硬件传感器获取数据。ANDROID平台方向传感器详细信息如表34所示。表34ANDROID平台方向传感器传感器标识符名称描述用途TYPE_ORIENTATION方向传感器测量设备在三个物理轴方向的旋转角度返回值单位角度()确定设备位置方向传感器返回的三个数据含义如下(1)航向角(AZIMUTH)设备绕Z轴旋转,设备Y轴与磁北之间的夹角(0359)。当设备的Y轴指向磁北,航向角为0;当Y轴指向东边航向角为90,以此类推;(2)俯仰角(PITCH)设备绕X轴旋转,当设备Z轴正方向朝向Y轴正方向旋转,俯仰角为正值;当设备Z轴正方向朝向Y轴负方向旋转时,俯仰角为负值。值范围是179179;(3)翻滚角(ROLL)设备绕Y轴旋转,当设备Z轴正方向朝向X轴正方向旋转,翻滚角为正值;当设备Z轴正方向朝向X轴负方向旋转时,翻滚角为负值。值范围是9090。34控制信号转换模块ANDROID端输出的信号为左右声道两路音频信号,每个声道的信号又有两个重要的参数,即振幅和频率,这样,就有四个参数,对应多轴飞行器的四种飞行姿态俯仰、横滚、偏航和油门。为了使ANDROID端的音频信号转换为四个变化的数字量,则需要通过TINYM0单片机对ANDROID端的两路音频信号进行转换。TINYM0端音频信号幅度转换为数字量程序流程图如图36所示。图36音频信号幅度转换为数字量流程图实验场景如图37所示。图37音频信号幅度转换为数字量实验场景实验时由DH1718E4型稳压电源提供稳定电压,在经过TINYM0单片机转换后,由串口助手在电脑端显示转换后的信号,即电压数值。TINYM0端音频信号幅度转换为数字量程序运行结果如图38所示。图38音频信号幅度转换为数字量实验结果TINYM0端音频信号频率转换为数字量程序流程图如图39所示。图39音频信号频率转换为数字量流程图实验场景如图310所示。图310音频信号频率转换为数字量实验场景TINYM0端音频信号频率转换为数字量程序运行结果如图311所示。图311音频信号频率转换为数字量实验结果由于多轴飞行器遥控器需要输入的信号为模拟量,则需要将TINYM0单片机输出的数字信号转换为控制器所需的模拟信号,要利用CY8CKIT050开发板进行DA转换。35飞行器遥控器的改造由于控制信号由ANDROID平台发出,就需要对多轴飞行器原有的无线电遥控器进行改造,改造后的遥控器应能够接收由单片机传入的信号,再借助多轴飞行器原有的遥控器进行控制。在本设计中,多轴飞行器所带遥控器为四通道比例遥控器。四通道比例控制设备,可以同时对多轴飞行器的四个不同动作进行控制,即俯仰、横滚、偏航和油门。在飞行器遥控器改造的过程中,需要将多轴飞行器原有遥控器拆开,查看其电路板,找出两个电位器在遥控器电路板上的信号端,通过导线引出到遥控器外,再将引出的导线连接到改造后的遥控器端。改造遥控器连接图如图312所示。图312改造后的遥控器与遥控器连接图遥控器连接改造后的遥控器的目的,是为了能够便于将CY8CKIT050开发板输出的模拟信号传入遥控器,并且不影响多轴飞行器自带遥控器的正常运行。4系统集成与功能测试41系统整体构成该系统由T8平板电脑、TINYM0单片机、CY8CKIT050开发板和遥控器等组成。以下为系统连接图。图41系统连接图本系统所采用ANDROID平台是ZPADT8,在其上编写的软件控制纯音文件的播放,通过控制播放纯音的左右声道信号的幅度和频率实现对多轴飞行器的控制。由于ZPADT8的双声道音频信号不能被飞行遥控器接收,所以要通过TINYM0对ZPADT8的双路音频信号转换,得到四路数字信息。遥控器只能接受模拟的信号量而不能接收数字信号量,需要通过CY8CKIT050开发板将四路数字信号量转换成模拟量,以保证遥控器可以接收到控制信号。多轴飞行器的遥控器本身并没有接收外来遥控信号的功能,因此应对遥控器改造。改造后的遥控器可以接收TINYM0开发板转换后的信号,并识别开发板传出的信号,从而控制多轴飞行器的飞行姿势。42ANDROID端控制软件设计与实现ANDROID端需要同时控制音频信号的幅度与频率,就需要对ANDROID端音频的幅度控制程序与频率控制程序进行整合,整合成功后程序流程图如图42所示。图42ANDROID端程序流程图根据程序流程图,设计的软件界面如图43所示。图43ANDROID端程序流程图具体实现的部分代码如下PRIVATECLASSVOLUMECHANGELISTENERIMPLEMENTSONSEEKBARCHANGELISTENERPUBLICVOIDONPROGRESSCHANGEDSEEKBARSK,INTPROGRESS,BOOLEANFROMUSERIFFROMUSERIFSKLEFTVOLUMEBARMPLAYERLEFTSETVOLUMEPROGRESS/20,0ELSEIFSKRIGHTVOLUMEBARMPLAYERRIGHTSETVOLUME0,PROGRESS/20RETURNPRIVATECLASSTONECHANGELISTENERIMPLEMENTSONSEEKBARCHANGELISTENERPUBLICVOIDONPROGRESSCHANGEDSEEKBARBAR,INTPROGRESS,BOOLEANFROMUSERIFFROMUSERIFBARRIGHTTONEBARIFMPLAYERLEFTNULLMPLAYERLEFTRELEASEMPLAYERLEFTNULLMPLAYERLEFTMEDIAPLAYERCREATEVOICETHIS,MUSICGETPROGRESSMPLAYERLEFTSETVOLUMELEFTVOLUMEBARGETPROGRESS/20,0MPLAYERLEFTSETLOOPINGTRUEMPLAYERLEFTSTARTELSEIFBARLEFTTONEBARIFMPLAYERRIGHTNULLMPLAYERRIGHTRELEASEMPLAYERRIGHTNULLMPLAYERRIGHTMEDIAPLAYERCREATEVOICETHIS,MUSICGETPROGRESSMPLAYERRIGHTSETVOLUME0,RIGHTVOLUMEBARGETPROGRESS/20MPLAYERRIGHTSETLOOPINGTRUEMPLAYERRIGHTSTARTRETURNPUBLICBOOLEANONCREATEOPTIONSMENUMENUMENUMENUADDSUBMENU0,1,1,RSTRINGABOUTMENUADDSUBMENU0,2,2,RSTRINGEXITRETURNTRUEPUBLICBOOLEANONOPTIONSITEMSELECTEDMENUITEMITEMIFITEMGETITEMID2IFMPLAYERLEFTNULLMPLAYERLEFTRELEASEMPLAYERLEFTNULLELSEIFMPLAYERRIGHTNULLMPLAYERRIGHTRELEASEMPLAYERRIGHTNULLFINISHELSEIFITEMGETITEMID1BUILDERSHOWRETURNSUPERONOPTIONSITEMSELECTEDITEMPUBLICVOIDONCLICKVIEWVIFVPLAYIFMPLAYERLEFTISPLAYINGTRUE|MPLAYERRIGHTISPLAYINGTRUETOASTMAKETEXTVOICETH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论