双足步行机器人设计及运动控制 - 图文(3)

2019-01-12 14:40

哈尔滨理工大学综合课程设计

舵机控制器以80C51单片机为核心,该控制器中单片机可以产生8个通道的PWM信号,分别由80C51的P1.0~Pl.7端口输出。输出的8路PWM信号通过光耦隔离传送到下一级电路中。方波信号经过光耦传输后,前沿和后沿会发生畸变,因此反相器采用40106反相器对光耦传输过来的信号进行整形,产生标准的PWM方波信号。

根据经验舵机在运行过程中要从电源吸纳较大的电流,若舵机与单片机控制器共用一个电源,则舵机会对单片机产生较大的干扰。因此,舵机与单片机控制器采用两个电源供电,两者不共地,通过光耦来隔离,并且给舵机供电的电源最好采用输出功率较大的开关电源。该舵机控制器占用单片机的个SCI串口。串口用于接收上位机传送过来的控制命令,以调节每一个通道输出信号的脉冲宽度。MAX232为电平转换器,将上位机的RS232电平转换成TTL电平。

-11-

哈尔滨理工大学综合课程设计

第4章 系统软件编程与仿真

舵机的控制信号为周期20ms 的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180 度,呈线性变化。

也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。

舵机输出转角与输入信号脉冲宽度的关系如图4-1所示:

图4-1 舵机输出转角与输入信号脉冲宽度的关系

-12-

哈尔滨理工大学综合课程设计

测试编程如下(实现45°,135°的脉冲信号) #include

#define uint unsigned int #define uchar unsigned char uchar a; uint b;

sbit pw1=P0^0; sbit pw2=P0^1;

void angle(float S1_angle,float S2_angle,uint action_time ) {

uint S1_pw,S2_pw;

uchar S1_loop_num,S2_loop_num; uchar flag=0;

S1_pw=(uint)(500+100*S1_angle/9); S2_pw=(uint)(500+100*S2_angle/9);

S1_loop_num=S1_pw/20; S2_loop_num=S2_pw/20;

TR0=1;

while(!flag) { pw1=1; while(a!=S1_loop_num); pw1=0; while(!(a==126));

a=0; pw2=1; while(a!=S2_loop_num); pw2=0; while(!(a==12));

a=0; b++; if(b==action_time) { TR0=0;

-13-

哈尔滨理工大学综合课程设计

flag=1; b=0; }

} }

void main() {

P0=0x00; TMOD=0x02; TH0=236; TL0=236; EA=1; ET0=1;

angle(0,0,50); angle(45,135,50); }

void Time0()interrupt 1 {

a++; }

-14-

哈尔滨理工大学综合课程设计

图4-2 45°和135°转角时候的示波器波形

图4-2 45°和135° 波形图

-15-


双足步行机器人设计及运动控制 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈公允价值与相关性

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: