电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:舞蹈机器人步进电机驱动电路和程序设计
来源:   时间: 2007-4-29 11:13:25    
舞蹈机器人步进电机驱动电路和程序设计
[ 作者:杨子夫 米良川 李德升 王云博 刘军 罗玉平
摘 要:介绍了舞蹈机器人步进电机驱动电路和程序设计。电路采用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可改变一次)的程序设计方法。
3.1 速度归一化和线性关系
我们将速度量化成一个-128~127内可变的数,正号代表正转,负号代表返转,称之归一化速度(-128~127为一个字节)。给每个电机分配一个速度累加计数器speed_tickers[i](I=0,1,2…,7分别代表8个电机),初始值为0,每个中断触发周期内给该累加计数器加上从舞步信息数组dancedata中读取的速度值speeds[i],当计数器值大于或等于预设的阈值MAX_SPEED_TICKER=600时,则发送脉冲序列中的下一个(正转)或上一个(反转)给步进电机,这取决于速度的符号(参考3.2节)。同时,将该电机的累加计数器speed_tickers[i]恢复为0。给出的速度值speed[i]越大,则累加达到或超过阈值MAX_SPEED_TICKER的时间就越短,那么向步进电机发送脉冲的频率就越高,速度也就越快。
归一化速度值设为num(-128~127),电机实际旋转速度设为V,那么V和num之间满足关系式:
(1)当num是阈值600的约数时,
其中,[x]代表不超过x的最大整数。
(3)V0是一个速度常数,即当归一化速度值num=120的时候对应的电机实际速度。
(4)num和速度V近似线性关系,V∝num。正是因为有了这种函数关系,我们在舞蹈动作控制中,可以轻松实现速度在大范围内变化。
3.2 速度正负实现方式
(1)在程序中,数组steps[8]用于存放步进电机的脉冲序列。

(2)设置指针cur_step[8]指向8个电机当前处在脉冲序列step[8]中的位置。
易知:0<=step[i]<=7,其中,i分别代表8个电机。
(3)设置指针移动变量delta=0。delta=1,指针向后移动一步,电机正转;delta=-1,指针向前移动一步,电机反转;delta=0,指针不移动,电机不发生转动。
3.3 程序具体步骤
3.3.1初始化计时器InitTimer,然后空循环,进入等中断阶段。
3.3.2 中断触发后,程序进入服务程序。
(1)执行函数SetAllSpeeds,函数根据提供的速度值speed[i]依次判断是否给各个电机发送脉冲,实现电机以特定的速度和方向旋转。SetAllSpeeds具体算法流程见图3。
(2)从定义的数组dancedata中读取新的速度信息,每200ms一次。
(3)将系统在调用中断处理函数时关闭的计时器重新打开InitTimer。
(4)中断处理函数结束返回。
注意:第一,(1)和(2)不可交换,这是为了保证步进电机每步延时的均匀性;第二,内部中断间隔时间1ms内,8051是否能够将中断服务程序中所有的代码执行完全?答案是肯定的。参考图4,我们对整个中断服务程序进行了统计,它所要执行的指令数在200~300之间变化,时钟间隔设置为1ms,选用12MHz晶振,执行这些指令需要耗时约500~600μs<1ms,因此,中断处理完全可以在一个计时器周期内执行完毕。
3.4 舞蹈编排
在舞蹈编排中,我们面向的是动作,因此,必须关心三要素:快慢、方向和幅度。在程序中,舞步信息数组格式如下:
每组数据含有8个字节,分别代表8个电机的归一化速度num,这点在3.1节中已经做了详细分析。程序每200ms读一次数据,换句话说,每组数据的有效期只有200ms。我们分析表2一组数据代表的含义。
(1)组数为25,这隐含了动作的时间信息。因为每组数据的有效期为200ms,所以,25组数据的执行时间为:200ms×25=5000ms
(2)左脚和右脚(轮式)的归一化速度相等,方向相反。根据公式(1)可以知道
V=0.5×V0
所以,机器人以0.5V0的速度原地转圈5000ms。
(3)其它关节的归一化速度num=0,说明其它关节均无动作。
3.5 可视化辅助程序简介
我们发现一个简单的动作竞需要5组数据,5分钟的舞蹈需要组数据(需占用1.5K存储空间,AT89C52足够)。如果人工填写这些数据,将十分困难。因此在实际的运用中,我们用C+Builder编写了机器人模拟程序,采用图形界面,预一化速度和时间信息,写入data.h,只要将其作为头文件,电机驱动程序将自动读取。
4 电路和程序特点总结
(1)一块单片机控制多个步进电机,总线分时复用。
(2)程序基于中断服务,电机工作稳定可*。
(3)提出归一化速度,实现了速度V大范围可变。
(4)数据更新每200ms一次,可以轻松控制各个电机实时加速、减速、爆发,从而使舞蹈更人性化、感情化。这也正是我们允许数据量大的原因。
(5)辅助程序实现编程可视化。
文末是中国科大首届机器人舞蹈比赛中用到的程序实例。





参考文献
1 顾天柱,陈巳康.C51交*编译系统.上海:复旦大学出版社,1990,8
2 胡汉才.单片机原理及系统设计.北京:清华大学出版社,2002
相关信息
发表评论
打印本页 关闭本页
基于8051单片机的频率测量技术
  引言   随着无线电技术的发展与普及,"频率"已经成为广大群众所熟悉的物理量。而单片机的出现,更是对包括测频在内的各种测量技术带来了许多重大的飞跃,然而,小体积、价廉、功能强等优势也在电子领域占有非常重要的地位。为此.本文给出了一种以单片机为核心的频率测量系统的设计方法。 1 测频系统的硬件结构   测量频率的方法一般分为无源测频法、有源测频法及电子计数法三种...
>>详细内容
关于C8051F021的定位和报警移动终端设计
    C8051F021是美国Cygnal公司生产的单片机。具有双串口、低功耗、高速度等优点。本文以GSM的数据业务,设计一种具有报警和定位的移动终端,并介绍该终端的结构框图、工作原理以及I/O配置和初始化程序。   引言   GSM网是目前移动通信体制中最成熟、最完善、应用最广的一种系统。数据业务作为GSM网络的一种基本业务,已得到越来越多的系统运营商和开发商的重视,基于这种业务的各...
>>详细内容
Silicon Laboratories推出C8051F336系列高整合8位微控制器
    Silicon Laboratories在美国波士顿举行的嵌入式系统研讨会 (Embedded Systems Conference) 发表C8051F336系列高整合8位微控制器,进一步扩大其领先业界的小型微控制器产品阵容。F336系列的接脚与Silicon Laboratories C8051F330系列完全兼容,但程序存储空间增至16kB。F336系列拥有更多闪存、高效能外围和在各种条件下均可发挥最佳效能的操作能力,设计人员很容易通过软件将产品升级...
>>详细内容
基于单片机AT89C52的CAN总线分布式测控系统的研制
  1CAN总线网络的技术特点    用通讯数据块编码,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高层次的控制和管理功能,比如故障诊断、优化协调等...
>>详细内容
AT89C52单片机在捻度测量中的应用
    纱线捻度测量是纺织生产中重要的环节。目前纱线捻度普遍采用机械式和半电子化测量。该测量方法精度低、操作人员劳动强度大、易出现错误操作。为适应市场需求和社会发展,开发了以单片机为核心捻度测量装置,实现捻度测量的自动化、微型化、数字化,从而大大提高了测试精度。    1 系统原理  本装置如图所1示。单片机将测量的电机转速与键盘设置的工作方式和初始值进行比较判断...
>>详细内容
在嵌入FPGA的IP核8051上实现TCP/IP的设计
     0 引言   随着芯片规模的越来越大、资源的越来越丰富, 芯片的设计复杂度也大大增加。事实上, 在芯片设计完成后, 有时还需要根据情况改变一些控制, 这在使用过程中会经常遇到。这时候如果再对芯片设计进行改变将是很不可取的, 因为需要设计人员参与这种改变, 这无论是对设计者还是用户都是不能接受的。于是就有必要让这种可以改变的简单控制在芯片设计时就存在, 而且同时还应该...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com