舞蹈机器人步进电机驱动电路和程序设计
- 格式:doc
- 大小:460.50 KB
- 文档页数:14
步进电机驱动器课程设计一、课程目标知识目标:1. 理解步进电机的工作原理,掌握步进电机驱动器的种类及功能。
2. 学习步进电机驱动器的电路连接方式,了解参数设置对步进电机性能的影响。
3. 掌握步进电机驱动程序编写的基本方法,学会运用相关函数控制步进电机运动。
技能目标:1. 能够正确选用步进电机驱动器,完成电路连接和参数设置。
2. 熟练运用编程软件编写步进电机驱动程序,实现步进电机的精确控制。
3. 培养动手实践能力,学会分析并解决步进电机控制过程中遇到的问题。
情感态度价值观目标:1. 培养学生对步进电机驱动技术研究的兴趣,激发创新意识。
2. 培养学生团队协作意识,学会与他人共同解决问题。
3. 增强学生对我国电机驱动技术发展的自豪感,培养爱国主义情怀。
课程性质:本课程为实践性较强的课程,以理论知识为基础,重点培养学生的动手操作能力和实际应用能力。
学生特点:学生具备一定的电子电路基础知识,具备初步编程能力,对步进电机控制有一定了解。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,鼓励学生创新思维,提高解决实际问题的能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 步进电机原理及分类:介绍步进电机的工作原理、特点及分类,结合教材第二章内容,理解步进电机在自动化领域的应用。
- 步进电机原理- 步进电机分类- 步进电机应用领域2. 步进电机驱动器:学习步进电机驱动器的功能、选型及参数设置,参考教材第三章内容,掌握驱动器与步进电机的连接方法。
- 步进电机驱动器功能- 驱动器选型- 参数设置及电路连接3. 步进电机驱动程序编写:学习编写步进电机驱动程序,结合教材第四章内容,熟练使用相关函数实现步进电机的运动控制。
- 驱动程序基本结构- 常用函数及功能- 实现步进电机运动控制4. 步进电机控制系统实践:结合教材第五章内容,进行步进电机控制系统实践,培养动手操作能力及问题解决能力。
小型舞蹈机器人的驱动电路设计
机器人舞蹈比赛是一项具有极强观赏性和趣味性的比赛。
比赛规则要
求参赛机器人在有限的场地和时间内,配合音乐完成动作。
由于要求机器人既
要充分利用场地,又不能超时和越界,因此,舞蹈机器人集成了多学科前沿技术,它的设计涉及了机电一体化技术、检测和传感技术、精密机械加工和精密
机械传动技术、现代化控制技术和管理技术、计算机程序控制技术等多个方面。
系统中,直流电机共有四路,分别用于机器人底盘、头部的转动以及身
体的升降,舵机有两路,用于花瓣打开。
本设计从实际出发对不同电机采取了
不同的驱动方式。
舵机驱动电流仅十几微安,可以直接使用单片机端口进行驱动,而直流电机工作电流较大,瞬态电流接近1A,因此需要采用专用电机驱
动芯片。
此外由于采用了3V与7V两种规格的直流电机,其中7V直流电机驱
动信号直接采用驱动芯片输出,3V直流电机则需对驱动芯片输出作降压处理,因此,控制芯片选用了Atmel公司的AT89C52单片机。
驱动模块电路设计
本系统有四路直流电机和两路舵机,由于两者的工作电流相差较大,故
在硬件上将两者独立。
由于舵机自身带电源和地引脚,对其驱动只需给出控制信号即可,故可
直接用单片机的端口作控制信号线,因而硬件十分简单,设计时只要通过接口
用光耦隔离输出便可直接控制两路舵机,图中即用于实现这部分功能。
本系统
共有四路直流电机,其中三路采用7V供电,一路采用3V供电,因而工作电
流较大,瞬时值可达1A以上,为此,设计中选用了L298系列芯片来完成驱动。
河南科技学院2014届本科毕业论文(设计)基于单片机的舞蹈机器人控制系统设计学生姓名:所在院系:机电学院所学专业:电气工程及其自动化导师姓名:完成时间:2014年5月24 日基于单片机的舞蹈机器人控制系统设计摘要机器人是典型的机电一体化装臵,它综合运用了机械与精密机械、微电子与计算机、自动控制与驱动、传感器与信息处理以及人工智能等多学科的最新研究成果,随着经济的发展和各行各业对自动化程度要求的提高,机器人技术得到了迅速发展,出现了各种各样的机器人产品,本文介绍的就是其中的舞蹈机器人。
舞蹈机器人的设计,首先通过对人类动作的深入了解,分析人类的动作特性,确定机器人的基本构成并选择合适的机械构造,本设计舞蹈机器人采用钢材结构,用舵机充当机器人关节,可实现类人结构。
并且与控制对象跳舞机器人的工作原理、动作过程进行比较,从而选择出组装机器人的造型,文中并分析机器人动作的局限性与优势。
同时本毕业设计介绍了基于AT89C51单片机的舞蹈机器人控制系统的设计,包括硬件部分和软件部分。
硬件部分介绍了舞蹈机器人控制系统的各模块,包括电源模块、单片机及外围接口电路模块、存储模块、串行通信模块、电机驱动控制模块及防碰撞模块六大部分;软件部分包括设定机器人的舞蹈动作程序。
详细阐述了系统的硬件实现方案和软件设计思想。
根据要求舞蹈机器人控制系统采用分时复用的方法,利用PWM信号对驱动电机进行控制,用以完成作品设计。
关键词:单片机,PWM信号,舞蹈机器人,舵机,直流电机MICROCONTROLLER-BASED ROBOT CONTROLSYSTEM DESIGN DANCEAbstractRobot is a typical mechatronic device, which combines the use of the latest research machinery and precision machinery, microelectronics and computer, automatic control and drive, sensors and information processing, and artificial intelligence, multi-disciplinary, with the economic development and the lines each industry to raise the required degree of automation, robotics technology has been developing rapidly, there has been a wide range of robotic products described in this article is one of the dancing robot.Design dancing robot, first through in-depth understanding of human action, human operating characteristics analysis to determine the basic structure of the robot and select the appropriate mechanical construction, the design of steel structures using robot dance, act as a robot with a steering joint, enabling the class human structure.And dancing robot control object works, the course of action are compared to select the shape of the assembly robot, the paper analyzed the limitations and advantages of robot action.Meanwhile, the graduation project presentation based on AT89C51 dance robot control system design, including hardware and software components.Hardware section describes the various modules dancing robot control system, including the power supply module, microcontroller and peripheral interface circuit module, memory module, serial communication module, motor drive control module and anti-collision module six parts; Software includes setting the robot dance program.Elaborated hardware implementations and software design. Dancing robot control system according to the requirements using time division multiplexing method using PWM control signal to the drive motor, designed to complete the work.Keywords: microcontroller, PWM signal, dancing robot, steering, DC目录1 绪论 (1)2方案论证取优及控制系统设计 (1)2.1 设计功能要求 (1)2.2方案论证取优 (2)2.3 自由度的分配 (2)2.4 电机的选择 (4)2.5 舞蹈机器人的机械部件 (5)2.6 系统设计方案分析 (5)3 系统硬件选型 (6)3.1 单片机可编程控制器部分 (6)3.1.1 单片机概述 (6)3.1.2 单片机选型 (6)3.2 电源模块 (7)3.3 串行通信模块 (7)3.4 存储模块 (8)3.5 电机驱动控制模块 (8)3.5.1 舵机的驱动控制模块 (8)3.6 防碰撞模块 (12)4 控制系统软件设计 (12)4.1 主程序 (13)4.2 定时器中断服务子程序 (13)4.3 串行中断服务子程序 (14)4.4 外部中断服务子程序 (14)5 结论 (15)参考文献 (16)附录 (16)致谢 (23)1 绪论40年前,比尔〃盖茨放弃学业,创立了微软,成为个人电脑普及革命的领军人物;10年前,他曾预言,机器人即将重复个人电脑崛起的道路。
舞蹈机器人步进电机驱动电路和程序设计在中国科大首届机器人舞蹈比赛中(中央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。
这是一种基于总线分时复用的方式,以动态扫描的方式来发送控制信号,这和高级操作系统里的多任务进程调度的思想一致。
跳舞机器人设计毕业设计论文课程设计任务书( 2015 级)目录摘要------------------------------------------------------4引言------------------------------------------------------5任务书-----------------------------------------------------6第一章我国机器人技术的发展概况------------------------------------7 第二章机器人的总体设计解剖1.1资料的收集与阐述-----------------------------------------71.2机器人工作原理简介1.总体设计剖------------------------------------------------82.伺服电机的剖析--------------------------------------------9第三章机器人总体设计综述 ---------------------------------121、1设计课题的阐述-----------------------------------------121、2单片机的选择-------------------------------------------121、3主控板部分简介-----------------------------------------12第四章机器人的总体设计方案与部分简介1、1设计方案-----------------------------------------------131、2各部分功能及原理简介-----------------------------------13第五章机器人的原理图设计、仿真及电路板制作1、1机器人的原理图设计-------------------------------------151、2电源部分-----------------------------------------------161、3稳压电源部分-------------------------------------------161、5接口电路部分-------------------------------------------171、6单片机最小系统和ISP在线编程---------------------------18 1、9电路板制作---------------------------------------------18第六章机器人电路板的调试与结论1、1数据的采集电路和处理方法-------------------------------211、2机器人测脉宽程序---------------------------------------231.2送数据程序----------------------------------------------271、3调试结论-----------------------------------------------31第七章心得体会--------------------------------------------31附录:1元器件清单------------------------------------------------322 参考文献--------------------------------------------------32设计题目跳舞机器人30年前,比尔·盖茨毅然弃学,创立微软,成为个人电脑普及革命的领军人物;30年后的今天,他预言,机器人即将重复个人电脑崛起的道路。
舞蹈机器人电路讲解教案教案标题:舞蹈机器人电路讲解教案教案目标:1. 了解舞蹈机器人的电路组成和原理。
2. 掌握舞蹈机器人电路的基本知识和操作技巧。
3. 培养学生对电路设计和创意的兴趣和能力。
教学资源:1. 舞蹈机器人电路组件(包括电池盒、电机、开关、导线等)2. 舞蹈机器人电路示意图3. PowerPoint演示文稿4. 实际舞蹈机器人模型(可选)教学步骤:引入活动:1. 使用PowerPoint演示文稿或实际舞蹈机器人模型引起学生的兴趣和好奇心,介绍舞蹈机器人的概念和应用。
知识讲解:2. 介绍舞蹈机器人电路的基本组成,包括电池盒、电机、开关和导线等。
3. 解释每个组件的功能和作用,例如电池盒提供能量,电机驱动机器人运动,开关控制电路的开关状态等。
4. 展示舞蹈机器人电路示意图,解释电路连接的方式和原理。
实践操作:5. 将学生分成小组,每组提供一套舞蹈机器人电路组件。
6. 指导学生按照示意图连接电路,并确保电路连接正确。
7. 引导学生操作开关,观察电机的运动情况。
8. 鼓励学生尝试不同的电路连接方式,观察机器人运动的变化。
讨论与总结:9. 引导学生讨论他们的观察结果和发现,分享不同的电路连接方式对机器人运动的影响。
10. 结合学生的实践经验,总结舞蹈机器人电路的基本原理和设计要点。
拓展活动:11. 鼓励学生设计自己的舞蹈机器人电路,并尝试不同的舞蹈动作和音乐配合。
12. 学生可以展示他们设计的舞蹈机器人电路,并分享他们的创意和心得。
评估方式:1. 观察学生在实践操作中的表现,包括正确连接电路和操作开关的能力。
2. 收集学生的讨论和总结,评估他们对舞蹈机器人电路原理的理解和应用能力。
教学延伸:1. 鼓励学生深入了解其他类型的机器人电路,例如遥控车、智能家居等。
2. 引导学生参与更复杂的机器人项目,培养他们的创新和解决问题的能力。
教学提示:1. 在实践操作中,确保学生的安全意识和正确使用电路组件。
舞蹈机器人步进电机驱动电路和程序设计
摘要:介绍了舞蹈机器人步进电机驱动电路和程序设计。
电路采用74373锁存,74LS244和ULN2003作电压和电流驱动,单片机AT89C52作工作脉冲序列信号发生器。
程序设计基于中断服务和总线分时复用方式,实时更新各个电机的速度和方向。
关键词:单片机,中断服务,速度累加计数器,归一化速度
在机器人舞蹈时,我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作。
电路采用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)程序基于中断服务,电机工作稳定可靠。