城市影子 2008-6-23 04:51 PM
基于PIC单片机的机器人灵巧手的控制系统
[font=宋体][size=3][size=2][font=宋体][color=black][/color][/font][/size]
[b][font=宋体][size=2][color=black]1PIC单片机特点[/color][/size][/font][/b][font=宋体]
[size=2][color=black] [/color][/size][/font][font=宋体][size=2][color=black]PIC系列单片机是美国Microchip公司出品的8 b微处理器,但是他的速度与功能却比现在 一些普通8 b的51单片机强很多,因为他采用了RISC结构,有别于过去的一般CISC结构,R ISC结构采用Harward双总线结构,将地址总线与数据总线分开,因此数据与地址可以同时传输,提高了运算速度[2]。PIC单片机的体积小,功耗低,而且内部集成了多种外围电路,使设计更加方便,无需在单片机的设计仲添加一些外围电路,在控制系统中这一点很重要。本文中采用的[url=http://www.qooic.com/detail-PIC16C77.html]PIC16C77[/url]单片机,他有8 k的程序存贮器;368 B RAM;2个PWM口;内部集成了一个5通道的8 b A/D,具有掉电复位功能,这些特点使得硬件的设计非常方便。在机器人灵巧手的控制中对于微小电机的驱动需要PWM信号来驱动,在传统的设计中是利用晶体管组成的电路来实现的,普通的51系列单片机中必须利用定时器来产生,而在PIC单片机中内部包含了2个PWM信号输出端为设计提供了方便。 [/color][/size][/font]
[b][font=宋体][size=2][color=black]2控制系统的整体硬件设计[/color][/size][/font][/b][font=宋体]
[size=2][color=black] [/color][/size][/font][font=宋体][size=2][color=black]灵巧手在抓取和操作前,要进行被抓物接触点位置确定、抓取构形分析判断、三指手正逆 解求解、轨迹规划等复杂运算。这需要很长时间。在抓取和操作过程中,要进行电机转速控制、关节位置检测控制、指端力觉检测等,其中有的控制必须同时进行,因此,本文所设计的灵巧手采用图1所示的按层次划分的分级式控制系统。上位机为PC机主要从事主控制作用,进行抓取轨迹规划,还有对下位机发出操作指令。下位机为3个控制单元与上位机进行多机通讯,接收指令并对反馈信号进行PID调节,控制电机转动。每个单片机控制一个手指的运动。采用该控制体系的优点是控制方案整体思路比较清晰[/color][/size][size=2][color=black],控制灵活,达到了设计的要求。[/color][/size]
[b][size=2][color=black]2.1下位机软件设计[/color][/size][/b]
[size=2][color=black] [/color][/size][size=2][color=black]对于单片机在这个系统中的主要作用是接收上位机的指令,控制电机的运转和手指关节的运动以及对反馈的信号进行PID调节将结果送往上位机,并将采集来的信号送往上位机准备下一次指令的接收。[/color][/size][/font][font=宋体][size=2][color=black] [/color][/size][/font]
[font=宋体][b][size=2][color=black]2.2串口通信模块[/color][/size]
[/b][size=2][color=black] [/color][/size][size=2][color=black]对于串口通信主要是采用异步串行传输模式,数据的传输格式是RS232协议。对于PIC单片机来说对于串口的操作主要是对下面几个寄存器的操作:TXSTA发送状态与控制、RCSTA接收状态与控制寄存器、[/color][/size][size=2][color=black]TXREGUSART发送寄存器、RCREGUSART接收寄存器和[/color][/size][size=2][color=black] SPBRG波特率产生寄存器。[/color][/size]
[/font][font=宋体][b][size=2][color=black]2.3电机驱动模块[/color][/size][/b]
[size=2][color=black] [/color][/size][/font][font=宋体][size=2][color=black] 灵巧手的运动主要通过关节处的电机的运动来控制。三指灵巧手的每个手指有3个自由度 也就说一个手指的运动需要3个电机来驱动。驱动方式采用绳索与滑轮的方式传动,电机选用了瑞士[/color][/size][size=2][color=black]Maxon公司生产的REmax21直流伺服电机以及与其配套的减速器和编码盘。[/color][/size]
[size=2][color=black] [/color][/size][size=2][color=black]电机的驱动需要PWM信号来驱动,利用PIC单片机本身带有的PWM信号口,配以功率放大器便 可进行电机的驱动。PWM信号主要是对其内部Time2和2个寄存器的设定:一个是存贮PWM周期的PR2寄存器,一个是存贮工作周期的寄存器CCPRXL[3]。PWM信号输出示意图如图[/color][/size][size=2][color=black]3所示。[/color][/size]
[size=2][color=black] [/color][/size][size=2][color=black]当Time2刚开始工作时,PWM输出端为高电平,此后Time2会和PR2,CCPRXL两个寄存器比较 ,当Time2等于CCPRXL中的设定值时引脚输出变为低电平,当Time2计数到与PR2中的数相等时,此时引脚输出变为高电平,Time2便会归零重新计数,这就是PWM信号的输出过程。在PW M信号的输出端连接功放电路,采用[url=http://www.qooic.com/detail-L298.html]L298[/url]芯片实现单极可逆驱动,单片机生成的PWM脉宽调制信号直接由[url=http://www.qooic.com/detail-L298.html]L298[/url]双H桥PWM驱动器驱动,[url=http://www.qooic.com/detail-L298.html]L298[/url]是一种高电压大电流功率放大芯片。驱动电压可达46 V,直流电流总和可达4 A,直接采用TTL逻辑电平控制。 [/color][/size][/font]
[align=center][size=2][font=宋体][color=black][/color][/font][/size][/align][font=宋体][b][size=2][color=black]2.4A/D模块[/color][/size][/b]
[size=2][color=black] [/color][/size][/font][font=宋体][size=2][color=black]对于信号的采集部分,由于PIC单片机内部集成了一个5通道的8 b A/D,因此无需外接A/D ,直接应用即可。内部A/D的使用主要是对ADCON0,ADCON1, ADRES三个寄存器的设定。 [/color][/size][/font]
[b][font=宋体][size=2][color=black]3控制算法[/color][/size][/font][/b][font=宋体]
[size=2][color=black] [/color][/size][/font][font=宋体][size=2][color=black]在工业控制中PID算法是一种很常用的算法,一般的8 b单片机运行该算法时速度会受到颖响,对于系统的控制有着一定的时延特,但是基于PIC单片机的结构和高速特,这一点可以克服[4]。[/color][/size][/font][color=black] [/color][align=center][size=2][font=宋体][b][color=black][/color][/b][/font][/size][/align][/size][/font]