智能灭火机器人控制器的实现方法
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
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 3AT89C51单片机引脚说明及引脚图

    AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU...

    前天
  • 51单片机对LCD1602液晶的驱动设计

    51单片机——LCD1602 1、1602液晶读写时序 (1)、读状态 RS=L,R/W=H,E=H。(判断忙完毕后释放总线) (2)、读数据 RS=H,R/W=H,E=H。 (3)、写指令 RS=L,R/W=L,D0~D7=指令码,E=高脉冲 (4)、写数据 RS=H,R/W=L,D0~D...

    前天
  • 单片机串口如何接收不定长数据的?

    我们在使用其他STM32的单片机的时候,会发现有些困难,会发现常用的方法并不能用,在还没有接收完数据的时候,就解决不了。于是,只能用通用的方法来解决了。 这个通用的方法,其实原理和使用IDLE的原理一样:...

    前天
  • ARM处理器的选型原则

    鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用。但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,...

    07-10
  • 有哪些低功耗设计方法?单片机系统低功耗设计要点介绍

    功耗,已经是一个老生常谈的话题了。对于功耗,大家多多少少有所了解。目前,很多产品的宣传里便带有低功耗噱头。为增进大家对功耗的认识,本文将基于两点介绍功耗:1.低功耗主要设计方法,2.单片机系统低功耗设计...

    07-10
  • 8位32位MCU如何选择?如何选择合适的MCU?

    MCU,对于普通人而言,是一个高大上的存在。但是,在工业中,MCU确实常见产品。为增进大家对MCU的认识,本文将基于两点介绍MCU:1.8位MCU和32位MCU如何选择?2.如何选择合适的MCU。如果你对MCU具有兴趣,不妨继续往...

    07-09
  • ARM开发:一 ARM微处理器概述

    1.1ARM-Advanced RISC Machines ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术...

    07-08
  • 分析C51单片机的一些误区和注意事项

    简介:常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。 1) C...

    07-08
  • 51单片机几个延时程序

    简介:51单片机几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响. 一. 500ms延时子程序(晶振12MHz,一个机器周期1us.) 程...

    07-08
  • 总结单片机软件抗干扰的几种办法

    简介:在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。 1、软件抗干扰方法的研究 在工程实践中...

    07-08
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    07-02
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    07-02
下载排行榜
更多
评测报告
更多
广告