避障机器人电机运动程序设计与调试_第1页
避障机器人电机运动程序设计与调试_第2页
避障机器人电机运动程序设计与调试_第3页
避障机器人电机运动程序设计与调试_第4页
避障机器人电机运动程序设计与调试_第5页
全文预览已结束

下载本文档

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

文档简介

1、避障机器人电机运动程序设计与调试一、 实训目的1 了解直流电机的相关知识;2 理解基于机器人项目驱动的嵌入式教学实训平台中直流电机的工作原理。二、 实训设备1 硬件:HOST机一台、基于机器人项目驱动的嵌入式教学实训平台一套;2 软件:Siliconlab IDE开发环境、调试器。三、 实训原理通过脉宽调制来调整转动速度。PWM 是“Pulse-Width Modulation”的缩写,意为“脉冲宽度调制”。PWM 是一项功能强大的技术,是一种能够对模拟信号电平进行数字化编码的方法。C8051F360系列的PWM 模块功能非常丰富,可以产生很多种不同类型的数字脉冲信号,以满足不同的需要。PWM

2、信号通过H桥电路可以实现电机的正、反转以及调整电机的转动速度。H桥驱动电路工作原理如图所示,H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。因此,要控制电机的正、反转只需要控制Q1、Q2、 Q3、Q4的通断,控制它们同样也可以实现调速。控制Q1和Q4导通,正向电流流过电机控制Q2和Q3导通,反向电流流过电机8 位脉宽调制器方式 PWM输出的频率取决于PCA计数器/定时器的时基。使用模块的捕捉/比较寄存器PCA0CPLn改变PWM输出信号的占空比。当PCA计数器/定时器的

3、低字节(PCA0L)与PCA0CPLn中的值相等时,CEXn引脚上的输出被置1;当PCA0L中的计数值溢出时,CEXn输出被复位。当计数器/定时器的低字节PCA0L溢出时(从0xFF到0x00),保存在PCA0CPHn中的值被自动装入到PCA0CPLn。8位PWM方式的占空比由下式方程给出。机器人主控器对电机的控制使用12路输入/输出口,可控制6个直流电机。PWM实训的总体流程图电机驱动所使用的函数有:Motor_Init(void),此函数功能是对12个I/O口初始化,以及定时器初始化。使这些I/O口设置为PWM状态或输出状态。Dc_Motor(unsigned long PwmPoint,

4、 unsigned char Director, unsigned long Speed),此函数的功能是设置直流电机的参数。函数的第一个参数表示直流电机的位置信息(16);第二个参数是直流电机的转动状态信息(0:正转;1:停止;2:反转);第三个参数是直流电机转动速度(0100)。void PWM_Init(),PWM初始化。void PWM_Port_Init(),PWM端口配置。void DC_Motor(uc motor_num,uc direction, uc motor_speed),改变PWM占空比。四、实训步骤1、正确连接PC 机、调试器和51实验平台;2、打开电源,打开Sil

5、iconlab IDE;3、打开工程,编译、链接、进入调试、运行程序,观察小车的运动状态; #include"pwm_h.h"/*/! 函数名:void PWM_Init()/! 函数功能:PWM初始化*/void PWM_Init()unsigned char SFRPAGE_save = SFRPAGE; PWM_Port_Init();SFRPAGE = CONFIG_PAGE; PCA0MD = 0x08; / 采用系统时钟PCA0CPM0 = 0x42; /8 PWM 模式,比较器功能使能,PWM使能PCA0CPM1 = 0x42;PCA0CPM2 = 0x42;

6、PCA0CPM3 = 0x42;PCA0CPM4 = 0x42;PCA0CPM5 = 0x42;PCA0CPH0 = 0xFE;PCA0CPH1 = 0xFE;PCA0CPH2 = 0xFE;PCA0CPH3 = 0xFE;PCA0CPH4 = 0xFE;PCA0CPH5 = 0xFE;CR = 1; /允许PCA计数,定时SFRPAGE = SFRPAGE_save; DC_Motor(1,1,0);DC_Motor(2,1,0);DC_Motor(3,1,0);DC_Motor(4,1,0); DC_Motor(5,1,0); /*/! 电机控制线连接状况:*/void PWM_Port_

7、Init()unsigned char SFRPAGE_save = SFRPAGE; SFRPAGE = CONFIG_PAGE; XBR1 |= 0x46; /使能交叉开关,CEX0-3连接到管脚P0SKIP |= 0x0F;P0MDOUT |= 0xC0; P1MDOUT |= 0x7F;P3MDOUT |= 0x60;SFRPAGE = SFRPAGE_save; /*/! 函数名:void DC_Motor(uc motor_num,uc direction, uc motor_speed)/! 函数功能:改变PWM占空比*/void DC_Motor(unsigned char m

8、otor_num,unsigned char direction, unsigned char motor_speed)unsigned char SFRPAGE_save = SFRPAGE; SFRPAGE = CONFIG_PAGE;if(!motor_speed)switch(motor_num)case 1:PCA0CPH0 = 255;break;case 2:PCA0CPH1 = 255;break;case 3:PCA0CPH2 = 255;break;case 4:PCA0CPH3 = 255;break; case 5:PCA0CPH4 = 255;break;case 6

9、:PCA0CPH5 = 255;break; default: break;else switch(motor_num)case 1:PCA0CPH0 = 255 - (motor_speed+116);break;case 2:PCA0CPH1 = 255 - (motor_speed+116);break;case 3:PCA0CPH2 = 255 - (motor_speed+116);break;case 4:PCA0CPH3 = 255 - (motor_speed+116);break; case 5:PCA0CPH4 = 255 - (motor_speed+116);break

10、;case 6:PCA0CPH5 = 255 - (motor_speed+116);break; default: break;switch(direction)case 0: if(motor_num=1) P3 &= 0x20; /P1.3 = 0,即DIR0置0if(motor_num=2) P1 &= 0x10; /P1.4 = 0,即DIR1置0if(motor_num=3) P1 &= 0x20; /P1.5 = 0,即DIR2置0if(motor_num=4) P1 &= 0x40; /P1.6 = 0,即DIR3置0if(motor_num=5

11、) P3 &= 0x40; /P3.6 = 0,即DIR4置0break;case 1: if(motor_num=1) PCA0CPH0 = 255;if(motor_num=2) PCA0CPH1 = 255;if(motor_num=3) PCA0CPH2 = 255;if(motor_num=4) PCA0CPH3 = 255;if(motor_num=5) PCA0CPH4 = 255;if(motor_num=6) PCA0CPH5 = 255;break;case 2: if(motor_num=1) P3 |= 0x20; /P3.5 = 1,即DIR0置1;if(motor_num=2) P1 |= 0x10; /P1.4 = 1,即DIR1置1;if(motor_num=3) P1 |= 0x20; /P1.5 = 1,即DIR2置1;if(motor_num=4) P1 |= 0x40; /P1.6 = 1,即DIR3置1;if(motor_num=5) P3 |= 0x40; /P3.6 = 1,即DIR4置1;break;default: break;SFRPAGE = SFRPAGE_save;void main()PCA

温馨提示

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

评论

0/150

提交评论