APP下载

基于STM32的无线同步机械臂的设计

2015-01-21杜金浩张兴瑞赵亚凤

机电产品开发与创新 2015年4期
关键词:舵机手臂编码器

杜金浩, 张兴瑞,赵亚凤

(东北林业大学 机电工程学院,黑龙江 哈尔滨 150040)

0 引言

随着科学技术的不断进步,机器人学科越来越具有强大的生命力,并在某种程度上已经代表信息技术、自动化技术、系统集成技术等的最新发展[1]。本文介绍的同步机械手臂,通过四个绝对值旋转编码器采集人类手臂的动作信息,包括肩关节,肘关节,腕关节和指关节四个自由度,并将其量化为一组数据通过NRF24L01 无线模块发射出去,接收端根据收到的数据控制四个位于机械臂上的的舵机,并使用编码器对舵机关节角度进行检测,通过PID 控制算法精准控制舵机姿态,从而达到完全复制手臂动作的目的。同时该装置辅以电机,通过按键无线控制装置的整体移动。

相比于传统的机械手臂,本文介绍的装置由于采用了更加直观的控制方法,降低了使用者的学习成本,减少了误操作的几率,所以更有利于向公众普及。从而在帮助下肢不便者拓展距离限制和保护高危作业者人身安全等方面具有积极作用[2]。

1 硬件设计

1.1 发射机硬件设计

发射机需要完成对人体动作进行检测,对电机发出控制指令等工作。该部分由角度检测模块,移动控制模块,电源模块,无线模块构成。

角度检测电路采用4 个绝对值旋转编码器TRDNA1024NW 对人体动作进行准确的检测,1024 线(10bit)格雷码输出绝对编码器,本设计为使编码器与舵机精度相匹配,所以舍弃后两位采用8 位数据,8 位数据可将精度控制在1.4°/位,可以满足对肢体动作的检测要求。

图1 发射机组成框图Fig.1 Rransmitterblock diagram

电源模块采用11.1V 航模电池,保证输出电流符合要求。电路如图2 所示。

图2 电源模块Fig.2 Power module

1.2 接收机硬件设计

接收机是整个系统的执行机构,主要由机械手臂模块,电机模块,角度检测模块和无线接收模块构成。

仿真手臂由四个大扭力舵机构成,本设计采用MG996R 舵机。MG996R 舵机拉力可达12kg/cm(6V),反应速度约为0.17sec/60 度(4.8V无 负 载)0.14sec/60 度(6V 无负载)。基本可满足设计要求。由于STM32 输出信号峰值电压为3.3V,无法满足舵机的驱动要求,并且为了保护单片机,防止电流倒灌。所以采用MOS 管进行反向隔离升压,保证舵机工作稳定,电路如图4 所示。

电机模块采用两轮独立驱动机构,由两个高精度驱动轮和一个随动轮构成。此装置由滚动代替滑动摩擦,效率较高适合在平坦的路面上移动,定位精确,而且重量较轻,制作简单[4]。左右两个驱动轮分别由两个直流电机独立驱动,两个驱动轮的速度差值决定机械手臂的前进方向,通过对两个电机施加不同的速度控制量可实现任意方向的运动,属于差分驱动方式。

角度检测模块采用与发射机类似的硬件设计,均采用绝对值旋转编码器,有所不同的是这里检测的是实际执行角度。通过该角度值为PID 控制提供样本。

由于本设计需要传输的数据量比较大,数据传输速度要求极快,而且需要防止数据间的互相干扰。所以这里采用两个独立的无线模块NRF24L01。一个无线模块用来传输手臂动作信息,另一个用来传输整体移动的信息。

60年砥砺奋进,60年薪火相传,中国氮肥行业从无到有,由弱至强,走出了一条具有中国特色的发展之路。而在不断地前行中,中国氮肥行业始终奋发有为,以科技创新为驱动,加速向先进制造业迈进。

图3 接收机组成框图Fig.3 Receiverblock diagram

图4 舵机驱动电路Fig.4 Drive circuit for steering engine

图5 电机驱动电路Fig.5 Drive circuit for electrical machinery

2 软件设计

2.1 发射机软件设计

发射机主要用于采集手臂数据和移动控制数据,并将其经无线模块发射出去,所以发射机的软件设计主要包括对角度的检测,对键盘的检测。

对角度检测需要采集编码器数据,由于角度编码器为避免电平跳变错误,故采用格雷码输出。所以我们在实际读取数据的过程中,需要使格雷码转换成二进制再进行处理。采用如下方式进行转换:

unsigned char y=x;

while (x>>=1)

y^=x;

return y;

即可实现从格雷码转换成二进制,将此二进制保存,在四个编码器均检测完成后形成一个数组,即为当前肢体动作的量化描述。

2.2 接收机软件设计

接收机主要根据无线模块接收到的数据使得舵机和电机做出相应反应,达到模仿和移动的目的,并且可以根据反馈机制进行自我微调。所以接收机的软件设计主要包括舵机控制程序,电机控制程序和PID 控制程序[5]。

舵机的控制信号为一个周期为20ms,脉冲宽度为0.5ms~2.5ms 的PWM 方波。该信号采用STM32 内部定时器产生,它的脉冲宽度调制模式可以产生一个由TIMx_ARR 寄存器确定频率、由TIMx_CCRx 寄存器确定占空比的信号。由于需产生50Hz 的信号,所以需要对72MHz 的时钟频率先进行1440 的预分频和1000 的分频。配置程序如下所示:

TIM_TimeBaseStructure.TIM_Period = 999;//当 定 时器从0 计数到999,即为1000 次,为一个定时周期。

TIM_TimeBaseStructure.TIM_Prescaler = 1439;//设置预分频: 1440。

由于需要实时改变PWM 波的占空比,即需要实时改变TIMx_CCRx 寄存器的值,所以这里采用中断方式:每10 个周期(即0.2s)进一次中断,改变一次TIMx_CCRx的值。这样就实现了每0.2s 改变一次占空比,达到快速动作的目的。

TIMx_CCRx 的值由所接收到的手臂动作数据决定,接收到的数据范围为0~255,将接受到的数据经过一定的线性转换,即可得到应向TIMx_CCRx 寄存器里写入的值。但是应为机械结构的原因,每一个舵机都应该有一个限制,超过这个限制的话就会造成舵机卡机,造成舵机不可挽回的损坏,所以在进行线性变换的同时,还需多舵机的占空比进行限制,主要程序如下:

在速度控制程序中本设计采取两套机制共同控制速度,一是采用超声波传感器进行避障,二是采用码盘检测速度大小,设定阈值,采取相应的减速操作。根据时间差距测法计算出发射点距障碍物的距离s。当距离低于某一数值时,说明即将撞到某物,采取停车操作。反之说明周围无障碍。通过检测码盘脉冲频率判断速度,由于速度较慢且精度要求不高,所以这里采用线性调整即可。

本装置通过PID 反馈控制对舵机角度进行微调,使用编码器检测出的角度作为实际值,向无线模块接收到的理想值逼近。比例部分的引入是为了及时成比例地反应控制系统的偏差,对舵机做主要调整。积分作用的引入,主要是为了保证被控量在稳态时对设定值的无静差跟踪,微分作用的引入主要是为了改善闭环系统的稳定性和动态响应的速度[6],通过PID 控制,更加准确快速的完成响应,提高了系统的时效性。

电机控制程序主要做判断工作,根据无线通信端接收的指令,L298N 同时驱动2 路直流电机。以其中一路为例,当IN1 和IN2 为00 或11 时,电机处于制动状态,阻止电机转动: 当IN1,IN2为01 时,电机正转;当IN1,IN2 为10 时电机反转。为掌控接收机运动速度,对使能端输出PWM 脉冲,不同的占空比,实现不同的速度调节。

图6 程序流程图Fig.6 Program flow diagram

3 系统测试

本设计靠无线传输数据,所以传输距离决定着设计的好坏。但因电磁波,电磁场,建筑物,人体影响等多种环境影响都会对传输距离产生一定的影响,导致实验数据因实际操作环境的不同而有不同的传输效率。

在空旷场地,最远通信距离达到60m,在有建筑物阻隔的时候,最远传输距离缩减为40~50m 之间。

在接收机与发射机相距一米的情况下我们对整机进行了灵敏度测试,实验数据如表1 所示。舵机灵敏度约<0.1s(从发射机发出信号到接收机做出相应的反应)。

表1 误差测试Tab.1 Error test

大臂受重力影响所需扭力最大,其误差一直较大,相比较而言其它部位舵机因其位置关系误差有不同的变化。手指部分的误差主要由机械结构造成,其硬件结构中使用了非精密齿轮,造成抓取过程误差有一定变大。

4 总结

利用STM32 微控制器,编码器,NRF24L01 通信模块等,实现了一种具有同步功能的无线同步机械手臂。该设计不仅具有同步性,使得残疾人在取物时能够根据自己的意图而且操作摆脱了传统中线路的限制,用无线收发数据,方便使用者远程操控。无线同步手臂在为残疾人提供方便的同时,也可以为健全人们提供一种全新的服务,更好的享受生活。

[1] 蔡自兴.21 世纪机器人技术的发展趋势[J].南京化工大学学报,2000,4.

[2] 蒋新松.未来机器人技术的发展方向[J].机器人技术与应用,1997,2.

[3] 楼然苗,李广飞.51 系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.

[4] 宋永端.移动机器人及其自动化技术[M].北京:机械工业出版社,2012.

[5] 徐德,邹伟.室内移动式服务机器人的感知、定位与控制[M].北京:科学出版社,2008.

[6] 樊国平.智能PID 控制系统的设计与研究[D].浙江:浙江工业大学,2005.

猜你喜欢

舵机手臂编码器
手臂上的抓痕
含齿隙弹载舵机的全局反步模糊自适应控制
基于FPGA的同步机轴角编码器
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
基于PRBS检测的8B/IOB编码器设计
章鱼长长的手臂是用来做什么的
抱手臂的娃娃
JESD204B接口协议中的8B10B编码器设计
完美的手臂