舞蹈机器人步进电机驱动电路和程序设计
发布时间:2008/6/3 0:00:00 访问次数:1616
舞蹈机器人步进电机驱动电路和程序设计 | |
[ 作者:杨子夫 米良川 李德升 王云博 刘军 罗玉平 |
摘 要:介绍了舞蹈机器人步进电机驱动电路和程序设计。电路采用74373锁存,74ls244和uln2003作电压和电流驱动,单片机at89c52作工作脉冲序列信号发生器。程序设计基于中断服务和总线分时复用方式,实时更新各个电机的速度和方向。
关键词:单片机,中断服务,速度累加计数器,归一化速度
在中国科大首届机器人舞蹈比赛中(中央10台节目转播),我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作,荣获一等奖。电路采用74373锁存,74ls244和uln2003作电压和电流驱动,单片机(atc52)作脉冲序列信号发生器。程序设计基于中断服务和总线分时利用方式,实时更新各个电机的速度、方向。整个舞蹈由运动数据所决定的一截截动作无缝连接而成。
1 步进电机简介
步进电机根据内部线圈个数不同分为二相制、三相制、四相制等。本文以四相制为例介绍其内部结构。图1为四相五线制步进电机内部结构示意图。
2 四相五线制步进电机的驱动电路
电路主要由单片机工作外围电路、信号锁存和放大电路组成。我们利用了单片机的i/o端口,通过74373锁存,由74ls244驱动,uln2003对信号进行放大。8个电机共用4bit i/o端口作为数据总线,向电机传送步进脉冲。每个电机分配1bit的i/o端口用作74373锁存信号,锁存步进电机四相脉冲,经uln2003放大到12v驱动电机运转。
电路原理图(部分)如图2所示。
(1)intel 8051系列单片机是一种8位的嵌入式控制器,可寻址64k字节,共有32个可编程双向i/o口,分别称为p0~p3。该系列单片机上集成8k的rom,128字节ram可供使用。
(2)74ls244为三态控制芯片,目的是使单片机足以驱动uln2003。uln2003是常用的达林顿管阵列,工作电压是12v,可以提供足够的电流以驱动步进电机。关于这些芯片的详细介绍可参见它们各自的数据手册。
(3)74373是电平控制锁存器,它可使多个步进电机共用一组数据总线。我们用p1.0~p1.7作为8个电机的锁存信号输出端,见表1。
这是一种基于总线分时复用的方式,以动态扫描的方式来发送控制信号,这和高级操作系统里的多任务进程调度的思想一致。这种方法明显的好处是节省i/o口,使系统可以控制更多的步进电机。本电路设计为控制8个。
3 程序设计
传统的步进电机驱动程序利用简单的条件循环来发送脉冲序列,但当电机数目发生变化时,编程繁杂,冗余代码较多,难以做到信号占空比一致,进而产生“抖动”现象。下面提出一种基于中断服务方式,面向舞蹈动作,可实时改变各个电机速度和方向(每200ms可改变一次)的程
舞蹈机器人步进电机驱动电路和程序设计 | |
[ 作者:杨子夫 米良川 李德升 王云博 刘军 罗玉平 |
摘 要:介绍了舞蹈机器人步进电机驱动电路和程序设计。电路采用74373锁存,74ls244和uln2003作电压和电流驱动,单片机at89c52作工作脉冲序列信号发生器。程序设计基于中断服务和总线分时复用方式,实时更新各个电机的速度和方向。
关键词:单片机,中断服务,速度累加计数器,归一化速度
在中国科大首届机器人舞蹈比赛中(中央10台节目转播),我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作,荣获一等奖。电路采用74373锁存,74ls244和uln2003作电压和电流驱动,单片机(atc52)作脉冲序列信号发生器。程序设计基于中断服务和总线分时利用方式,实时更新各个电机的速度、方向。整个舞蹈由运动数据所决定的一截截动作无缝连接而成。
1 步进电机简介
步进电机根据内部线圈个数不同分为二相制、三相制、四相制等。本文以四相制为例介绍其内部结构。图1为四相五线制步进电机内部结构示意图。
2 四相五线制步进电机的驱动电路
电路主要由单片机工作外围电路、信号锁存和放大电路组成。我们利用了单片机的i/o端口,通过74373锁存,由74ls244驱动,uln2003对信号进行放大。8个电机共用4bit i/o端口作为数据总线,向电机传送步进脉冲。每个电机分配1bit的i/o端口用作74373锁存信号,锁存步进电机四相脉冲,经uln2003放大到12v驱动电机运转。
电路原理图(部分)如图2所示。
(1)intel 8051系列单片机是一种8位的嵌入式控制器,可寻址64k字节,共有32个可编程双向i/o口,分别称为p0~p3。该系列单片机上集成8k的rom,128字节ram可供使用。
(2)74ls244为三态控制芯片,目的是使单片机足以驱动uln2003。uln2003是常用的达林顿管阵列,工作电压是12v,可以提供足够的电流以驱动步进电机。关于这些芯片的详细介绍可参见它们各自的数据手册。
(3)74373是电平控制锁存器,它可使多个步进电机共用一组数据总线。我们用p1.0~p1.7作为8个电机的锁存信号输出端,见表1。
这是一种基于总线分时复用的方式,以动态扫描的方式来发送控制信号,这和高级操作系统里的多任务进程调度的思想一致。这种方法明显的好处是节省i/o口,使系统可以控制更多的步进电机。本电路设计为控制8个。
3 程序设计
传统的步进电机驱动程序利用简单的条件循环来发送脉冲序列,但当电机数目发生变化时,编程繁杂,冗余代码较多,难以做到信号占空比一致,进而产生“抖动”现象。下面提出一种基于中断服务方式,面向舞蹈动作,可实时改变各个电机速度和方向(每200ms可改变一次)的程
上一篇:计算机接口原理图
版权所有:51dzw.COM
深圳服务热线:13751165337 13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式
深圳服务热线:13751165337 13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)

深圳市碧威特网络技术有限公司
付款方式