一种基于80C196KC单片机的舞蹈机器人控制系统的制作方法

文档序号:13875154研发日期:2016年阅读:1270来源:国知局
技术简介:
本专利针对舞蹈机器人控制系统与PC机通信不稳定、动作控制精度低的问题,提出基于80C196KC单片机的解决方案。通过设计电源隔离、RS-232电平转换、PWM电机控制及握手协议,实现舞蹈动作的精准编辑、存储与执行,提升系统稳定性与动作协调性。
关键词:舞蹈机器人控制系统,80C196KC单片机,电机驱动控制

所属技术领域

本发明涉及一种基于80c196kc单片机的舞蹈机器人控制系统,适用于机械领域。



背景技术:

舞蹈机器人集软件与硬件于一体,是一个比较完善的系统,其设计需要控制、机械、舞蹈与音乐等各方面的相互融合。控制系统则是整个舞蹈机器人的核心,其设计的好坏,将严重影响到整个舞蹈机器人的性能。



技术实现要素:

本发明提出了一种基于80c196kc单片机的舞蹈机器人控制系统,不仅能正确接收、解释pc机的命令,实现舞蹈动作的编辑、存储,还能够调用所设计的控制算法,控制电机执行舞蹈动作。

本发明所采用的技术方案是。

所述舞蹈机器人控制系统的硬件部分包括电源模块、单片机及外围接口电路模块、存储模块、串行通信模块、电机驱动控制模块及防碰撞模块六大部分。

所述电源模块主要用来给光电隔离前的芯片、光电隔离后的芯片、舵机与直流电机分开供电,使其相互之间不会产生干扰。在电源模块中,由于采用同一个+8v镍锡电池供电,故设计中采用了dc/dc转换模块cd05soslsw、光电祸合、7805稳压电路,实现电压的转换和信号的隔离,从而保证其余各电路的正常工作和排除相互之间的干扰。

所述单片机及其外围接口电路模块包括单片机、时钟电路、复位电路、外部程序存储电路。单片机采用intel公司的80c196kc,它是16位的高性能嵌入式控制器,其内部集成了488字节的ram,可寻址64k字节,具有40个可编程i/0口、6个高速输出口、3路pwm输出。时钟电路给系统提供时间基准,设计时采用12mhz晶振。由于所采用的80c196kc片内不带rom,因此在片外扩展了8k的外部存储器2764,以便存放程序和指令。

所述串行通信模块主要用于80c196kc单片机与pc机之间的rs-232串行通信。由于pc机的com口符合rs-232标准,80c196kc单片机上的串行接口是cmos电平,在rs-232与ttl或cmos电平通信时,需要电平转换,因此,设计时利用max202芯片来作电平转换。max202芯片是maxim公司生产的、包括两路接收器和驱动器的rs-232电平转换芯片,适用于各种232通信接口,其内部有1个电源电压变换器,可以把输人的+sv电源电压变换成rs-232输出电平所需的±10v电压。

所述控制系统的软件由pc机上的软件设计和单片机上的软件设计两部分组成,单片机上的控制程序包括一个主程序和相应的中断服务子程序。其中p0.5是串行通信的开关控制量,不等于1,表示单片机进入串行中断等待,进而可以与pc机进行数据交换,等于1,表示程序往下执行;p0.4是机器人开始跳舞的遥控开关,等于1,表示机器人开始跳舞,否则,机器人保持原来状态。

所述串行中断服务子程序实现80c196kc从pc机下载舞蹈动作和由80c196kc向pc机上传舞蹈动作。通过串行中断,利用80c196kc的txd,rxd引脚与pc机的com口实现串行通信,二者之间采用全双工的异步通信模式,其波特率设为9600,此外为了保证数据的正确传输,软件设计了握手协议。在传输数据前,先进行单片机与pc机的握手,采用“(”与“)”一对字符进行握手,握手协议通过,表示单片机与pc机建立了可靠的通信,就可以进行数据传输了。

本发明的有益效果是:整个系统经过仿真调试,不仅能正确接收、解释pc机的命令,实现舞蹈动作的编辑、存储,还能够调用所设计的控制算法,控制电机执行舞蹈动作。

附图说明

图1是本发明的控制系统硬件框图。

图2是本发明的直流电机驱动控制电路。

图3是本发明的机器人程序控制总流程。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。

如图1,舞蹈机器人控制系统的硬件部分包括电源模块、单片机及外围接口电路模块、存储模块、串行通信模块、电机驱动控制模块及防碰撞模块六大部分。

电源模块主要用来给光电隔离前的芯片、光电隔离后的芯片、舵机与直流电机分开供电,使其相互之间不会产生干扰。在电源模块中,由于采用同一个+8v镍锡电池供电,故设计中采用了dc/dc转换模块cd05soslsw、光电祸合、7805稳压电路,实现电压的转换和信号的隔离,从而保证其余各电路的正常工作和排除相互之间的干扰。

单片机及其外围接口电路模块包括单片机、时钟电路、复位电路、外部程序存储电路。单片机采用intel公司的80c196kc,它是16位的高性能嵌入式控制器,其内部集成了488字节的ram,可寻址64k字节,具有40个可编程i/0口、6个高速输出口、3路pwm输出。时钟电路给系统提供时间基准,设计时采用12mhz晶振。由于所采用的80c196kc片内不带rom,因此在片外扩展了8k的外部存储器2764,以便存放程序和指令。

串行通信模块主要用于80c196kc单片机与pc机之间的rs-232串行通信。由于pc机的com口符合rs-232标准,80c196kc单片机上的串行接口是cmos电平,在rs-232与ttl或cmos电平通信时,需要电平转换,因此,设计时利用max202芯片来作电平转换。max202芯片是maxim公司生产的、包括两路接收器和驱动器的rs-232电平转换芯片,适用于各种232通信接口,其内部有1个电源电压变换器,可以把输人的+sv电源电压变换成rs-232输出电平所需的±10v电压。

如图2,舞蹈机器人除了两只脚由直流电机驱动外,其余所有的关节都是采用舵机来控制的,对于舵机和直流电机,其驱动控制稍有不同,现分述如下。

舵机的控制信号来自80c196kc单片机的p1口,利用两片锁存器7415573可提供16路控制信号,其中舵机用到13路控制信号。为了防止干扰,13路舵机控制信号和驱动电路应经过tlp-521光电隔离。通过隔离出来的控制信号,还必须接人lm324比较器,以消除毛刺,增加信号的稳定性,提高信号的输出电流,以便舵机能够正确工作不至于产生不必要的抖动。此外,由于舵机数量多,为了节省i/o口,可通过p1口的分时复用和锁存器来实现。在系统中,由于程序执行都在微秒级,在舞蹈动作执行时,用到定时器中断,而定时器是采用0.25m,进行中断,因而,在时间上完全可以采用分时复用的方法来实现舵机的控制。

机器人的两只脚是通过两个直流电机来行走的。为了使机器人能够实现直线行走、转弯、侧滑等动作,必须对直流电机的转动方向与转速进行控制,为此我们选用了l289n驱动芯片。

l298n是高电压、高电流的双h桥驱动器,利用一片l298n就可以实现对2个直流电机的控制。每个直流电机用三路控制信号,其中两路为转向控制信号ini和in2(或in3和in4),一路为转速控制信号ena(或enb),每组有两路输出信号,可以直接接到直流电机的引线上。通过改变ini和in2(或in3和in4)输人端的高低电平值,即可实现直流电机的转向控制。ena与enb所引入的信号是pwm波,通过改变pwm波的脉宽,进而改变加在直流电机上的平均电压,就可以实现直流电机的速度控制。为了防止直流电机在启动、停止瞬间所产生的反馈电压损坏l298n,在l298n和直流电机之间加人8个二极管,起断电续流的作用,从而保护元件。

如图3,控制系统的软件由pc机上的软件设计和单片机上的软件设计两部分组成,在此仅介绍单片机的软件设计。单片机上的控制程序包括一个主程序和相应的中断服务子程序。其中p0.5是串行通信的开关控制量,不等于1,表示单片机进入串行中断等待,进而可以与pc机进行数据交换,等于1,表示程序往下执行;p0.4是机器人开始跳舞的遥控开关,等于1,表示机器人开始跳舞,否则,机器人保持原来状态。

串行中断服务子程序实现80c196kc从pc机下载舞蹈动作和由80c196kc向pc机上传舞蹈动作。通过串行中断,利用80c196kc的txd,rxd引脚与pc机的com口实现串行通信,二者之间采用全双工的异步通信模式,其波特率设为9600,此外为了保证数据的正确传输,软件设计了握手协议。在传输数据前,先进行单片机与pc机的握手,采用“(”与“)”一对字符进行握手,握手协议通过,表示单片机与pc机建立了可靠的通信,就可以进行数据传输了。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!