当前位置:首页 期刊杂志

一种基于单片机控制的恐龙机器人设计

时间:2024-08-31

申耀武

(广州南洋理工职业学院,广东 广州 510925)

1 恐龙机器人的动作原理

恐龙机器人是一种仿生机器人。仿生机器人是以生物的外形、动作原理及特性为基础,利用机械结构结合电子晶片来模仿生物的一举一动。近年来,仿生机器人的研究一直是机器人研究的热点,具有广阔的开发前景。

本文中的恐龙机器人通过AT89S51单片机产生PWM脉冲信号,控制伺服马达的转动来拉扯头部、尾部及腿部动作,再通过巧妙的机械结构运动方式,使放在恐龙头尾的重量得以调整,使重心转移来达到单脚支撑身体重心的行走方式,所以恐龙的重量分配成为其能否成功行走的重点。

2 恐龙机器人硬件设计

2.1 硬件结构

恐龙机器人结构如图1所示,它由头部、身体、肩部、尾部及腿部等几部分组成。

头部和尾部各装4颗3号电池,为恐龙机器人提供所需的电源,同时电池重量可使恐龙行走时保持平衡。身体部分由8个伺服马达组成。其他机械机构采用亚克力板。

2.1.1 材料选择

制作小型机器人的材料有很多种,本文选用透明亚克力材料,化学名称为甲基丙烯酸甲酯。该恐龙机器人设计制作使用厚度为3mm的亚克力板,这种材料具有良好的表面硬度及光泽,加工容易。由于亚克力板表面比较光滑,需使用专用亚克力胶水,常用氯仿作为黏结剂,但氯仿同时也是一种麻醉剂,具有毒性,透明如水,使用时须注意安全。

2.1.2 伺服马达

小型机器人大多使用 R/C(Radio Control,无线电遥控)伺服马达,其工作电压为4V~6V直流电,体积较小,价格便宜,不需外加电路。该恐龙机器人采用GWS S03T伺服马达,其扭力可达7.2kg·cm,机器人动作顺畅。

R/C伺服马达利用 PWM(Pulse Width Modulation,脉冲宽度调制)驱动信号,即利用周期约为20ms~30ms、脉冲宽度为0.8ms~2.2ms的脉冲信号来控制R/C伺服马达的转角,当R/C伺服马达收到这种PWM的脉冲信号时,会根据脉冲宽度的大小选择顺时针转动或逆时针转动,从而改变转动的角度及转动的速度。PWM波形如图2所示。

图2 PWM波形

当脉冲宽度为1.5ms时,R/C伺服马达会停在“中间位置”,当R/C伺服马达接到此信号时,会一直停在中间位置,并固定不动,直到PWM脉冲宽度发生改变;若脉冲宽度为0.8ms时,伺服马达逆时针转到底;若脉冲宽度从0.8ms→1.5ms→2.2ms并维持,伺服马达便顺时针转到底,并固定在该位置上,若此时有外力企图将伺服马达的输出轴心转动离开该位置时,则伺服马达会立刻输出动力使自己维持在原来的位置上,直到脉冲宽度改变。

另外,若脉冲信号的宽度没有在此规定的范围内,或者只给R/C伺服马达电源,而没有给它脉冲信号,都会使R/C伺服马达发生无法预期的转动甚至造成损坏。

2.2 控制电路

采用ATMEL公司生产的AT89S51单片机控制,AT89S51是一种低功率、高效能的8位单片机,工作电压为4.0V~5.5V,具有32个输入/输出引脚,一次可以控制多个R/C伺服马达。

利用AT89S51单片机计时中断方式,可定时产生周期性的PWM信号来驱动伺服马达。

8个R/C伺服马达的信号线接至单片机的P2.0引脚,+VCC脚接VCC,GND脚接地。

控制电路图如图3所示。

图3 控制电路图

3 程序设计

3.1 程序流程图

程序流程图如图4所示。

图4 程序流程图

经过示波器及伺服马达的调整,代表伺服马达位置的暂存器(mtable[0]~[7])值为53时,伺服马达为中间位置,80为逆时针到底(2.2ms),28为顺时针到底(0.8ms)。所以数值越大,PWM脉冲宽度越大,伺服马达逆时针转动;数值越小,PWM脉冲宽度越小,伺服马达顺时针转动。若更改mtable[0]~[7]的值,就会使伺服马达转动从而带动恐龙机器人完成不同的动作。为避免恐龙机器人机构因转动而损坏,mtable[0]~[7]的范围为80~28。

3.2 恐龙机器人的校正

恐龙机器人在第一次使用时,为避免伺服马达装设的位置未设定在最佳状况,造成启动后机构或者马达损坏,必须对机构进行校正,使每个伺服马达先处在中间位置。校正步骤为:①将恐龙机器人的8个伺服马达输出圆轴从伺服马达主体拨开,也就是让伺服马达转动时,不会带动机构;②利用AT89S51单片机产生PWM脉冲信号,使8个伺服马达通电均处于中间位置;③当伺服马达处于中间位置时,在不切断电源的情况下,将8个伺服马达输出圆轴再装回各自的伺服马达上,以此时的位置作为起点位置。

3.3 恐龙机器人行走实现

实现恐龙机器人的行走,可将其分为8个步骤,各步骤及图示如下:

步骤1:如图5所示,从初始位置开始,首先将重心向右移。

图5 步骤1

步骤2:如图6所示,第2个伺服马达顺时针转动,左脚抬高。

步骤3:如图7所示,第3个伺服马达顺时针转动,左脚向前踏下,同时,右脚向后推,使身体前进。

步骤4:如图8所示,重心左移。

步骤5:如图9所示,左脚置中,右脚抬高跨出。

步骤6:如图10所示,右脚踏下,左脚向后推,使身体向前移。

步骤7:如图11所示,重心向右移。

图6 步骤2

图7 步骤3

图8 步骤4

图9 步骤5

步骤8:直接从步骤2重新开始第2步。

恐龙机器人的行走动作从步骤1开始,接下来步骤2~步骤7不断循环。

4 测试与分析

根据实验,利用前后各2颗电池就可以使恐龙行走达到平衡,但由于考虑到伺服马达的耗电问题,本恐龙机器人使用了8颗3号电池,也因此增加了恐龙的自身重量,使恐龙从蹲下到站立时会稍微有点吃力,但仍能完成规定动作。也可使用锂电池或移动电源,并在恐龙机器人头部和尾部配上重量,使机器人行走时达到重心平衡。

图10 步骤6

图11 步骤7

5 结束语

本文设计的恐龙机器人,其硬件和控制电路结构简单,程序控制动作灵活,便于实现。本恐龙机器人可以实现恐龙的蹲下、站立、取食及观测动作,也可藉由重心转移时产生的惯性,并配合步法来做转弯的动作。实验证明,该方案设计有效。

[1] 黄勤.单片机原理及应用[M].北京:清华大学出版社,2010.

[2] 王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社,2011.

[3] 梅隆.机器人[M].刘荣,译.北京:科学普及出版社,2008.

[4] 郑剑春.机器人结构与程序设计[M].北京:清华大学出版社,2010.

[5] 郝矿荣,丁永生.机器人的几何代数模型与控制 [M].北京:科学出版社,2011.

[6] 刘金国,高宏伟,骆海涛.智能机器人系统建模与仿真[M].北京:科学出版社,2014.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!