智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7938|回复: 10
打印 上一主题 下一主题

舞蹈机器人步进电机驱动电路和程序设计

  [复制链接]

14

主题

155

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1436
QQ
威望
391
贡献
1019
兑换币
0
注册时间
2010-3-1
在线时间
13 小时
跳转到指定楼层
1#
发表于 2010-5-17 10:45:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

舞蹈机器人步进电机驱动电路和程序设计 作者:杨子夫 米良川 李德升 王云博 刘军 罗玉平 :介绍了舞蹈机器人步进电机驱动电路和程序设计。电路采用74373锁存,74LS244ULN2003作电压和电流驱动,单片机AT89C52作工作脉冲序列信号发生器。程序设计基于中断服务和总线分时复用方式,实时更新各个电机的速度和方向。 关键词:单片机,中断服务,速度累加计数器,归一化速度 在中国科大首届机器人舞蹈比赛中(中央10台节目转播),我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作,荣获一等奖。电路采用74373锁存,74LS244ULN2003作电压和电流驱动,单片机(Atc52)作脉冲序列信号发生器。程序设计基于中断服务和总线分时利用方式,实时更新各个电机的速度、方向。整个舞蹈由运动数据所决定的一截截动作无缝连接而成。 1 步进电机简介 步进电机根据内部线圈个数不同分为二相制、三相制、四相制等。本文以四相制为例介绍其内部结构。图1为四相五线制步进电机内部结构示意图。 2 四相五线制步进电机的驱动电路 电路主要由单片机工作外围电路、信号锁存和放大电路组成。我们利用了单片机的I/O端口,通过74373锁存,由74LS244驱动,ULN2003对信号进行放大。8个电机共用4bit I/O端口作为数据总线,向电机传送步进脉冲。每个电机分配1bitI/O端口用作74373锁存信号,锁存步进电机四相脉冲,经ULN2003放大到12V驱动电机运转。 screen.width-500){this.style.width=screen.width-500};" border=0> 电路原理图(部分)如图2所示。(1Intel 8051系列单片机是一种8位的嵌入式控制器,可寻址64K字节,共有32个可编程双向I/O口,分别称为P0P3。该系列单片机上集成8KROM128字节RAM可供使用。(274LS244为三态控制芯片,目的是使单片机足以驱动ULN2003ULN2003是常用的达林顿管阵列,工作电压是12V,可以提供足够的电流以驱动步进电机。关于这些芯片的详细介绍可参见它们各自的数据手册。(374373是电平控制锁存器,它可使多个步进电机共用一组数据总线。我们用P1.0P1.7作为8个电机的锁存信号输出端,见表1 screen.width-500){this.style.width=screen.width-500};" border=0>

14

主题

155

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1436
QQ
威望
391
贡献
1019
兑换币
0
注册时间
2010-3-1
在线时间
13 小时
2#
 楼主| 发表于 2010-5-17 10:46:17 | 只看该作者

2)设置指针cur_STEP[8]指向8个电机当前处在脉冲序列STEP[8]中的位置。

易知:0<=STEP<=7,其中,i分别代表8个电机。(3)设置指针移动变量DELTA=0DELTA=1,指针向后移动一步,电机正转;DELTA=-1,指针向前移动一步,电机反转;DELTA=0,指针不移动,电机不发生转动。 33 程序具体步骤 331初始化计时器InitTimer,然后空循环,进入等中断阶段。 332 中断触发后,程序进入服务程序。(1)执行函数SetAllSpeeds,函数根据提供的速度值speed依次判断是否给各个电机发送脉冲,实现电机以特定的速度和方向旋转。SetAllSpeeds具体算法流程见图3。(2)从定义的数组dancedata中读取新的速度信息,每200ms一次。(3)将系统在调用中断处理函数时关闭的计时器重新打开InitTimer。(4)中断处理函数结束返回。注意:第一,(1)和(2)不可交换,这是为了保证步进电机每步延时的均匀性;第二,内部中断间隔时间1ms内,8051是否能够将中断服务程序中所有的代码执行完全?答案是肯定的。参考图4,我们对整个中断服务程序进行了统计,它所要执行的指令数在200300之间变化,时钟间隔设置为1ms,选用12MHz晶振,执行这些指令需要耗时约500600μs<1ms,因此,中断处理完全可以在一个计时器周期内执行完毕。 screen.width-500){this.style.width=screen.width-500};" border=0> 34 舞蹈编排 在舞蹈编排中,我们面向的是动作,因此,必须关心三要素:快慢、方向和幅度。在程序中,舞步信息数组格式如下: screen.width-500){this.style.width=screen.width-500};" border=0> screen.width-500){this.style.width=screen.width-500};" border=0> 每组数据含有8个字节,分别代表8个电机的归一化速度num,这点在3.1节中已经做了详细分析。程序每200ms读一次数据,换句话说,每组数据的有效期只有200ms。我们分析表2一组数据代表的含义。 screen.width-500){this.style.width=screen.width-500};" border=0> 1)组数为25,这隐含了动作的时间信息。因为每组数据的有效期为200ms,所以,25组数据的执行时间为:200ms×25=5000ms 2)左脚和右脚(轮式)的归一化速度相等,方向相反。根据公式(1)可以知道 V=0.5×V0 所以,机器人以0.5V0的速度原地转圈5000ms。(3)其它关节的归一化速度num=0,说明其它关节均无动作。

回复 支持 反对

使用道具 举报

14

主题

155

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1436
QQ
威望
391
贡献
1019
兑换币
0
注册时间
2010-3-1
在线时间
13 小时
3#
 楼主| 发表于 2010-5-17 10:46:36 | 只看该作者


3
5 可视化辅助程序简介 我们发现一个简单的动作竞需要5组数据,5分钟的舞蹈需要screen.width-500){this.style.width=screen.width-500};" border=0>组数据(需占用1.5K存储空间,AT89C52足够)。如果人工填写这些数据,将十分困难。因此在实际的运用中,我们用C+Builder编写了机器人模拟程序,采用图形界面,预一化速度和时间信息,写入data.h,只要将其作为头文件,电机驱动程序将自动读取。 4 电路和程序特点总结 1)一块单片机控制多个步进电机,总线分时复用。(2)程序基于中断服务,电机工作稳定可*。(3)提出归一化速度,实现了速度V大范围可变。(4)数据更新每200ms一次,可以轻松控制各个电机实时加速、减速、爆发,从而使舞蹈更人性化、感情化。这也正是我们允许数据量大的原因。(5)辅助程序实现编程可视化。文末是中国科大首届机器人舞蹈比赛中用到的程序实例。 screen.width-500){this.style.width=screen.width-500};" border=0>

screen.width-500){this.style.width=screen.width-500};" border=0>

screen.width-500){this.style.width=screen.width-500};" border=0>

screen.width-500){this.style.width=screen.width-500};" border=0>

screen.width-500){this.style.width=screen.width-500};" border=0>

screen.width-500){this.style.width=screen.width-500};" border=0> 参考文献 1 顾天柱,陈巳康.C51*编译系统.上海:复旦大学出版社,19908 2 胡汉才.单片机原理及系统设计.北京:清华大学出版社,2002
回复 支持 反对

使用道具 举报

2

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
威望
276
贡献
34
兑换币
0
注册时间
2010-11-13
在线时间
52 小时
4#
发表于 2011-4-27 16:54:54 | 只看该作者
很详细,很好,赞!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
114
威望
152
贡献
52
兑换币
0
注册时间
2012-3-28
在线时间
17 小时
毕业学校
中国计量学院
5#
发表于 2012-3-29 19:46:34 | 只看该作者
WONDERFUL!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
149
威望
116
贡献
29
兑换币
0
注册时间
2012-4-8
在线时间
2 小时
毕业学校
重庆邮电大学
6#
发表于 2012-5-15 23:26:35 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

63

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3199
威望
2295
贡献
728
兑换币
362
注册时间
2012-2-21
在线时间
88 小时
毕业学校
天职师大
7#
发表于 2012-5-27 23:50:04 | 只看该作者
you 详细资料吗?1366187428@qq.com谢谢了,,非常感谢
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
威望
165
贡献
67
兑换币
3
注册时间
2012-7-28
在线时间
9 小时
8#
发表于 2012-10-28 01:44:06 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

126

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2622
威望
1116
贡献
700
兑换币
744
注册时间
2013-3-1
在线时间
403 小时
毕业学校
湖北工程学院
9#
发表于 2013-3-2 20:00:37 | 只看该作者
学习学习
回复 支持 反对

使用道具 举报

1

主题

746

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3319
QQ
威望
1414
贡献
501
兑换币
277
注册时间
2012-9-25
在线时间
702 小时
10#
发表于 2013-3-3 17:35:24 | 只看该作者
很好呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 00:39 , Processed in 0.197517 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表