2.3 基于C8051单片机和CD4017外部计数器的关节控制器设计
采用一片单片机与4片CD4017外部计数器的关节控制器设计方案,极大限度的精简了硬件数量,节省了空间,降低了软硬件出错的可能性,也为系统运动功能的扩展提供了足够空间和灵活性(自由度数量设置可在36个以内任意增减)。
基于C8051的设计中有很多方法用于产生PWM波形:软件循环、查询或中断驱动的定时器等。使用可编程计数器阵列PCA产生PWM相对于任何查询机制(基于软件或定时器而言)可以大大降低所需要的CPU带宽,并可以消除在中断驱动的基于定时器的设计中因中断延迟不一致而产生的时序抖动。PCA由一个专用的16位计数器/定时器和5个16位捕捉/比较模块组成。每个捕捉/比较模块有其自己的I/O线。计数器/定时器由一个可编程的时基信号驱动。计数器/定时器有一个16位的计数器/定时器寄存器、一个用于选择时间基准的方式寄存器和一个包含计数器/定时器运行控制及各模块捕捉/比较标志的控制寄存器。每个捕捉/比较模块有一个用于选择模块工作方式的配置寄存器和一个16位的捕捉/比较寄存器。每个捕捉/ 比较模块的工作方式都可以被独立配置。由于所有的捕捉/比较模块共享一个时间基准,因此它们同步工作[5][6]。本文研究的小型娱乐机器人关节控制器设计中,将PCA配置为独立工作;每个模块的中断服务程序只影响该模块的捕捉/比较寄存器。PCA方式寄存器和配置寄存器设置一次后不再改变,让计数器/定时器寄存器自由运行。
在高速输出方式,每当PCA计数器与模块的16位捕捉/比较寄存器发生匹配时,模块I/O线的引脚上的逻辑电平将发生高低转换,并可以选择产生中断。本应用程序中选择了该中断。
Y9输出均变为低电平,只有Y0脚输出变为高电平,故可以利用CR的正脉冲输入中断计数[7]。~Y9这10个输出端,计满10个数后计数器复零,同时CO端输出一个进位脉冲。当CR端有正脉冲输入时,该脉冲的上升沿将触发CD4017复位,此时Y1~CD4017基本功能是对CP端输入脉冲的个数进行十进制计数,并按照输入脉冲的个数顺序将脉冲分配在Y0
本文研究的小型娱乐仿人机器人控制系统方案中,一个CD4017输出7路脉冲,分别发送给7个舵机。
3 实验
控制系统硬件实物连接图如图4。
机器人步行实验完成5步的向前行和5步的后退的行走过程。步行实验过程如图5。
4 结论
根据小型仿人机器人的机构特点和性能要求,构建了以ARM9为主控制器的小型仿人机器人控制系统。设计开发了C8051USB单片机和CD4017外部计数器组成关节控制器,该关节控制器能够实现多舵机的协调控制任务。实践证明,采用该结构之后,整个机器人系统的模块化程度更高,系统的装配和调试更加方便。控制系统实现了小型化、低功耗,而且机器人行走稳定性。
本文作者的创新点
根据小型仿人机器人的机构特点和性能要求,构建了以ARM9为主控制器的小型仿人机器人控制系统。设计开发了C8051USB单片机和CD4017外部计数器组成关节控制器,该关节控制器能够实现多舵机的协调控制任务。实践证明,采用该结构之后,整个机器人系统的模块化程度更高,系统的装配和调试更加方便。控制系统实现了小型化、低功耗,而且机器人行走稳定性。
参考文献:
[1] K.KANEKO, F.KANEHIRO, Design of Prototype Humanoid Robotics Platform for HRP, IEEE/RJS Conference on Intelligent robots and system [C]. Switzerland: IEEE 2002, 2431-2436.
[2] 钟华,吴镇炜,卜春华. 仿人型机器人控制系统的研究与实现 [J]. 机器人. 2005, Vol 27, No. 5: 455-459.
[3] 邓遵义,宁 祎,刘保国. 基于CAN总线的分布式机器人控制系统设计[J].微计算机信息.2006,(6):255-257.
[4] 许永和. EZ-USB FX系列单片机USB外围设备设计与应用. 北京航空航天大学出版社. 2002-11-2
[5] 潘琢金.(译)C8051F320/1混合信号ISP FLASH微控制器C8051F320/1数据.2004-12
[6] CYGNAL应用笔记.AN007—用PCA实现16位PWM .
[7] 陈国华. CD4017集成电路应用200例.人民邮电出版社.1996作者简介:张(1978-),女,陕西省三原县人,汉族,北京理工大学,博士研究生,研究方向:机电一体化