由于嵌入式微处理器对实时任务具有很强的支持能力,可以完成多任务并且具有较短的中断响应。因此在设计过程中,采用嵌入式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)若正前距离特别小,同时右前距离特别小时,使机器人稍后退可以防碰撞;
上一页 [1] [2] [3]