智能灭火机器人控制器的实现方法
eeskill 2021-09-23

0 引 言

控制器是智能机器人处理和控制信息的主体,它直接决定了机器人的行为和性能。近几年来随着高性能微控制器和嵌入式系统技术的不断进步,为各类实时控制应用提供了解决方案。

嵌入式系统(ES)是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的系统,其是硬件和软件紧密捆绑在一起的系统。将嵌入式系统应用于灭火机器人的设计中,对机器人的性能智能化、网络化、小型化都有了明显提高。

比赛用灭火机器人需要机器人有智能较高的自动控制性能与可靠的机械控制性能的同时保证,才能在短时间内准确寻找到火源并灭火回家。在此以ARM9处理器为核心,对基于嵌入式系统的智能灭火机器人进行了设计。本文将从硬件和软件方面讲述智能灭火机器人控制器的实现方法,并且给出了机器人灭火的具体实验,验证了方案的可行性,为智能灭火机器人的进一步研究提供了平台。

1灭火机器人的描述

灭火机器人的外形结构如图1所示,它的主要构件有:红外发射传感器(6个),红外接收传感器(6个),声音传感器(1个),灭火风扇(前后各1个),远红外火焰传感器等(前后各7个)。其中红外发射和接受传感器的配合使用可以使机器人自动避障行走。远红外火焰传感器可以检测光的强弱,用于判断房间是否有火以及趋光灭火。声音传感器用于启动。基于实践,风扇灭火更为可靠,所以选用风扇灭火。

2 灭火机器人的总体设计

在智能灭火机器人系统中,首先要解决的是定位问题,故需要一个好的定位方案。所以,控制核心需要给传感器留足够的输入接口,同时也要有足够的输出接口用于控制外设。而速度对灭火机器人至关重要,在高速运动的情况下,需要CPU具有比较强的浮点数运算能力。基于上述考虑,选择ARM9为灭火机器人的控制核心,该控制器硬件功能齐全、功耗小、周边设备集成度高,是先进的智能机器人计算平台。它与其他的主要部件如表1所示,系统总体框架如图2所示。

3 灭火机器人嵌入式系统硬件设计

3.1 控制器系统设计

由于嵌入式微处理器对实时任务具有很强的支持能力,可以完成多任务并且具有较短的中断响应。因此在设计过程中,采用嵌入式ARM9为核心的控制器(ST公司的STR911FAM44),实现了以极少的周边芯片获得齐全的功能。ARM9处理器具有体积小,功耗低,性能高的特点。它集成了28路模拟信号采集通道,可以兼容数字信号和模拟信号,每路精度为10位,因此可以分辨3 mV特的输入电压变化。8路高速数据采集通道每秒可采集50万次信号。该处理器内部采用哈佛结构,每秒可执行1.1亿条机器指令,这样的强大功能可以实现机器人高速精确地按照规定路径行走,并且机器人的CPU能够实时迅速地读取多个传感器端口数值,在较短的时间内完成对各端口数值的存储、运算和输出等多种任务。在主控制器核心CPU的基础上,将各种功能模块、执行机构等连接到CPU的引脚上。控制器总共有28路模拟采样接口。ARM9控制器的系统图如图3所示。

在此选用Atmel公司生产的AVR ATmega 8微处理器作为辅助单片机。ATmega 8是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于它先进的指令集以及单时钟周期指令执行时间,ATmega 8的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。AVR内核具有丰富的指令集和32个通用工作寄存器。同时ATmega 8具有一整套的编程与系统开发工具,包括:C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。这样就大大方便了在硬件基础上进行软件设计。

ARM9处理器含有20路标准数据采集通道通过Atmega816-PC辅助单片机连接到主芯片上,用以读取远红外传感器组及检测端口的数值,每秒可采集1 000次。这种设计提高了端口数值读取速度,使机器人能对周围环境信息做出迅速判断。ARM9微处理器与辅助单片机如图4所示。

为了保证灭火机器人灵活行走和低功耗,需要一个体积小,超薄轻巧,功耗低的显示器。Uniohm公司生产的LCD满足设计要求,通过与单片机连接、编程、下载、完成显示功能。

3.2控制器电源供电设计

电源直接影响机器人运行特性。考虑到电动机启动瞬间电流很大,会造成电源电压不稳,影响单片机和输入电路工作的稳定性和可靠性,因此这里采用双电源供电方案。电机电源采用容量为2 500 mAh高放电倍率聚合物锂电池,工作电压为24 V,能提供40 A的稳定供电电流,是普通电池的10倍;控制器电源采用8.4 V锂电池,并提供电压采样端口,以供电池检测,控制器电源供电电路图如图5所示。

为获得CPU各端口电路所需要的不同等级的电压,该设计采用1个LM317T三端稳压器和2个AMS1117低压差线性电压调整器,并通过其附属电路,得到精确稳定的5 V,3.3 V,1.8 V三种电压;用1个发光二极管LD1和限流电阻R5作为电源指示灯,以显示电源开关的状态;为实时采样电源电压,防止锂电池过放或过充,通过R1,R2分压,引出AD19端口作为电源采样端口。

4 灭火机器人嵌入式系统软件设计

机器人控制器是一个多任务并行执行的实时控制器。在软件实现上,灭火机器人除了要协调控制各个不同功用的电机,还需要对红外、灰度、声音等多种传感器接收的数据进行传输、处理等。采用c语言可以方便快捷的编写程序。这里对灭火机器人的每种功能进行模块化处理。总体的思路是:寻找火源.确定火源方位,接近火源,趋光灭火,回家。主程序设计流程图如图6所示。实现起来最基本的就是使机器人能够顺利的直线行走和拐弯,这一模块称为沿墙走(沿左墙前,沿左墙后,沿右墙前。沿右墙后),沿右墙前如图7所示。具体为:

(1)若正前距离很大,同时右前的距离稍小时,太靠近右墙,执行左转微调;

(2)若正前距离很大,同时右前的距离稍大时,太靠近左墙,执行右转微调;

(3)若正前距离很大,右前距离适中,就直行;

(4)若正前距离特别小,同时右前距离特别小时,使机器人稍后退可以防碰撞;

(5)若正前距离比较小,右前距离也比较小时,机器人左转;

(6)右前距离很大时,机器人执行右转弯。

其中:(1)~(3)保证了在走直线时可以走直,通过不断调整,使机器人始终运行在距离墙10~15 cm的位置。(4)~(6)保证了机器人顺利拐弯和进房间。沿左墙行走及反方向沿墙行进同理,具体的参数必须在不断试验中反复调节。几种沿墙走配合使用就可以实现全部房间的遍历和回家,再加上趋光和灭火的模块就完成了整个灭火任务。

5 灭火实验

在硬件的设计和实现的基础上,用C语言编写了让器人智能搜索房间,发现火源并灭火回家的程序。在不断对各种参数的调节后,该机器人可以在8 s内完成任意房间灭火,灭完火后,机器人自动回家。统计了30组数据,如表2所示。灭火照片如图8所示。

6 结语

实际测试证明该设计的灭火机器人能够较好完成灭火任务,具有一定参考和使用价值。该设计的创新之处为:以AM09为核心的嵌入式系统的控制器运行速度高,能够高速采集和处理传感器系统信号,并发出相应的控制信号,实现8 s内完成任意房间灭火;该设计采用了嵌入式系统内核,大大提高了机器人处理信号的能力;STR911FAM46和AVR-ATMEGA8-16PC的选用在实现了功能强大的同时,保证了良好的扩展性,并且成本较低,有利于智能机器人早日实现市场化;双电源供电系统的引入,使机器人的运行更加稳定可靠;通过沿墙行进规则的设计,机器人的灵敏度和适应外界变化的特性明显提高,且程序简捷,有利于模块化编程.

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • ARM Cortex系列处理器知识点汇总

    最近因为要为芯片选定核,所以就在了解哪些核合适且性价比好,这是一个需要结合产品各类技术、市场分析的活,看似简单却还是需要一些储备的,今天选了一篇ARM Cortex系列的科普文章与大家分享。 众所周知,英国的ARM公司是嵌入式微处理器世界当中的佼佼者。AR

    05-11
  • 你的CPU属于哈佛结构还是冯诺依曼结构?

    现代的CPU基本上归为冯诺伊曼结构(也称普林斯顿结构)和哈佛结构。 冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端(台式/笔记本/服务器/工作站等),一个雄踞移动领域,我们的手持设备(平板\手机用的大多就是他了)。 01

    05-10
  • 如何批量修改MCU封装管脚定义

    在做产品开发时,为了缩短研发周期,我们一般都是直接找来参考设计做参考。这些参考资料要么是来自原厂的,要么是来自方案商的。  接触过这么多的参考设计资料,发现大部分的资料都有一个通病,就是不少MCU的PIN脚定义都只是标出IO口的定义,其它复用​​​​功能

    05-08
  • MCU为什么要消抖动

    简单的说,进入了电子,不管是学纯模拟,还是学单片机,DSP、ARM等处理器,或者是我们的FPGA,一般没有不用到按键的地方。按键:人机交互控制,主要用于对系统的控制,信号的释放等。因此在这里,FPGA上应用的按键消抖动,也不得不讲! 一、为什么要消抖动 在

    05-07
  • 51单片机的ISP下载知识

    本文详细介绍了串口、51单片机的ISP下载等基础知识,已经学过单片机的也可以看看,加强一下对这方面的了解。 串口 串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。 我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就

    05-06
  • 硬件开发如何选择合适的MCU

    点击上方关注我们! 我在做硬件开发时,如果遇到的是一个新产品,新项目,之前没有做过的,没有任何的经验,在选MCU时,我一般是这样操作的。 首先,根据产品的需求,整理出一份硬件规格。比如,电源管理,传感器接口,人机交互接口等。 然后,整理出整个原理

    05-06
  • 单片机的功耗怎么算的?

    单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。暂且把单片机的功耗按照下面的划分。 暂且把单片机的功耗按照下面的划分。 1.内部功耗(与频率有关) 2.数字输入输出口功耗 2.1输入口 2.2输出高 2.3输出低 3.模拟输入口功耗从

    05-07
  • 嵌入式工程师必备工具:I2C和SPI总线协议

    IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求

    04-30
  • 嵌入式面试注意事项

    找工作也是一门技能,有的人很快就找到自己喜欢的工作,有的人找了很久也没找到合适的工作。 下面给大家分享几点找工作过程中存在的“潜规则”内容。 1、面试的本质不是考试,而是告诉面试官你会做什么 经验不够的小伙伴特别容易犯的一个错误,不清楚面试官到

    04-29
  • 为什么需要RTOS?

    很多单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品,但作为一个嵌入式软件工程师,如果只能用裸机开发产品,那肯定是不够的。 要从裸机的思维转变到RTOS的思维,其实需要一个过程,而且开始的一段时间会很痛苦。但过一段时间理解了一些内容,能

    04-28
  • 使用RTOS的8个理由

    嵌入式系统中,有很多方式实现任务调度。功能有限的小系统中,无限循环足够实现系统功能。当软件设计变得庞大且复杂时,设计师应该考虑使用实时操作系统。 下面给大家分享使用RTOS的8个理由: 1.硬实时响应 基于优先级抢占的RTOS,根据任务的实时需求,执行优

    04-26
  • 单片机延时程序,Keil C编译器实现

    应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而

    04-26
下载排行榜
更多
EE直播间
更多
广告
X
广告