1、第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人第十一届中国研究生电子设计竞赛技术论文论文题目:基于 STM32F405和 WiFi控制的智能楼宇安防机器人Intelligent building security robot based on STM32F405 and WiFi control参赛单位: 哈尔滨理工大学队伍名称: 理工 ROOT战队指导老师: 陈才参赛队员: 谢瑞 王航张宇霆完成时间: 2016 年 6月 10日第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人基于 STM32F405
2、和 WiFi控制的智能楼宇安防机器人摘 要目前,机器人的用途已经渗入到社会生活的方方面面,在工业生产中,机器人可以代替人类完成恶劣环境下的货物搬运以及设备检测等任务。而在人们的日常生活中,智能机器人也发挥了越来越重要的作用。因此,本文设计了一款底盘智能车加载智能云平台开发的楼宇安防机器人。本文设计了一款基于 STM32F405 作为主控的移动底盘,搭载智能云平台所设计的智能楼宇安防机器人。其运动底盘采用四轮驱动的麦克纳姆轮,实现全方位移动方式的零度转角,适合机器人的空间狭小的工作环境。底盘移动平台的控制系统主要包括:电源模块、微控制器模块、电机驱动模块、通讯控制模块等。在具体的设计过程中,各个
3、模块硬件以及软件部分尽量做到相对独立,为日后的功能扩展和系统升级创造条件。通过选择无线遥控方式,可以更加方便灵活的对机器人进行操控。对于传感器所采集的信息,以及安防机器人的各项信息可以通过无线网络同步到所开发的手机APP。Wifi 服务系统由主控部分、传感器部分和显示部分构成,主控部分采用STM32103c8t6+ESP8266 构成,传感器部分有 3 色灯、夏普 PM2.5 粉尘传感器、雨量传感器、温湿度传感器 DHT11 和 TCRT5000 光电传感器构成。通过主控把采集到的传感器信息上传到机智云的云端,然后云端将信息发送到楼宇内人员的手机端,供保安和楼宇内工作人员查询信息。同时使用串口
4、屏显示传感器的信息,并且给来找人和咨询事情的人提供查询信息。通触摸屏设计的多级式菜单设定来客需求信息,并直观的显示主控系统中采样到的相关数据,增进了人机交互的灵活性。智能机器人整体实现了周围环境信息采集以及人员查找的功能。 关键词:xxx;xxx;xxx;xxx第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人Intelligent building security robot based on STM32F405 and WiFi controlAbstractAt present, the use of robots has infiltrat
5、ed into all aspects of social life, in industrial production, robot can replace human to complete the harsh environment of cargo handling and equipment testing and other tasks. In peoples daily life, intelligent robots also play a more and more important role. Therefore, this paper designed a chassi
6、s intelligent vehicle loading intelligent cloud platform development of building security robot.第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人目 录第 1 章 系统可行性分析 .11.1 作品难点与创新 11.1.1 作品难点 .11.1.2 作品创新 .11.2 方案论证与设计 2第 2 章 硬件系统设计 .32.1 车体结构设计 32.2 底盘控制系统设计 42.2.1 主控单元 .52.2.2 电机驱动模块 .52.2.3 速度检测模块 .82.
7、2.4 通讯控制设计 .92.3 WiFi 服务系统设计 .102.3.1 主控制器设计 .112.3.2 夏普 PM2.5 粉尘传感器 112.3.3 雨量传感器 .122.3.4 温湿度 DHT11 传感器 132.3.5 TCRTC5000 光电传感器 132.4 人机交互界面的设计 14第 3 章 软件系统设计 .163.1 软件开发平台介绍 163.2 底盘程序设计 173.2.1 底盘程序设计总体框图 .173.2.2 底盘电机驱动模块程序设计 .173.3 WiFi 服务系统程序设计 .193.3.1 主程序设计 .193.3.2 DHT11 传感器程序设计 193.3.3 PM
8、2.5 与雨量检测程序设计 20第 4 章 总结 .21参考文献 .22第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人1第 1 章 系统可行性分析1.1 作品难点与创新1.1.1 作品难点目前,机器人的用途已经渗入到社会生活的方方面面,在工业生产中,机器人可以代替人类完成恶劣环境下的货物搬运以及设备检测等任务。而在人们的日常生活中,智能机器人也发挥了越来越重要的作用。因此,本文设计了一款底盘智能车加载智能云平台开发的楼宇咨询服务型机器人。而本文设计的难点有:1. 作为移动平台的智能车车体构件的设计加工与选择。车体构件的选择需要本着经济、可靠、美观
9、等各方面因素,而由于某些特殊要求,车体构件并不都是标准配件,所以在尽量选择标准构件的同时,对于一些非标准构件,需要掌握一些独自设计加工的基本能力,这就对队员的机械设计与加工提出了一定的要求。2. CAN 总线实现四个底盘电机的协调驱动控制。想要智能车达到理想的控制要求,必须要同时控制四个驱动电机来协调同步工作,所以对于各个电机运行状态的实时性反馈以及准确性控制有着较高的要求,而这众多的因素都决定了智能车采用基于 CAN总线控制电机的方式是一种理想的选择。3. 智能云平台通过各个传感器搜集数据并实时发送到手机 APP。智能云作为传感器和手机 APP 端的互联平台,使用板载的温湿传感器,外接的 P
10、M2.5 粉尘传感器和雨量传感器,将这些信息通过 Wifi 传递到手机端口,而这部分的手机与信息手机平台的通讯以及手机 APP 的开发要求队员有较强的软件开发能力。4. 移动平台人机交互界面的设计与开发。人机交互界面可以保证楼宇安防机器人能够实现信息应答的功能,外来人员可以通过此平台方便确认某人是否在此楼内。而人机交互界面的选择是触摸屏,对于触摸屏的开发也是本文的一个难点。1.1.2 作品创新本文研究的是一款基于 STM32F405 作为主控的移动底盘,搭载智能云平台所设计的智能楼宇咨询服务型机器人。通过移动平台搭载服务系统,可以使设计应用范围更加灵活。而考量本文系统的使用环境以及使用条件,本
11、文中系统的底盘选择轮式运行方式,为了实现全方位移动方式的零度转角,本文底盘采用四轮驱动的麦克纳姆轮。采用麦克纳姆轮的优点是可以实现底盘前行、横移、斜行、旋转及其组合等运动方式。由此底盘非常适合转运空间有限、作业通道狭窄的楼宇、船舱以及机舱等环境。对于系统的控制方式,本文基于实际应用环境,选择无线遥控方式,可以更加方便灵活的对机器人进行操控,不需要人为的活动就可以实现对来访者进行盘查或者方便来访者获知信息。对于可疑人员有一定的报警功能,增加了系统的可靠性。对于传感器所采集的信息,以及安防机器人的各项信息可以通过无线网络同步到所开发的手机 APP,方便相关负责人员进行查看,不必时刻需要特定进行跟踪
12、,节约人力成本。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人21.2 方案论证与设计在整个系统的设计中,底盘移动平台的的控制系统最为重要,它是整个系统稳定运行的核心。控制系统的水平高低直接关系到智能化平台的智能化程度。控制系统的设计策略也决定了整个设计系统的功能特点、使用范围以及其可扩展性。根据对整个检测系统的功能需求,底盘移动平台的控制系统主要包括:电源模块、微控制器模块、电机驱动模块、通讯控制模块等。系统的总体框图如图 1-3 所示。在具体的设计过程中,各个模块硬件以及软件部分尽量做到相对独立,为日后的功能扩展和系统升级创造条件。而控制系统
13、中的各个模块的功能如下:电源模块负责整个控制系统的供电,包括驱动电机所需的 24V 和 12V 电源,主控制器、各个传感器以及专用芯片所需的 5V 和3.3V 电源;电机驱动模块主要负责底盘所用电机的驱动,包括驱动轮电机以及云台电机的驱动,所采用方式是主控器输出的 PWM 和专用电机驱动芯片配合使用,实现底盘的全方位移动以及云台的转动调节;通讯控制模块主要负责远程手动遥控平台的运行方式以及移动轨迹,同时及时反馈平台的各项性能指标。S T M 3 2电机驱动电机驱动 电机驱动电机驱动电机 1 电机 2电机 3 电机 4电源模块云台电机驱动云台电机红外遥控遥控器图 1-3 移动平台控制系统框图第十
14、一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人3第 2 章 硬件系统设计2.1 车体结构设计移动底盘的运行结构有多种,目前常用的有轮式、履带式、腿式以及上述几种结构的结合。轮式以及履带式底盘主要适用于地理环境较为平坦、少有坑洼的地面。具有控制方式简单、运行速度快、运行平稳以及噪音小等优点。而腿式步行式的底盘适用的地理环境就较为复杂多样,但是由于控制算法复杂,对机械结构有着较高的要求,并且移动速度较为缓慢,目前的实际应用还不是特别广泛。综合考量本文系统的使用环境以及使用条件,本文中系统的底盘选择轮式运行方式,为了实现全方位移动方式的零度转角,本文底盘采
15、用四轮驱动的麦克纳姆轮如图2-1 所示。采用麦克纳姆轮的优点是可以实现底盘前行、横移、斜行、旋转及其组合等运动方式。由此底盘非常适合转运空间有限、作业通道狭窄的楼宇、船舱以及机舱等环境。图 2-1 麦克纳姆轮麦克纳姆轮设计车轮旋转时成 45 度排列的自由滚子与地面接触,地面会给予车轮与转轴夹 45 度的摩擦力,此摩擦力可分为 X 分量与 Y 分量,籍由车轮的正反转或停止,改变 XY 分量力的方向,可以调整底盘做各种方式的移动。而单独的麦克纳姆轮无法实现全方位移动,需要至少四个才能组成全方位移动平台,本文所采用的四个麦克纳姆轮全方位移动平台如图 2-2 所示,图中车轮斜线表示车轮轮缘与地面接触滚
16、子的偏置角度。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人4图 2-2 底盘车轮配置图2.2 底盘控制系统设计在整个系统的设计中,底盘移动平台的的控制系统最为重要,它是整个系统稳定运行的核心。控制系统的水平高低直接关系到智能化平台的智能化程度。控制系统的设计策略也决定了整个设计系统的功能特点、使用范围以及其可扩展性。根据对整个检测系统的功能需求,底盘移动平台的控制系统主要包括:电源模块、微控制器模块、电机驱动模块、通讯控制模块等。系统的总体框图如图 2-3 所示。在具体的设计过程中,各个模块硬件以及软件部分尽量做到相对独立,为日后的功能扩展和系
17、统升级创造条件。而控制系统中的各个模块的功能如下:电源模块负责整个控制系统的供电,包括驱动电机所需的 24V 和 12V 电源,主控制器、各个传感器以及专用芯片所需的 5V 和3.3V 电源;电机驱动模块主要负责底盘所用电机的驱动,包括驱动轮电机以及云台电机的驱动,所采用方式是主控器输出的 PWM 和专用电机驱动芯片配合使用,实现底盘的全方位移动以及云台的转动调节;通讯控制模块主要负责远程手动遥控平台的运行方式以及移动轨迹,同时及时反馈平台的各项性能指标。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人5S T M 3 2电机驱动电机驱动 电机驱动
18、电机驱动电机 1 电机 2电机 3 电机 4电源模块云台电机驱动云台电机红外遥控遥控器图 2-3 移动平台控制系统框图2.2.1 主控单元本系统选用 STM32F405RGT6 芯片作为底盘移动平台的中央控制器,完成传感器信息收集、电机控制、外部通信扩展等任务。STM32F405RGT6 是 ST 公司推出的以高性能的 ARM Cortex-M3 内核的 32 位 RISC 的内核的芯片。工作最高频率可达84MHz,能实现高速运算。处理器具有 3 种低功耗模式和灵活的时钟控制机制,可根据系统设计要求对其进行合理的优化。工作电压可以在 2.0-3.3V 之间,在 3.3V 的供电电压下,其典型的
19、小号电流仅为 1.4A。2.2.2 电机驱动模块2.2.2.1 底盘驱动电机的选择本设计中为了保证全方位移动方式的零度转角,采用四轮单独驱动,可以灵活调节任意一个麦克纳姆轮的运行方式,从而可以灵活控制移动平台的任意角度位移。移动平台的驱动电机有步进电机和直流电机两种。本设计中选用直流电机作为底盘移动平台的驱动电机,直流电机具有优良的速度控制性能,具体来说,它有以下几点优点:具有较大的转矩,从而能够克服传动装置的摩擦转矩和负载转矩;具有较快的响应能力,可以适应复杂的速度变化和控制信号的变换;电机的负载特性硬,有较大的过载能力,确保 运行速度不受负载冲击的影响,增加系统的可靠性;直流电机空载力矩大
20、,在控制系统发出停转的同时可以立即响应,并且可以产生相当大的力矩阻止移动平台由于惯性继续移动;直流电机相对其他电机来说运动起来平稳,而且噪音小。2.2.2.2 电机控制方式直流电机的转速控制方法可以分为两类:调节励磁磁通的励磁控制方式和调节电枢电压的电枢控制方法。而由于励磁控制方法在低速模式时磁极极易饱和,所以调速范围有限,而在高速模式下,由于经常换向,换向火花较大,造成控制时动态响应较差。本文采用的电机驱动方式是电枢控制方式,通过输出 PWM 脉宽调制 PWM 电平来第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人6控制电动机的电枢电压,实现调速
21、功能。由于一般的微控制器都可以输出 PWM 脉冲电平,所以容易在微控制器上实现此种控制方式。使用 PWM 控制的一个优点是从主控制器到被控制信号都是数字式的,省去了信号的转换,可最大程度的降低噪音。 。在实际应用中有二种方式可产生信号,它们的原理是在固定时间内,通过改变占空比或者频率来得到不同的信号。第一种方式在不改变占空比大小的前提下,改变频率,从而得到恒定占空比但频率不同的脉冲信号。它通常被称作脉频调制。另外一种是在固定时间内不改变频率,改变脉冲信号的占空比,从而得到频率恒定但占空比不同的信号。在一个周期内改变高电平的持续时间,即可改变信号的占空比。在实际中使用的就是这种固定频率下改变占空
22、比的技术,如图 2-4 所示为PWM 控制占空比产生的波形。图 2-4 PWM 控制产生的波形2.2.2.3 电机驱动模块本文中移动平台使用直流电机实现其运动的能力,需要进行前进、后退、横向以及斜向的移动方式。直流电机在此运行的状态下工作所消耗的电压和电流都比较大,其正反转的改变需要通过改变所加电压的极性实现,如图 2-5 为设计电机驱动模块框图。在电机的实际使用中,本文采用专门的电机驱动模块来实现电机的驱动。如图 2-6所示,本设计中采用的是 AQMH3615NS 直流电机驱动模块来实现电机的驱动。电机驱动模块电机电源正反转控制P W M 信号图 2-5 电机驱动方式框图第十一届中国研究生电
23、子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人7图 2-6 AQMH3615NS 直流电机驱动模块AQMH3615NS 的功能特点是:支持电机电压 9-36V,有欠压保护功能;最大持续负载电流 12A(不加散热) ;拥有类似 L298 的驱动逻辑,可三线控制调速、正反转以及刹车;支持满 PWM 输出,还可直接使用按键控制正反转, PWM 的有效范围 0.1%-100.0%;接口具有 ESD 防护。如图 2-7 所示为电机驱动模块的各个部分的功能。(a)模块正面 (b)模块背面图 2-7 电机驱动模块各个部分功能电机驱动模块电源接口、电机接口以及控制信号接口的连接方式
24、如图 2-8 所示,当使用外部 PWM 调速时,IO2/IO3 分别控制电机的正反转和刹车,PWM 引脚接微控制器的 PWM 输出,用于电机的调速。而控制电机正反转及刹车的电平逻辑如表 2-1 所示。表 2-1 控制信号逻辑IO2 IO3 PWM OUT1/OUT2 输出0 0 X 刹车1 1 X 悬空1 0 1 全速正转0 1 1 全速反转1 0 PWM 正转调速0 1 PWM 反转调速第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人8在 PWM 为 100%时需要先刹车 0.1S 以上再给反转信号,否则电机的反向电动势可能导致电源电压突变使驱动
25、芯片进入保护状态而导致错误运行,对于非满 PWM 状态,如果要改变电机的转动方向,最好也先刹车 0.1S 以上再给反转信号,以免导致电源电压有较大波动。图 2-8 电机驱动模块接线图2.2.3 速度检测模块电机作为运动控制系统的动力源,转速控制是实现系统高性能伺服驱动的关键,因此,电机转速的控制精度是控制系统首要考虑的问题。而控制系统要想获得高精度的控制效果,就必须采用基于反馈信号的闭环控制系统,即增加测量电机转速的传感器。此类测速传感器按测速传感器按测速原理来分类,主要有电磁式和光电式两类,其典型的代表分别是霍尔传感器和光电编码器。由于光电式测速系统具有低惯量、低噪声、高分辨率和高精度等优点
26、,常用于高精度力矩电机的转速测量与反馈。光电式编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器根据其刻度方法及信号输出形式,可分为增量式光电编码器、绝对式光电编码器和本文选用增量式光电编码器,它具有结构简单、机械平均寿命可达几万小时以上、抗干扰能力强、可靠性高、适合长距离传输等优点。四个底盘驱动电机编码器的接口如图 2-9 所示。图 2-9 底盘电机编码器接口第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人9由上可知本文采用的是增量式光电编码器作为电机转速测量装置,测速原理是通过对单位时间脉冲进行计数。但实际
27、中用于测量的方法,分为以下三种:第一种方法是测量在规定时间内的脉冲个数,即测量频率来计算得到转速值,此方法称为法测频法,它在转速为高速的情况下精度较高。第二种是测量连续二个脉冲之间的时间差从来计算得到实时转速,此方法被称为法周期法,此方法在转速为低速情况下精度较高。第三种是同时测量时间和此时间内脉冲个数来计算得到转速,此方法被称为法频率周期法。此方法结合了以上测频法和测周期法的优点,在实际中较为常用。而本文正是采用第三种测速方法。设光电码盘每转一圈输出 P 个脉冲,在 T1(单位为 S)时间内,编码器输入 m1 脉冲,则电机的转速 Ns(单位为 r/min)可由公式(2-1 )计算:(2-16
28、0mS1)在 T2(T 2=T1+T,单位为 S)时间内,设此时主控制器内部计数频率为 fc,计数值为 m2,使用周期法计算 T2,可以由以下公式(2-2)得到:(2-cfm22)将公式 1-2 代入公式 1-1 中,就可以得到电机转速的计算公式(2-3)如下:(2-2160pmfNcS3)由上式可以得出,这种测速方法的原理是:在 T2 时间内,可得到的外部输入脉冲个数为 m1,由主控芯片内部计时频率 fc 得到的脉冲数 m2。实际中使用主控制器内部的定时器编码器输入接口得到 m1,内部计数模式得到 fc 和 m2,使用公式(2-3)即可得到移动平台各个驱动电机的实时转速。2.2.4 通讯控制
29、设计由于本设计系统所处外部环境的复杂性和未知性,所以移动底盘的移动控制方式选择是无线遥控式。而主控芯片有多种通信外围接口可供扩展,包括 CAN、SPI、I2C和 USB。本文设计的通讯模块主要分为两部分有线通信和无线通讯两部分,有线通信模块主要是 CAN 总线通讯,而无线通信模块主要是通过主控芯片的 USART 端口连接扩展射频模块实现的。2.2.4.1 无线通信模块通过无线接收模块,小车操作人员可通过上位机发出相关运动指令,可在复杂环境中保证其行进的安全性。而在通信时无线数据传输的高速性、稳定性和准确性,直接关系到整个控制系统在远程无线控制下的工作可靠性。故无线模块的选择尤为重要,下图是无线
30、通信模块的串口接口。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人10图 2-11 无线通信模块接口2.3 WiFi 服务系统设计Wifi 服务系统由主控部分、传感器部分和显示部分构成,主控部分采用STM32103c8t6+ESP8266 构成,传感器部分有 3 色灯、夏普 PM2.5 粉尘传感器、雨量传感器、温湿度传感器 DHT11 和 TCRT5000 光电传感器构成。通过主控把采集到的传感器信息上传到机智云的云端,然后云端将信息发送到楼宇内人员的手机端,供保安和楼宇内工作人员查询信息。同时使用串口屏显示传感器的信息,并且给来找人和咨询事情的
31、人提供查询信息。Wifi 服务系统整体结构如图 2-12 所示。S T M 3 2 F 1 0 3P M 2 . 5传感器雨量传感器温湿度传感器光电传感器w i f i 模块串口S D K 手机 A P P机智云云端串口串口屏显示信息处理串口图 2-12 Wifi 服务系统整体结构2.3.1 主控制器设计STM32 通过 USART2 与 ESP8266 通信,原理图如图 2-13 所示。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人11图 2-13 STM32 和 ESP8266 原理图2.3.2 夏普 PM2.5 粉尘传感器GP2Y1010A
32、U0F 是一款光学空气质量传感器,设计用来感应空气中的尘埃粒子,其内部对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,即使非常细小的如烟草烟雾颗粒也能够被检测到,通常在空气检测系统中应用。该传感器具有非常低的电流消耗(最大 20mA,典型值 11mA) ,可使用高达 7V。该传感器输出为模拟电压,其值与粉尘浓度成正比。传感器与 MCU 的接线方式如图2-14 所示,使用 PA7 作为输出引脚接传感器的 LED 引脚,使用 PA5 作为 ADC1 的chanel_5 接传感器的 VO 引脚。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能
33、楼宇安防机器人12图 2-14 GP2Y1010AU0F 与 STM32 接线图传感器的工作过程如下:传感器的工作周期为 10ms,首先通过 LED 引脚启动传感器,然后等待 0.28ms,使得传感器将粉尘浓度转换为电压,并利用 STM32 的 PA5引脚对处理过的输出信号 VO 采样,接着等待 0.04ms,最后关闭 LED 并且等待9.680ms。GP2Y1010AU0F 传感器的输出电压与粉尘浓度的关系如图 2-15 所示,由于对 VO进行了分压处理,计算粉尘浓度选择 ug/m3,所以计算公式为粉尘浓度=344*(AD 转换后的电压)-99 。图 2-15 输出电压与粉尘浓度的关系2.3
34、.3 雨量传感器雨量传感器的电路如图 2-16 所示,将传感器的 AO 引脚接 STM32 的 PA4 引脚,通过 ADC 读取传感器的电压值判断雨量的的大小。图 2-16 雨量传感器电路图2.3.4 温湿度 DHT11 传感器DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT11 传感器都在极为精确的湿度校验室中
35、进行校准。校准系数第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人13以程序的形式储存在 OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达 20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装,连接方便。DHT11 传感器的电路如图 2-17 所示,可从 DOUT 引脚读出温度和湿度信息。图 2-17 DHT11 传感器电路图2.3.5 TCRTC5000 光电传感器TCRT5000 光电传感器传感器用来判断是否
36、有人来了,它的电路图如图 2-18 所示。图 2-18 TCRT5000 光电传感器电路图2.4 人机交互界面的设计所选用人机交互界面是威论通串口型触摸屏,型号为 MT6070iH,其具有集成度高、功耗低、界面友好、易于操作等优点,常被用于智能化仪器仪表中作为人机接口部件。尤其适合我国具有自主知识产权的产品的开发,具有广阔的应用前景。将触摸屏技术应用在本次的只能机器人设计当中,通过多级式菜单设定来客需求信息,并直观的显示主控系统中采样到的相关数据,增进了人机交互的灵活性,具有一定的推广价值。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人14触摸屏
37、智能机器人的人机接口,用户需要采用多级菜单的形式设定相关数据。图2-19 为 智能机器人的人机界面功能结构图。开机完成初始化之后,自动进入一级菜单界面,一级菜单界面包括对环境相关数据的显示,和相应的二级菜单界面入口。此人机系统一共包含三级菜单。一级菜单界面如图 2-20(a) ,二级菜单界面如图 2-20(b) 、图 2-20(c)所示,三级界面菜单如图 2-20(d)所示。智能楼宇安防机器人人机交互界面环境参数显示找人 做什么咨询 房间选择找谁图 2-19 智能机器人的人机界面功能结构图图 2-20 人机交 互菜单界面(a)级菜单界面 (b)级菜单界面(c)级菜单界面 (d)级菜单界面第十一
38、届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人15第 3 章 软件系统设计软件设计是智能小车控制系统设计的重要组成部分,只有对硬件进行合理有效的编程,才能实现智能小车的特定功能和应用。软件编制的好坏对系统的可靠性和稳定性等性能也有很大的影响。本文在智能小车控制系统软件设计中使用模块化编程,各部分相对独立,为日后的软件更新和后续升级提供了便利。3.1 软件开发平台介绍主控制器 STM32 基于 ARM 内核,所以很多基于嵌入式的开发环境都可适用于软件程序开发。常用的开发工具有 KEIL MDK 和 IAR EWARM,本系统选择 KEIL 作为开发工具,
39、它是 ARM 公司于 2007 年推出的嵌入式开发工具。它集 ARM 公司的Realview 编译工具和 KEIL 公司的 IDE 环境 Vsion 两者优势于一身,KEIL MDK 作为嵌入式开发的主流工具,也是目前为数不多的完全支持 Contex-M3 处理器开发的开发工具,并内含 STM32 系列处理器上外围接口固件库和完整的数据手册。Keil 在开发使用时,首先在中创建一个工程,在工程中选择当前使用的主控制芯片,并且对工程进行一些必要的相关配置然后开始编写程序源文件待文件完成后,在中编译应用程序如有错误产生,则修改源程序文件,直到没有错误产生,此时可进行联机调试,待调试成功后可将程序文
40、件烧录进芯片,如图 3-1 所示为所搭建的 KEIL 开发环境。图 3-1 KEIL MDK 开发环境第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人163.2 底盘程序设计3.2.1 底盘程序设计总体框图上电后先进行系统初始化,包括时钟配置、延时函数初始化以及调试程序时所需串口的初始化。然后进行定时器的初始化,本系统中定时器分别用于 信号的产生、操纵杆位置的扫描和输入捕获,故需要启用至少个定时器并进行相关配置。如果检测有无线遥控指令,则程序不断接受遥控信号,经过验证解码信号,对底盘的驱动电机进行实时控制,然后电机的运动状态会经过反馈调节来提高电机
41、控制的精度。如果没有检测到无线遥控指令,则程序会先判断是否有自动复位指令,如果有自动复位指令,则底盘会根据之前的运动状态,进行自动寻迹模式,如果没有自动复位指令,则程序处于等待遥控指令状态,如图 3-2 是控制程序的总体框图。开始系统初始化是否无线遥控指令平台自动复位操纵位置扫描平台运动控制运动状态反馈是否自动复位指令NYYN图 3-2 程序设计总体框图3.2.2 底盘电机驱动模块程序设计当一个机器人被设计用来自动维持某一数值,如距离、压力等,它一般都包含一个控制系统。在本设计中该系统由传感器和电机组成,可以通过处理器编程对传感器的输入做出决定,从而控制输出。对小车采用闭环控制中最常用的 PI
42、D 控制算法来维持其速度控制的精确度,PID 控制框图如图 3-3 所示。在程序中设定一个参考速度,PID 控制器将使实测速度不断逼近参考速度。首先计算参考速度和实测速度的误差,将误差进行比例控制即乘以一个比例常数,得到的结果用于校正电机 控制信号的占空比,再用校正后的 信号驱动电机旋转。在本系统中 必须为负值,因为假设实测距离过大,即误差为负,输出校正值为正才能使电机加速旋转、小车有调整实际速度使其趋近参考速度的趋势,如图 3-4 为所用 PID 调节的结构图。第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人17图 3-3 PID 控制结构图以上
43、控制环路将不断调整电机转速使实际速度趋近参考速度,对左右电机用同样的控制环路分别控制,将使小车能跟随目标物转弯、旋转,提高系统可靠性。在实际PID 算法设计中,需要对参数进行先比例,后积分,再微分的整体步骤。实际顺序如下,首先整定比例部分,如果调节比例调节器参数,系统控制的结果达不到设计要求时,则需要引进积分环节,若同时使用上述比例和积分部分,能消除静差,但动态过程中经反复调试后仍不达要求,这时候必须加入微分环节。调速程序中采用的是增量式 PID 算法,就要结构简单、控制效果好、使用灵活等特点,如图 2-3 所示为 PID 控制的算法流程图。图 3-4 PID 控制算法流程图第十一届中国研究生
44、电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人183.3 WiFi 服务系统程序设计3.3.1 主程序设计WiFi 服务系统的主程序如图 3-5 所示,首先是系统时钟初始化和定时器初始化,然后按键和各种传感器初始化,将 WiFi 上传的控制设备和可读设备数据点的值进行初始化,一般为 0。最后进入 while(1)大循环,通过按键来进行 Airkiss 连接,本系统将WiFi 配置为 station 模式,WiFi 和手机同时连接路由器进行数据交互。 STM32 将设备的信息通过 USART2 传给 ESP8266,然后将控制设备和可读传感器进行处理,把处理后的结果
45、传递给结构体设备变量,通过定时器,一直定时向云端上报信息。图 3-5 WiFi 服务系统主程序框图3.3.2 DHT11 传感器程序设计DHT11 传感器的程序流程图如图 3-6 所示,最终要得到的值是温度和湿度。D H T 1 1 _ C h e c k ( ) 校验D H T 1 1 _ R e a d _ B y t e ( ) 读 5个字节存入 b u f i 中i f ( ( b u f 0 + b u f 1 + b u f 2 + bu f 3 ) = = b u f 4 )湿度值 = b u f 0 温度值 = b u f 2 图 3-6 温湿度检测程序流程图第十一届中国研究生
46、电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人193.3.3 PM2.5 与雨量检测程序设计PM2.5 传感器和雨量传感器的程序流程图如图 3-7 和图 3-8 所示。A D 采样换算出电压值赋给 t e m p计算 P M 2 . 5 浓度p m 2 5 = t e m p * 3 4 4 - 9 9p m 2 5 5 0 0空气质量d u s t = 0空气质量d u s t = 1空气质量d u s t = 2空气质量d u s t = 3空气质量d u s t = 4空气质量d u s t = 5图 3-7 PM2.5 检测程序流程图A D 采样换算出电压
47、值赋给 r a i n v a lr a i n v a l = 31 r a i n v a l 1 . 60 = r a i n v a l 1根据 r a i n v a l 的值计算雨量没下雨中雨大雨1 . 6 r a i n v a l 3小雨图 3-8 雨量检测程序流程图第十一届中国研究生电子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人20第 4 章 总结智能机器人技术是一项具有广泛应用前景的技术,不仅在科学探测领域、还是在工业应用领域无论是在军事上还是在我们的生活中,智能机器人发挥着越来越重要的作用。本文设计了一个以 STM32 为主控制器的智能楼宇安
48、防机器人。在论文中完成的主要工作包括以下几个方面:1.在充分考虑智能小车系统结构的基础上,设计了基于主控芯片 STM32F405 的智能小车运动控制硬件电路,各功能模块主要包括电源模块、微控制器模块、电机驱动模块、速度检测模块、总线通信模块、无线通信模块。2.智能云平台通过各个传感器搜集数据并实时发送到手机 APP。智能云作为传感器和手机 APP 端的互联平台,使用板载的温湿传感器,外接的 PM2.5 粉尘传感器和雨量传感器,将这些信息通过 Wifi 传递到手机端口。3.使用开发工具进行了相关软件设计,为了后续维护和代码升级的方便,使用模块化编程。在调速控制方面,使用了算法第十一届中国研究生电
49、子设计大赛基于 STM32F405 和 WiFi 控制的智能楼宇安防机器人21参考文献1 李宁,基于 MDK 的 STM32 处理器开发应用,2008.10. 2 移动机器人运动学分析研究及本体结构设计D.南京航空航天大学.2004.3 我国环保政策失灵的成因分析及矫治原则J,渤海大学学报.2007.3.4 中华人民共和国环境保护部,环境保护标准网站:http:/ 5 徐方,邹风山,郑春辉.新松机器人产业发展及应用J.机器人技术与应用.2011.6 蔡自兴,贺汉根,陈虹.未知环境中移动机器人导航控制理论与方法.2009.17 李瑞峰,李庆喜 .机器人双视觉系统的标定与定位算法J.哈尔滨工业大学学报.2007.