首页 基于单片机的四轴飞行器毕业设计(论文)

基于单片机的四轴飞行器毕业设计(论文)

举报
开通vip

基于单片机的四轴飞行器毕业设计(论文)吉林建筑大学学士学位论文 毕业论文 基于单片机的四轴飞行器 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期...

基于单片机的四轴飞行器毕业设计(论文)
吉林建筑大学学士学位论文 毕业论文 基于单片机的四轴飞行器 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性; 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 目 录 I摘 要 IIABSTRACT 1第1章 绪论 11.1 论文研究背景及意义 21.2 国内外的发展情况 41.3 本文主要研究内容 5第2章 总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计 52.1 总体设计原理 52.2 总体设计方案 52.2.1 系统硬件电路设计方案 62.2.2 各部分功能作用 72.2.3 系统软件设计方案 8第3章 系统硬件电路设计 83.1 Altium Designer Summer 09简介 83.2 总体电路设计 83.2.1 遥控器总体电路设计 103.2.2 飞行器总体电路设计 103.3 各部分电路设计 103.3.1 电源电路设计 123.3.2 主控单元电路设计 133.3.3 无线通信模块电路设计 163.3.4 惯性测量单元电路设计 183.3.5 电机驱动电路设计 193.3.6 串口调试电路设计 213.4 PCB设计 213.4.1 PCB设计技巧规则 223.4.2 PCB设计步骤 233.4.3 PCB外形设计 253.5 实物介绍 27第4章 系统软件设计 274.1 Keil MDK5.12简介 274.1.1 Keil MDK概述 274.1.1 Keil MDK功能特点 284.2 软件设计框图 294.3 软件调试仿真 304.4 飞控软件设计 304.4.1 MPU6050数据读取 324.4.2 姿态计算IMU 324.4.3 PID电机控制 结 论 36 38致 谢 39参考文献 40附录1 遥控器主程序源代码 45附录2 飞行器主程序源代码 附录3 遥控器原理图 50 附录4 飞行器原理图 51 摘 要 四轴飞行器具备 VTOL(Vertical Take-Off and Landing,垂直起降)飞行器的所有优点,又具备无人机的造价低、可重复性强以及事故代价低等特点,具有广阔的应用前景。可应用于军事上的地面战场侦察和监视,获取不易获取的情报。能够执行禁飞区巡逻和近距离空中支持等特殊任务,可应对现代电子战、实现通信中继等现代战争模式。在民用方面可用于灾后搜救、城市交通巡逻与目标跟踪等诸多方面。工业上可以用在安全巡检,大型化工现场、高压输电线、水坝、大桥和地震后山区等人工不容易到达空间进行。 本设计主要包括遥控器和飞行器两大部分,其中央处理器CPU均采用基于32位ARM Corex-M3内核的NXP LPC1549,时钟频率为72MHz;飞行器与遥控器之间的无线通信采用2.4GHz通信频段的NRF24L01模块,NRF24L01模块与MCU之间通过SPI协议以1MHz的通信速率通信;飞行器端搭载有3轴加速度计与三轴陀螺仪融合一体的MPU6050惯性测量单元作为姿态欧拉角测量单元,MPU6050与飞行器MCU之间通过I2C协议以400Hz的频率进行通信;飞行器端MCU通过接收无线数据以及采集MPU6050数据通过四元数互补滤波计算出的欧拉角,再进行电机PID自动控制,最终以20KHz的PWM通过MOS管来驱动空心杯820直流有刷电机,得以实现遥控四轴飞行器的设计。 关键词 四轴飞行器;PID自动控制;MPU6050;PWM ABSTRACT Four-axis aircraft equipped with VTOL (Vertical Take-Off and Landing, vertical take off and landing) aircraft with all the advantages, and UAV's low cost strong, repeatable, and low accident costs, has broad application prospects. Can be used in military battlefield reconnaissance and surveillance, access is not easy to get information. Able to perform special tasks such as patrolling the no fly zone and close air support, could cope with modern electronic warfare, communications relay of modern warfare. In civil use can be used for post-disaster rescue, traffic patrol and tracking, and many other aspects of the city. Can be used in a safety inspection on the industrial, large-scale chemical sites, high-voltage power lines, dams, bridges and artificial mountain after the earthquake are not easy to reach space. This design includes two remote controls and aircraft parts, central processing unit CPU using of 32ARM NXP Corex-M3 kernel LPC1549,clock frequency is 72MHz; Wireless communication 2.4G communication with the remote control of aircraft band NRF24L01 module NRF24L01 module between the MCU and 1MHz communication speed through the SPI protocol communications; Aircraft end carrying a 3-axis accelerometer and integrating three-axis gyro MPU6050 inertial measurement unit as a gesture of Euler angle measurement unit,MPU6050 aircraft between the MCU communicates through the I2C Protocol with400Hz frequency; Aircraft end-MCU by receiving wireless data MPU6050 data collected by Quaternion complementary filters calculate the Euler angles. PID motor control, ultimately 20KHz PWM drive through the MOS tube hollow glass 820 DC brush motor, remote control design of four axis aircraft. Keywords Quadrocopter;PID Auto control;MPU6050;PWM 第1章 绪论 1.1 论文研究背景及意义 图1-1 典型四轴飞行器 四轴飞行器是一种具有4个对称旋翼的直升机(如图1-1),具有垂直起降、结构简单、操纵方便及机动灵活等优点,在飞行器上挂载摄像头等模块能够实现许多实用功能。在实际应用方面,以四轴飞行器为代表的小型无人机在执行军事任务时具有很大的优势。它们能够在士兵的操控下进行战场上近距离、小范围、复杂地形环境的敌情侦察,还可以用作通信联系工具或者指示目标机,甚至还能装上弹药直接执行战略攻击任务。在民用与工业领域,四轴飞行器也具有广泛的应用前景。通过携带特定的功能检测模块,四轴飞行器可以感知危险区域的有毒物质浓度或核辐射强度等。微型四轴无人飞行器可以自主完成上述任务,不仅节约成本,而且大大简化了人力劳动,也在人类无法到达的危险、危害环境可以完全代替人类工作。 近年来,很多学者和研究机构通过对四轴飞行器进行动力学和运动学分析,建立了系统的数学模型,提出了各种控制算法,并设计了飞行控制系统进行验证;加上传感器技术和控制理论的不断发展,尤其是微电子和微机械技术的逐步成熟,使四轴飞行器的飞行控制成为了一个具有广阔前景的研究课题。 1.2 国内外的发展情况 早在二战时,载人四轴的原型机已经被设计出来,但因为控制技术还跟不上,飞行器因不稳定而无法投入实际应用。那时欠缺的技术主要是惯性测量和控制器的缺陷,那时候的惯性导航系统一般是十几公斤的大铁疙瘩。为了把这么重的东西放到一个多旋翼飞行器上,飞行器的载荷必须很大,可是人们发现,不管是用油机还是电机做多旋翼飞行器的动力系统,都很难得到足够的载荷。同时,因为固定翼和直升机已经很够实际使用了,所以没有人愿意多花功夫去研究多旋翼飞行器这个棘手的问题。很长一段时间里,只有美国一些研发性的项目做出了多旋翼飞行器的样机。 20世纪90年代之后,随着微机电系统(MEMS)研究的成熟,几克重的MEMS惯性导航系统被制作了出来,使得多旋翼飞行器的自动控制器可以制作了。但是MEMS传感器数据噪音很大,不能直接读出来用,于是人们又花了一些年的时间研究MEMS去噪声的各种数学算法。这些算法以及自动控制器本身通常需要速度比较快的单片机来运行,于是人们又等了一些年时间,等速度比较快的单片机诞生。接着人们再花了若干年的时间理解多旋翼飞行器的非线性系统结构,给它建模、设计控制算法、实现控制算法。 因此,直到2005年左右,真正稳定的多旋翼无人机自动控制器才被制作出来。之前一直被各种技术瓶颈限制住的多旋翼飞行器系统突然出现在人们视野中,大家惊奇地发现居然有这样一种小巧、稳定、可垂直起降、机械结构简单的飞行器存在。一时间研究者趋之若鹜,纷纷开始多旋翼飞行器的研发和使用。 四旋翼飞行器是多旋翼飞行器中最简单最流行的一种。如上所述,最初的一段时间主要是学术研究人员研究四旋翼。四旋翼飞行器最早出现在公众视野可能要追溯到2009年的著名印度电影《三傻大闹宝莱坞》,到了2010年,法国Parrot公司发布了世界上首款流行的四旋翼飞行器AR.Drone。作为一个高科技玩具,它的性能非常优秀:轻便、灵活、安全、控制简单,还能通过传感器悬停,用WIFI传送相机图像到手机上。 AR.Drone的流行让四旋翼飞行器开始广泛进入人类社会。在玩具这个尺寸上,多旋翼飞行器的优势就显示出来了,同尺寸的固定翼基本飞不起来,而同尺寸的直升机因为机械结构复杂,根本没法低成本地制作出稳定的产品。 2012年2月,宾夕法尼亚大学的VijayKumar教授在TED上做出了四旋翼飞行器发展历史上里程碑式的演讲。这一场充满数学公式的演讲居然大受欢迎,迄今已经有三百多万次观看,是TED成百上千个演讲中浏览量最高的演讲之一。自此之后,四旋翼飞行器受到的关注度迅速提升,成为了新的商业焦点。 在国内,四轴飞行器发展于深圳市大疆创新科技有限公(DJ-Innovations,简称DJI),早年DJI专注在直升机自动控制器上。不过在2010年,AR.Drone的成功也让DJI开始考虑四旋翼飞行器产品。2012年DJI相继推出了风火轮系列四旋翼机架、悟空四旋翼飞控和S800六旋翼飞行器。当时,在AR.Drone的引领下,全球范围内都有一股将四旋翼商业化的热潮,DJI只是众多小四旋翼公司中稍微出众的一个。随着DJI Phantom在2013年1月的推出,四旋翼飞行器市场的 形势发生了巨大的变化。“Phantom”在英语里有幻影、精灵的意思,它优雅的白色流线型外形也确实配得上精灵这个称呼。Phantom与AR.Drone一样控制简便,新手学习多半个小时就可以自由飞行。Phantom尺寸比AR.Drone大的多,抗风性更好,还具有内置GPS导航功能,可以在户外很大的范围内飞行。更重要的是,当时利用GoPro运动相机拍摄极限运动已经成为欧美国家的时尚,而Phantom提供了挂载GoPro的连接架,让用GoPro相机的人们有了从天空向下的拍摄视角。特别地,与传统的飞机和直升机航拍不同,多旋翼系统小巧灵活,能让拍摄者自由地控制角度和距离。就像iPhone重新定义了手机一样,我们也可以毫不夸张地说Phantom+GoPro重新定义了航拍,也重新定义了相机。 “人类对飞行的梦想是与生俱来的。”你已经看到人们的创意如何在一两年之内被四旋翼点燃起来,更多的飞行器被制造出来,更多的想法也会被创造出来,这样更大的市场也会形成。我相信在未来的十年之内,无人机行业会逐步壮大,我们今天产生的所有想法基本都会实现,更多的想法也会逐步被实现,利用无人机的应用越来越多,无人机将会变成我们生活不可或缺的部分。 1.3 本文主要研究内容 本设计主要包括遥控器的设计和飞行器的设计,遥控器是飞行器的远程控制单元。在设计过程中,两大部分均采用以ARM Cortex-M3为内核的NXP LPC1549作为中央处理器,飞行器端利用3轴陀螺仪、3轴加速度计融合一体的MPU6050惯性测量单元作为姿态传感器,最终实现悬停、自转、前后左右移动等操作功能。 系统采用遥控器无线控制,遥控器端主控芯片采集AD值和按键动作信号,通过NRF24L01无线传输给飞行器,飞行器端的NRF24L01接收到信号之后主控器进行信号收集,飞行器在接收无线信号的同时,还要接收自身姿态传感器MPU6050读出来的值,通过四元数滤波算法,PID控制算法,得到姿态角度值,最终把自身的数据和无线接收到的数据进行统一处理传送给飞行器四个电机的PWM控制I/O口,从而使得飞行器在保持平稳的状态下被遥控器控制,以此来达到遥控的目的。当然,飞行器的状态也可以通过无线发送到遥控器端,遥控器通过显示器可以清晰的观察当前的状况。 此次毕业设计作品为小型四轴飞行器,从原理图设计到PCB设计再到焊接调试都是自己独立完成,最终期望达到的目的是实现无线遥控,遥控器显示器实时显示四轴飞行器的状态,并且能实现悬停。 第2章 总体方案设计 2.1 总体设计原理 本次设计硬件部分主要包括遥控器和飞行器两大部分,主控芯片均采用32位基于ARM Cortex-3的NXP LPC1549处理器,遥控器和飞行器之间通信采用2.4G民用无线通信频段的NRF24L01模块,模块与MCU之间通过硬件SPI采用1MHz的速率通信。遥控器外形设计似游戏手柄,直接用PCB电路板打样后作为遥控器外形。遥控器通过采集蘑菇头摇杆电位器ADC电压值以及按键状态发送给飞行器。飞行器外形设计为十字架形状,通过CAD绘制外形导入到Altium Designer软件里Keep-Out Layer层作为飞行器切割外框。飞行器软件设计主要是MCU通过硬件I2C采用400KHz的速率读取MPU6050的数据,并定时利用惯性测量单元(IMU)姿态获取技术,然后通过PID电机自动控制算法,把PID输出量跟无线接收到的数据进行融合,最终通过输出PWM来控制高速空心杯直流有刷电机来实现各种飞行状态。飞行器螺旋桨主要提供三个作用,一是提供升力,保证飞行器能处于飞行状态;另一个是四个螺旋桨分为两两对称布置,单轴对称布置正反螺旋桨叶,互相抵消螺旋桨旋转时产生的力矩;此外,可以通过调整每个螺旋桨转速,达到飞行姿态控制。飞行姿态控制是四轴飞行器设计核心部分之一。 2.2 总体设计方案 2.2.1 系统硬件电路设计方案 本次设计采用NXP LPC1549微控制器作为MCU,并且均采用3.7V充电电池作为电源为系统供电,电池通过CAT2829芯片稳压到3.3V为MCU以及外设供电,飞行器供电比较特殊,其供电分为两个部分:一是3.7V电池直接为电机供电,二是电池稳压到3.3V之后为系统和外设供电。遥控器端的主要硬件部分包括最小系统、无线NRF2L01模块、程序下载、ADC采集、液晶显示器、蜂鸣器、LED指示灯以及串口调试,飞行器端硬件主要部分有最小系统、程序下载,无线NRF2L01模块、电机驱动、惯性测量单元MPU6050以及LED驱动电路,其系统总体框图如图2-1所示。 图2-1 系统硬件总体框图 2.2.2 各部分功能作用 1. MCU控制中心 MCU是飞行器和遥控器的控制中心,是它们的大脑,主要功能是收集数据和处理数据并且做出指示。本次设计选用的是32位的基于ARM Cortex-M3为内核的NXP LPC154作为中央处理器,设置72M的时钟频率,完全能达到设计的要求。 2. 电源模块 电源模块起着为系统充能量的作用,任何电子系统没有了电源,系统肯定会瘫痪,所以电源起着至关重要的作用。本次电源设计模块选用CAT6219作为3.7V转3.3V稳压芯片;CAT6219的低压差的优点完全符合设计要求,遥控还使用了ASM1117-2.5作为3.7V转2.5V的稳压芯片;2.5V电压用于给ADC电位器做参考电压使用。 3. 通信模块 通信模块在整个系统中起着信号交流的作用,遥控器通过MCU读取的按键信息以及油门方向值发送到飞行器端,飞行器端接收到之后做出相应的动作。本次设计采用NRF24L01无线通信模块,选着此模块的原因是因其通信协议简单、传输距离相对较远、价格低廉等优点。 4. 惯性测量单元 惯性测量单元主要是在飞行器飞行过程中实时检测姿态的传感器,对于飞行 器想要平稳飞行来说具有极其重要的作用。本次设计之所以选用MPU6050作为姿态传感器作为惯性测量单元,是因其具有跟MCU之间进行I2C数据传输,传输速率为400KHz,通信协议简单、价格低廉等优点。 5. 电机驱动 电机驱动部分主要是MCU通过控制PWM然后控制MOS管打开和闭合作为开关从而控制电机的转动。本设计采用SI2302 N沟道型MOS管,其具有低开启电压大电流并且价格便宜等优点,电路设计也很简单。 6. LED状态指示 在硬件电路设计中,LED首先必须要有电源指示灯,判断系统是否上电;其次需要有信号指示灯,指示遥控器和飞行器是否通信;最后就是状态显示LED灯显示飞行器状态等等。 2.2.3 系统软件设计方案 本次设计软件部分包括遥控器程序设计和飞行器程序设计。遥控器程序设计主要包括有无线NRF24L01发送、ADC电压采集之后的处理、显示器驱动显示、读取按键状态以及LED灯指示等,涉及软件包括SPI通信协议、ADC模数转换、I/O口驱动等。飞行器程序设计部分主要包含无线NRF24L01接收、读取MPU6050的数据并通过四元数滤波计算(IMU)以及PID自动控制、电机PWM产生以及控制、LED状态灯等,飞行器软件涉及SPI通信协议驱动、I2C通信协议驱动等。 第3章 系统硬件电路设计 3.1 Altium Designer Summer 09简介 Altium Designer是目前国内最流行的通用EDA软件,Altium Designer Summer 09是Altium公司在2009年发布的版本,它将电路原理图设计、PCB版图设计、电路仿真、PLD设计以及FPGA设计等多个实用工具组合起来构成EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。与早期Protel 99SE以及Protel DXP2004软件相比,Altium Designer Summer 09功能更加完备、风格更加成熟,并且界面更加灵活操作也简单,尤其是在仿真和PFGA电路设计方面有了重大的改进,摆脱了Protel前期版本基于PCB设计的产品定位,显露出一个普及型全线EDA产品崭新的面貌。 本次毕业设计所有硬件设计部分包括原理图和PCB部分都是使用Altium Designer Summer 09来完成的。 3.2 总体电路设计 3.2.1 遥控器总体电路设计 在本次硬件电路设计中,原理图采用把每个模块分开来绘制,然后在所需接口上使用连接口连接,这使得整个遥控器电路图能够直观的显示其中包括了哪些模块单元,并且每个模块之间的连接也非常清楚。此时不需要去知道每个模块的内部连接,知道模块有哪些可用的接口就可以。遥控器硬件电路总图如图3-1所示。 由图3-1可以清晰看出,遥控器供电有两种供电方式,一种是采用3.7V电池供电,第二种是通过Micro USB电源线供电。在电源模块中,可输入5V直流电源或输入3.7V直流电源。此次设计中考虑到可能出现两种电源同时接上的情况,所以采用电源开关来控制电源输入类型。从该模块还能看出电源输出的有3.3V和2.5V两种电源。遥控器硬件电路除了电源模块电路,还包括最小系统电路模块、串口调试电路模块、ADC电路模块以及按键跟LED灯模块。 图3-1 遥控器硬件电路总图 3.2.2 飞行器总体电路设计 图3-2飞行器硬件电路总图 飞行器硬件电路图如图3-2所示,由图可知,飞行器硬件电路主要包括电源电路、MCU最小系统电路、电机驱动电路、MPU6050外设电路以及LED指示灯电路。 3.3 各部分电路设计 在硬件电路设计中,对以下几个主要的模块如电源电路、MCU最小系统电路、无线通信电路、MPU6050电路、串口调试电路、电机驱动电路等进行更加详细的介绍。 3.3.1 电源电路设计 电源是任何电子系统设计的核心,并且需要的是稳定的电源,电源的是否稳定影响着系统的稳定,因此,电源部分也是重点设计的部分。在本次设计中,由于包括遥控器和飞行器两大部分并且都需要单独供电,都有电源部分电路,在这里重点介绍飞行器的电源电路设计。 飞行器电源设计使用3.7V充电锂电池作为电源,给系统供电,但是系统需要两种电源,一是MCU和外设需要稳定的3.3V电源,再者就是飞行器电机的3.7V供电。本次设计所选用的空心杯直流有刷电机在工作的时候,对电压的影响非常大,所以要在保证能给电机供电的情况下还能有3.3V的稳定电压,因此本次设计采用CAT6219作为3.3V稳压芯片,采用CAT6219稳压芯片是因为它具有以下几个优点: · 很低的电压差,能确保3.7V电压能稳定到3.3V; · 低噪声低功耗设计; · 电路极为简单; · 精度高纹波小; · 低成本低噪声。 电源电路设计如图3-3所示,其中330mH电感L1在回路电路中起着消除系统运行产生的磁通量,保证电源的稳定;C6和C9两个100uF的大电容分别放在稳压芯片的输入和输出两端起着滤波的作用,能更加的稳定电源。在本设计过程中,还把电源分为模拟和数字两部分,分别通过磁珠来进行隔离,周围的小电容同时也起着滤波的作用。 图3-3 电源电路原理图 在遥控器电源设计中,输入电压可以是3.7V或者5V电电源,用到了两个稳压芯片,一个是3.3V稳压芯片CAT6219,3.3V电源给MCU和外设供电;另外用到2.5V稳压片ASM1117,2.5V电源作用是给ADC摇杆电位器提供电源,作为参考电压,采用超低电压的原因是保证采集到的ADC电压值不受电池电量的影响而使得数据不准确。 3.3.2 主控单元电路设计 MCU是系统的核心,从成本和性能以及掌握32位ARM芯片的熟练情况等各方面综合考虑,本设计遥控器和飞行器均采用NXP LPC1549作为主控芯片,NXP LPC1549是恩智浦公司推出的低功耗、高集成、高性价比的MCU芯片。NXP LPC1549基于32位ARM Cortex-M3内核,主频高达72MHz;具有独立的指令总线和数据总线的哈佛 架构 酒店人事架构图下载公司架构图下载企业应用架构模式pdf监理组织架构图免费下载银行管理与it架构pdf ,并拥有供外设使用的第三独立总线;内置嵌套向量中断控制器(NVIC)和存储器保护单元(MPU);配备256kB flash、32kB ROM、4kB EEPROM和36kB SRAM;支持FS USB、CAN、RTC、SPI、USART、I2C等外设。程序调试跟下载通过JLINK仿真器SWD模式来进行。NXP LPC1549具有4路定时器PWM,刚好驱动飞行器的四个电机。因此,NXP LPC1549是本系统设计的理想选择。MCU最小系统电路原理图如图3-4 所示。 NXP LPC1549处理器一共有48个引脚,包括电源引脚有12个,外部晶振引脚2个,外部RTC时钟引脚2个,USB引脚2个,30个I/O口引脚。 其中30个I/O口引脚中,PIO0_21复用外接复位芯片引脚;PIO0_19、PIO0_20两个引脚 复用JLINK仿真调试SWD模式下载的SWCLK和SWDIO引脚;PIO0_0~ PIO0_3为SCT定时器产生PWM引脚,同时也复用ADC0通道引脚。PIO0_22、PIO0_23两个引脚分别的硬件I2C的时钟SCL引脚和数据线SDA引脚。 NXP LPC1549引脚还有一种开关矩阵功能,为了使硬件电路设计方便,特有的功能。比如串口的RXD和TXD引脚可以通过软件寄存器配置随意更换引脚而不是固定不变的;硬件SPI引脚也可以通过开关矩阵来配置,这大大减轻了硬件电路设计的难度和开发时间。 图3-4 MCU最小系统电路原理图 3.3.3 无线通信模块电路设计 本次设计无线通信模块采用的是NRF24L01模块。NRF24L01具有以下特性: ●真正的GFSK单收发芯片                      ● 内置链路层  ● 增强型ShockBurstTM  ● 自动应答及自动重发功能  ● 地址及CRC检验功能  ● 数据传输率1或2Mbps  ● SPI接口数据速率0~8Mbps  ● 125个可选工作频道  ● 很短的频道切换时间可用于跳频  ● 与nRF 24XX系列完全兼容  ● 可接受5V电平的输入  ● 20脚QFN 44mm封装  ● 极低的晶振要求60ppm  ● 低成本电感和双面PCB板 ● 工作电压1.9~3.6V  NRF24L01无线通信模块的通信距离在不接天线时能达到30M左右,跟MCU之间采用1MHz的SPI通信协议进行传输,模块与模块之间采用2.4G无线网络频段通信,其电路原理图如图3-5所示。无线NRF24L01模块与MCU之间连接口如表3-1所示。 图3-5 NRF24L01 无线通信模块电路图 2.4G 无线网络频段属于 ISM 频段,它是全球范围内被广泛使用的超低辐射绿色环保频段;具有 125 个通讯信道,因为 2.4G 无线网络通讯更通畅,多个通讯指令间不会相互干扰;2.4G 无线网格带宽传速率最高可以达到 108Mbps,因此它的传输速度很快;它的传输距离相对较远(空旷地带:200m 有效传输距离),且不受传输方的影响,支持双向通讯。 表3-1 NRF24L01引脚与MCU引脚连接对照 MCU引脚 NRF24L01引脚 功能 PIO0_12 CE 使能发送或接收 PIO0_13 CSN SPI片选信号 PIO0_14 SCK SPI时钟信号 PIO0_15 MOSI SPI数据输入脚 PIO0_16 MISO SPI数据输出脚 SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI 接口由MOSI(串行数据输入),MISO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由MISO 输出,MOSI 输入,数据在时钟的上升或下降沿由MISO 输出,在紧接着的下降或上升沿由MOSI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。 SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI通信协议时序图如图3-6所示。 图3-6 SPI通信协议时序图 3.3.4 惯性测量单元电路设计 飞行器硬件电路设计中,最重要的地方就要属于惯性测量单元MPU6050的硬件电路设计。因其封装尺寸太小,并且是QFN的封装方式,焊接难度非常之大。MPU6050是集三轴加速度计和三轴陀螺仪与一起的姿态传感器,MPU6050跟MCU直接采用400Hz的I2C协议传输数据。MPU6050与MCU之间连接只需两根线,一跟是I2C时钟线SCL与MCU的PIO0_22引脚连接,另一根I2C数据线SDA与MCU的 PIO0_23引脚连接。惯性测量单元的电路如图3-7所示。 图3-7惯性测量单元电路图 在图3-7中,3个10K上拉电阻R20、R21、R22是为了增强驱动能力,MPU6050的七位设备地址是b110100x,最后一位是通过AD0管脚的电平来确定,本设计接的是地,所以设备地址是b1101000。MPU6050主要接口是两个引脚,一个是I2C数据线SDA引脚,一个是I2C时钟线SCL引脚。 MPU-6050的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的IC。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。 I2C总线支持任何IC 生产过程(NMOS和CMOS 双极性),两条线串行数据(SDA )和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器LCD驱动器存储器或键盘接口)而且都可以作为一个发送器或接收器(由器件的功能决定),很明显,LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表3-2),主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时 任何被寻址的器件都被认为是从机。 表3-2 I2C总线术语定义 术语 描述 发送器 发送数据到总线的器件 接收器 从总线接收数据的器件 主机 初始化发送,产生时钟信号和终止发送的器件 从机 被主机寻址的器件 多主机 同时有多于一个主机尝试控制总线,但不被破坏报文 仲裁 是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程 同步 两个或多个器件同步时钟信号的过程 图3-8 起始和停止信号 在I2C 总线中唯一出现的是被定义为起始S和停止P条件见图3-8的情况,其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件,当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件, 起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后,总线被认为再次处于空闲状态。如果产生重复起始S条件而不产生停止条件,总线会一直处于忙的状态此时的起始条件S和重复起始S条件在功能上是一样的,符号S将作为一个通用的术语既表示起始条件又表示重复起始条件,除非有特别声明的S如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便,但是没有这种接口的微控制器在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换。 在MPU6050工作的时候,通过逻辑分析仪采集到I2C通信时的时序图,如图3-9 所示。 图3-9 MPU6050工作时I2C协议时序图 图3-10 I2C协议时序图 如图3-10所示MPU6050工作时的时序图。首先主机也就是飞控端MCU是时钟线保持高电平,数据线被拉低,产生一个起始信号,紧接着主机(MCU)向从机(MPU6050)发送写设备地址信号,这时的设备地址就是MPU6050的器件地址b11010000,最后一位是0表示发送的是写的地址;从机收到设备地址之后返回个ACK,然后主机再向从机发送设备子地址,也就是寄存器地址,从机再返回ACK,接下来当时钟线保持高电平数据线被拉低时再次发送信号,这时发送的是读取设备的地址b11010001,最后位为1是读取;等到从机返回ACK之后主机开始读取到数据,MCU读取到数据之后,单次通信完成,等待进入下一次通信。 3.3.5 电机驱动电路设计 飞行器硬件电路设计中,电机驱动部分也相当重要。本次所采用的电机是空心杯820直流有刷电机,电机采用3.7V电源供电,驱动思路是这样的,电机的一端接电源正级,负极端接MOS管,MOS管通过飞行器MCU的PWM来控制它的开启与关闭从而控制电机转速。四个电机驱动的PWM分别于MCU的PIO0_0、PIO0_1、PIO0_2、PIO0_3引脚连接。其电路原理图如图3-11所示。 如3-11 电机驱动原理图 图3-12 SI2302特性曲线图 对于N沟道增强型MOS管SI2302,主要参数如下: 晶体管类型:N沟道MOSFET 最大功耗PD:1.25W 栅极门限电压VGS:2.5V(典型值) 漏源电压VDS:20V(极限值) 漏极电流ID:2.8A 通态电阻RDS(on):0.145hm(典型值) 栅极漏电流IGSS:±100nA 结温:55℃--150℃ 直流有刷电机驱动采用此MOS管,其特性曲线如图3-12所示,由图可知,它的开启电压为1V,当Vgs=2V时其最大的工作电流可以达到4A,完全能达到本次设计要求;D2反向二极管防止电机断电之后继续转产生的电流击穿MOS管,起着保护MOS管的作用;R12为单片机I/O口的限流电阻;R14为下拉电阻,防止单片机上电之后I/O口为高电平时电机转动。 3.3.6 串口调试电路设计 在本次毕业设计中,串口调试电路只用在遥控器当中,遥控器直接通过Micro USB接口给遥控器供电,然后连接串口,就可以直接跟上位机连接,方便程序调试。本次设计选用的串口转USB芯片是CH340G芯片,CH340G具有以下特点: ● 全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。  ● 仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。  ● 计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。  ● 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。 ● 支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。  ● 通过外加电平转换器件,提供RS232、RS485、RS422等接口。  ● 支持IrDA规范SIR红外线通讯,支持波特率2400bps到115200bps。 ● 软件兼容CH341,可以直接使用CH341的驱动程序。 ● 支持5V电源电压和3.3V电源电压。  ● 提供SSOP-20和SOP-16无铅封装,兼容RoHS。 图3-13 CH340G电路原理图 CH340G硬件电路图如图3-13所示。设计电路连接中比较注意的地方有以下两点: (1)CH340芯片正常工作时需要外部向XI引脚提供12MHz的时钟信号。一般情况下,时钟信号由CH340内置的反相器通过晶体稳频振荡产生。外围电路只需要在XI和XO引脚之间连接一个12MHz的晶体,并且分别为XI和XO引脚对地连接振荡电容。  (2)CH340芯片支持5V电源电压或者3.3V电源电压。当使用5V工作电压时,CH340芯片的VCC引脚输入外部5V电源,并且V3引脚应该外接容量为4700pF或者0.01uF的电源退耦电容。当使用3.3V工作电压时,CH340芯片的V3引脚应该与VCC引脚相连接,同时输入外部的3.3V电源,并且与CH340芯片相连接的其它电路的工作电压不能超过3.3V。本次设计采用的是3.3V工作电压,所以V3直接跟VCC连接。 3.4 PCB设计 硬件电路原理图设计完毕之后,接下来就是PCB的设计。本次设计采用双层电路板印制,遥控器和飞行器均不加外壳,直接使用PCB板作为支架外形,焊接上元器件直接可以使用。 3.4.1 PCB设计技巧规则 对于IC、非定位接插件等大器件,可以选用50~100mil的格点精度进行布局,而对于电阻电容和电感等无源小器件,可采用25mil的格点进行布局。大格点的精度有利于器件的对齐和布局的美观。 1.PCB布局规则 (1)在通常情况下,所有的元件均应布置在电路板的同一面上,只有顶层元件过密时,才能将一些高度有限并且发热量小的器件,如贴片电阻、贴片电容、贴片IC等放在底层。 (2)在保证电气性能的前提下,元件应放置在栅格上且相互平行或垂直排列,以求整齐、美观,在一般情况下不允许元件重叠;元件排列要紧凑,元件在整个版面上应分布均匀、疏密一致。 (3)电路板上不同组件相临焊盘图形之间的最小间距应在1MM以上。 (4)离电路板边缘一般不小于2MM.电路板的最佳形状为矩形,长宽比为3:2或4:3。电路板面尺大于200MM乘150MM时,应考虑电路板所能承受的机械强度。 2.布局技巧 在PCB的布局设计中要分析电路板的单元,依据起功能进行布局设计,对电路的全部元器件进行布局时,要符合以下原则: (1) 按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号尽可能保持一致的方向。 (2)以每个功能单元的核心元器件为中心,围绕他来进行布局。元器件应均匀、整体、紧凑的排列在PCB上,尽量减少和缩短各元器件之间的引线和连接。 (3)在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件并行排列,这样不但美观,而且装焊容易,易于批量生产。 3.4.2 PCB设计步骤 1.布局设计 在PCB中,特殊的元器件是指高频部分的关键元器件、电路中的核心元器件、易受干扰的元器件、带高压的元器件、发热量大的元器件,以及一些异性元器件,这些特殊元器件的位置需要仔细分析,做带布局合乎电路功能的要求及生产的需求。不恰当的放置他们可能产生电路兼容问题、信号完整性问题,从而导致 PCB设计的失败。 在设计中如何放置特殊元器件时首先考虑PCB尺寸大小。快易购指出PCB尺寸过大时,印刷线条长,阻抗增加,抗燥能力下降,成本也增加;过小时,散热不好,且临近线条容易受干扰。在确定PCB的尺寸后,再确定特殊元件的摆放位置。最后,根据功能单元,对电路的全部元器件进行布局。特殊元器件的位置在布局时一般要遵守以下原则: (1)尽可能缩短高频元器件之间的连接,设法减少他们的分布参数及和相互间的电磁干扰。易受干扰的元器件不能相互离的太近,输入和输出应尽量远离。 (2)一些元器件或导线有可能有较高的电位差,应加大他们的距离,以免放电引起意外短路。高电压的元器件应尽量放在手触及不到的地方。 (3)重量超过15G的元器件,可用支架加以固定,然后焊接。那些又重又热的元器件,不应放到电路板上,应放到主机箱的底版上,且考虑散热问题。热敏元器件应远离发热元器件。 (4)对与电位器、可调电感线圈、可变电容器、微动开关等可调元器件的布局应考虑整块扳子的结构要求,一些经常用到的开关,在结构允许的情况下,应放置到手容易接触到的地方。元器件的布局到均衡,疏密有度,不能头重脚轻。 一个产品的成功,一是要注重内在质量。而是要兼顾整体的美观,两者都比较完美的扳子,才能成为成功的产品。 2.放置顺序 (1)放置与结构有紧密配合的元器件,如电源插座、指示灯、开关、连接器等。 (2)放置特殊元器件,如大的元器件、重的元器件、发热元器件、变压器、IC等。 (3)放置小的元器件。 3.布局检查 (1)电路板尺寸和图纸要求加工尺寸是否相符合。 (2)元器件的布局是否均衡、排列整齐、是否已经全部布完。 (3)各个层面有无冲突。如元器件、外框、需要私印的层面是否合理。 (4)常用到的元器件是否方便使用。如开关、插件板插入设备、须经常更换的元器件等。 3.4.3 PCB外形设计 经过两周的时间准备硬件电路模块选择以及PCB的设计,按照最初的构思,根据硬件设计框图,最终设计好遥控器和飞行器的PCB电路版,本次设计将采用制作出的电路版作为外型尺寸不做外包装。在设计过程中,遥控器外设计灵感来自游戏手柄,这样设计的目的是把遥控器能直接握在手里,同时非常有手感。飞行器外形设计比较复杂,直接用Altium Designer 09软件无法达到效果,要求飞行器外形的四个电机位置必须是关于中心对称,以免不对称导致平衡更加的难以控制,再考虑到这些因素之后,设计采用CAD专业绘图软件绘制飞行器外形,最终把绘制好的外框导入到Altium Designer 09软件里面PCB设计的keep-out-player层作为外形切割,如图3-14、3-15分别为遥控器和飞行器的PCB图。 图3-13 遥控器PCB图 图3-14 飞行器PCB图 3.5 实物介绍 本次毕业制作了实物,实物图如图3-15、3-16所示。 图3-15 遥控器实物图 图3-16 飞行器实物图 实物操作细节如下所示: 上电:首先给遥控器上电,等待遥控器LED信号灯闪烁之后再给飞行器上电。第一步必须要这样做,这样做是为防止飞行器先上电之后接收到无线信号不准确从而导致飞行器出现不确定的飞行情况。 解锁:解锁过程需要双手同时操作,双手握住摇杆,左边摇杆控制油门,右边摇杆控制方向,当双手遥杆同时往下掰到最下方,持续2S左右,可以看到飞行器四周的LED灯开始闪烁,说明解锁成功。 上锁:上锁过程也需要双手同时操作,左手把摇杆掰到最左边位置同时右手把摇杆掰到最低位置,等待遥控器闪烁LED熄灭电机停止转动,说明以上锁,飞行器停止等待重新解锁过程。 飞行操作:待飞行器解锁成功之后,左手轻轻推动油门,可以看见飞行器电机慢慢开始转动起来,继续加大油门之后可以使飞行器飞起来,右手可以调整飞行的方向。 注意:上电顺序不能弄反,操作需缓慢进行,飞行器别在狭小的空间飞行,千万要固定好飞行器电池跟无线通信模块。 第4章 系统软件设计 4.1 Keil MDK5.12简介 4.1.1 Keil MDK概述 Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision5 等。目前Keil MDK 由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。 MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库。 4.1.1 Keil MDK功能特点 ●完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件; ●行业领先的ARM C/C++编译工具链; ●确定的Keil RTX ,小封装实时操作系统(带源码); ●μVision5 IDE集成开发环境,调试器和仿真环境; ●TCP/IP网络套件提供多种的协议和各种应用; ●提供带标准驱动类的USB 设备和USB 主机栈; ●为带图形用户接口的嵌入式系统提供了完善的GUI库支持; ●ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一 次执行; ●关于程序运行的完整代码覆盖率信息; ●执行分析工具和性能分析器可使程序得到最优化; ●大量的项目例程帮助你快速熟悉MDK-ARM强大的内置特征; ●符合CMSIS (Cortex微控制器软件接口标准)。 4.2 软件设计框图 系统软件设计主要包括遥控器程序设计和飞行器程序设计。遥控器主要作用就是采集操控信息发送给飞行器,飞行器的程序是最重要的也是最难的,包括接收无线数据和惯性测量单元数据读取以及数据处理部分。遥控器和飞行器程序设计流程图如图4-1、4-2所示。 图4-1 遥控器程序流程图 图4-2 飞行器程序流程图 在遥控器程序设计中,采用循环采集ADC电压并无线发送数据。ADC电压取值范围是0~2.5V,分辨率为100,采集到数据即为0~250,并把采集到的电压值存入无线传输缓存Buf数组里面。Buf数组定义为8位数据类型,设置了8位长度,Buf[0]里面存入帧头,Buf[1]里存放油门,Buf[2]存放左边摇杆数据,Buf[3]存入前后方向数据,Buf[4]存入左右方向数据,剩余部分存入按键状态信息。NRF24L01直接将读取的8位数据发送到飞行器端,进行实时控制。 在此次飞行器程序设计中,在主程序里面使用了三层while循环,进入初始化之后,首先循环是否检测到NRF24L01芯片,若检测到则往下执行,否则循环等待;其次是循环检测是否有解锁信号,收到解锁信号继续往下执行,否则等待;最后是主循环,循环读取数据并进行处理,电机控制,检测是否有上锁信号,若收到上锁信号,电机停止转动,LED灯停止闪烁,使用goto语句强制跳转到程序初始化,否则继续主循环。 在电机控制程序中,采用芯片自带定时器产生特定的PWM,其频率为20KHz。飞行器MCU通过定时器没2ms产生一次计数,计数5次即10ms读取一次MPU6050的数据并进行一次四元数计算以及PID计算在送给PWM,这10ms的时间里,有大约2ms在接收无线信号,2ms进电机控制程序,剩下时间空闲。这里2ms电机控制程序时间必须是一定的,因为在四元数计算和PID计算都有微分积分时间,这里的2ms既为算法里面微积分的时间。 4.3 软件调试仿真 本次毕业设计使用的是32位ARM芯片,此类芯片都支持JLINK在线硬件仿真调试和下载,跟51相比,在线硬件仿真调试大大缩减的程序的调试时间,并且能够更加直观的观察程序每一步的运行情况,同时处理器中所使用寄存器值的变化也一目了然,非常便于使用。 J-LINK仿真器目前已经升级到V9.1版本,其仿真速度和功能远非简易的并口WIGGLER仿真调试器可比。J-LINK支持ARM7、ARM9、ARM11,Cortex M0/M1/M3/M4,Cortex A4/A8/A9等内核芯片,支持ADS、IAR、KEIL开发环境。V9.3版本较V8.0版本进一步提升了下载速度,最大下载速度提升到1MByte/s。在程序设计过程中,通过KEIL MDK5.12版本创建工程,下载程序也通过JLINK的SWD模式下载。 程序在线仿真,主要是通过仿真器使其运行每一步程序然后观察寄存器值的变化来判断程序是否有Bug,对于程序简单的比如LED灯等这些程序,没必要用仿真来调试了。本次毕业设计用到仿真的地方主要有ADC电压采集程序部分,观察采集到的电压值是否准确;另外就是无线模块程序调试的时候,在线仿真调试数据是否发送和接收,并且判断是否正确,最后观察飞行器惯性测量单元MPU6050是否读取到数据部分,这里是仿真调试运用最多的地方。当然,在程序调试比如无线发送和接收部分,也可以通过串口打印显示来调试。 4.4 飞控软件设计 本次飞行器软件设计中,最主要的程序设计部分就是姿态传感器MPU6050数据读取和姿态欧拉角计算再到PID电机控制算法。 4.4.1 MPU6050数据读取 MPU6050数据读取是通过I2C协议跟MCU通信,程序设计直接读取MPU6050寄存器就可以,在此过程中,除了程序本身I2C驱动程序以外,需要编写MPU6050初始化程序和读取数据函数。其流程图如图4-1所示。 MPU6050初始化程序设计中,需要初始化电源管理寄存器PWR_MGMT_1、采样分频寄存器SMPLRT_DIV、MPU6050配置寄存器CONFIG、加速度计配置寄存器ACCEL_CONFIG、陀螺仪配置寄存器GYRO_CONFIG。各寄存器地址如表4-1所示。 表4-1 MPU6050数据寄存器地址 地址名 地址 地址名 地址 地址名 地址 ACCEL_XOUT_H 0x3B ACCEL_YOUT_H 0x3D ACCEL_ZOUT_H 0x3F ACCEL_XOUT_L 0x3C ACCEL_YOUT_L 0x3E ACCEL_ZOUT_L 0x40 GYRO_XOUT_H 0x43 GYRO_YOUT_H 0x45 GYRO_ZOUT_H 0x47 GYRO_XOUT_L 0x44 GYRO_YOUT_L 0x46 GYRO_ZOUT_L 0x48 其中设置采样分频寄存器SMPLRT_DIV初值为0x07,此时陀螺仪采样率125Hz;寄存器CONFIG的初值设置为0x06为低通滤波5Hz;GYRO_CONFIG寄存器初值设置为0x00,则陀螺仪量程500deg/s;ACCEL_CONFIG寄存器初值为0x00,则设置成为不自检加速度计量程2g,源代码如下所示。 void MPU6050Init (void) { const INT8U ucData[5] = {0x00,0x07,0x06,0x00,0x00}; I2CMWriteNByte(SlaveAddress,1,PWR_MGMT_1,&ucData[0],1); delay_ms (200); I2CMWriteNByte(SlaveAddress,1,SMPLRT_DIV,&ucData[1],1); //0x07 I2CMWriteNByte(SlaveAddress,1,CONFIG1,&ucData[2],1); //0x06 I2CMWriteNByte(SlaveAddress,1,GYRO_CONFIG,&ucData[3],1); //0x00 I2CMWriteNByte(SlaveAddress,1,ACCEL_CONFIG,&ucData[4],1); //0x00 delay_ms (200); } 其中SlaveAddress是MPU6050的设备地址,即为0xd0。读取数据源代码如下: int16 GetData(int8_t REG_Address) { uint8_t H,L; I2CMReadNByte(SlaveAddress&0xFE,1 ,REG_Address,&I2CMRevBuf[0] ,1); H = I2CMRevBuf[0]; I2CMReadNByte(SlaveAddress &0xFE,1 ,REG_Address+1,&I2CMRevBuf[1] ,1); L = I2CMRevBuf[1]; return (H<<8)+L; /*合成数据*/ } 其中REG_Address为MPU6050寄存器地址。程序运行时通过GetData()读取数据函数读取所需陀螺仪和加速度计的原始数据。比如需要读取加速度计X轴的数据,直接写入Accel_y=GetData(ACCEL_YOUT_H)就可以,此时读出的原始数据不能直接用,需要进一步数据处理,才能得到欧拉姿态角。 4.4.2 姿态计算IMU 通过前一步数据读取,然后经过计算才能得到姿态欧拉角,其数据处理流程图如图4-2所示。 四元数计算是一个超复数形式的数学计算方法,四元数可以理解为一个实数和一个向量的组合,也可以理解为四维的向量。 姿态解算的核心在于旋转,一般旋转有4种表示方式:矩阵表示、欧拉角表示、轴角表示和四元数表示。矩阵表示适合变换向量,欧拉角最直观,轴角表示则适合几何推导,而在组合旋转方面,四元数表示最佳。因为姿态解算需要频繁组合旋转和用旋转变换向量,所以采用四元数保存组合姿态、辅以矩阵来变换向量的方案。 四元数计算过程相当复杂,程序量很大,完全是数学计算公式,此段程序通过把MPU6050读取出来的数据值进行处理最终得到欧拉角度值。 4.4.3 PID电机控制 PID 控制器是一个在工业控制应用中常见的反馈回路部件,由比例单元P(Proportion)、积分单元I(Integration)和微分单元D(Differentiation)组成。PID控制器作为最早实用化的控制器已有近百年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。 在此次设计中,最终目的是想要飞行器平稳飞行,其中的设计就免不了运用PID电机调速控制。如图4-3所示是一个小功率直流电机的调速框图。给定速度 与转速 进行比较,其差值为 ,经过PID控制器调整后输出电压控制信号 , 经过功率放大后,驱动直流电动机改变其转速。 图4-3 小功率电机调速系统 PID数学计算公式如式 4-1 所示: (4-1) 式中 ――控制器的比例系数 --控制器的积分时间,也称积分系数 ――控制器的微分时间,也称微分系数 常规的模拟PID控制系统原理框图如图4-4所示。该系统由模拟PID控制器和被控对象组成。其中 是系统输入误差值, 是系统的最终输出值,输入值与输出值构成控制偏差 。而 作为PID控制器的输入, 作为PID控制器的输出和被控对象的输入。 图4-4 PID电机控制系统框图 根据PID计算公式和原理,编写出PID控制程序,其源代码如下所示: FP32 PID_ROL(FP32 e,FP32 e1,FP32 kp,FP32 ki ,FP32 kd) { static FP32 e_s = 0,sum = 0; /*e_s用于保存上一次的误差值,用于计算微分项,Sum用于计算累加和,计算积分项*/ FP32 r; /* r存放PID计算值 */ sum = sum + e; /* 累加和计算 */ r = kp*e+ki*sum+kd*(e1-e_s); /*从左至右分别是比例、积分、微分*/ e_s = e1; /*保存这一次的误差值用于下一次微分计算*/ return r; /* 返回计算值 */ } 然而,PID算法的重点不在于他的原理,而是着重PID三个参数的调节。PID调试过程步骤如下: 1.控制回路中的比例项P  比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系,当仅有比例控制时系统输出存在稳态误差。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长。   2.控制回路中的积分项I        在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。   3.控制回路中的微分项D  在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。      4.PID调节常用口诀  参数整定找最佳,从小到大顺序查,先是比例后积分,最后再把微分加,曲线振荡很频繁,比例度盘要放大,曲线漂浮绕大湾,比例度盘往小扳,曲线偏离回复慢,积分时间往下降,曲线波动周期长,积分时间再加长,曲线振荡频率快,先把微分降下来,动差大来波动慢,微分时间应加长,理想曲线两个波,前高后低4比1,一看二调多分析,调节质量不会低 。 结 论 通过这次为期两个月的毕业设计,使我对32位的ARM处理器、无线通信、电机驱动、陀螺仪等模块有了更充分的了解,尤其是32位处理器,之前都没接触过,这次毕业设计得到了很大巩固和提高。 在接到毕业设计这个题目之后,我非常有信心,之前在做比赛的时候做过四轴飞行器,那时候做的四轴飞行器是大尺寸的那种,用的都是现成的模块做的,但是有了前车之鉴,这次毕业设计虽然做的是小型四轴飞行器,但是比赛的 经验 班主任工作经验交流宣传工作经验交流材料优秀班主任经验交流小学课改经验典型材料房地产总经理管理经验 肯定能在我的毕业设计带来很大的帮助。 毕业设计期间,最辛苦也是最有意义的地方就是找出问题的所在,并通过查阅相关资料,寻找解决方案最终解决问题,过程虽然比较繁琐,但是很有意义。四年的大学课程学习,两年的实验室学习经验,学到了很多关于单片机以及嵌入式方面的知识,这也是我们电子信息工程专业所学的比较重要的一部分,通过这次毕业设计,使我对硬件电路设计、32位ARM处理器、电机控制方面的知识得到了进一步的提高。 想要很好的完成此次毕业设计,总体设计思路要清晰明了。从主控芯片的选着到模块选择方案设计,都需要经过深思熟虑。我的思路还是比较清晰,首先得有遥控器作为控制端,采集控制信息通过无线传感器传输给飞行器端;飞行器端通过无线接收遥控信息并做出相应的反应,这时就会涉及到电机的控制,电机控制通过什么方式驱动都需要方案设计,还涉及飞行器姿态的检测,选用什么传感器都需要考虑进来,硬件部分大致就这个思路。在程序设计里面,除了传感器相应的程序设计以外,最主要的部分就是飞行器端的姿态控制,通过什么算法计算飞行器的欧拉角,通过哪种方式控制电机自动控制,都是在考虑的范畴里面。有了清晰的思路,就开始选型和方案的制定。 经过查阅相关资料,本次设计选用基于ARM Cortex-M3为内核的NXP LPC1549作为控制芯片,选用NRF24L01作为通信模块,MPU6050作为姿态测量单元,电源部分采用3.7V充电锂电池为系统提供电源,飞行器电机使用空心杯820直流有刷电机,并使用N沟道MOS管来驱动电机,在外形设计中,由于此次飞 行器外形尺寸小,所以直接采用PCB板作为遥控器和飞行器的支架。程序设计部分采用四元数滤波算法来计算姿态欧拉角,再选用经典电机自动控制方法的PID来调节电机,使其达到本次设计的要求。 在设计好硬件电路之后,通过工厂制作好PCB板,到焊接调试的时候也遇到过很多困难,其中最难焊接的就要属于MPU6050,这个芯片是QFN-24 封装,引脚在侧边并且还很小,其次就是主控芯片的焊接,但是不管怎么样,通过学习了一下午的芯片焊接技术,总算是焊好了。所谓天下没有做不成的事,只有做不成事的人。在调试的时候,也出现过很多问题,其中遇到的第一个问题就是当飞行器电机转速很高的时候芯片就会自动复位,困扰了很久,最后通过与同学讨论,最后找到问题的所在了,原来是因为电机转动起来会产生电磁干扰,需要在电路中连接一个电感去掉电磁干扰,最后在电池电源出来的地方接了个330uH的电感之后就解决了这个问题。总而言之,不管遇到什么困难,只要下定决心解决并且努力去完成,最终都会有很好的结果的。 本次毕业设计对于我来说最主要任务是实物的制作,这段时间里,在老师和同学的帮助下以及自己的不断学习和探索下,一步一步的完成了设计的要求,这个过程非常有意义也值得回味。通过与同学老师交流,不仅可以丰富自己的知识面,开拓自己的思路,还可以拉近与老师同学之间关系。这段时间的毕业设计,掌握了许多书本上学不到的知识,但同时遇到问题也需要查阅书本得以解决,把书本上的知识运用到实践中来,学以致用,这样才会更快的进步。 总之,通过这次设计,我了解了关于我所设计课题的相关内容,加深的对本专业的了解,巩固了大学四年所学到的知识,毕业设计是理论与实践操作共同结合的一个过程,这是我们毕业前了解自己所学专业应用前景的一个重要的过程,也是对我们大学四年所学知识的一次总体的考核。 致 谢 历时两个月的时间完成了此次毕业设计,从开题报告到硬件电路设计再到程序设计最后再撰写这篇论文,在这么长的毕业设计过程中,我遇到过很多的困难,为此我的指导老师许亮老师都始终给予我细心的指导和不懈的支持,对我无私的指导,许老师为人随和热情、治学严谨细心,即使不是上班时间也不厌其烦的帮助我进行论文的修改,为我指点迷津,帮助我开拓思路、精心点拨,从开始的方案选择到资料选取,到最后硬件电路设计以及程序调试都是如此的帮助我。许老师深厚的理论功底和丰富的实践经验以及诲人不倦的高尚师德对我毕业设计的完成起着至关重要的作用。在此,谨向许亮老师致以崇高的敬意和由衷的感谢。需要感谢的还有陈伟利老师,在实物制作过程中陈老师也给予了许多的帮助,陈老师诲人不倦的给我解决了很多难题,在此也表示由衷的感谢。 感谢我的同学和朋友,在实物制作调试以及论文撰写过程中给予我很多有价值的意见,同学之间的互相讨论,解决了很多依靠个人难以解决的问题,尤其是在实物制作和程序调试过程中,同学朋友的帮助起到了很重要的作用。最后还要感谢背后一直默默支持我的家人,我所取得的每一点成绩和经验都离不开他们的支持。 本论文的完成并非终点,文中的不足和浅显之处则是我新的征程上一个个新的起点。同时在本论文写作过程中引用了很多学者的文献,如果没有这些前辈的研究成果,我将很难完成这篇论文的撰写,在此感谢这些文献的作者。 学业即将完成,我将带着家人、老师、同学和朋友的鼓励各期望,迈进人生崭新的台阶。 参考文献 [1] NXP LPC 15xx系列处理器用户手册[EB]. [2] 杨明志.四旋翼飞行器自动驾驶仪设计[D].南京:南京航空航天大学,2008. [3] 于卫卫.三自由度四旋翼盘旋系统控制问题研究[D].沈阳:东北大学,2007. [4] 张家琪.四旋翼直升机姿态运动控制研究[D].沈阳:东北大学,2009. [5] 庞庆霈.四旋翼飞行器设计与稳定控制研究[D].合肥:中国科学技术大学,2011. [6] 周权,黄向华,朱理化.四旋翼微型飞行平台姿态稳定控制试验研究[J].传感器与微系统,2009,28(5):72-79. [8] 聂博文,马宏绪,王剑.微小型四旋翼飞行器的研究现状与关键技术[J].电光与控制,2007,14(6):113-117. [9] 李尧.四旋翼飞行器控制系统设计[D].大连:大连理工大学,2013. [10] 谭浩强.C程序设计教程[M].北京:清华大学出版社,2010. [11] 王璐.四旋翼无人飞行器控制技术研究[D].哈尔滨:哈尔滨工程大学,2012. [12] 霍罡.可编程序控制器模拟量及PID算法应用案例[M].北京:高等教育出版社,2013. [13] 宋佳佳.小型四旋翼飞行器实验平台设计[D].武汉:华中科技大学,2013. [14] 程学功.四轴飞行器的设计与研究[D].杭州:杭州电子科技大学,2012. [15] Bouabdallah S., Noth A., Siegwart R. PID vs LQ control techniques applied to an indoor micro quadrotor[D].IEEE International Conference on Intelligent Robots and Systems,2004. [16] Castillo P., Dzul A., Lozano R. Real-time stabilization and tracking of a four-rotor mini rotorcraft[J],IEEE Transactions on Control Systems Technology,2004,12(4): 510-516. [17] Bouabdallah S,Siegwart R, Backstepping and sliding-mode techniques applied to an indoor micro quadrotor[J].IEEE International Conference on Robotics and Automation, Barcelona,2005,4:2247-2252. 附录1 遥控器主程序源代码 #include "includes.h" extern uint32_t SystemCoreClock; volatile uint32_t gas,roll,around,about; uint8_t NRF_TXBuf[512]; uint8_t NRF_RXBuf[512]; uint8_t Data_buf[20]; extern volatile uint32_t ADCValue[2][ADC_NUM]; /********************************************************************* ** 引脚定义 *********************************************************************/ #define LED_PORT 0 #define LED1 10 #define LED2 16 #define LED_OFF 1 #define LED_ON 0 #define TEST_UART LPC_UART0 #define UART_TX_IDLE (1 << 3) /********************************************************************* **调用函数声明 ********************************************************************/ void myDelay (INT32U ulTime); void led_init(void); void LPC1549_ADC_Config(void); uint16 ADC_Send_Value(void); void disp_uart(void ); void display(uint16_t data,uint8_t p[4]); /********************************************************************* ** Function name: myDelay ** Descriptions: 软件延时 ms 函数 ** input parameters: ulTime:延时时间 ** output parameters: None ** Returned value: None *********************************************************************/ void myDelay (INT32U ulTime) { INT32U i = 0; while (ulTime --) { for (i = 0;i < 14400;i++) { } } } int main(void) { uint8_t test_nrf ; uint16_t i = 0,led_flag = 0; SystemCoreClockUpdate(); // 系统时钟 GPIOInit(); // I/O口初始化 led_init(); // LED灯初始化 NRF24L01_Init(); // NRF24L01初始化 LPC1549_ADC_Config(); //ADC初始化 UARTInit(LPC_UART0, 115200); // 串口初始化 LPC_ADC0->SEQA_CTRL |= ( ADC_SEQ_ENA | ADC_BURST ); /* 启动序列A的 BRUST转换 */ while(!NRF24L01_Check()); // 检测NRF24L01是否正常 GPIOSetBitValue(LED_PORT,LED1,LED_ON); NRF24L01_TX_Mode(); while(1) { i++; if(i == 1000) { led_flag = ~led_flag; GPIOSetBitValue(LED_PORT,LED2, led_flag); } ADC_Send_Value(); NRF24L01_TxPacket(NRF_TXBuf); } } void led_init(void) { uint32_t ucRegVal; GPIOSetDir(LED_PORT, LED1, 1); GPIOSetDir(LED_PORT, LED2, 1); GPIOSetBitValue(LED_PORT,LED1, LED_OFF); GPIOSetBitValue(LED_PORT,LED2, LED_OFF); ucRegVal = LPC_SWM->PINASSIGN0 & ~( 0xFF << 0 ); LPC_SWM->PINASSIGN0 = ucRegVal | ( 0x0f << 0 ); /* 0f P0.15 is UART0 TXD, */ ucRegVal = LPC_SWM->PINASSIGN0 & ~( 0xFF << 8 ); LPC_SWM->PINASSIGN0 = ucRegVal | ( 0x0e << 8 ); /* 0e P0.14 is UART0 RXD. */ } void LPC1549_ADC_Config(void) { ADC_Config adc_Config; ADC_Config *pAdc_config = &adc_Config; pAdc_config->adc_clock = 36000000; // 同步模式时钟36MHz pAdc_config->async_mode = 0; // 禁用异步模式 pAdc_config->tenbit_mode = 0; // 禁用10位模式 pAdc_config->lpwr_mode = 1; // 禁用省电模式 pAdc_config->input_sel = 0; // 要测量内部电压,选择完输入后要对30:31写入2 pAdc_config->seqa = 1; // 选择SEQA pAdc_config->seqa_channels = (0x4f0); // 使能通道4,5,6,7,10 pAdc_config->seqa_hwtrig = 0; // PIN触发 pAdc_config->seqa_trigger = 0; // 触发极性,上升沿 pAdc_config->seqa_sync_bypass = 0; // 使用同步模式 pAdc_config->seqa_single_step = 1; // 使能触发/START启动 pAdc_config->seqa_low_prio = 0; //SEQA优先于SEQB pAdc_config->seqa_int_mode = 1; //开启中断 pAdc_config->seqa_seq_mode = 1; //ENTIRE_SEQ=1时mode必须是1 ADCInit(LPC_ADC0, pAdc_config); //ADC0初始化 LPC_SWM->PINENABLE0 |= (0x4f0UL); /* 先禁能ADC0_4,ADC0_5,ADC0_6,ADC0_7,ADC0_10 */ LPC_SWM->PINENABLE0 &= ~(0x4f0UL); /* 在开关矩阵打开ADC0_0,ADC0_1,ADC0_2,ADC0_3,ADC0_4 */ } /********************************************************************* **ADC采集函数 *********************************************************************/ uint16 ADC_Send_Value(void) { ADC_Config adc_Config; ADC_Config *pAdc_config = &adc_Config; ADCRead(LPC_ADC0, pAdc_config, ADC0_SEQA); /* 读取ADC转化的值,将其放入ADCValue[0][i]中 */ gas = (uint32_t)((float)(ADCValue[0][5] * 3000) / (float)40960/1 ); roll = (uint32_t)((float)(ADCValue[0][6] * 3000) / (float)40960/1 ); around = (uint32_t)((float)(ADCValue[0][10] * 3000) / (float)40960/1 ); about = (uint32_t)((float)(ADCValue[0][7] * 3000) / (float)40960/1 ); NRF_TXBuf[0] = (int8_t )gas ; NRF_TXBuf[1] = (int8_t )roll ; NRF_TXBuf[2] = (int8_t )around ; NRF_TXBuf[3] = (int8_t )about ; return 0; } 附录2 飞行器主程序源代码 #include "includes.h" uint8_t NRF_RXBuf[4] = {0}; int16 Rc_Get_THROTTLE = 0; extern uint32_t MRT_timer_counter; extern uint32_t MRT_NRF_counter; uint16 YM_gas=0; void SYS_init(void); void delay_ms (uint32_t ms) { uint32_t i = 0; while (ms --) { for (i = 0;i < 10000;i ++) { } } } int main (void) { uint32_t i = 0; ABC: SYS_init(); //程序初始化 while(NRF24L01_Check()); //检测24l01芯片 LED0_Set(); NRF24L01_RX_Mode(); //20l01接收模式 delay_ms (2000); delay_ms (2000); while (1) { //遥控解锁 NRF24L01_RxPacket(NRF_RXBuf); if(NRF_RXBuf[1]<20&&NRF_RXBuf[3]<20) { delay_ms (1000); if(NRF_RXBuf[1]<20&&NRF_RXBuf[3]<20) { break ; } } } LED1_Set(); delay_ms (1000); Calibration(); //校准陀螺仪 while (1) { switch (nrf_mode_flag) { case 0:{ //接收模式 NRF24L01_RX_Mode(); NRF24L01_RxPacket(NRF_RXBuf); if(NRF_RXBuf[2] > 220&&NRF_RXBuf[3] < 10) { //上锁信号 GPIOSetBitValue(0,6,1); GPIOSetBitValue(0,7,1); GPIOSetBitValue(0,5,1); SCT_PWM(10, 10, 10, 10); goto ABC; //强制跳转到初始化 } PID_Control(); //陀螺仪值读取、四元数计算、PID算法、PWM控制 i++; if(NRF_RXBuf[3]) { // 通信正常 if(i < 100) { GPIOSetBitValue(0,6,1); GPIOSetBitValue(0,7,1); } if(i > 100&&i < 200) { GPIOSetBitValue(0,6,0); GPIOSetBitValue(0,7,0); } if(i > 200) { i = 0; } } } break ; case 1:{ //发送模式 NRF_TXBuf[0] = 0x77; NRF24L01_TX_Mode(); NRF24L01_TxPacket(NRF_TXBuf); } break ; } if(MRT_timer_counter < 10){ nrf_mode_flag = 0; } if(MRT_timer_counter > 10&&MRT_timer_counter<15){ nrf_mode_flag = 1; } if(MRT_timer_counter>=15) { MRT_timer_counter = 0; } NRF_RXBuf[1] = 0; NRF_RXBuf[2] = 0; NRF_RXBuf[3] = 0; } } void SYS_init(void) { GPIOInit(); LED_Init(); /* 初始化LED */ SCT_Init(); /* 初始化SCT */ I2C_MstInit(TEST_IIC,I2C_FMODE_PRE_DIV,CFG_MSTENA,0); // I2C初始化 MPU6050Init (); // MPU6050初始化 NRF24L01_Init(); SCT_Init(); MRTInit(); SCT_PWM(10, 10, 10, 10); delay_ms (1000); } 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文 全文 企业安全文化建设方案企业安全文化建设导则安全文明施工及保证措施创建安全文明校园实施方案创建安全文明工地监理工作情况 数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 年 月 日   毕业设计(论文)使用授权声明 本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 年 月 日 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。 毕业论文的基本教学要求是: 1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。 毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。 撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。 2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。 3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。 按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。 另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类: 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。 写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。 首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。 第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 � EMBED Visio.Drawing.15 ��� � EMBED Visio.Drawing.15 ��� _1495553955.unknown _1495553981.unknown _1495553968.unknown _1495553929.unknown _1488876287.unknown _1488876297.unknown _1488876309.unknown _1488876305.unknown _1488876292.unknown _1488875632.unknown _1488875637.unknown _1488875557.unknown _1488875628.unknown _1488875422.unknown
本文档为【基于单片机的四轴飞行器毕业设计(论文)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥11.9 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
不系舟红枫
从教近30年,经验丰富,教学水平较高
格式:doc
大小:8MB
软件:Word
页数:81
分类:工学
上传时间:2019-01-24
浏览量:54