机电综合实验——履带式机器人-实验报告.doc_第1页
机电综合实验——履带式机器人-实验报告.doc_第2页
机电综合实验——履带式机器人-实验报告.doc_第3页
机电综合实验——履带式机器人-实验报告.doc_第4页
机电综合实验——履带式机器人-实验报告.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验名称:机电综合实验履带式机器人专业班级: 指导老师:姓名:学号:一、实验要求1、了解和掌握自动化系统集成的一般过程和方法,同学们在课程中逐步掌握使用、调试、维护自动化系统方面的能力。2、了解AT89S52芯片的主要性能,学会分析和使用常用电子芯片、电子元件和仪器设备的能力。3、掌握机器人机械工作方式,触觉开关及红外导航工作原理,掌握机器人尾随行走所需的闭环控制算法,学会将机械运动和自动化(利用软、硬件)紧密结合。4、学会查阅科技参考资料,根据自己的设计任务和设计方法编制程序、调试程序软、硬件联机调试,达到设计要求收集实验数据,并对结论进行分析,写好实验报告。二、硬件连接设备硬件部分电机、直流电机控制板(主控芯片AVR)、C51教学板(AT89S52单片机)履带式机器人本体固结,只需要进行连线。接线时,AT89S52单片机板P10口与直流电机控制板RX(接收口)连接,P13口VIN接跳电位,GND接地线;电源线AVR板+5V接AT89S52单片机+5V,GND接地线;连接时注意各口颜色。 机器人程序通过连接到PC 机或者笔记本电脑的并口上的ISP 下载线来下载到教学板上的单片机内。下载线一端连接到PC 机或者笔记本的并行接口上,而另一端(小端)连接到教学板上的程序下载口上。三、相关资料及问题(一)、PWM 直流电机调速原理:通过AVR 单片机ATmega8直接产生PWM 波形经过电机驱动芯片L298 分别驱动两个直流电机,PWM 将占空比不同的脉冲变成不同的电压驱动直流电机转动从而得到不同的转速,且实现电机启动、停止、正反转等功能。(二)、直流电机控制模块1、控制板的使用说明#define POSITIVE_DIR 1/正向旋转#define NEGATIVE_DIR 0 /反向旋转#define LEFT_MOTOR 0/左电机#define RIGHT_MOTOR 1/右电机#define NOT_STOP 0/不停止#define STOP 1/停止#define BY_10MS 0/时间控制系数10毫秒倍率#define BY_100MS 1/100毫秒倍率#define BY_1000MS 2/1000毫秒倍率#define NOT_CONTROL_TIME 3/不控制时间2、延时:i=12 ,i的最小延时单12 usvoid delay_nus(unsigned int i) i=i/10; while(-i); /延时n msvoid delay_nms(unsigned int n) n=n+1; while(-n) delay_nus(900); /延时 1ms,同时进行补偿3、通过TTL串口驱动PWM直流电机驱动模块void write_pwm(unsigned char bDirection, unsigned char bSide, unsigned char bStop, unsigned char TimeFactor, unsigned char Speed, unsigned char Time)unsigned char Command;bSide = bSide 1;bStop = bStop 2;TimeFactor = TimeFactor 3;Command = bDirection | bSide | bStop | TimeFactor; /组合命令字节soft_send_enable (); /允许软串口发送EA=1;rs_send_byte(0xaa);/发送控制命令的头部,恒为0xaars_send_byte(Command);/发送命令字节,想要了解命令格式rs_send_byte(Speed);/发送速度描述字节,0255rs_send_byte(Time);/发送时间倍率,0255rs_send_byte(0xbb);/发送控制命令的尾部,恒为0xbbwhile(rs_f_TI=0);/等待所有的命令发出完毕EA=0;4、几个基本函数驱动电机后退函数原理:左电机正转,右电机反转,以同样的速度旋转,完成后退动作参数:Speed:速度系数(0255);TimeFactor:时间系数(X10ms,X100ms,X1000ms);Seconds:时间倍率(0255);时间倍率*时间系数=实际时间void Backward(unsigned char Speed, unsigned char TimeFactor, unsigned char Seconds)write_pwm(POSITIVE_DIR,LEFT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);write_pwm(NEGATIVE_DIR,RIGHT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);驱动电机右转函数原理:左右电机正转,以不一样的速度旋转,完成右转动作参数:Speed:速度系数(0255);TimeFactor:时间系数(X10ms,X100ms,X1000ms);Seconds:时间倍率(0255);时间倍率*时间系数=实际时间void Right(unsigned char Speed, unsigned char TimeFactor, unsigned char Seconds)write_pwm(POSITIVE_DIR,LEFT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);驱动电机左转函数原理:左右电机反转,以不一样的速度旋转,完成左转动作参数:Speed:速度系数(0255);TimeFactor:时间系数(X10ms,X100ms,X1000ms);Seconds:时间倍率(0255);时间倍率*时间系数=实际时间void Left(unsigned char Speed, unsigned char TimeFactor, unsigned char Seconds)write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);write_pwm(NEGATIVE_DIR,RIGHT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);驱动电机前进函数原理:左电机反转,右电机正转,以同样的速度旋转,完成后退动作参数:Speed:速度系数(0255);TimeFactor:时间系数(X10ms,X100ms,X1000ms);Seconds:时间倍率(0255);时间倍率*时间系数=实际时间void Forward(unsigned char Speed, unsigned char TimeFactor, unsigned char Seconds)write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,TimeFactor,Speed,Seconds);(三)、头文件及PWM_Init()函数说明uart.h:硬串口的相关程序。包含该文件后,在程序中调用uart_Init()函数,即可完硬串口的初始化。soft_rs232.h:TTL-RS232的实现程序。在该文件中,可修改TTL-RS232的通信波特率以及输出端口。如果在设置的TTL-RS232数据输出端口外接一个RS232电平转换芯片并搭载DB9串口接口,这样相当于构建了C51平台上的第二个串口。该程序构建的串口为单工串口。Movement.h:该文件提供了龙人贝塔的运动控制函数的范例。在包含该文件之前,请包含BetaRobot.h文件。否则,在编译程序的时候会出现错误。 PWM_Init()函数的作用是为初始化第一层与第二层之间的TTL串口连接。其中TTL串口的数据输出口定义为P1.0口,在程序设计的过程中,请回避该端口,避免引起机器人运动控制的错误。在KEIL工程中,如果要使用到机器人的运动控制部分,那么在主程序的开头部分,就必须首先执行该函数,进行TTL串口初始化。(四)、匀加、减速的实现1、匀加速运动程序片段:for(pulseCount=10;pulseCount=200;pulseCount=pulseCount+1)P1_1=1;delay_nus(1500+pulseCount);P1_1=0;P1_0=1;delay_nus(1500-pulseCount);P1_0=0;delay_nms(20);上述for 循环语句能使机器人的速度由停止到全速。循环每重复执行一次,变量pulseCount 就增加1:第一次循环时,变量pulseCount 的值是10,此时发给P1_1、P1_0 的脉冲的宽度分别为1.51ms、1.49ms;第二次循环时,变量pulseCount 的值是11,此时发给P1_1、P1_0 的脉冲的宽度分别为1.511ms、1.489ms。随着变量pulseCount 值的增加,电机的速度也在逐渐增加。到执行第190 次循环时,变量pulseCount 的值是200,此时发给P1_1、P1_0 的脉冲的宽度分别为1.7ms、1.3ms,电机全速运转。2、匀减速可参照匀减速通过for(pulsecount=200;pulsecount)=pulsecount= pulsecount-1)来实现速度的逐渐减小。(五)、若输出由P1.0改为P1.1需要做什么?因为soft_rs232.h文件为软串口驱动的头文件,在这个驱动里,采用P1.0为TTL串行通信的发送口,所以其定义串口发送管脚因由sbit rs_TXD = P10 ;改为sbit rs_TXD = P11; 在程序设计的过程中,请回避P1.1端口,避免引起机器人运动控制的错误。四、程序流程图起始 前进 左转 前进左转前进左转前进五、正方形程序#include#includevoid Forward(void)write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,200,60); write_pwm(POSITIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_1000MS,200,60);delay_nms(2000);void Left_Turn(void)write_pwm(NEGATIVE_DIR,LEFT_MOTOR,NOT_STOP,BY_1000MS,200,180);write_pwm(NEGATIVE_DIR,RIGHT_MOTOR,NOT_STOP,BY_1000MS,200,180);delay_nms(2000);int main(void)char Navigation16=F,L,F,L,F,L,F,L,F,L,F,L,F,L,F,Q;int address=0;uart_Init(); printf(Program Running!n);delay_nms(100);PWM_Init();while(Navigationaddress!=Q)switch(Navigationaddress)case F:Forward();break;case L:Left_Turn();break;a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论