以STM32F103为核心的智能灭火机器人
摘要:设计了一种能顺利完成在模拟房间内自动灭火任务的智能灭火机器人。方案以STM32F103嵌入式芯片为控制核心,采用传感器组采集环境信号,控制机器人行动。该智能机器人能完成自动循迹、自动避障、自动寻找火源并迅速准确灭火、回家的功能。实验结果表明:该机器人行动灵活快速,具有很高的准确性和稳定性。
引言
随着人工智能和计算机技术研究的深入,智能机器人也成为科学爱好者和高校学子研究的热点,具有很大的发展空间。智能机器人技术涉及自动控制原理、传感器技术、信息处理、人工智能等学科,具有很强的综合性,是一个国家发展水平的重要标志。
本设计的研究初衷来源于灭火机器人比赛,比赛场地将采用国际标准比赛场地,比赛场地平面图如图1所示。比赛场地的墙壁高为33cm,厚为2 cm,由木头做成。墙壁刷成白色。比赛场地的地板是被漆成黑色的光滑木制板。场地中所有的走廊和门口都是46 cm的开口,一个白色的2.5 cm宽的白色带子或白漆印迹表示房间人口,在距离火焰30 cm的圆上有一条2.5 cm宽的白线。根据要求,该机器人要在模拟的四室一厅房间内完成发现并确认火源、灭火和回家(回到出发点H)等功能。
本文以STM32F103嵌入式芯片为核心,完成灭火机器人的软、硬件设计。当机器人启动后,前部和左右的红外测距传感器为机器人的避障功能和沿墙走方式提供参考信号。机器人的运动速度以及运动方向由处理器输出的PWM信号来控制。火焰传感器检测房间内火源,发现火源后机器人朝向火源方向行走,底部的灰度传感器检测地面白线判断机器人是否靠近火源,控制机器人暂停,启动风扇灭火,灭火后回家。
1 系统硬件设计
根据设计要求,本系统主要由STM32F103、传感器模块、直流电机驱动模块、风扇模块、电源模块等构成。系统框图如图2所示。
1.1 机器人整体布局
机器人左右两轮分别用两个转速和力矩完全相同的直流电机进行驱动,机器人前部装一个万向轮,这样,可以轻松地使机器人改变运行方向和运动速度。机器人前面装有风扇、火焰传感器和红外传感器,头部底侧装有灰度传感器,左右两侧各有3个红外测距传感器,两侧的传感器可以分别测量不同范围内的障碍物距离。
1.2 微控制器模块
系统传感器模块要不断采集环境信息,要求控制芯片有较高的实时处理能力和较高的处理速度,因此,系统选用嵌入式芯片STM32F103该芯片使用ARM先进架构的Cortex—M3内核,CPU频率可达72 MHz,具有两个16位ADC用于高速采集数据采集,15个I/O端口用于连接外部设备。I/O端口作为输入口读取检测端口和传感器组的数据,作为输出端口用于驱动电机和风扇。4个PWM定时器用于驱动大功率直流电机。芯片具有速度快、功耗低、可靠性高、实时性强等优点。
1.3 传感器模块
传感器模块主要由红外测距传感器、火焰传感器和灰度传感器三类组成。
红外测距传感器主要检测障碍物(墙壁),防止机器人撞墙。本设计采用光电式红外传感器E18-D80NK,它是集红外发射模块和红外接收模块于一体的数字传感器,有效检测范围为3~80 cm可调,指向角≤15°。根据比赛场地特点,本设计采用7个此类传感器,这样的传感器布局可以采集所需的各种信号,准确测障,灵活调整运行方向,保证机器人运动过程中不碰壁。传感器的分布如图3所示。
火焰传感器用来检测火源,寻找火源位置。采用5路火焰传感器组成火焰传感器组,传感器组的设计如图4所示,这种结构可以探测180°范围内火焰信号源。机器人在房间门口就可检测房间内是否有火源,若无火源则直接退出该房间循迹下一个房间,大量节省了时间。
地面灰度传感器安装于机器人前部的底座上,用于检测地面反射光线的强度。本设计选用QTI灰度传感器,该器件可作为红外接收器和发射器,内嵌日光过滤器,可防止日光的干扰。其数字信号输出主要用来检测比赛场地中火源周围的白线,控制机器人在有火源的白色圆弧处暂停。
1.4 电机驱动模块
为了控制机器人的运动速度和方向,设计了一种H桥驱动电路。该电路以IRF4905和IRF3205 MOS管为开关元件,以IRF1210为栅极驱动芯片。主控芯片产生的PWM信号控制驱动芯片,进而控制机器人左右轮的转速和万向轮的转向。驱动电路的电路图如图5所示。灭火风扇的电机采用大功率MOs驱动器,由伺服电机输出端的信号驱动。
1.5 其他模块
为保证系统正常工作和顺利灭火,系统还包括电源模块、时钟模块和风扇模块。以电源模块为例,电源模块通过专用的电源转换芯片7805产生传感器所需的5 V电源,通过LM1117产生主控制器所需的3.3 V电源。电源模块如图6所示。
2 系
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)