六足机器人控制程序1 - 工业自动化.docx
,NUM3=0;intflag=0;P9P3=0;P9P4=0;P9P5=0;P9P0=0;P9P1abVIEW
,NUM3=0;intflag=0;P9P3=0;P9P4=0;P9P5=0;P9P0=0;P9P1
abVIEW里面设置合适的转速,合适的转角,发出脉冲,子程序的计数脉冲,脉冲宽度都是由所发脉冲决定,
相同{intNUM1=0,NUM2=0,NUM3=0;intflag=0;P9P3=0;P9P4=0
号电机逆时针转动,一号二号电机不转动时实现上盘的前进。一号二号三号电机同时顺时针转动,上盘下降,接触
;;;
//电机反向运行的延时计数器
uwordtiDelay1,tiDelay2,tiDelay3;
//电机运行的脉冲计数器
ulongctPulse1,ctPulse2,ctPulse3;
//串口控制的电机方向、脉冲宽度和脉冲数量
ubyteMOT_direct1,MOT_direct2,MOT_direct3,RS_Status,a;ubyteMOT_PulseTime1,MOT_PulseTime2,MOT_PulseTime3;uwordMOT_PulseNum1,MOT_PulseNum2,MOT_PulseNum3;
//电机方向
//电机脉冲宽度
//电机脉冲数
//串口接收变量
ubyteRS_Data[RS_LENGTH];//串口接收数组
ubyteRS_Indx;ubyteRS_Status;//定时器变量ubyteB_TimerStart;
//串口接收数组指针
//串口接收状态标志
//0.5ms定时器标志位
unsignedinti,j,t,d1,d2,d3,c=0;
unsignedintmaxt,maxb;
//上盘抬起或下盘下降子程序
voidshangpantaiqizichengxu()
编程思想:,在LabVIEW里面设置合适的转速,合适的转角,发出脉冲,子程序的计数脉冲,脉冲宽度都是由所发脉冲决定,根据计数脉冲,脉冲宽度的要求,编写程序,发出合适的脉冲,控制电机达到要求的转速与转角,通过控制P9_P0口、P9_P1口、P9_P2口来控制电机转向,实现我们想要的运动.
{
intNUM1=0,NUM2=0,NUM3=0;
intflag=0;
P9_P3=0;
P9_P4=0;
P9_P5=0;
P9_P0=1P9_P1=1P9_P2=1
//P9_P0口控制电机转向,将其置1,电机顺时针转动//P9_P1口控制电机转向,将其置1,电机顺时针转动//P9_P2口控制电机转向,将其置1,电机顺时针转动
while(NUM1!=MOT_PulseNum1||NUM2!=MOT_PulseNum2||NUM3!=MOT_PulseNum3)
//当电机一、二、三的计数次数都达到设定值时跳出while循环,否者继续执行
{flag++;//用来记录走过多少个0。5ms
if(0==(flag—1)%(2*MOT_PulseTime1))0020//第1个电机所需
要的脉冲
//2*MOT_PulseTime1即MOT_PulseTime1/0。5,说明每个脉冲宽度有几个0.5ms。flag若
,NUM3=0;intflag=0;P9P3=0;P9P4=0;P9P5=0;P9P0=0;P9P1转动时下底盘前进一号二号三号电机同时逆时针转动时,下底盘下降,当接触到地面继续下降时,上盘被抬起。三art=1;
,NUM3=0;intflag=0;P9P3=0;P9P4=0;P9P5=0;P9P0=0;P9P1
转动时下底盘前进一号二号三号电机同时逆时针转动时,下底盘下降,当接触到地面继续下降时,上盘被抬起。三
art=1;}xiapantaiqizichengxu();//下盘抬起或上盘下降子程序for(j=
0;j〈2000;j++)//第十九步延时1s{while(BTimerStart)BTimerSt
{if(NUM1〈MOT_PulseNum1*2)
//在满足上面的条件下,若计数次数未达到设定计数次数是,发出脉冲,高低互换,否这不执
行
{P9_P3=!P9_P3;NUM1++;}
}
//当满足上面两个条件时高低电平互换
if(0==(flag—1)%(2*MOT_PulseTime2))脉冲解释同上
{if(NUM2MOT_PulseNum2*2){P9_P4=!P9_P4;
NUM2++;}
}
if(0==(fl