微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C8051F单片机在自动机器人上的应用

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

时间:02-28 来源:互联网 点击:
摘 要:以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转速和转向的精确控制,在比赛场地运行时可根据场地上的白色引导线来调整机器人的轨迹线。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top