微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 舞蹈机器人步进电机驱动电路和程序设计

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

时间:10-15 来源:互联网 点击:

所有的代码执行完全?答案是肯定的。参考图4,我们对整个中断服务程序进行了统计,它所要执行的指令数在 200~300之间变化,时钟间隔设置为1ms,选用12MHz晶振,执行这些指令需要耗时约500~600μs1ms,因此,中断处理完全可以在一个计时器周期内执行完毕。

3.jpg

3.4 舞蹈编排

在舞蹈编排中,我们面向的是动作,因此,必须关心三要素:快慢、方向和幅度。在程序中,舞步信息数组格式如下:

4.jpg

每组数据含有8个字节,分别代表8个电机的归一化速度num,这点在3.1节中已经做了详细分析。程序每200ms读一次数据,换句话说,每组数据的有效期只有200ms。我们分析表2一组数据代表的含义。

5.jpg

(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.jpg


参考文献

1 顾天柱,陈巳康.C51交叉编译系统.上海:复旦大学出版社,1990,8

2 胡汉才.单片机原理及系统设计.北京:清华大学出版社,2002

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top