设计与开发

基于msp430单片机的设计 基于MSP430单片机的四旋翼飞行器控制系统设计

小编 2024-10-12 设计与开发 23 0

基于MSP430单片机的四旋翼飞行器控制系统设计

汤金萍,周雷,金阿锁

(南通大学 电气工程学院, 江苏 南通 226019)

四旋翼飞行器是由4个带桨叶电机驱动并形成十字交叉结构的一种飞行器。本试验是以MSP430F149单片机为主控芯片,搭建四旋翼飞行器控制系统。以MPU-6050传感器获取飞行器的姿态信息,经过递推滤波算法,得到可靠的姿态数据,通过四元数融合算法,进行姿态解算,获得四旋翼飞行器的姿态角,然后借助PID控制算法,消除四旋翼飞行器在飞行过程中不可预测的误差,最后,以PWM波的形式控制无刷直流电机,实现四旋翼飞行器的自平稳控制。本试验完成了四旋翼飞行器的自平稳控制系统,能够基本实现四旋翼飞行器的平稳起飞与降落。

MSP430;MPU-6050;欧拉角;四旋翼飞行器;闭环控制

四旋翼飞行器是多旋翼飞行器中最常见、最简单的一种。2010年世界首款四旋翼飞行器AR.Drone问世,它由法国Parrot公司发布。它的定位是一款高科技玩具,性能非常优秀,轻便,很安全,容易控制,而且还能实现自悬停,拍摄图像,并通过WiFi传输到手机上显示。

DJI是众多四旋翼飞行器公司中值得一提的公司之一。在早些年,DJI主要工作放在直升机的控制上,在AR.Drone问世后,DJI看到了四旋翼飞行器的市场,开始研究四旋翼飞行器产品。2012年,DJI相继推出了几款飞行器产品。在当时AR.Drone的引领下,全球刮起了一股四旋翼飞行器商业化的热潮。

2013年1月,DJI推出Phantom,如图1所示。四旋翼飞行器被开发用作一个新领域——航拍。“Phantom”的中文意思是精灵,与它的外形很相配。随着Phantom的推出,四旋翼飞行器的市场也开始发生变化。Phantom很容易操作,没有操控经验的新手也可很快学会操作。与AR.Drone相比,Phantom的尺寸更大一些,在户外飞行时,抗风干扰的能力更强,Phantom还有GPS导航功能,可以飞行的范围很大。Phantom最大的特点,就是可搭载摄像机。Phantom可通过连接架挂载GoPro运动相机,拍摄极限运动。Phantom可以从不一样的视角拍摄,而且,与传统的飞机航拍不同,它小巧、灵活,可以让拍摄者自由控制角度。Phantom+GoPro拍摄模式的出现,让四旋翼飞行器更有生机。说多旋翼飞行器重新定义了航拍,一点都不为过。

从现在的四旋翼飞行器市场来看,一部分是以AR.Drone为代表的玩具市场,另一部分就是以DJI Phantom、DJI S1000为代表的航拍飞行器市场[1]。著名的快递公司顺丰就进行了多旋翼飞行器送快递的实验。在一些人类活动困难的地点,如火山口、沼泽地等,将多旋翼飞行器用于地质勘测的情况也越来越多。军事方面,多旋翼飞行器可以用于无人机侦察等。另外,多旋翼飞行器还可以用作森林防火监控、高速公路车辆监控、公共领域现场监控等。

1总体方案

1.1四旋翼飞行器基本结构

四旋翼飞行器是由4个带桨叶电机驱动并形成十字交叉结构的一种飞行器,本试验的四旋翼飞行器采用十字飞行方式,电机1为正前方,由此确定前后、左右。4个电机分别安装在十字结构的4个顶点,由此形成的四个旋翼结构相同,两两对称[2]。飞行控制器和电池被安装在中间交叉点位置。四旋翼飞行器的结构形式如图2所示。

1.2运动姿态分析

四旋翼飞行器由四个旋翼共同提供升力,通过改变4个电机转速,调节4个旋翼的升力,由此控制飞行器的姿态和飞行方向。四旋翼飞行器一共有6个自由度,4个力输入,6个状态输出,因此它是一个欠驱动系统[3]。

四旋翼飞行器常见的飞行方式有2种[4]:X飞行方式与十字飞行方式,其中两个电机正转,两个电机反转,以抵消自旋转力。本试验采用的是十字飞行方式,电机2、4顺时针旋转,电机1、3逆时针旋转。

规定电机1的方向即为正前方向,也是x轴方向;电机2为左方向,即y轴方向;电机3为右方向;电机4为后方向;z轴方向与x、y垂直向上。四旋翼飞行器的运动姿态可分为6种:垂直运动、俯仰运动、滚转运动、偏航运动、前后运动、倾向运动,如图3所示。

2硬件系统设计

2.1硬件框架

四旋翼飞行器硬件结构如图4所示,以MSP430F149单片机为主控芯片,作为飞控板,采用MPU-6050获取飞行器姿态数据,并通过PWM波控制电子调速器,调节电机转速。用Nokia5110显示屏显示飞行器内部数据,便于调试。

2.2电源

对于四旋翼飞行器,电源的质量会很大程度地影响它的飞行。本试验所使用的是新西达2212 KV2200电机,搭配5043号桨叶,当单电机满载运行时,实测电流可达到21.1 A。所以当飞行器满载运行时,总电流将达到80 A以上。同时,考虑到四旋翼飞行器的搭载能力,电源的质量非常重要。本试验选用狮子 3S11.1V2 200 mAh 电池搭配电子调速器作为电源。

2.3角度传感器模块

MPU-6050是全球首例整合性6轴运动处理传感器,由InvenSense公司推出。MPU6050整合了3轴加速度传感器和3轴角速度传感器,其检测轴与方向如图5所示。

3轴加速度传感器的精度可编程选择,范围为:±2 g、±4 g、±8 g和±16 g[5]。

3轴角速度传感器精度范围:±250、±500、±1 000°/s与±2 000°/s。

2.4电机与电子调速模块

2.4.1选用电子调速器控制无刷直流电机

选用电机与电子调速器控制无刷直流电机。可用在四旋翼飞行器上的直流电机有无刷电机和有刷电机两种。无刷电机在运行时不会产生火花,减小了对遥控器无线信号的干扰,同时相对于有刷电机更安静、运行更顺畅,且结构可靠,基本不需要维护。所以电子调速器控制无刷电机更适合用作四旋翼飞行器。

2.4.2新西达2212KV2200电机

新西达2212KV2200电机的内部共7对极,12个绕组。

新西达2212KV2200电机的6种通电情况下,电机是外转子结构,即内部有线圈的部分为定子,有7对极的外壳为转子。

2.5飞控(MSP430F149)

MSP430是TI公司生产的低功耗系列单片机。采用16位精简指令结构(RSIC)[6],其特点是:超低功耗;处理能力强;丰富的片内外设;系统工作稳定;开发环境简单、方便。

3软件与控制算法

飞控程序是实现四旋翼飞行器控制系统的关键。由定时器A产生20 ms中断,每次中断发生,MSP430F149通过I2C采集一次MPU-6050的数据,获取原始姿态数据,经过递推滤波、四元数融合算法,得到姿态角,再根据需要的飞行姿态,并通过PID算法,计算得到电机的控制量,最后经过PWM的方式控制电机转速[7]。在下一次中断发生时,飞行器的姿态信息通过MPU-6050更新到单片机,以此循环,从而实现了四旋翼飞行器的自平稳控制系统。

程序流程如图6所示。

4系统测试及实现成果

4.1姿态解算测试

在姿态解算测试时,使用Nokia5110显示屏,通过更改程序,可分别显示传感器原始数据、递推滤波后数据、四元数算法融合后数据、PWM波占空比数据。这样可以让用户直观方便地了解到数据处理结果,便于发现问题并进行调试,如图7所示。

实验结果表明:在小幅度摆动飞行器时,屏幕显示的姿态角信息(姿态角)无误。

4.2PID参数测试

PID控制的一个优点就是可以消除不可预测的误差,而PID参数是一组经验参数,需要根据实际的控制系统测试,选择合适的PID参数。对于四旋翼飞行器,PID调试方法如下:

(1)四旋翼飞行器采用十字飞行方式,俯仰角由电机1、3控制,滚转角由电机2、4控制。

(2)在调节俯仰时,先设置I、D为0(这里以P、I、D分别代表比例参数、积分参数、微分参数),只改变P的量,由小到大依次变化。当系统出现临界振荡,或收敛振荡时,此时的P值就是所需要的数据。

(3)比例环节是PID调节中最难调节的一个,只要确定了P值,积分和微分环节就比较容易实现。

(4)微分系数D也是影响系统调节的一个重要参数。微分环节的作用就是减缓误差的变换速度。在四旋翼飞行器中,就是让旋翼的摆动速度不能过快。在步骤(2)中,四旋翼飞行器已经出现等幅振荡,在等幅振荡的过程中,两个极值处的振荡速度最慢,在中间理想位置处,振荡速度最快。加入了微分环节D之后,在振荡速度最快的中间理想位置,微分环节作用最大,从而抑制了系统的过调,只要选择合适的D值,四旋翼飞行器就会快速、准确地调节到理想位置,而且不会出现过调。

PID参数的设定受到系统实际情况的影响,在不同的四旋翼飞行器之间也有所不同,所以PID参数需要实际的测试才能够确定。PID参数的测试结果如表1和表2所示。

5结论

本试验对四旋翼飞行器的结构进行了分析,完成了四旋翼飞行器的自平稳控制系统,能够基本实现四旋翼飞行器的平稳起飞与降落。本文介绍四旋翼飞行器的发展现状和发展历程,列举了四旋翼飞行器研究的部分技术难点,对四旋翼飞行器的飞行姿态进行了分析,并介绍了四旋翼飞行器软、硬件的实现。

参考文献

[1] DAS A, SUBBARAO K, LEWIS F. Dynamic inversion with zerodynamics stabilization for quadrotor control[J]. IET Control Theory and Applications, 2009, 3(3): 303-314.

[2] MIAN A A,Wang Daobo. Modeling and back stepping based nonlinear control strategy for a 6 DOF quadrotor helicopter[J]. Chinese Journal of Aeronautics,2008(21):261-268.

[3] 侯永锋,陆连山,高尚德,等. 基于PD算法的四旋翼飞行器控制系统研究[J]. 机械科学与技术, 2012,31(3):359-362.

[4] 王璐. 欠驱动四旋翼无人飞行器的滑模控制[J]. 哈尔滨工程大学学报, 2012,33(10):1-6.

[5] 陈卫,杨忠,夏玉亮,等. MEMS加速度传感器在微型特种机器人中的应用[J]. 传感器与微系统, 2009,28(7):110-113.

[6] 杨平,王威. MSP430系列超低功耗单片机及应用[J]. 国外电子测量技术,2008,27(12):48-50.

[7] 黎泉,苏家强,李晓冉. 直流电机同步控制系统设计[J]. 河池学院学报, 2010,30(5):46-51.

AET会员年终大福利!

基于MSP430单片机的甲醛含量监测报警系统设计

曾宪阳1,杨红莉2,郁汉琪1,褚南峰1

(1.南京工程学院 工业中心,江苏 南京 211167;2.南京工程学院 数理部,江苏 南京 211167)

根据市场上甲醛检测装置存在误差大、功耗高等缺点,设计了以MSP430单片机作为控制核心,多子机网点辅助监测,无线模块进行数据通信的甲醛检测仪。使用单片机内部A/D转换模块将传感器采集到的模拟量转换成数字量,再经卡尔曼滤波器进行滤波,保证了采样数据的准确性。该监测系统检测精度高、功耗低、稳定性好,经试验验证,能很好地满足消费者需求。

低功耗;MSP430单片机;甲醛监测仪;卡尔曼滤波;多网点

当前,空气环境污染严重,特别是新装修的房间含有甲醛等有害物质[1-5],影响到人们的身体健康。市面现有的甲醛检测系统多为单点测试,体积大、功耗高、检测单一、价格昂贵,且不能自动对甲醛含量高的区域进行重点实时监测[6-7],因此本文设计了一种新的甲醛含量监控报警系统。该系统包括多个子机系统及一个主机系统,将每个子机系统分散安置在各个房间的某个区域,主机系统放置在卧室或客厅等住户常活动的位置,主机与子机之间采用NRF24L01无线网络进行通信。子机系统定时将采集到的甲醛含量信息通过无线网络传递给主机,主机通过中断接收各子机发来的信息并进行分析处理,同时根据需要将数据通过无线网络发送给上位机PC,给用户带来方便。

1系统设计思路

系统选用MSP430F149单片机作为主控制芯片,以减少功耗,提高效率。采用具有精度高、功耗低的AQM201传感器来检测甲醛含量。采用多个430单片机作为子机模块分别测量对应区域甲醛含量,然后各子机实时将采集到的甲醛含量信息传送给430主机模块,子机与主机之间采用NRF24L01无线模块进行通信。系统设计框图如图1所示。

子机系统中的甲醛传感器检测空气中的甲醛含量,经处理以模拟信号形式输出,经A/D转换为数字量后传送给CPU,考虑到传感器非线性因素,CPU将数据修正后转换为实际甲醛含量浓度百分比,通过各自无线通信模块通道传输给主机。以上过程每隔5 s重复采集发送一次,该采样时间可通过主机发送给子机的命令参数进行自动调整。

主机通过外部中断及时采集各子机发来的信息,并根据子机发来的地址码将各子机发来的信息进行归类,同一子机发来的信息存放在对应房间号的数组中。主机通过数组数据及时分析各房间的甲醛含量值,对于甲醛含量长时间未呈减少趋势的房间区域,主机将自动通知子机调整采样时间来进行重点监测。当甲醛含量连续多天一直超过设定上限值时,主机还会发出报警声,用以提示用户甲醛超标。在实际测量过程中,传感器接收到的信号包括环境干扰信号,因此各子机采用卡尔曼滤波器对采样数据进行滤波,更大程度地保证了采样数据的准确性。

2硬件电路设计

2.1MSP430单片机最小系统电路设计[8-9]

本系统选用MSP430F149单片机作为主控单元,其最小系统包含了时钟电路、复位电路、JTAG调试电路,如图2所示。单片机的引脚VeREF+为内部A/D转换参考电压,接3.3 V。为保证参考电压稳定,该引脚及单片机电源引脚DVCC均对地增加了滤波电容C8、C6以滤掉环境电磁干扰。由于430单片机为低电平复位,由R1、C5组成复位电路,系统上电后电容C5充电,相当于短路,RST端为低电平,充电完毕后RST变为高电平,完成上电自动复位功能。按键S2为系统增加了手动复位功能。JTAG电路为系统程序调试下载接口,连接MSP-FET430UIF仿真器即可实现程序调试下载工作。在主机系统电路设计中,增加了按键电路如图2中S3、S4、S5、S6所示。S3键为功能键,用于选择采样时间、显示模式、报警上下限等功能;S4、S5分别为增加、减少按键,用于参数调整;S6键作为备用按键,便于后期功能拓展开发。按键接至单片机具有外部中断功能的P1口,CPU可随时进入按键中断服务子程序对相应参数进行设定调整。

2.2甲醛传感器模块电路设计[10]

所设计的甲醛传感器模块电路如图3所示。由于甲醛传感器AQM201输出模拟量,需经A/D转换后得到数字量方可送给单片机处理。考虑到MSP430单片机内部自带高精度12位A/D转换器,满足设计要求,因此直接采用430单片机内部A/D转换器将信号转换为数字量后供单片机CPU处理。由于甲醛传感器输出模拟量电压范围为0~5 V,而单片机A/D采样满量程电压为3.3 V,因此传感器输出的模拟量还需进行电压量程匹配转换。如图3所示,R2、R3组成分压电路,阻值分别为1.7 kΩ、3.3 kΩ。3.3 kΩ电阻两端的电压作为模拟电压输出,此时该模块输出模拟电压范围将为0~3.3 V,与单片机A/D转换量程匹配,该输出信号接至单片机A/D转换口P6.0。

2.3无线通信模块电路设计

无线通信采用NRF24L01模块[11-12],电路如图4所示,N1为无线通信模块,其中第8脚为中断请求输出端,接至单片机的外部中断P1.4口。各无线通信模块在接收到数据后,将数据保存在自身存储器中,然后向单片机发出中断请求,以便单片机及时读取保存在自身存储器中的数据,防止该数据被新接收的数据覆盖。

主机中的无线通信模块IRQ引脚接至单片机外部中断接口,以便主机及时响应各子机发来的数据。系统中各子机将定义各自的地址码,代表各子机所在的不同房间。子机在发送数据的同时连同自身的地址码一并发出,主机接收到数据后,通过地址码来区分各个子机的数据信息,从而得到对应房间区域的甲醛含量浓度。主机采集到信息后在液晶显示屏上显示当前各个区域的甲醛浓度百分比,以及甲醛含量随时间变化的曲线图,便于用户分析甲醛浓度分布及走向。

2.4报警模块电路设计

选用蜂鸣器作为报警发生装置,采用PNP三极管9012作为驱动,如图5中Q1所示。考虑到I/O口的驱动能力,单片机将以灌电流形式控制蜂鸣器发声,控制I/O口由单片机的P5.5引脚提供,当I/O口为低电平时,蜂鸣器发声,为高电平时,蜂鸣器停止发声。

2.5显示模块电路设计

如图6所示,显示模块采用LCD12864HZ液晶显示器,其自带汉字字库,可显示汉字、字符及图形,使用方便。液晶直接采用3.3 V电压供电,便于与单片机I/O口电平匹配。为简化电路设计,节约I/O口开支,液晶显示模块与单片机的接口采用串行接口进行通信,SCLK、SID、CS三引脚分别接至单片机的P3.5、P3.6、P3.7三个引脚。

3软件程序设计

3.1子机系统软件设计

在子机系统中,传感器每隔一定时间采集一次数据,经数据处理、卡尔曼滤波[13-15]后,通过无线通信模块发送给主机,同时子机实时准备接收主机发送过来的设置命令(用于设置子机传感器采样时间间隔等)。因此子机系统软件任务包含传感器数据采集、数据处理、数据发送、数据接收几个部分。由于无线接收任务属于紧急任务,该任务由外部中断来完成。主程序将完成传感器数据采集、数据处理、数据发送任务,流程图如图7所示。

3.2主机系统软件设计

主机要完成的任务有:本机数据采集、子机数据接收、数据存储、数据显示、传感器检测、按键扫描、发送数据给上位机、报警等。根据任务的紧急性将数据接收、按键扫描任务均设置为外部中断模式,并将数据接收设置为高优先级中断。数据显示、传感器检测以及报警任务程序在主程序中循环调用。其中,初始化函数包含了时钟配置、I/O口初始化、中断初始化、各功能模块初始化等,为系统工作做好准备。外部中断入口对应的中断源为主机系统单片机的P1.4引脚,在初始化函数中将该引脚设置为外部中断模式。主机流程图在此不再赘述。

3.3系统数据处理

图8为甲醛传感器模拟输出特性曲线图,横轴为浓度值,纵轴为采集到的电压,根据图中提供的数据可知,对采集到的数据进行处理即可计算出甲醛在空气中的含量。设采集到的电压为Vx,甲醛浓度为Y,则计算公式为:

4结论

图9为系统主机实物图及实时监测曲线显示。系统包括硬件设计和软件编程两部分,实现了对室内甲醛含量的实时监控与报警监测。采用卡尔曼滤波器对传感器采集到的信号进行滤波,保证了采样数据的准确性。系统检测精度高、功耗低、稳定性好,可用于建筑室内甲醛气体含量监测,也可用于电厂、化工、地下管道等施工环境监测,防止甲醛中毒事故发生。

参考文献

[1] 王维新.甲醛释放与检测[M].北京:化学工业出版社,2003.

[2] 陈焕文,郑健,李明,等.甲醛检测方法及仪器[J].分析化学评述与进展,2004,32(7):969-972.

[3] GB/T 18204.26-2000,公共场所空气中甲醛测定方法[S].北京:中国标准出版社,2000.

[4] GB/T 16129-1995,居住区大气甲醛卫生检验标准方法:分光光度法[S].北京:中国标准出版社,1995.

[5] 陆学奎,兰建中.家庭室内装修后空气中甲醛污染调查及防治措施初探[J].现代预医学,2006,33(6):952-953.

[6] 马天.甲醛分析仪现场检测技术[J].中国测试技术,2005,31(5):131-132.

[7] 孙登峰,方正,马天,等.甲醛快速测定仪测试性能研究[J].中国测试技术,2006,32(6):26-28.

[8] 胡大可.MSP430C语言程序设计与开发[M].北京:北京航空航天大学出版社,2003.

[9] 刘忠超,殷华文,郭抒颖.基于MSP430单片机的智能仪表设计[J].自动化与仪表,2015(2):20-24.

[10] 单成祥.传感器的理论与设计基础及应用[M].北京:国防工业出版社,1999.

[11] 侯杏娜,陈寿宏,唐万顺.基于NRF24L01的降雨量实时采集无线监测系统[J].计算机测量与控制,2014,22(8):2372-2376.

[12] 严林祥,张红雨.基于Web和nRF24L01的远程数据接收器设计[J].电子技术应用,2013,39(10):69-75.

[13] DAUM F. Nonlinear filters beyond the Kalman filter[J].IEEE A&E Systems Magazine,2005,20(8):57-69.

[14] KIM J, VADDI S S, MENON P K, et al.Comparison between nonlinear filtering techniques forspiraling ballistic missile state estimation [J].IEEE Transactions on Aerospace and Electronic Systems,2012,48(1):313-328.

[15] KALMAN R E. A new approach to linear filtering and prediction problems [J].Transactions of the AMSE Journal of Basic Engineering,1960,82(1):35-45.

AET会员年终大福利!

相关问答

msp430单片机 和变频器怎么接?

看变频器输入接口类型,模拟输入的话,单片机接DA输出,数字量,单片机直接或经驱动芯片连接看变频器输入接口类型,模拟输入的话,单片机接DA输出,数字量,单片机直...

fpga怎么把数据传给 msp430单片机 ?

要将FPGA中处理完的数据传输给MSP430单片机,可以使用串口通讯的方式进行数据传输。首先,需要确定FPGA和MSP430单片机串口通信协议的参数,包括波特率、数据位数...

基于msp430的 风压测量

串行通信在基于单片机的应用系统和工控系统中使用得比较广泛。串行通信速率一般在1Mbps以下,但近年来,对串行口的速度要求越来越高,特别是一些...

加分! MSP430单片机 可以不用仿真器,直接用USB线和电脑联接,用...

用IAR生成TXT或者HEX文件后,欲用MSPFET软件烧写,还得用仿真器。这好像不行现在又直接usb在线调试的,不过用的是板载仿真器是的,理论上你完全可以这么干。使...

MSP430单片机 烧写程序的软件都有哪些 我只知道有BSL_ 430 ...

MSP430可用的开发环境有CCS,IAR和开源的msp430gcc看你的问题,你应该是只有一个BSL下载方式的烧写器,我这里有LSD-BSL430、LSD-BSL430V2.0、MspFet、S...

单片机msp430 和st450哪个好?

MSP430和ST450都是常见的单片机系列,具有各自的特点和优势。MSP430是德州仪器(TI)推出的一款低功耗单片机系列,特点是低功耗、高性能和强大的集成能力。它采...

学了51 单片机 ,现在觉得好多东西51办不了,想转型功能强大点的 单片机 ,PIC,AVR,ARM, MSP430 等等,哪个好?

AVR已经衰落了,功能还可以,性能不强,而且还贵的要死。不过如果从51向ARM过渡的话,AVR是首先,AVR里边很多的外设ARM也有,但AVR非常简单,浅尝辄止。MSP430...A...

MSP430单片机的 头文件里进入低功耗模式有两种语句?

#define_BIS_SR(x)_bis_SR_register(x)#define__bis_SR_register(x)_bis_SR_register(x)均可以,只是写法不一样。#d...

msp430单片机 程序是否烧写正常?

要确定MSP430单片机程序是否烧写正常,可以进行以下步骤:首先,检查编写的代码是否符合语法规范,并且没有逻辑错误。其次,使用编程器将程序烧写到单片机中,...

使用proteus搭建一个 单片机的 最小系统?

1、查找元器件并放置,点击箭头处可以打开元器件搜索框;2、在搜锁框中输入我们需要的元器件名(下面以电容为例选择器件,其中电容输入“cap”,单片机输入“805...

猜你喜欢