机器人课设.docx
- 文档编号:23861848
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:12
- 大小:73.46KB
机器人课设.docx
《机器人课设.docx》由会员分享,可在线阅读,更多相关《机器人课设.docx(12页珍藏版)》请在冰豆网上搜索。
机器人课设
机器人课程设计
说明书
姓名:
专业:
班级:
指导教师:
一、设计目的
1、进一步熟悉对舵机的控制
2、巩固了对keil软件的应用,及其编译环境
3、有效的提高了自学能力和查阅资料的能力
4、培养了自学能力及动手能力,为今后从事技术工作打下了良好的知识基础
二、建立模型
2.1运动学模型
建立机器人的运动学模型实际是建立机械手末端位置和姿态的模型,这也是本次课程设计研究的重点。
2.2动力学模型
动力学模型主要是研究手臂末端受力与加速度的关系、超调量和调整时间。
所用的方法是拉格朗日定律和牛顿定律。
三、控制器的设计
3.1硬件设计
3.1.1舵机
本次设计所用的舵机如图1所示,有三根线,分别是电源线、信号线和地线,其中电源接5伏特
图1
3.1.2机械臂
本次课程设计采用了一个自由度和六个自由度两种机械臂,这两种机械臂都可以按照程序设定值来运动,六自由度硬件图如图2
图2
3.2单片机
3.2.1单片机最小系统
单片机最小系统由AT89C52、X5045、HD7279组成,是仪表的核心部分。
利用X5045串行EEPROM存储8通道的测量值上下限,并且具有看门狗功能。
3.2.2主机及存储芯片
主机采用89C52单片机作为主机芯片,连接X5045构成主机单元。
89C52提供8KROM和256BRAM,X5045提供16BEPROM用于储存报警上下限的既需保存有可改动的数据。
本设计使用的X5045芯片是美国Xicor公司生产的到有可编程μP监控器的CMOS串行EPROM。
作为单片机系统电路的一个辅助芯片,它将复位、电压检测、看门狗定时器和快锁存保护的串行EPROM功能集合一个芯片内;采用SPI总线串行外设接口方式,降低了系统成本并减少了对电路板空间的要求,提高了系统的可靠性;适合于需要现场修改数据的场合,广泛应用与仪器仪表和工业自动控制等领域。
X5045有4种基本功能:
上电复位、看门狗定时器、低电平检测和SPI串行EPROM
仪表设计中使用其中上电复位、看门狗和EPROM功能:
1)上电复位
当器件通电并超过Vcc门限电压时,X5045内部的复位电路将会提供一个约为200ms的复位脉冲让微处理器能正常复位。
2)看门狗定时器
看门狗定时器对微处理器提供了一个因外界干扰而引起程序陷入死循环或“跑飞”状态的保护功能
3)串行EPROM存储器
X5045的存储器部分是具有Xicor公司的块锁保护CMOS4KB串行EPROM。
它被组织成8位的结构,由一个四线构成的SPI总线方式进行操作,一次最多可写16B。
在本次设计中主要利用X5045串行EPROM存储测量值上下限和报警上下限,和通过具看门狗定时器功能保证AT89C52出现死循环或“跑飞”状态的情况下能回到正常状态下继续工作。
AT89C52与X5045之间的接线图如下:
图3AT89C52与X5045接口
AT89C52与X5045引脚的连接和相关的地址分配如下:
CS:
片选端,低电平有效,与P1.0相连;
SO:
串行数据输出端,与P1.1相连;
SCK:
串行时钟输出入,与P1.2相连;
SI:
串行数据输入端,与P1.3相连;
RESET:
复位输出端,高电平有效,与52的RESET端相连。
_
对X5045的操作是通过4根口线CS、SCK、CI、SO进行同步串行通信来完成的。
X5045内有一个8位指令寄存器,对芯片的所有操作都需要通过对该寄存器的写命令来完成,该寄存器可以通过SI来访问。
当CS为低且WP为高时,在SI_线输入数据,在SCK的上升沿时,数据再由时钟同步输入。
在整个工作期间CS必须为低电平。
四、软件设计
4.1机器人运动学模型的软件设计
4.1.1刚体的位姿描述
刚体位姿的描述主要研究机械臂末端的位置和姿态。
4.1.2DH坐标法
受用DH坐标法进行建模,需要清楚连杆长度、连杆扭角、连杆偏置和连杆关节角。
建立坐标系,先确定Z轴,X轴、Y轴,用右手定则来确定。
4.2机器人控制系统
机器人控制系统包括控制器、驱动、机器人和传感器四个部分,如图4所示。
图4
4.3单片机最小系统软件设计
采用模块化设计,控制时序采用时间触发的时间片轮询调度方法,0.5S为一个控制周期,分成10个时间片,每个时间片为50MS,将所有的任务分配在各个时间片内来完成,50MS定时采用89C52内部T1,工作在方式1,由于晶振为12Hz,1个机器周期1μS,所以T1预装初始值=65536-50000=3CB0H。
单片机最小系统软件变成流程图
4.4一个自由度的机械臂
本次试验一个自由度舵机采用查询方式,程序如下
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVTMOD,#01H
LOOP:
MOVTH0,#0FCH
MOVTL0,#18H
SETBP1.0
SETBTR0
JNBTF0,$
CLRTF0
CLRTR0
CPLP1.0
MOVR0,#9DH
DELAY:
MOVR1,#3BH
DJNZR1,$
DJNZR0,DELAY
LJMPLOOP
END
4.5六个自由度的机械臂
4.5.1六个自由度的机械臂流程图如图5
图5
4.5.2程序如下
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdl=P1^0;
sbitd2=P1^1;
sbitd3=P1^2;
sbitd4=P1^3;
sbitd5=P1^4;
sbitd6=P1^5;
uintorder1;
uintt1,t2,t3,t4,t5,t6,;
voidtimer0(void)interrupt1using1
{
switch(order1)
{
case1:
dl=1;
TH0=-t1/256;
TL0=-t1%256;
break;
case2:
dl=0;
TH0=-(2700-t1)/256;
TL0=-(2700-t1)%256;
break;
case3:
d2=1;
TH0=-t2/256;
TL0=-t2%256;
break;
case4:
d2=0;
TH0=-(2700-t2)/256;
TL0=-(2700-t2)%256;
break;
case5:
d3=1;
TH0=-t3/256;
TL0=-t3%256;
break;
case6:
d3=0;
TH0=-(2700-t3)/256;
TL0=-(2700-t3)%256;
break;
case7:
d4=1;
TH0=-t4/256;
TL0=-t4%256;
break;
case8:
d4=0;
TH0=-(2700-t4)/256;
TL0=-(2700-t4)%256;
break;
case9:
d5=1;
TH0=-t5/256;
TL0=-t5%256;
break;
case10:
d5=0;
TH0=-(2700-t5)/256;
TL0=-(2700-t5)%256;
break;
case11:
d6=1;
TH0=-t6/256;
TL0=-t6%256;
break;
case12:
d6=0;
TH0=-(2700-t6)/256;
TL0=-(2700-t6)%256;
break;
default:
order1=0;
}
order1++;
}
voidmain(void)
{
TMOD=0x11;
order1=1;
TH0=-1500/256;
TL0=-1500%256;
EA=1;EX0=0;
ET0=1;TR0=1;PT0=1;PX0=0;
t1=1500;
t2=1000;
t3=1500;
t4=1000;
t5=1750;
t6=2000;
while
(1){}}
五课程设计总结
经过机器人课程设计的学习和实践,我更加深刻的掌握了单片机控制技术的实际应用知识,巩固了理论基础,提高了实践的操作能力。
通过对控制程序的了解加深了对编程思想的认知。
在老师的耐心指导下,我经过了查阅资料、接口设计、程序设计、安装调试、整理资料等环节,初步掌握了工程设计方法和组织实践的基本技能;熟悉开展科学实践的程序和方法,学会了灵活的运用已经学过的知识,为以后的毕业设计和工作打下了良好的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人