第5章机器人结构与车体资源 5.机器人系统组成 1 一个功能比较齐全的低成本机器人平台是机器人学习和研究的首选。相比技术门槛 高,资金投入大,机械结构复杂的仿生型,人型机器人、轮式移动机器人技术门槛低,资金 投入少,市场上各种产品和零配件的支持也比较多,虽然结构简单,但可以用来实现的功 能并不少。因此选择轮式移动机器人作为本书机器人智能工程应用主要的机械电子 平台。 轮式移动机器人车体选择国内慧净电子生产的电动小车车体。该车体具备成本低,循 迹、避障功能齐全,技术资料丰富,电机平面运行相对稳定的特点。不足之处是虽然该车体 安装的传感器尽力涵盖了机器人循迹、避障等基础智能,但传感器数量有限,只能检测判断 简单的环境信号,车体可二次分配的资源太少,很多需要复用,这样会因为资源冲突失去一 部分功能。当然,这也是低成本决定的。有鉴于此,轮式移动机器人车体资源主要使用电动 小车的单片机控制、红外传感与电机执行部分,以专注于机器人的智能移动与行走。另外, 设计开发嵌入式机器人通信板并整合到轮式移动机器人车体中,将机器人兼容各种无线通 信技术标准及接入网络的功能集成到机器人通信板中完成。二者结合完成对车体的改造, 以实现尽可能多的智能控制功能。机器人系统组成如图5. 1所示。 图5. 1 机器人系统组成 ·114· 机器人系统由轮式移动机器人车体与嵌入式机器人通信板两大部分组成。 机器人车体使用的资源主要分为4个模块: (1)机器人车体控制器。STC89C52RC 单片机。 (2)机器人车体传感器。由四对红外线发送管和接收管组成的左、右红外循迹传感器 与左、右红外避障传感器。 (3)机器人车体执行器。L293D 电机驱动芯片与左、右两个直流电机。 (4)机器人车体显示器。74LS573 数据锁存芯片与6位共阴极LED 数码管。 机器人通信板使用的资源主要分为3个模块: (1)机器人通信板控制器。STC12C5A60S2 单片机。 (2)机器人通信板显示器。LCD12864 液晶模块。 (3)机器人通信板通信器。NRF24L01 短距离无线通信模块。 机器人系统整体实物图如图5.3所示, 2所示。机器人车体单片机引脚连接如图5.其中 STC89 单片机与4个红外传感器引脚以及电机驱动芯片L293D 引脚之间需要用导线连接。 STC89 单片机与STC12 单片机串口需要用导线连接。车体与通信板的电源和地需要用导 线连接。 图5. 2 机器人系统整体实物图 机器人具备双控制器结构。 机器人车体控制器STC89C52RC 单片机实现对红外传感器信号的采集与直流电机执 行器的控制,其主要功能在于实时检测环境信号,完成机器人的智能移动与行走。 机器人通信板的控制器STC12C5A60S2 单片机与车体控制器STC89C52RC 单片机通 过串行口1进行数据交换。通信板的主要功能在于完成机器人与机器人之间、机器人与用 户之间的无线通信与组网。同时,通信板上的剩余资源较丰富,预留有多个接口,可外接其 他传感器单元、执行器单元和通信器单元。 ·115· 图5. 3 机器人车体单片机引脚连接 5.机器人车体控制器 2 机器人车体控制器STC89C52RC 单片机系统电路如图5. 4所示。 图5. 4 机器人车体控制器STC89C52RC 单片机系统电路 晶体振荡时钟频率为11.采用此时钟频率可以得到精确的串行口数据收发 0592MHz, 波特率,但启动定时器定时计数会存在一定误差。 ·116· 采用电阻电容式按键复位。 P0 口接上拉电阻,可作通用I/O口使用。 单片机的40 个引脚由两条20 脚插针(20PIN)引出,方便导线连接。 机器人车体控制器STC89 采集车体底盘前端左、右两个红外循迹传感器发来的引导黑 线和白色平面的信号,采集车头前端左、右两个红外避障传感器发来的障碍信号,通过控制 执行器驱动芯片L293D 驱动两个直流电机实现前进、后退、左转、右转、停止动作。 5.机器人车体传感器 3 3.红外传感器的工作原理 5.1 红外线又称红外光,是一种不可见光,其光谱位于可见光中的红色光以外,所以称红外 线。红外线具有可见光的所有特性,如反射、折射、散射、干涉等。同时,红外线还具有一种 非常显著的热效应,即所有高于绝对零度(-273℃)的物质都可以产生红外线。红外传感器 即将红外线作为介质利用其物理特性进行信号检测的传感器。 红外线属于环境因素不相干性良好的探测介质,对于环境中的声响、雷电、振动、各类人 工光源及电磁干扰源,具有良好的不相干性;同时,红外线目标因素相干性良好,只有阻断红 外线发射束的目标,才会触发相应操作。因此,红外传感器有如下优点: (1)环境适应性优于可见光,尤其是在夜间和恶劣天气下的工作能力。 (2)隐蔽性好,一般都是被动接收目标的信号,比雷达和激光探测安全且保密性强,不 易被干扰。 (3)由于是利用目标和背景之间的温差和发射率差形成的红外辐射特性进行探测,因 而识别目标伪装的能力优于可见光。 (4)与雷达系统相比,红外系统的体积小,重量轻,功耗低。 红外传感器按照收发方式分为被动式和主动式。被动式红外传感器主要依靠检测人体 发出的红外线工作。主动式红外传感器的红外发 射机发出一束或多束经调制的红外线经反射后被 红外接收机接收,从而形成一条至数条红外光束组 成的探测区,如图5. 5所示。 机器人车体安装了2个红外循迹传感器信号 和2个红外避障传感器,均为主动式红外传感器。 其中每一个传感器都由一对红外对管组成,包括红 外线发射管和红外线接收管。红外传感器内部原 理图如图5. 6所示。 红外循迹传感器主要检测黑色线和白色平面 区域。检测的工作原理如下: (1)白色平面对红外线的反射率大。当红外循迹传感器检测白色平面时,红外线发射 管发射的红外线大部分被白色平面反射回来被接收管接收,接收管导通,输出模拟电压经比 较器转化为低电平,即红外循迹传感器检测到白色输出0。 ·117· 图5.5 红外线探测原理 图5. 6 红外传感器内部原理图 (2)黑色线对红外线的反射率小。当红外循迹传感器检测黑色线时,红外线发射管发 射的红外线大部分被黑色线吸收,接收管接收不到反射的红外线因此不导通,输出模拟电压 经比较器转化为高电平,即红外循迹传感器检测到黑色输出1。 红外避障传感器主要检测有障碍和无障碍。检测的工作原理如下: (1)障碍对红外线的反射率大。当红外避障传感器检测障碍时,红外发射管发射的红 外线大部分被障碍反射回来被接收管接收,接收管导通,输出模拟电压经比较器转化为低电 平,即红外避障传感器检测到障碍输出0。 (2)无障碍对红外线的反射率小。当红外避障传感器检测无障碍时,红外发射管发射 的红外线大部分直接发射耗散而无法反射,接收管接收不到反射的红外线因此不导通,输出 模拟电压经比较器转化为高电平,即红外避障传感器检测不到障碍输出1。 5.2 机器人车体传感器接口电路 3. 左、右两个红外循迹传感器安装在机器人车体底盘前端,红外传感器的红外线发送管和 红外线接收管均朝下对着地面,以实现对黑色线和白色平面区域的检测,7所示。 如图5. 图5. 7 机器人车体红外传感器安装示意图 机器人车体红外传感器信号检测接口电路如图5. 8所示。 ·118· 图5.8 机器人车体红外传感器信号检测接口电路 机器人左红外循迹传感器通过导线连接到单片机的P3.4引脚,机器人右红外循迹传感 器通过导线连接到单片机的P3.3引脚。 当红外循迹传感器检测到黑色线,输出高电平给其连接的单片机引脚,反之,输出低电 平给其连接的单片机引脚。 左、右两个红外避障传感器安装在机器人车头左、右两端,红外传感器的红外线发送管 和红外线接收管均朝前对着障碍,以实现对障碍物有无的检测。 机器人左红外避障传感器通过导线连接到单片机的P3.6引脚,机器人右红外避障传感 器通过导线连接到单片机的P3.5引脚。 当红外避障传感器检测到障碍,输出低电平给其连接的单片机引脚,反之,输出高电平 给其连接的单片机引脚。 5.3.3 机器人车体传感器编程 【例5.1】 机器人车体左红外或右红外循迹传感器检测到黑线时,蜂鸣器报警。 参考程序如下: #include sbit Left_IRSenor_Track=P3^4; //左红外循迹传感器 sbit Right_IRSenor_Track=P3^3; //右红外循迹传感器 sbit BUZZ=P2^3; //蜂鸣器 void delay_ms(unsigned int n) { unsigned int i,j; for(i=n; i>0; i--) for(j=123; j>0; j--); ·119· }v oid main() { while(1) { //左、右红外检测到黑线就启动蜂鸣器 if(Left_IRSenor_Track==1||Right_IRSenor_Track==1) { BUZZ=0; delay_ms(500); BUZZ=1; } } } 5.4 机器人车体执行器 5.4.1 PWM 控制直流电机的工作原理 脉宽调制(PulseWidthModulation,PWM)是利用单片机的数字输出对模拟电路进行 控制的一种非常有效的技术,广泛应用在测量、通信、功率控制与变换等许多领域中。PWM 是一种对模拟信号电平进行数字编码的方法,通过高分辨率计数器的使用,将方波的占空比 调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的 图5.9 PWM 波模拟正弦波 任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。通的时候即直流供电 被加到负载上,断的时候即供电被断开。 PWM 的原理简单说就是通过一系列脉冲的宽度进行调制,可以等效地获得所需要的 波形。这个“等效”的原理是基于采样定理的一个结论:冲量(窄脉冲面积)相等而形状不同 的窄脉冲加在具有惯性的环节上时,其效果基本相 同(仅高频部分略有差异)。基于这个等效原理,可 以用不同宽度的矩形波代替正弦波,通过控制矩形 波模拟不同频率的正弦波。 如图5.9所示,把正弦波n 等分,看成n 个相连 的脉冲序列,宽度相等,但幅值不等;用矩形波代替 则是幅度相等,宽度不等(按正弦规律变化),中点重 合,冲量面积相等。当然,PWM 也可以等效成其他 非正弦波形,基本原理都是等效面积。 电机分为交流电机和直流电机两大类。直流电 机以其良好的线性特性、优异的控制性能、较强的过 载能力成为大多数变速运动控制和闭环位置伺服控 制系统的最佳选择,一直处在调速领域主导地位。 传统的直流电机调速方法很多,如调压调速、弱磁调 ·120· 速等,它们存在着调速响应慢、精度差、调速装置复杂等缺点。随着全控式电力电子器件技 术的发展,以大功率晶体管作为开关器件的直流PWM 调速系统已成为直流电机调速系统 的主要发展方向。 在PWM 调速系统中,一般可以采用定宽调频、调宽调频、定频调宽3种方法改变控制 脉冲的占空比,但是前两种方法在调速时改变了控制脉宽的周期,从而引起控制脉冲频率的 改变,当该频率与系统的固有频率接近时,将会引起振荡。为了避免这个问题,常用定频调 宽改变占空比的方法调节直流电动机电枢两端的电压。 定频调宽法的基本原理是按一个固定频率接通和断开电源,并根据需要改变一个周期 内接通和断开的时间比(占空比)改变直流电机电枢上电压的占空比,从而改变平均电压,控 制电机的转速。在PWM 调速系统中,当电机通电时其速度增加,电机断电时其速度降低。 只要按照一定的规律改变通、断电的时间,即可控制电机转速。而且采用PWM 技术构成的 无级调速系统,启停时对直流系统无冲击,并且具有启动功耗小、运行稳定的优点。 如图5.10 所示,设电机始终接通电源时,电机转速最大为Vmax,电机的平均速度为Va , 设占空比D=t1/T。式中, t1 表示一个周期内开关管 导通的时间, T 表示一个周期的时间,则电机的平均速 度为Va =Vmax×D。 可见,当改变占空比D=t1/ T 时,可以得到不同的 电机平均速度Va ,从而达到调速的目的。严格来说,平10PWM 波形 均速度Va 与占空比 D 并非严格的线性关系,但是在一 图5. 般的应用中,可以将其近似看成线性关系。 4.机器人车体执行器接口电路 5.2 机器人车体的执行器包括驱动芯片和2个直流电机。 机器人车体执行器驱动直流电机的接口电路如图5. 11 所示。 图5. 11 机器人车体执行器驱动直流电机的接口电路 直流电机的驱动芯片为L293D 。可通过LOT1 、LOT2 引脚和ROT3 、ROT4 引脚驱动 左、右两个直流电机带动车轮执行前进、后退、左转、右转、停止等操作。 控制左直流电机转动方向的IN1 、IN2 引脚通过导线连接到单片机的P1.3引脚。 2、P1. 控制左直流电机转动速度的EN1 引脚通过导线连接到单片机的P1. 4引脚。 控制左直流电机转动方向的IN3 、IN4 引脚通过导线连接到单片机的P1.7引脚。 6、P1. ·121· 控制左直流电机转动速度的EN2引脚通过导线连接到单片机的P1.5引脚。 单片机通过定时器T0方式1输出PWM 方波到P1.4与P1.5引脚调节车轮的转速。 5.4.3 机器人车体执行器编程 【例5.2】 机器人车体按照前进、后退、左转、右转、停车5种状态循环运行。 参考程序如下: #include //定义智能小车驱动模块输入IO sbit IN1 = P1^2; //高电平后退,电机顺时针转 sbit IN2 = P1^3; //高电平前进,电机逆时针转 sbit IN3 = P1^6; //高电平前进,电机逆时针转 sbit IN4 = P1^7; //高电平后退,电机顺时针转 sbit EN1 = P1^4; //使能,高电平全速运行 sbit EN2 = P1^5; //使能,高电平全速运行 void delay_ms(unsigned int n) { unsigned int i,j; for(i=n; i>0; i--) for(j=123; j>0; j--); }v oid main() { while(1) { //小车前、后、左、右停循环行驶 //机器人前行 IN1=0,IN2=1; IN3=1,IN4=0; EN1=1,EN2=1; delay_ms(600); //机器人倒退 IN1=1,IN2=0; IN3=0,IN4=1; EN1=1,EN2=1; delay_ms(600); //机器人左转 IN1=0,IN2=0; IN3=1,IN4=0; EN1=1,EN2=1; delay_ms(600); //机器人右转 IN1=0,IN2=1; IN3=0,IN4=0; EN1=1,EN2=1; ·122· delay_ms(600); //机器人停车 IN1=0,IN2=0; IN3=0,IN4=0; EN1=0,EN2=0; delay_ms(600); } } 5.5 机器人车体显示器 5.5.1 机器人车体显示器接口电路 机器人运行状态的实时显示选择LED数码管。使用两片锁存器芯片74LS573对数码 管实时显示的段码线数据和位选线数据进行锁存。P0.0~P0.7实现段码线和位选线的复 用,P2.6和P2.7分别实现段码和位选的锁存信号选择。机器人车体显示器LED数码管的 接口电路如图5.12所示。 图5.12 机器人车体显示器LED数码管的接口电路 5.5.2 机器人车体显示器编程 【例5.3】 机器人车体显示器6个共阴极LED数码管显示“985211”。 参考程序如下: ·123·