基于Android手机的多轴飞行器姿态控制系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第1页
基于Android手机的多轴飞行器姿态控制系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第2页
基于Android手机的多轴飞行器姿态控制系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第3页
基于Android手机的多轴飞行器姿态控制系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第4页
基于Android手机的多轴飞行器姿态控制系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

i基于Android手机的多轴飞行器姿态控制系统摘要随着Android开发技术的日趋成熟,基于Android操作系统的手机使用也越来越广泛,从而Android手机的音频接口技术的发展也引起了软件开发人员的广泛关注,可以利用音频接口进行相关的控制。音频接口通常与前置麦克、线路输入和其他一系列的输入设备配合使用。在深入理解Android开发技术和音频接口后,构建了一个小型控制系统。该系统中通过Android平台播放纯音文件,纯音文件播放使得音频接口输出正弦波信号,并通过Android端的程序控制信号的幅度和频率。Android端通过音频线与ARM开发板连接,ARM开发板将接收的信号转换为遥控器所需的模拟信号,从而控制遥控器发出无线电波控制多轴飞行器的姿态。Android端的音频接口输出四路信号,左、右两个声道的幅度和频率信号分别对应多轴飞行器的俯仰,横滚,偏航和油门四个姿态。该设计最终实现了将Android平台输出的音频信号转换为四路的数字信号,还未能在实体的多轴飞行器上进行测试。关键词Android;音频;单片机iiTheMultirotorAttitudeControlSystemBasedonAndroidAbstractWiththematuringofAndroiddevelopmenttechnology,basedontheAndroidoperatingsystemisbecomingmoreandmorewidelyused.sotheAndroidmobilephoneaudiointerfacetechnologydevelopmentalsocausedwideattentionofsoftwaredevelopers,canusetocontrolaudiointerface.Audiointerfaceandpre-mikeusually,lineinputandahostofotherinputdevices.InthedeepunderstandingoftheAndroiddevelopmenttechnologyandaudiointerface.Ibuiltasmallcontrolsystem.ThesystemthroughtheAndroidplatformintheplaypuretonefiles,puretonefilebroadcastaudiointerfaceoutputsinewavesignal,andthroughtotheAndroidprogramcontrolsignalamplitudeandfrequency.AndroidthroughaudiolineconnectedtotheARMdevelopmentboard,ARMdevelopmentboardwillreceivesignalsintoanalogsignalsrequiredforremotecontrol,remotecontroltocontrolaradiocontrolmulti-axisvehicleattitude.Androidsaudiooutputinterfacefour-waysignal,theamplitudeandfrequencyoftheleftandrighttwochannelsignalsrespectivelycorrespondingtothepitchofmulti-axlevehiclerollandyawandthethrottlefourgesture.FinallyachievedthedesignoftheAndroidplatformoftheoutputaudiosignalcanbeconvertedintofourdigitalsignaloftheroad.Butnotontheentityofmulti-axlevehicletest.KeywordsAndroid;Audio;Developmentboardiii目录摘要.iAbstract.ii1绪论.11.1研究的相关背景.11.1.1多轴飞行器的发展.11.1.2多轴飞行器的控制方式.21.1.3多轴飞行器的手机控制方法.21.2设计目的.21.3论文的构成概要.32Android开发平台及ARM开发板.42.1系统概述.42.2Android软硬件平台介绍.42.2.1Android架构.42.2.2Android硬件平台.62.2.3Android开发环境.62.3ARM开发板TinyM0介绍.92.3.1TinyM0开发板.92.3.2TinyM0开发环境.102.4CY8CKIT-050开发板.133系统各功能模块的设计与实现.193.1系统构成.193.2双声道音频信号控制模块.193.2.1Android音频应用开发.193.2.2音频信号幅度控制.213.2.3音频信号频率控制.223.3位姿控制模块.233.3.1Android传感器应用开发.233.3.2Android方向传感器数据的获取.243.4控制信号转换模块.253.5飞行器遥控器的改造.294系统集成与功能测试.314.1系统整体构成.314.2Android端控制软件设计与实现.314.3TinyM0端控制软件设计与实现.355结论.425.1本设计所做的主要工作.425.2本设计实现的功能.425.3本设计的不足之处.42参考文献.43iv致谢.44外文原文.45中文翻译.5501绪论1.1研究的相关背景1.1.1多轴飞行器的发展多轴飞行器,是一种具有两个旋翼以上的旋翼航空器。由每个轴末端的电动机转动,带动旋翼从而产生上升动力。通过改变不同旋翼之间的相对速度可以改变推进力的扭矩,从而控制飞行器的运行轨迹。因为多轴飞行器容易制造和控制,所以常用来制作模型和遥控飞行器,常见的有四轴、六轴、八轴飞行器。20世纪50年代,Convertawings公司在纽约的Amitycille制造了一架旋翼式四轴直升机,ConvertawingsModel“A”飞行器。ConvertawingsModel“A”飞行器设计中,其两侧并没有添加额外的旋翼,而是利用旋翼间协调,产生不同的推力对飞行器进行飞行姿态控制,因此ConvertawingsModel“A”飞行器是第一个设计成功的真正意义上能够成功向前飞进的四轴飞行器。近年来,随着新材料科技、MEMS等一些学科的蓬勃发展,小型多轴飞行器的开发和研制又出现了新的方法,也使得多轴飞行器的研究有了新的方向。国际上针对多轴飞行器已经有很多的研究案例与研究成果,然而我国对多轴飞行器的研究成果还很少。近年来,很多国内高校开展关于多轴飞行器方面的研究工作。从多轴飞行器的发展现状可以看出我国在该领域与发达国家的差距还很大,必须加大自身的研发力度,开展自主研发工作。多轴飞行器以其独特的结构和简洁的系统构架与传统飞行器相比有明显的优势。(1)以高能电池作为能量与油动力飞行器相比噪音更低,可实现低空飞行不易察觉。(2)垂直起降保证其在在较狭小的空间就可以稳定飞行,与定翼飞行器相比有不受场地限制的优势。(3)简单的机械部件组成(仅电机轴承为机械部件)与传统直升机(有较复杂的机械部件与传动结构)相比,维护相当简单。(4)体积小、重量轻、载重量大是多轴飞行器的一个明显优势。(5)整机全电子增稳,操作简单。自主导航可实现全自动飞行。性能优异的动力系统提供了机动灵活的飞行姿态,抗风能力强。多轴飞行器在各个行业的应用有以下几点:(1)公安系统的应用多轴飞行器具有便携、质轻、飞行稳定、噪音低等特点,携带影像设备与侦测设备可以为秘密侦查提供强有力的手段,可以提供空中第一手影像资料。(2)消防行业的应用现场火灾的蔓延、林区火势的详情、高层起火的救生等方面都是消防工作部署的关键,多轴飞行器可以到现场迅速升空,有了高度就能把详细情况实时传送到地面指挥车,可以为消防部署提供真实有效地参考。(3)电力系统的应用高压线塔的检修维护是一个长期而艰巨的工作,有了多轴飞行器这一有力的工具,让线路巡视、线塔检修成为简单易行的工作。尤其是在多山地区的传输线路,更能发1挥飞行器的优势。(4)农业行业的应用多轴飞行器以稳定飞行和操作简单的特性,携带药液进行低空喷洒,可以实现喷洒均匀,药效好,极大的节约了人力,实现高效率作业。(5)影视行业的应用小型飞行器飞行相对不稳定,而现在的多轴飞行器可以携带高清摄像机、高画质单反相机进行稳定飞行,可完成空中的视频航拍和摄影航拍。1.1.2多轴飞行器的控制方式现有的市场上,多轴飞行器的控制方式主要为无线电遥控器的控制的方式。目前多轴飞行器常用的遥控发射机有三种类型:一种是盒式按键手持用的小型遥控发射机;一种是便携杆式遥控发射机;还有一种是手持枪式遥控发射机。第一种多为开关式模拟电路的遥控系统,电路的设计和制作比较简单,动作的指令都为“开”和“关”两种,虽然通道的数量可以很多,遥控的性能和距离较低。而发射机为杆式和枪式两种通常为比例式的无线电遥控器,在动态仿真模型中是当今最为流行的遥控操作系统,由于这两种在调制、编码和电路的组成等方式的不同,其性价比有很大的差异,所以在价格上也不同。比例遥控杆式发射机有两个操纵杆,通过左、右两边的杆来控制多轴飞行器的俯仰、横滚、偏航和油门。枪式发射机用一个转轮(方向盘)和一个类似手枪扳机的操纵杆来控制多轴飞行器的俯仰、横滚、偏航和油门。除了这些基本功能之外,一些较高级发射机还运用了先进的电脑技术,增加了许多附加的功能,如储存多种模型的调整数据,一机多用。这两种遥控发射机的基本原理大体上是相同的,只是遥控发射机的外形和操控方式不同。总体而言,无线电遥控器操作繁琐,对操作人员的熟练程度要求较高。1.1.3多轴飞行器的手机控制方法利用手机平台控制多轴飞行器的方式主要有蓝牙控制、手机Wifi控制、利用外置手机红外线发射器等进行控制的方式。Wifi控制,信号直接由多轴飞行器发出,手机遥控终端直接接收信号,无需借助网络。蓝牙控制,手机蓝牙与多轴飞行器的蓝牙模块相连接,实现直接控制。但是蓝牙是一种短距离无线通信技术,其控制飞行器距离有限。外置手机红外线发射器控制,把外置红外线发射器与手机的耳机接口相连,将手机控制信号转换为红外信号,从而控制多轴飞行器的飞行姿态。Android手机的市场占有率早已超过50%,基于Android手机平台对多轴飞行器的姿态进行控制,不仅操作简单,还省去了手持无线电遥控发射机,而且只要是持有Android手机用户,都能通过自己的手机实现对多轴飞行器的姿态控制。1.2设计目的本设计的目的是基于Android手机,利用Android手机平台的音频输出口的信号2控制多轴飞行器的姿态。硬件平台的音频输出接口常见为耳机接口,音频输出口的信号主要包括通道数、信号幅度和信号频率三个参量。通过左右声道的信号幅度和频率控制多轴飞行器的俯仰、横滚、偏航和油门。在设计实现的过程中,主要包括ZpadT8的音频输出口信号的振幅及频率的分析,Android开发平台的编程和音频信号的转换。通过一个完整的系统分析、设计和实现的过程,我掌握了硬件的分析和软件设计的流程,学会了如何分析问题,如何通过一些测试的方法找到问题的根源,并且解决问题。通过本次设计,我在对专业知识的理解、掌握上都有了提高,对Android领域也有了一定的认识和收获。1.3论文的构成概要本论文共分为5章。第一章:绪论。介绍本设计涉及的多轴飞行器的的发展及其控制方式,并着重介绍了多轴飞行器的控制方式,同时对设计的目的和要求进行概要说明。第二章:Android开发平台以及ARM开发板TinyM0的介绍。首先介绍了软件开发采用的软硬件平台,以及关于Android的一些基本知识。然后介绍了ARM开发板,即TinyM0开发板以及其开发环境。第三章:系统各模块的设计及其功能的实现。介绍了Android平台音频信号的幅度和频率的控制,Android传感器的应用开发和数据获取,及控制信号的转换。此外,还介绍了相关的通信协议,并对遥控器改造。第四章:系统整体功能的实现。介绍系统的组成,对系统中重要模块的实现工程进行了介绍,包括Android端控制软件的实现,TinyM0端信号转换的实现,并对系统的整体性能进行测试。第五章:结论。总结毕业设计所做的主要工作、实现的功能和存在的不足,并介绍了自己在设计和实验过程中掌握的设计方法和心得体会。32Android开发平台及ARM开发板2.1系统概述本论文所述系统是基于Android平台控制多轴飞行器,其结构如图2-1所示。图2-1系统结构本系统所采用Android平台是ZpadT8,在其上编写的软件控制纯音文件的播放,通过控制播放纯音的左右声道信号的幅度和频率实现对多轴飞行器的控制。由于ZpadT8的双声道音频信号不能被飞行遥控器接收,所以要通过TinyM0对ZpadT8的音频信号转换成四路的数字信号,分别对应遥控器的四个不同的姿态。而遥控器端所需的信号为模拟信号,则需要用CY8CKIT-050开发板将TinyM0输出的数字信号转换成遥控器所需要的信号。多轴飞行器的遥控器本身并没有接收外来遥控信号的功能,因此应对遥控器改造。改造后的遥控器可以接收经CY8CKIT-050开发板转换后的信号,从而控制多轴飞行器的飞行姿态。2.2Android软硬件平台介绍2.2.1Android架构Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件叠层(SoftwareStack)的的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无须任何改变。图2-2显示了Android系统的体系结构。4图2-2Android系统的体系结构从图2-2可以看出,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,这套媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片。主要包括5MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等多媒体格式。SurfaceManager:管理对显示子系统的访问,并可以对多个应用程序的2D和3D图层机提供无缝整合。LibWebCore:一个全新的Web浏览器引擎,该引擎为Android浏览器提供支持,也为WebView提供支持,WebView完全可以嵌入开发者自己的应用程序中。SGL:底层的2D图形引擎。3Dlibraries:基于OpenGLES1.0API实现的3D系统,这套3D库既可使用硬件3D加速,也可使用高度优化的软件3D加速。FreeType:位图和向量字体显示。SQLite:供所有应用程序使用的、功能强大的轻量级关系数据库。(4)Android运行时Android运行时由两部分组成:Android核心库集和Dalvik虚拟机。其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序。(5)Linux内核Android系统建立在Linux2.6之上。Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。2.2.2Android硬件平台目前可供程序开发的Android平台版本从1.5至4.4,市场上的Android手机或平板所安装的Android版本主要为2.2、2.3和4.0。在本毕业设计中相关实验硬件平台为万利达集团有限公司生产的平板电脑,型号为ZpadT8,搭载操作系统为Android2.2,支持多点触控,内置蓝牙、光敏传感器和重力感应器。ZpadT8外观如图2-3所示。图2-3ZpadT82.2.3Android开发环境Android程序必须在Android手机上运行,因此Android开发时必须装备相关运行、6调试环境。准备Android程序的运行、调试环境有如下两种方式。(1)使用真机作为运行、调试环境使用真机作为运行、调试环境时,只要完成如下3步。用USB连接线将Android手机连接到电脑上。在电脑上为手机安装驱动,不同手机厂商的Android手机驱动略有差异,请登录各手机厂商官网下载手机驱动。打开手机的调试模式。打开手机,依次单击“所有应用设置开发者选项”,进入图2-4所示的设置界面。按图2-4所示,勾选“USB调试”、“允许模拟位置”3个选项即可。若开发者还有其他需要,也可以勾选其他的开发者选项。图2-4打开调试模式(2)使用AVD作为运行、调试环境AndroidSDK为开发者提供了可以在电脑上运行的“虚拟手机”,Android把它称为AndroidVirtualDevice(AVD)。如果开发者没有Android手机,则完全可以在AVD上运行Android应用。创建、删除和浏览AVD之前,通常应先为AndroidSDK设置一个环境变量:ANDROID_SDK_HOME,该环境变量的值为磁盘上一个已有的路径。若不设置环境变量,开发者创建的虚拟设备默认保存在C:DocumentsandSettings.Android目录下;如果设置了ANDROID_SDK_HOME环境变量,那么虚拟设备就会保存在%ANDROID_SDK_HOME%/.android路径下。在图形界面下管理AVD比较简单,因为可以借助于AndroidSDK和AVD管理器完成,完全可以在图形用户界面下操作。通过AndroidSDK安装目录下AVDManager.exe启动AVD管理器,系统启动如图2.3所示的AVD管理器。单击该管理器左边的“Virtualdevices”项,管理器列出当前已有的AVD设备。7单击图2-5所示窗口右边的“New”按钮,AVD管理器弹出如图2-6所示对话框。图2-5查看所有可用的AVD设备图2-6创建AVD设备在图2-5所示的对话框中填写AVD设备的名称,Android平台的版本和虚拟SD卡的大小,然后单击该对话框下面的“OK”按钮,管理器即将开始创建AVD设备。82.3ARM开发板TinyM0介绍2.3.1TinyM0开发板TinyM0是广州致远电子有限公司为企业用户和高校师生设计的一款开发工具,核心微控制器采用的NXP公司推出的LPC1100系列Cortex-M0内核芯片。LPC1100系列微控制器采用了ARM公司发布的Cortex-M0内核,工作频率高达50MHz,功耗低至150A/MHz,性能卓越、应用简单,更突出的是,它能够显著降低所有8/16位应用的代码长度,并且具有极低的市场定价,其价值和易用性比现有的8/16位微控制器更胜一筹,为追求ARM架构的8/16位用户提供了一种全新的32位解决方案。TinyM0开发板实物如图2-7所示,由TKScopeCK100仿真器和TinyM0核心板两部分组成,中间通过邮票孔连接。TinyM0可以整体使用,也可以断开独立使用,应用简单灵活。图2-7TinyM0开发工具实物图TinyM0开发工具特点:(1)板载仿真器TinyM0板载TKScopeCK100仿真器,支持目前市场上的KEL、IAR和TKStudio等主流集成开发环境。(2)配套核心板TinyM0核心板电路为LPC111芯片的最小系统,硬件支持2.54mm间距的标准排针。TinyM0核心板断开后,可配套用户自行设计的底板,直接进行产品开发。(3)支持多款芯片TinyM0核心板全面支持NXPLPC1100和LPC1300系列LQFP48引脚封装的芯片,用户可以根据设计要求随时更换核心控制器。(4)配套资料TinyM0开发板配套提供深入浅出Cortex-M0LPC1100电子版教材和丰富的实验例程,是工程师学习、开发Cortex-M0微控制器的最佳选择。92.3.2TinyM0开发环境TKStudio集成开发环境(又称TKStudioIDE)是广州致远电子有限公司开发的一个微处理器软件开发平台,是一款具有强大内置编辑器的多内核编译调试环境,支持8051、ARM、AVR等多种微控制器,可以完成从工程建立和管理,编译,链接,目标代码的生成,到软件仿真,硬件仿真(挂接TKS系列仿真器等硬件)等完整的开发流程。TKStudioIDE主界面如图2-8所示。图2-8TKStudio主界面TKStudio集成开发环境包括工程管理器、代码编辑器、编译工具链、源码级调试器和外部工具等。(1)工程管理器TKStudio工程管理器可以管理工程中用到的所有源文件、库文件和其它输入文件。在工程窗口中分为工程、文件组、源文件三级结构,并且根据文件类型显示为不同的图标,直观而又醒目,更方便用户管理工程。TKStudio工程窗口如图2-9所示。10图2-9工程窗口(2)代码编辑器TKStudio代码编辑器以最大化用户编码体验为目标,功能强大,能非常有效地提高编码效率,并提高整体开发效率。TKStudio代码编辑器功能特点总结如图2-10所示。图2-10TKStudio代码编辑器功能特点(3)编译工具链TKStudio具备丰富的编译器选项配置信息,对各种工具链的编译、链接、调试提供了灵活的配置参数,对MCS-51、ARM、AVR等芯片都提供了支持,主要有C51、SDCC51、GCCARM、ADSARM、RealviewMDK、GCCAVR等编译工具链。TKStudio代码编译工具链如图2-11所示。11图2-11编译工具链LPC1100系列微控制器开发需要用到的编译工具链是RealviewMDK4.x,如果用户在安装TKStudio前已经安装了该编译器,安装程序会自动将编译器的路径设置到TKStudio中。但如果用户之前没有安装RealviewMDK编译器,则需在TKStudio安装过程中根据提示到相关网站下载安装。在安装好RealviewMDK编译器后,用户需要将该编译器的路径设置到TKStudio中。打开TKStudio集成开发环境,如图2-12所示,选择【工程】【编译工具设置】菜单,将弹出如图2-13所示对话窗口。图2-12打开编译工具设置12图2-13编译器设置对话框点击按钮,选择RealvewMDK所在路径,如图2-14所示。图2-14选择编译工具路径注意需要定位到【KEIL】【ARM】【BIN40】目录,然后点击确定,即完成了编译工具的设置。2.4CY8CKIT-050开发板PSoC(ProgrammableSystem-On-Chip,可编程片上系统)是一种可编程的混合信号阵列架构,由一个芯片内建的MCU所控制,整合可组态的模拟与数字电路阵列,包括放大器、ADC、DAC、滤波器及比较器等模拟电路以及定时器、计数器、PWM、SPI和UART等数字电路。单个PSOC可集成多达100个外围部件,提高系统质量并节省设计时间,缩减板级空间和功耗,大幅降低系统成本3。CY8CKIT-050PSoC5LPDEVELOPMENTKIT(以下简称CY8CKIT-050)是针对CY8C5868的开发板,其开放的资源有LED、LCD、串口、电容传感器、模拟数字端口与USB,并可通过JTAG、SWD与USB下载程序,开发板如图2-15所示。13LCD串口模拟端口USB数字端口电容传感器电容传感器电容传感器LED面包板图2-15CY8CKIT-050开发板CY8CKIT-050开发板自带光盘中的开发环境为PSoCCreator2.1,该开发环境由于版本过低,不能识别CY8C5868处理器,故实际需要到CYPRESS官方网站上下载最新开发环境。本次实验用的是PSoCCreator2.2,需要注意的是该软件不识别中文路径,故在安装以及存放项目文件时必须选择英文路径。安装完成并打开PSoCCreator2.2后,点击【File】【New】【Project】新建一个项目,在此选择器件类型与型号,如图2-16与图2-17所示。图2-16选择EmptyPSoc5LPDesign器件类型图2-17选择CY8C5868AXI-LP035器件型号点击【OK】即可建立工作空间与项目,如图2-18所示。14图2-18新建工作空间与项目示意图点击项目中的【TopDesign.cysch】原理图文件,即可在该原理图中绘制系统的电路原理与逻辑关系图。同时可在右边窗口的【ComponentCatalog】栏中选择模数器件,如图2-19所示。图2-19【ComponentCatalog】模数器件库在此,点击【Analog】【ADC】【DeltaSigmaADC】选择Delta-Sigma模数转换器,将其拖放到原理图中,并双击予以配置,如图2-20所示。15图2-20Delta-SigmaADC配置图图中,将Delta-SigmaADC配置为连续采样,16位分辨率,10000Hz采样率,单极输入,输入范围为VssaVdda,缓冲模式为轨到轨,具体的配置参数说明可点击配置表的左下方【DataSheet】进行参阅。点击【ComponentCatalog】栏中的【PortsandPins】【AnalogPin】选择ADC的模拟输入引脚,将其拖放至原理图,并连接至ADC的输入端口。点击输入引脚,配置其参数如图2-21所示。图2-21模拟输入引脚配置图点击【Display】【CharacterLCD】选择字符LCD模块,将其拖放至原理图,并双击予以配置,配置表结果如图2-22所示。图2-22字符LCD配置图16点击项目中的.cydwr文件,对各模块的引脚进行配置,如图2-23所示。图2-23.cydwr文件示意图在右边栏,根据数据手册的电路原理图,选择各个端口对应的引脚。在此,选择LCD的引脚为P26:0,模拟电压输入引脚为P65,如图2-24所示。图2-24引脚配置示意图配置完的电路原理如图2-25所示。图2-25系统电路原理为了采用最新的器件与API,需要对其进行更新升级,点击【Project】【UpdateComponents】,选中所有器件与API进行升级,如图2-26所示。17图2-26器件与API升级示意图至此,系统的电路搭建完毕。183系统各功能模块的设计与实现3.1系统构成本系统主要由双声道音频信号控制模块、位姿控制模块、控制信号转换模块等模块构成。双声道音频信号控制模块主要是指手机端的软件部分,该模块用来控制通过Android端音频接口输出双声道音频信号的幅度和频率。位姿控制模块主要是获取Android平台方向传感器的实时数据,根据获取的数据控制Android平台的双声道音频信号的幅度和频率。控制信号转换模块的主要部分是烧入了转换程序的TinyM0单片机及烧入DA转换程序的CY8CKIT-050开发板。其主要作用是将Android端输入的双声道音频信号转换为改造后的遥控器所需信号。3.2双声道音频信号控制模块3.2.1Android音频应用开发音频信号可分为模拟音频信号和数字音频信号,通常也将模拟音频信号成为音频信号。音频信号是一种连续变化的模拟信号,又称声波。音频信号有两个重要参数,即频率和幅度。频率指单位时间内完成的周期性变化的次数,声音的频率体现在音调的高低;幅度指振动的物理量偏离平衡位置的最大值,声音的幅度体现在音强的大小。耳机接口最常见的为TRS接口,T(Tip,左声道)、R(Ring,右声道)、S(Sleeve,地)分别代表接口的三个接触点,如图3-1所示。TRS接口有1/4(6.3mm)(俗称大三芯)、1/8(3.5mm)(俗称小三芯)和3/32(2.5mm)三种尺寸(符号”表示英寸)。图3-1TRS接头定义19Android软件平台提供的音频播放控制API包括AudioManager、AudioTrack、MediaPlayer和SoundPool,Android2.3版本后又增加了AudioEffect(主要包括Visualizer和Equalizer)。6个API主要功能如表3-1所示。表3-1Android音频播放控制APIAPI中文名称功能特点AudioManager音频管理器管理音频系统,如设置声音类型、音量等AudioTrack音轨管理控制声道的声音播放MediaPlayer媒体播放器较长音乐的播放,资源占用量高、时间延迟大,不支持多音频同时播放SoundPool音效池较短声音片段的播放,资源占用量低、时间延迟小,支持多音频同时播放Visualizer观察器音频的波形或条状图显示Equalizer均衡器音效均衡器Android系统支持的音频文件格式包括3GPP(.3gp)、MPEG-4(.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所示。表3-2Android音频类型说明参数名中文名称音量参数调节范围STREAM_MUSIC媒体0-15STREAM_RING铃声0-7STREAM_ALARM警告/闹铃0-7STREAM_NOTIFICATION通知0-7STREAM_SYSTEM系统0-7STREAM_VOICE_CALL语音通话0-5STREAM_DTMF双音多频0-15在使用MediaPlayer时,只能控制媒体的音量。经过测试发现,在媒体音量调节时,对于双声道整体音量同步控制和左声道音量单独控制可以实现16级调节,对右声道音量单独控制在07范围内正常,在815范围内左声道会自动与右声道音量保持一致。因此,为实现对左右声道信号幅度的单独控制,在实验中将音量调节范围控制在07范围内。MediaPlayer共有10个状态可以控制,其状态转换图如图3-2所示。20图3-2MediaPlayer状态转换图3.2.2音频信号幅度控制双声道输出信号幅度控制软件分为两大功能模块:音频播放控制模块和音量调节模块。音频播放控制模块需要按照图4所示的MediaPlayer状态转换图控制音频资源的加载、播放、暂停、停止、清理操作;音量调节模块需要用两个拖动条分别实现对左右声道的音量控制。界面设计采用相对布局设计,以保证软件在不同硬件平台上的界面一致性。界面中涉及的字符信息,统一在资源文件strings.xml中进行定义,以利于软件的国际化。程序设计采用MVC架构,在不同的文件中实现数据模型定义(Model)、用户界面设计(View)和程序逻辑控制(Controller)。程序设计基本流程如图3-3所示。21图3-3幅度控制程序流程图3.2.3音频信号频率控制功能设计:双声道输出信号频率控制软件分为两大功能模块:音频资源加载模块和频率调节模块。音频资源加载模块采用HashMap进行管理,其中键Key取SeekBar的值progress,值Value取音频资源在资源文件中的ID。频率调节模块即对SeekBar滑块位置的监听。当滑块处于不同位置时,播放不同频率的声音文件,实现频率的改变。界面设计:界面设计采用相对布局设计,以保证软件在不同硬件平台上的界面一致性。界面中涉及的字符信息,统一在资源文件strings.xml中进行定义,以利于软件的国际化。程序设计:程序设计采用MVC架构,在不同的文件中实现数据模型定义(Model)、用户界面设计(View)和程序逻辑控制(Controller)。程序设计基本流程如图3-4所示。22图3-4频率控制程序流程图3.3位姿控制模块3.3.1Android传感器应用开发Android系统的特色之一是可以通过传感器获取手机设备运行的外界信息,包括手机运动的加速度、手机摆放方向等。大多数运行Android系统的设备具有内置的传感器,这些传感器能够提供高精密度和准确度的原始数据。Android平台传感器可以分为两大类:基于硬件类和基于软件类。基于硬件的传感器是内置于手机或平板设备的物理组件。该类传感器通过直接测量特定的环境参数,如加速度,磁场强度或角度变化为平台提供数据。基于软件的传感器从一个或多个基于硬件的传感器获取数据,也称为虚拟传感器或合成传感器。该类传感器模仿基于硬件的传感器,但不对应物理设备。线性加速度传感器和重力感应器就是基于软件的传感器。按照功能划分,Android平台支持如下三大类传感器:(1)运动类传感器23该类传感器测量加速力和旋转力在三轴上的分量,包括加速度传感器,重力感应器,陀螺仪,旋转矢量传感器。(2)环境类传感器这类传感器测量各种环境参数,如空气温度、气压、光照强度、湿度等,包括气压传感器,光线传感器和温度传感器。(3)位置传感器这类传感器测量设备的物理位置,包括方向传感器和磁场传感器。Android传感器框架(SensorFramework)是实现传感器应用的规范。通

温馨提示

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

最新文档

评论

0/150

提交评论