当前位置:文档之家› 机械臂的控制论文

机械臂的控制论文

学校代码学号本科学年论文(设计)学院、系专业名称年级学生姓名指导教师20年9月日目录摘要 (4)Abstract (5)第一章:绪论 (6)1.1 机械臂的发展史 (6)1.2 国内外发展状况 (6)1.3 课题研究背景 (7)第二章系统整体设计思路 (7)2.1 整体设计概述 (7)2.2 单片机简介 (7)2.3 系统硬件系统设计 (8)2.3.1电路总框架图 (8)2.3.2 硬件电路概括 (8)2.3.2.1 单片机电路 (8)2.3.2.2 稳压电路............................. (9)2.3.2.3 舵机驱动电路 (9)2.3.2.4 传感器电路 (10)2.4 系统软件系统设计 (10)2.4.1 编程思想 (10)2.4.2 程序流程图 (11)2.4.3 程序及注释 (12)第三章PCB设计 (19)3.1 PCB设计过程 (19)3.2 零件布局 (20)3.3 布线 (21)3.4 放置敷铜 (19)3. 5 PCB电路图 (21)第四章:设计过程问题分析 (22)第五章:总结 (23)致谢 (23)参考文献 (24)基于C8051F310单片机的机械臂的设计摘要:随着时代的进步,机械臂技术的应用已越来越普及,已逐渐渗透到军事、航天、医疗、日常生活及教育娱乐等各个领域。

慢慢取代了人类的劳动,尤其是代替人到不能或不适宜去的、有危险等的环境中。

一个完整的机械臂系统主要包括机械、硬件和软件等部分。

设计时需要考虑结构设计、控制系统设计、运动学分析等部分,对于整个研发工作,需要把各个部分紧密联系,互相协调设计。

本文旨在介绍2010-2011学年论文—机械臂的设计方案。

通过C8051F310单片机对五路舵机的分别控制,实现具有五个自由度的机械臂的功能,该机械臂具有灵活、稳定、反应快速、用途广等优点。

关键词:机械臂,单片机,自由度Based on C8051F310 SCM design of mechanical armAuthor:Tutor:AbstractWith the progress of The Times, the application of mechanical arm technology has become more and more popular, already permeates gradually to military and aerospace, medical treatment, the daily life and the education entertainment, and other fields. Slowly replaced human labor, especially instead of people to be or not to go, is dangerous for the environment.A complete mechanical arm the system includes machinery, hardware and software, and other parts. The design consideration of the need when structure design, control system design, kinematics analysis, for the whole of research and development work of each part, need to close contact each other, coordinate design. This paper aims to introduce the 2010 2011 academic year paper design scheme of mechanical arm. Through the C8051F310 microcontroller to five road of steering gear control to realize respectively with five of the freedom of the function of the mechanical arm, the mechanical arm with flexible, stable and quick response, wide application, etc.Keywords: Mechanical arm, SCM, degrees of freedom第一章绪论1.1 机械臂的发展史随着社会分工的细化,从事简单重复工作的人们强烈渴望有某种能代替自己工作的机械臂出现,1946年第一台数字电子计算机问世以来,计算机取得了惊人的进步,向高速度、大容量、低价格的方向发展。

同时,大批量生产的迫切需求推动了自动化技术的进展,又为机械臂的开发奠定了基础。

另一方面,核能技术的研究要求某些操作机械代替人处理放射性物质。

在这一需求背景下,美国于1947年开发了遥控机械手,1948年又开发了机械式的主从机械手。

机械臂首先是从美国开始研制的。

1954年美国戴沃尔最早提出了工业机器人的概念,并申请了专利。

该专利的要点是借助伺服技术控制机器人的关节,利用人手对机器人进行动作示教,机器人能实现动作的记录和再现。

这就是所谓的再现机器人。

现有的机器人差不多都采用这种控制方式。

1958年美国联合控制公司研制出第一台机械臂铆接机器人。

作为机器人产品最早的实用机型(示教再现)是1962年美国AMF公司推出的“VERSTRAN”和UNIMATION公司推出的“UNIMATE”。

这些工业机器人主要由类似人的手和臂组成它可代替人的繁重劳动以实现生产的机械化和自动化,能在有害环境下操作以保护人身安全,因而广泛应用于机械制造、冶金、电子、轻工和原子能等部门。

国外机器人领域发展近几年有如下几个趋势:1.2 国内外发展状况(1)工业机器人性能不断提高(高速度、高精度、高可靠性、便于操作和维修),而单机价格不断下降。

(2)机械结构向模块化、可重构化发展。

例如关节模块中的伺服电机、减速机、检测系统三位一体化:由关节模块、连杆模块用重组方式构造机器人整机;国外已有模块化装配机器人产品问市。

(3)工业机器人控制系统向基于PC机的开放型控制器方向发展,便于标准化、网络化;器件集成度提高,控制柜日见小巧,且采用模块化结构:大大提高了系统的可靠性、易操作性和可维修性。

(4)虚拟现实技术在机器人中的作用已从仿真、预演发展到用于过程控制,如使遥控机器人操作者产生置身于远端作业环境中的感觉来操纵机器人。

1.3 课题研究背景随着工业自动化程度的提高,工业现场的很多易燃、易爆等高危及重体力劳动场合必将由机器人所代替。

这一方面可以减轻工人的劳动强度,另一方面可以大大提高劳动生产率。

例如,目前在我国的许多中小型汽车生产以及轻工业生产中,往往冲压成型这一工序还需要人工上下料,既费时费力,又影响效率。

为此,我们把机械臂作为我们研究的课题。

在工业自动化领域里,对机械手、机器人的实用性和前景毫无疑虑。

第二章系统整体设计思路2.1 整体设计概述整体来看,本次设计比较简单。

用单片机输出五路PWM脉冲分别控制机械臂的五个舵机,实现具有五个自由度的机械臂。

本次设计所使用的C8051F310单片机性能较强大,完全可以满足设计需要。

使用时对C8051F310单片机的目标引脚做初始化,完全可以根据需要将所选引脚用作输入输出口。

C8051F310单片机有高精度可编程的25MHz内部振荡器,不需接外部晶振完全可以满足设计需要。

本次设计要实现的目标是灵活控制五路舵机,稳定的实现五个自由度的机械臂运动。

为了今后自由度的扩展特采用定时器0、1中断的方式来分别控制周期为20ms的五路舵机。

但若就控制五个舵机我们可以用单片机自身的PWM控制器来输出5个20ms的脉冲,更加简单、稳定。

2.2 单片机简介C8051F310 器件是完全集成的混合信号片上系统型MCU芯片。

下面列出了一些主要特性:●高速、流水线结构的8051 兼容的CIP-51 内核(可达25MIPS)●全速、非侵入式的在系统调试接口(片内)●高精度可编程的25MHz 内部振荡器● 4 个通用的16 位定时器●具有5 个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列(PCA)●29/25 个端口I/O(容许5V 输入)2.3 系统硬件结构设计2.3.1 电路总框架图2.3.2 硬件电路概括电路硬件系统包括:单片机电路、舵机控制电路、传感器输入电路、稳压电路等部分。

2.3.2.1 单片机电路为了今后能更好扩展PWM的输出,我们选用单片机数字I/O口输出来模仿PWM脉冲,分别控制五路舵机,其电路原理图如下所示:断T0的操作,最后就能够实现5路舵机控制信号的输出。

在使用前应仔细阅读单片机的使用手册,了解单片机的相关寄存器设置方法。

2.4.2 程序流程图主程序流程图1中断服务程序流图22.4.3程序及注释#include <c8051f310.h> //C8051F31X系列头文件sbit IN0=P1^1; //传感器输入sbit IN1=P1^2;sbit PWM0=P0^0; //PWM信号传输接口sbit PWM1=P0^1;sbit PWM2=P0^6;sbit PWM3=P0^7;sbit PWM4=P1^0;unsigned int order1=0,order2=0,bz0=0;unsigned int jd1,jd2,jd3,jd4,jd5; //角度变量unsigned int j1=1,j2=1,j3=1,j4,j5=0,j6=0,j7=0,j8=0,i=0;/********************************************************************子函数********************************************************************/ //函数名:void PORT_Init(void)**************////功能描述:端口初始化**********************//void PORT_Init(void){P0MDIN=0xff;//P0口P0MDOUT=0xff;P0SKIP=0x0C;P1MDIN=0xff;//P1口P1MDOUT=0xff;P2MDIN=0xff;//P2口P2MDOUT=0xff;P3MDIN=0Xff;//P3口P3MDOUT=0xff;XBR0= 0x00;XBR1= 0xC0;}//函数名:void PWM_Init(void)**************////功能描述:端口初始化**********************//void PWM_Init(void){PCA0MD &= ~0x40;PCA0MD = 0x00;PCA0CPM0 =0x42; //CCM0为8位PWM方式PCA0CPM1 =0x42; //CCM1为8位PWM方式PCA0CPM2 = 0x42; //CCM2为8位PWM方式PCA0CPM3 = 0x42; //CCM3为8位PWM方式PCA0CPM4 =0x42; //CCM4为8位PWM方式PCA0CN = 0x40; // 允许PCA计数器 0x00禁止PCA计数}//函数名:void Internal_Crystal(void)*******////功能描述:设计内部时钟********************//void Internal_Crystal(void){OSCICN=0x82; // 2分频CLKSEL=0x00; // 内部振荡器 24.5MHz}//****************延时函数******************//void delay1(int time){int x,y;for(x=0;x<1000;x++){for(y=0;y<time;y++) ;}}void delay2(int time){int x,y;for(x=0;x<100;x++){for(y=0;y<time;y++) ;}}void delay3(int time){int x,y;for(x=0;x<10;x++){for(y=0;y<time;y++) ;}}//***************Timer函数********************//void Time_Init(void) //定时器初始化{TMOD=0x11; // T1 、T0 工作在方式1 EA=1;ET1=1;ET0=1;CKCON=0X01; //系统时钟4分频,即3.0625MHZTH0=0XFC;TL0=0X02; //24.5MHz,0.5ms}//******************定时器0中断函数************// void Time0_Int() interrupt 1{switch(order1){case 1: PWM0=1;TR1=1;TH0=-jd1/256; //定时状态:X=M-定时时间/T delay3(1);TL0=-jd1%256;break;case 2: PWM0=0;TH0=-(8140-jd1)/256;TL0=-(8140-jd1)%256;break;case 3: PWM1=1;TH0=-jd2/256;TL0=-jd2%256;break;case 4: PWM1=0;TH0=-(8140-jd2)/256;TL0=-(8140-jd2)%256;break;case 5: PWM2=1;TH0=-jd3/256;TL0=-jd3%256;break;case 6: PWM2=0 ;TH0=-(8140-jd3)/256;TL0=-(8140-jd3)%256;break;case 7: PWM3=1;TH0=-jd4/256;TL0=-jd4%256;break;case 8: PWM3=0;TH0=-(8140-jd4)/256;TL0=-(8140-jd4)%256;break;case 9: PWM4=1;TH0=-jd5/256;TL0=-jd5%256;break;case 10: PWM4=0;order1=0;TH0=-(8140-jd5)/256;TL0=-(8140-jd5)%256;TR0=0;break;default : delay3(1);}order1++;}void Time1_Int() interrupt 3{PWM0=1;TH1=0X0F;TL1=0X2D;TH0=0XFE;TL0=0XFE;TR1=0;TR0=1;}//**********功能描述:主函数****************// void main (void){Internal_Crystal();PORT_Init();PWM_Init();Time_Init();TH0=0XFF;TL0=0X02;TR0=1;TH1=0X10;TL1=0X7D;delay1(10);jd1=4956; //1.5ms 1.55-----1.65msjd2=6493; //2ms 1.95msjd3=6493; //2ms 1.95ms(示波器)jd4=4956; //1.5ms 1.45msjd5=3800; //1ms 1.05msdelay1(200);TH1=0X10;TL1=0X7D;TH0=0XFF;TL0=0X02;for(;j1<=500;j1++){jd1=jd1-7; //0.5jd2=jd2-5; //1.5jd3=jd3-3; //1.5jd5=jd5+2; //kaidelay1(10);delay3(42);}jd5=4500;delay1(600);for(;j2<=500;j2++){jd1=jd1+7;jd2=jd2+5;jd3=jd3+3;jd4=jd4-3;delay1(10);delay3(43);}delay1(600);for(;j5<=500;j5++){jd2=jd2-6;jd3=jd3-6;delay1(10);delay3(43);}jd5=5600;delay1(600);for(;j6<=500;j6++){jd2=jd2+6;jd3=jd3+6;delay1(10);delay3(43);}Delay1(600);jd5=3500;for(;j3<=500;j3++){jd1=jd1+5; //2.5jd2=jd2-5; //1jd3=jd3-3; //1jd5=jd5+3; //kaidelay1(10);delay3(42);}delay1(600);jd5=5600;jd5=4600;for(;j4<=500;j4++){jd1=jd1-5;jd2=jd2+5;jd3=jd3+3;jd4=jd4-3;delay1(10);delay3(43);}delay1(600);for(;j7<=500;j7++){jd2=jd2-6;jd3=jd3-6;delay1(10);delay3(43);}jd5=5600;delay1(600);for(;j8<=500;j8++){jd2=jd2+6;jd3=jd3+6;delay1(10);delay3(43);}delay1(600);jd5=3500;jd1=4856;jd2=6493;jd3=6493;jd4=4956;jd5=3800;delay1(600);}第三章PCB设计下面简单介绍一下PROTEL软件制作PCB的过程以及一些常见的封装名称。

相关主题