基于51单片机自动巡线轮式机器人控制系统设计
轮式移动机器人是机器人研究领域的一项重要内容.它集机械、电子、检测技术与智能控制于一体。在各种移动机构中,轮式移动机构最为常见。轮式移动机构之所以得到广泛的应用。主要是因为容易控制其移动速度和移动方向。因此.有必要研制一套完整的轮式机器人系统。并进行相应的运动规划和控制算法研究。笔者设计和开发了基于51型单片机的自动巡线轮式机器人系统。
2 控制系统总体设计
机器人控制系统由主控制电路模块、存储器模块、光电检测模块、电机及舵机驱动模块等部分组成,控制系统的框图如图1所示。
控制系统的框图
3 主控制模块设计
3.1 CPLD设计
在机器人控制系统中.需要控制多个电动机和行程开关.还要进行光电检测.如果所有的任务都由AT89S52型单片机来完成.CPU的负担就会过重。影响系统的处理速度。因此扩展1个CPLD.型号为 EPM7128。它属于.MAX7000系列器件。包括2个通用1/0口.2个专用I/O口,专用I/O口可作为每个宏单元和输入输出引脚的高速控制信号 (时钟、清除和输出使能等),电动机的。PWM信号也由其产生。
EPM7128的引脚排列如图2所示。MlP—M4P引脚的输出为PWM脉宽调制信号,M1FB—M4FB引脚为电机的方向控制信号,P00一P07接单片机的PO口,100一1015为扩展的2个通用I/O口,SIL—S17引脚为行程开关输入信号,LI11一LI17引脚为光电探头输入信号。CPLD的编程用VHDL语言,产生1路PWM信号的部分程序源代码如下:
EPM7128的引脚排列
单片机采用24MHz的晶体振荡器,ALE信号的频率fALE=f16=6MHz,最终输出PWM信号的引脚MlP的频率为:
公式
调节这个信号的占空比可以使直流电动机获得O-255级的转速。
3.2 机器人运行参数存储器的扩展
机器人运行路径和动作可以根据比赛情况的不同而发生变化,这样,每改变1次运行参数就必须对单片机的Flash进行1次擦写。为了解决这一问题.扩展了程序参数存储器,用来存放机器人的运行路径和动作参数.扩展电路如图3所示。
扩展电路
其中IC1为24LC08B,是I2E总线的串行E2PROM存储器,最多能够存储lK字节的数据。IC2为MAX3232型电平转换器,其内部有1个电源电压变换器,可以将计算机的电平转换为标准TTL电平,实现计算机与单片机之间通过串行口传输数据,使单片机完成对24/LC08B的数据存储操作。单片机运行时,直接从24LC08中读取机器人的运行参数,控制机器人运行。
4 光电检测模块设计
4.1 光电检测过程
设计光电检测模块是为了让机器人能够检测地面上的白色引导线。光电检测电路主要包括发射部分和接收部分,其原理如图4所示。
光电检测过程
发射部分的波形调制采用了频率调制方法。由于发光二极管的响应速度快,其工作频率可达几MHz或十几MHz,而检测系统的调制频率在几十至几百kHz的范围内,能够满足要求。光源驱动主要负责把调制波形放大到足够的功率去驱动光源发光。光源采用红外发光二极管,工作频率较高,适合波形为方波的调制光的发射。
接收部分采用光敏二极管接收调制光线,将光信号转变为电信号。这种电信号通常较微弱,需进行滤波和放大后才能进行处理。调制信号的放大采用交流放大的形式,可使调制光信号与背景光信号分离,为信号处理提供方便。调制信号处理部分对放大后的信号进行识别,判断被检测对象的特性。因此,此模块的本质是将“交流”的、有用的调制光信号从“直流”的、无用的背景光信号中分离出来,从而达到抗干扰的目的。
4.2 光电探头
光电探头安装在机器人底盘前部,共设置了5个检测点。从理论上讲,检测点越多、越密,识别的准确性与可靠性就越高,但是硬件的开销与软件的复杂程度也相应的增加。采用该巡线系统保证了检测的精确度,节约了硬件的开销。发光二极管发出的调制光经地面反射到光敏二极管。光敏二极管产生的光电流随反射光的强弱而线性变化。把这种变化检测出来,就可以判断某一个检测点是否在白色引导线的上方,从而判断机器人和白色引导线的相对位置。
5 电机驱动模块
机器人的驱动件主要是电机和舵机,都可以采用PWM进行调速与控制。根据脉冲编码器的反馈信号,对机器人的运动状态进行实时控制。直流伺服电机的控制原理如图5所示。调节:PWM的信号就能够快速调节舵机的转角,从而实现机器人的方向控制。
直流伺服电机的控制原理
6 结束语
基于5l型单片机的自动巡线轮式机器人控制系统运行平稳可靠,抗干扰能力强,不仅满足了机器人大赛的设计要求,同时也为智能机器人搭建了良好的控制平台。
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)