资源描述
2016第四届广东省大学生“合泰杯”单片机应用设计竞赛
基于HT32F1656的无人机环境监测系统
参赛编号: HTB2016003
广东工业大学
指导老师: 李学聪
参赛队员: 陈德驹
李锴聪
钟明鹤
邓卓尧
E-mail Address: 291038808@
日期:2016年 5 月 4 日
摘要
目前,环境保护是当今一个很重要的主题,研究PM2.5的分布对整治环境和大气污染的处理具有重要意义。本监测系统充分发挥了HT32F1656的无人机的灵活性,给工业生产和居民生活的大气环境质量检测提供了方便有效的手段。该系统将空中采集到的PM2.5浓度数据与对应点GPS数据结合,通过无线将数据实时传回到地面站,地面站利用数据检测软件实时地获取监控测量情况。
视频链接:
关键词:MCU、HT32F1656
1. 前言
1.1 创作动机
1.1.1 创作背景
随着以牺牲环境为代价的经济发展模式的不断推进,我国许多二三线城市环境污染日益严重。工业工厂不断排放排出的废气,造成某些地区PM2.5浓度的严重超标,对人们的呼吸道造成了不可逆的损害。而现状下,对于PM2.5,部分地区的居民缺少像温度计一样的方便有效的测量手段,特别是在距离生活环境30~80米的空中。这样的距离是气体的可扩散范围也恰恰是工厂排放废气的高度范围。而借助飞行器,我们能轻松地实现对此高度的PM2.5方便有效的测量。
1.1.2作品构思、缘由
飞控技术越来越成熟,检测技术越来越成熟,借助HT32F1656单片机作为中央处理器,可以作为新一代飞控,和测定环境参数。
1.2 创作目的
此系统给工业生产和居民生活环境的环境质量检测提供了方便有效的手段,使得在某个经度,纬度,高度测量的PM2.5浓度,温度等数据可以得到更方便有效且精确的测量。我们通过飞行器对生活环境及工厂环境高空PM2.5浓度的测量,一方面有助于工厂工业改进生产技术及废气排放,另一方面通过对生活环境数据的采集统计,我们可以对空气质量进行实时监控,一旦检测到某地区PM2.5浓度过高,能及时发出预警,避免老人,小孩,孕妇等弱势群体受到恶劣环境的影响。
1.2.1 功能性
该环境监测系统,是以基于HT32F1656的四轴飞行器作为平台。飞行器上配备有计算角度的MPU6050传感器,用于传输的NRF24L01无线模块,用于测量高度的超声波模块,用于对地面传输的WIFI模块,北斗模块等,另外有用于环境测量的PM2.5传感器,温度传感器,气压计。飞行器通过WIFI模块把PM2.5浓度,飞行器所在的高度,经度纬度等的环境参数无线传输到手机终端,从而实现对环境中每一个点的监控。
系统是由硬件软件相结合。硬件是采用了团队自主研发的飞控系统,遥控系统,北斗模块,WIFI模块,PM2.5传感器模块等,软件则是以高德地图为第三方的APP,连上四轴飞行器的WIFI,就可以接收到数据(硬件软件配合能够实现较精确定位,正确返回数据)。
1.2.2 创新性
此系统利用飞行器的灵活性,突破了传统测量手段的局限性,一方面减少固定测量仪器及配套设施的搭建,另一方面利用了飞行器方便易用的特点,可以实现大范围的普及,为普通市民测量周围环境空气质量提供了方便有效的手段。同时,此系统运用了我国自主开发的北斗二代导航,可以实现定位测量环境中任意点的PM2.5浓度,温度等的环境参数。
1.2.3 实用性
可以为环境监测的行业提供一个方便灵活操作性强的途径去采集当地的PM2.5浓度,温度等。
1.3 发表说明
本参赛作品曾发表过《第二届全国高校移动互联网应用开发创新大赛》,获得优胜奖。
1.4 与前作异同
本作品是从已发表的作品加以改良。
两者的相同之处:用的各种模块,各种传感器基本没什么差别。电机、飞行桨、电池、机架等的硬件也是基本一样。
两者的不同之处:MCU不一样。曾发表过的作品是基于STM32F103C8T6的MCU,而今次比赛用的是基于HT32F1656的MCU,处理速度,调用的库函数等会有区别。
创新处:用新的芯片作为控制,可以加强其运算速度,有足够的运算速度,可以尝试一些复杂的控制算法,使其控制得更稳定。
两者优缺点:ST系列的库函数比较熟悉,用起来比较顺手,合泰系列的第一次使用,用起来要慢慢看数据手册。对初学者来说,合泰的开发效率没ST系列的高。
2. 工作原理
遥控
无人机
经度、纬度、PM2.5、温度、高度
手机app
1
2
2.1 总体工作原理
图1:总体工作原理图
2.2 各模块工作原理
2
2.1
2.2
2.2.1 MPU6050传感器
图2:MPU6050图
该传感器是飞机自稳测量角度的传感器,模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态,姿态测量精度0.01度,稳定性极高。
图3:角度测量模型图
模块输出的是ROLL(翻滚角),PITCH(俯仰角),YAW(航向角)的角度,还有这三个角的角速度,加速度,可以用IIC输出或者USART,两种方式输出。
图4:NRF24L01图
2.2.2 NRF24L01无线模块
此模块为用于控制飞行器的2.4Ghz无线模块。数传芯片NRF24L01+,增加了大功率PA和LNA芯片,射频开关,带通滤波器等组成了专业的全双向的射频功放,使得有效通信距离得到极大拓展。只能通过SPI协议来传输数据。
2.2.3 MS5611气压计
图 5:MS5611气压计图
芯片内置24bit AD转换器,通过测定空气气体压强及温度来用特定公式计算出当前海拔高度。通信方式:标准IIC/SPI通信协议。
2.2.4 ESP8266 WIFI模块
图 6:ESP8266WIFI模块图
ESP8266有强大的片上处理能力和存储能力,使其GPIO可集成传感器及其他特定的应用设备。其支持SPI/USATR两种通信协议。
图7:PM2.5模块图
2.2.5 PM2.5传感器
图 8:PM2.5模块原理图
其原理如图8,传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。
把灰尘含量转化成LED光线,再将其转化成电压,再用单片机的ADC来获取PM2.5浓度。
2.2.6 GPS模块
UM220-III 是针对车辆监控/导航、手持设备、电信/电力授时、气球探空等应用推出的北斗/GPS双系统模块。UM220-III是UM220系列模块的第三代产品
通信方式:USART/SPI
图 9:GPS模块图
2.3 技术来源
该作品的技术来源是自己研究成果(团队四个人一起研究的)。没有申请专利,没有发表论文。
2.4 使用HOLTEK MCU之核心功能
1.该系统使用了HT32F1656单片机的定时器,USART,SPI,I2C,ADC等外设。
2.用作控制电机转动的是PWM 产生和捕捉定时器– GPTM0的比较输出,来输出四个通道,来控制四个电机的转速。
3.用作四轴飞行器遥控信号的捕获也是是PWM 产生和捕捉定时器– GPTM1的输入捕捉,来作为四通道遥控的PWM输入捕获。
4.对HT32F1656的编程除了用查询方式实现飞行器的自稳,也要用到定时器中断方式,串口中断方式等来触发事情,来确保整个程序的效率。
2.5 使用HTF1656的具体功能
2.5.1 用到3个串口。
HT_USART0,HT_USART1,HT_UART0,USART0用作和PC串口助手/蓝牙连接的一个串口,用来观察参数等;USART1用作MPU6050的参数接收,UART0用作GPS数据的接收。
2.5.2 用到两个定时器GPTM0、GPTM1
GPTM0用作输出占空比,控制电机转速,通过对主频72M分频,周期为500HZ。GPTM1则用作输入捕获,捕获遥控器的PWM信号,来实现用遥控来调节油门,方向等。
2.5.3 用到一个A/D转换
用到了ADC的15号通道。把PM2.5传感器的模拟电压转化成数字电压,然后再用相应的公式在MCU上把数字量换成PM2.5的浓度。
2.5.4 用到了一个SPI接口
用到了HT32F1656的SPI1接口,用其初始化NRF24L01,使得可以和遥控通信,实现无线调参,无线控制,无线传输数据。
3. 作品结构
3
4
3.1 硬件部分
图 10:硬件部分原理结构图
MPU6050传感器
MCU
北斗二代模块
PM2.5传感器
气压计
WIFI模块
数据
手机
2.4G遥控器接收端
2.4G遥控器
3.2 APP软件部分
图 11:APP软件架构图
TCP连接
解析硬件帧数
获得对应点大气数据
导入高德地图
经纬度转化为地图坐标实现定位
3.3 单片机软件部分
已知HT32F1656单片机支持固件库编程,我们可以简化原始的寄存器编程方法改用库函数操作方法(源码图12),大大减少了开发难度和复杂度(固件库开发方式见图13)
图 12:库函数开发方式
图 13:固件库开发方式
3.4单片机软件流程图
开始
初始化各模块
接收MPU6050数据
调用PID控制算法
N
判标志位
Y
中断处理
Y
N
结束
图 14:作品主程序框图
图 16:作品串级PID控制框图
进入中断
读取传感器数据
读取无线数据
读取PWM输入捕获
发送传感器数据
中断返回
图 15:作品中断程序框图
4.测试方法
4.1测试方法
4.1.1.MPU6050,PM2.5传感器,MS5611气压计,GPS模块
把数据输出到APP,电脑上位机,电脑串口助手,判断数据正确与否。再在不同条件下,其数据是否准确,例如现在夏天室外温度稍微高点,气压计传感器能否准确测量室内外温度。
4.1.2.ESP8266WIFI模块,NRF24L01无线模块,HC05蓝牙模块
这三个通讯模块都需要终端,ESP8266和HC05的终端是手机,NRF24L01无线模块的终端是另一块单片机。所以ESP8266和HC05的测试方法只需要是在手机判断是否接受到数据,较容易。原理如图16:
MCU
ESP8266/HC05
手机
USART
WIFI/蓝牙
图 17:WIFI模块、蓝牙模块测试方法
NRF24L01则需要判断另一块单片机是否接受到数据,如果另一块单片机接收到收据,则向PC上位机或者PC串口助手发送数据。原理如图17:
MCU
NRF24L01
NRF24L01
SPI接口
2.4G无线
MCU
PC上位机/PC串口助手
USART
SPI
图 18:NRF24L01模块测试方法
4.1.3 飞行器自稳
图 19:PID参数调试
在PC上位机上通过无线调试PID参数,观察飞行器上MPU6050反馈的ROLL角PITCH角的数据,来寻找一组最稳定的PID参数
4.2测试环境、测试环境
环境参数的测试可以在室外室内(GPS需要在室外),飞行器自稳需要在空旷的室外(保证安全)
4.3测试结果
4.3.1各传感器、模块参数
图 21:环境监测APP截图2
图 20:环境监测APP截图1
可以看到APP上的参数显示正常,参数会有轻微的浮动,各传感器驱动成功。
4.3.2各通讯模块
图 23:PC上位机接受ROLL角、PITCH角数据
图 22:PC上位机接受ROLL角、PITCH角波形
可以看出,PC上位机能正常接收MPU6050的数据,显示其PITCH角和ROLL角。
4..3.3飞行器自稳
(请参考视频)
5.参考文献
[1]刘焕晔. 小型四旋翼飞行器飞行控制系统研究与设计[D].上海交通大学 2009.
[2] 王莹. 四旋翼无人机自主飞行控制器研制[D].黑龙江大学 2015.
展开阅读全文