《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > C8051F单片机在自动机器人上的应用

C8051F单片机在自动机器人上的应用

2009-05-21
作者:胡发焕1, 邱小童2,朱 花1

    摘 要:以2007年CCTV大学生机器人大赛自动机器人为对象,系统阐述了自动机器人的控制电路。
    关键词:CCTV大学生机器人赛;PID控制器;C8051F

 

    在每年中央电视台举办的CCTV大学生机器人大赛中,自动机器人是一个典型的机电光一体化作品,它可以培养和训练大学生计算机、控制论、机构学、机械设计和制造、传感技术、人工智能等众多学科的知识,是大学生开展综合知识训练的良好平台。同时机器人制作比赛作为一种创新教育的战略性手段已经逐渐被教育界的人们所认可,因此越来越受到各高校的重视和积极参与。在每年的机器人大赛中,机器人是由手动机器人和自动机器人两部分组成,自动机器人在比赛中担当主要角色,对比赛的胜负起决定性的作用。
    2007年CCTV大学生机器人大赛是在一个14 m×14 m的场地上进行,以参赛双方谁先建造完指南针为获胜,如两方都没完成则以各自的得分来决定胜负。本文设计的自动机器人以C8051F310单片机为MCU。
1 机器人车体机械机构设计
    2007年CCTV大学生机器人大赛中,比赛内容是双方机器人把各自的积木放到战车上。整个自动机器人的活动区域内没有设置障碍,不需要爬坡等越障设置,相对而言较为简单。本文设计并参加比赛的自动机器人在车体机械机构上采用双轮驱动设计,通过控制2个驱动轮的速度和转向来实现不同的运动轨迹,驱动轮在底盘的后面,底盘前面有2个万向轮,用以支撑整个车体的平衡。在底盘的上面安置积木的夹抓机构和提升机构。
2 机器人的控制电路设计
2.1 MCU的选择

    2007年CCTV大学生机器人大赛较以往的题目更灵活,自动机器人的运动轨迹更复杂,因而对自动机器人的设计和控制难度也较高。在综合考虑各种因素后,选用Cygnal公司最近推出的C8051F系列高速单片机。这种单片机结构简单,性能与DSP相近,而且其指令集与51系列单片机兼容,开发工作简单。用于自动机器人控制的C8051F单片机具有如下的特点[1]:
    (1) 使用Cygnal公司的专利CIP-51微控制器内核,采用流水线指令结构;70%的指令执行时间为1个或2个系统时钟周期;速度可达25 MI/s(时钟频率为25 MHz时)。这样就可以应用复杂的控制算法提高控制精度。
    (2) 内部有4个通用16位计数器/定时器和专用的看门狗定时器(WDT),不再需要附加外部计数器件和外部看门狗电路。本文的设计就是将定时器0和定时器1用作小车左右轮反馈脉冲计数。
    (3) 引入了数字交叉开关,允许将内部数字系统资源分配给端口I/O引脚。通过设置优先权给交叉控制寄存器,将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其他数字信号配置为出现在端口I/O引脚。
    (4) 内部有1个可编程计数器阵列(PCA),由1个专用的16位计数器/定时器和5个16位捕捉/比较模块组成。通过设置特殊功能寄存器PCAOCPM将捕捉/比较模块0和模块1(CEX0和CEX1)设置成脉冲宽度调制器(PWM),用于驱动电动机。
    (5) 内部有12位逐次逼近型ADC,可以在不增外围电路的前提下方便地检测模拟信号。
    (6) 具有片内JTAG和调试电路,通过JTAG接口并使用安装在最终应用系统中的器件上就可以进行全速、非侵入式地在系统调试,而且支持断点、单步、观察点、堆栈监视器,支持观察修改存储器和寄存器。
    自动机器人的控制MCU选用C8051F系列单片机是非常合适的,由于可以硬件生成PWM,占用CPU资源很少;高性能的指令系统以及和C语言之间进行交叉汇编,为设计各种控制算法提供了广阔的空间。其控制电路框图如图1所示。

 


    在自动机器人运动控制中采用两轮驱动,通过对2个驱动轮电机转速和转向的精确控制来控制机器人的运动轨迹。对左右轮驱动电机M1、M2的转速采用PWM脉宽调制进行驱动,单片机输出的PWM信号和转向控制信号送给电机控制专用芯片L298,L298芯片能够直接驱动两个电机运转。在M1、M2电机上装有能够检测其转速的两路光电编码器,两路光电编码器的信号分别送给倍频器和鉴向器,进行转速和转向的检测,转速和转向信号输送给C8051F310单片机,在其内部进行PID运算,将运算后的结果控制PCA阵列,从而控制PWM的占空比。下面对其电路进行具体分析。
2.2 MCU电路
    采用C8051F310作为控制电路的MCU[2],用P0口实现对驱动电机的控制。P0.0、P0.1用于输出控制M1、M2转速的PWM信号,P0.2、P0.3用于控制M1、M2的转向;P0.4、P0.5用于M1、M2的转速反馈,即用于计算反馈驱动电机的转速;P0.6、P0.7用于检测M1、M2的转向,即用于取得驱动电机的转向反馈。通过P0口实现了对两个驱动电机的闭环控制。通过嵌入在C8051F310的PID算法,即可实现对M1、M2转速和转向的精确控制,在比赛场地运行时可根据场地上的白色引导线来调整机器人的轨迹线。
2.3 电机的选择
    由于在比赛时电源必须自带,驱动电机采用直流电机,本文采用的是FAULHABER公司生产的2342L024CR直流电机。通过改变PWM的占空比来改变它的转速,通过改变电源的极性来改变电机的转向。为了能够准确测出电机的转速和转向,在每个电机上装有两路光电编码器,光电编码器输出与电机转速成正比的方波信号,两路信号在频率上相等,在相位上相差90°,如图2所示的CHa和CHb信号。

 


2.4 电机驱动电路
    为了控制直流电动机,需用半导体功率器件进行驱动。大多数直流电动机的驱动是采用开关型驱动方式。由于PWM调制方式使晶体管工作在开关状态,这种调速方式不仅功率损耗低、效率高,而且具有调速范围广、响应速度快等特点。当输入信号为零时,伺服电机处于微振状态,克服了静摩擦力的影响,有利于改善伺服系统低速运行时的平稳性。
    本文采用L298为电机驱动芯片,它采用双H桥式为主驱动电路,如图3所示。该电路不仅能够调速而且还能正反转,可以驱动同步进电机或同时驱动2个直流电机。通过它的2个引脚PWM和DIR实现对电机的控制。通过改变PWM引脚的占空比,可以实现对电机的转速控制;通过改变DIR引脚的高低电平,可以实现电机的正反转控制。

 

2.5 倍频电路
    从电机的编码器上输出两路矩型脉冲信号,它们的频率相等,与电机的转速成正比,相位上相差90°(如图2的Cha、CHb)。在PID算法中,为了提高脉冲取样的频率,提高算法的控制精度,要求能够提高编码器的矩形脉冲分辨率。因此本文对光电编码器的两路脉冲信号进行倍频。倍频芯片采用74LS86,它同时能够进行4个“异或”运算:Q=A×B。驱动电机的两路矩形方波信号CHa、CHb输入给74LS86的A、B端,通过74LS86“异或”运算后所得到的频率为原来的两倍(如图2的CHc)。
2.6 鉴向电路
    在控制电机的PID算法中,MCU要知道电机的正反转,即需要鉴向电路。本文所用鉴向器的芯片是74LS74。74LS74是2路正边缘D触发器,它可以同时检测2路电机的转向,其工作过程为:74LS74的触发端CK引脚和输入端D引脚分别与电机光电编码器输送过来的2路方波信号CHa、CHb相连。因为74LS74的输出信号是:Q = CK↑·D,若CK引脚与CHb相连,D引脚与CHa相连,属于上升沿触发器。当电机正转时,其2路脉冲信号如图4(a)所示,CHb信号上升沿所对应的CHa信号为高电平,这时74LS74芯片的输出端Q为1;当电机反转时,其2路脉冲信号如图4(b)所示,CHb信号上升沿所对应的CHa信号为低电平,这时74LS74芯片的输出端Q为0。因此通过鉴向电路可以判断电机的转向。


    经过74LS86芯片倍频和74LS74芯片鉴向后的信号输送给MCU(C8051F310),MCU经过PID运算后的结果输送给MCU内部的PCA阵列,从而输出符合要求的PWM脉冲信号以及电机的转向信号给直流电机,精确控制电机的转速和转向。
2.7 引导线的检测
    在比赛场地上有3 cm宽的白色引导线,自动机器人可以沿着引导线确定自己的运动轨迹,因此,自动机器人可以利用白色的引导线来校正自己的运动轨迹。为了能够准确地检测到场地的白色引导线,采用光纤传感器来检测。光纤传感器上主要有如图5所示的发射光装置和接收光装置。

 

 

    发射光装置发射出的光遇到前方的检测物后,反射回来给接收装置,如果检测物的距离和灰度不同,则反射回来的光的强度也不同。当调节好距离之后,设定不同的阈值就可以检测不同的灰度。光纤传感器检测比赛场地上的白色引导线,利用场地灰度不同,即白色引导线比周围背景的反射率更高的特点,使机器人行走时引导线处于机器人两驱动轮的中间。具体设计是:机器人左右各有4个光纤传感器,分别为1~4号传感器,如图6所示。考虑到引导线的宽度为3 cm,左1号传感器和右1号传感器之间的距离设为4 cm,留1cm的余地,左右传感器内部之间的距离为2.5 cm。机器人行走时:如果左右光纤传感器都没有检测到引导线,说明引导线在机器人两驱动轮的中间,两轮的速度正确;当左边的光纤传感器检测到引导线,说明左驱动轮的速度偏大,机器人在往右边偏移,这时应该减小左驱动轮速度或增大右驱动轮速度进行校正。左边的光纤传感器有4个,当1号光纤传感器检测到,说明偏移量较小其校正量也应较小;如果是2号光纤传感器检测到,说明偏移量更大,校正量也应更大。以此类推,4号光纤传感器偏移量最大,校正量也最大。若是右边的光纤传感器检测到白色引导线,其原理同左边的光纤传感器。这样MCU就可以通过光纤传感器传送来的信号实时调整左右驱动轮的速度,使机器人按要求的路线运行。

 

 

    以上是以C8051F单片机作为主MCU在自动机器人控制电路中的应用,它通过PID算法和光电检测器构成双闭环的控制电路,实现了对驱动电机的精确控制,能够很好地满足比赛的控制要求。通过比赛实践证明了该电路具有体积小、功耗低、控制精度高、成本低的优点,非常适合大学生参赛使用,同时也是一个很好的训练和培养学生实践创新能力的试验项目。
参考文献
[1] 张迎新,雷文,姚静波.C8051F系列SOC单片机原理及应用.北京:国防工业出版社,2005:3-4.
[2] 新华龙电子有限公司.C8051F310/1/2/3/4/5/8/16 KB ISP Flash 微控制器数据手册.Rev 1.5.潘琢金译. 2004.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。