关键词:舞蹈
一个典型的A型电机的加速过程amotor.asm程序清单:
;该程序用来驱动A型电机左右各转120度
DRIVE: MOV 81H,#40H ;避免堆栈指针的影响,81H为SP的物理地址
ACALL INIT ;调用初始化子程序
MOV DPTR,#004FH ;DPTR指向数据表
MOV R0,05H ;开始为向右转,05H为R5的物理地址
TURN: CLR A
MOVC A,@A+DPTR ;取脉冲数
MOV R3,A ;R3存每阶段的脉冲数
STEP: MOV A,#0FH
MOVC A,@A+DPTR ;取该阶段的延时数
MOV R4,A ;延时数存R4中
CJNE @R0,#00H,NEXT ;状态字指针R0到尽头
MOV R0,05H ;指针复位
NEXT: MOV 80H,@R0 ;输出脉冲,89H为P2口的物理地址
MOV 90H,@R0
MOV 0A0H,@R0
MOV 0B0H,@R0
INC R0 ;指针下移
ACALL DELAY ;延时
DJNZ R3,STEP ;该阶段循环
INC DPTR
DJNZ R2,TURN ;执行下一阶段
DEC R6
MOV A,R6
JZ STOP ;总步数结束
MOV R7,#40
REST: MOV R4,#0FFH ;正转120度,休息
ACALL DELAY
DJNZ R7,REST
MOV R2,#0FH ;加速阶段数复位
MOV DPTR,#004FH ;DPTR复位
CJNE R5,#20H,RIGHT ;R5存正反状态字
LEFT: MOV R5,#25H
MOV R0,05H
SJMP TURN
RIGHT: MOV R5,#20H
MOV R0,05H
SJMP TURN
STOP: SJMP STOP ;停机
;
ORG 004FH
PULETAB: DB 9,10,11,12,14,15,16,17
DB 18,19,108,108,108,108,108
TIMETAB: DB 55,50,45,42,36,33,31,29
DB 27,26,24,24,24,24,24
DELAY1: MOV 08H,#34 ;DELAY1为延时0.1MS的标准子程序
LOOP1: NOP
DJNZ 08H,LOOP1
RET
DELAY: ACALL DELAY1
DJNZ R4,DELAY
RET
INIT: MOV 20H,#33H ;INIT为初始化子程序
MOV 21H,#66H
MOV 22H,#0CCH
MOV 23H,#99H
MOV 24H,#00H ;20H――24H存右转状态字
MOV 25H,#33H
MOV 26H,#99H
MOV 27H,#0CCH
MOV 28H,#66H
MOV 29H,#00H ;25H—29H存左转状态字
MOV R5,#20H ;R5暂存状态地址
MOV R6,#14H ;前进10大步
MOV R2,#0FH ;阶段数
RET
END
以上就是一个典型的电机加速驱动过程,其主要的思想是:通过有规律的变化的延时程序来控制送往步进电机的脉冲的快慢,从而使电机得到逐渐加快的脉冲激励,稳定的实现加速过程,而不会出现因为脉冲的陡然加快而抖动的现象。
完整的机器人舞蹈动作程序比这段程序复杂的多,要牵涉到多个电机的协调动作以及舞动动作的配合与连贯,其中主要的是DRIVE子程序,限于篇幅,在此不能一一列出,完整的驱动程序可与笔者联系。(email:yytao008.student@sina.com.cn)
4.总 结
通过基于“对角线一致”的行走策略,我们成功地实现四足行走式机器人,并利用我们的电机加速激励的软件控制方法,使机器人能随着音乐完成相应的舞蹈动作,在中国科技大学2002年Robot-game 比赛中夺得了亚军,充分证明了这种方案的可行性。
参 考 文 献
[1].胡汉才.《单片机原理及其接口技术》. 清华大学出版社. 1996.7
[2].李 华. 《MCS-51系列单片机实用接口技术》. 北京航空航天大学出版社. 1993.8