基于单片机的机械臂的研究
2016-03-13西北民族大学电气工程学院邓二伟
西北民族大学电气工程学院 邓二伟
基于单片机的机械臂的研究
西北民族大学电气工程学院 邓二伟
随着现代工业、医药等领域的不断发展,某些设备或者医药研究用品所处的环境对研究工作人员的身体有很大的伤害,他们有时不得已用手臂来操作某些东西。因此为了减少人员的身心伤害,本文设计了一种能够代替人工的机械手臂。
单片机;机械臂;研究
1 基本设计思想
本次设计采用51单片机做主控,外围设备有舵机、无线收发器以及摇杆遥控等设备。通过摇杆可以控制机械臂各个旋转部位的角度,将采集到的摇杆数据通过无线发送设备发送给机械臂接收端,通过对数据的解析,再对舵机进行控制。
2 各模块分析
2.1摇杆位置的获取
本次设计的遥控端采用摇杆设计,通过对摇杆的操作控制手臂。本次设计中,摇杆内部实质上是一个电位器,电位器两端分别接正负极,抽头接在A/D转换通道上。由于51单片机没有模/数转换功能,因此本设计采用PCF8591芯片来进行模/数转换。改变摇杆位置,那么抽头的电压也会随之改变,这样通过对电压值的读取可以获取当前摇杆转动位置。
2.2数据的整合
本次设计采用五个舵机控制手臂,故而需要五个数据操作机械臂,包括四个位置数据,和一个指令数据。位置数据包括四个舵机的旋转位置数据,另一个是控制夹紧与松开的控制数据。该A/D转换芯片是8位的,数据大小刚好是一个字符的大小。因此这里设置一个长度为6的字符数组,尽可能的将数据减小到最小,避免发送设备发送数据因数据位长而增加延时。
2.3舵机控制
接收端接收到发送端发送的数据后,将数据分别对应到每个舵机的数据控制线上。舵机是通过占空比来控制旋转角度的,在20毫秒的周期下,高电平时间为0.5毫秒到2.5毫秒间,舵机大约可以从零度转到180度。因此可以利用定时器中断模拟占空比输出控制舵机角度。
3 舵机的控制
本次设计舵机采用6V供电,查阅资料可知在该电压下舵机的灵敏度较高,而且扭矩较大。用单片机对其进行I/O口模拟PWM输出时,一定要在该引脚接上拉电阻。用示波器观测其波形时,如果没有上拉电阻,单单引脚输出时可以出现波形,但是将该口与舵机数据线连接时,波形均是低电平,证明单片机引脚没有驱动舵机的能力,因此需要上拉电阻,再次用示波器观察时恢复波形。另外,电路整体需要共地,否则舵机无法识别该引脚是高还是低,因此会出现波形混乱的现象。
在本设计中,因为舵机数量较多,故而需要多个引脚驱动。为了防止舵机较多而出现的电流过大烧毁稳压,因此需要每个舵机单独供电,以保证舵机摆角的准确性。舵机属于位置式的,当转过的角度越大时,舵机的转速越快,当快要到达目标角度时,速度变慢。为了使舵机转动连贯,在转动时将其分割成若干的小的角度,转动小角时加上很小的延时,就可以控制其转动速度。但是,如果延时取值不得当,会出现卡顿和舵机发烫现象,这就需要对其进行多次实验,取最佳值。
4 摇杆数据获取
由于摇杆在遥控器上的偏转有限,而内置电位器却可以转动很大角度,因此需要将每一个摇杆和旋钮的转动最值测量,然后对应到舵机的旋转最值,二者相比,可以求出一个常数,即比例系数。用该系数与电位器旋转偏差相乘,即可得出对应位置的舵机所需要的数值。再将该数值通过发射器将数据发送到控制端以控制舵机。
本次设计中的摇杆主要通过A/D转换器来获取该数据。前文提到,本次设计的数模转换芯片是PCF8591。该芯片是I2C总线协议的,但是51系列单片机是没有该协议接口的,因此还要用引脚模拟该协议,从而获取摇杆数据。另外,将摇杆和旋钮对应的电位器的抽头要与转换通道相连接。
5 数据发送间隔
数据发送间隔会影响机械臂响应的快慢。如果发送时间间隔较长,那么机械臂响应会很慢;如果发送时间间隔较短,会出现抖动现象,而且舵机会发烫。为了使舵机相应速度既快又不发生抖动,本设计采用定时器中断的方式实时发送数据,并且将数据量化使得舵机摆角流畅。在定时器中断中,获取四路模数转换值和按键指令,同时,在主函数中,不断发送数据。定时器定时时间为20毫秒,而发送是实时的。这样在摆动摇杆和转动旋钮时机械臂会得到及时的响应。
6 机械臂的响应
接收端接收数据是实时的,一旦接收到数据立即相应机械臂。接收过程如下:首先,建立一个机械臂响应函数,带有一个参数,就是目标角度值。在函数体中,通过传参,将目标角度值通过函数中的PWM占空比调节达到期望值。在此过程中,并不是将占空比直接调到参数值,而是通过循环渐进到期望值,这样就会使机械臂动作连贯而且有运动过程。另外,为了使机械臂完成整个动作,需要设置一个标志位,等待动作完成,继而接收下一组数据。
当接收到一组数据时,舵机组是同时完成各自的动作还是逐个舵机完成相应的动作?如果同时工作,那么舵机会同时运转,那样会使电路中电流增大,即使是单独供电,也会影响某个动作较小的舵机,因为舵机上连接机械支架等器件,使得舵机转动时存在阻抗,这样会使电流迅速增大,拉低其他局部的电压,导致其他局部电路工作不正常,即舵机摆角不准;如果舵机逐个完成作业,那么操作人员等待的时间较长。其实,就像人们在玩遥控车,对某个遥控的东西,都是针对性的操作。操作人员通过摇杆控制机械手臂,一般都是先达到动作的趋势,然后再慢慢调整,调整过程中,一般情况都是针对某个部位进行调整的。因此,本次设计采用舵机同时响应的策略。
7 定时器中断配置
由于51单片机没有PWM输出,因此需要对其进行模拟。利用定时器中断可以输出比较精确的模拟PWM方波。本次设计采用12MHz晶振,那么定时器计数器中的数加一所用的时间是1微秒,而设计所需要的是周期为20毫秒,高电平区间是0.5毫秒到2.5毫秒之间并且可以划分大约100个精度的时间间隔。由上条件可以将定时器中断的定时时间设为20微秒。由于定时时间太小,故而将定时器设为8位自动重装载计数模式,定时器计数器初值设置为236,定时器中断即设置完毕。
8 模拟PWM输出
根据上述过程所配置的定时器中断,可以进行PWM方波模拟。在中断函数中设置一个计数静态变量t,周期为20ms,需要计数一千次。再次设置五个字符型全局变量(控制变量),分别为控制五个舵机的计数值,它们的取值范围为25到125。
当t的计数值小于控制变量时,相应的引脚为高电平,当计数t等于控制变量时,电平反转。这样,只要改变这五个全局变量的大小,即可对引脚输出的PWM的占空比进行调节。当然,一定要在该引脚添加上拉电阻,否则无法驱动舵机。
9 调试
该设计分为硬件和软件两部分,上述是对某些硬件和一些软件的讲解。但是需要根据实物进行调试,比如摆角延时要根据实际状况进行调试,如果机械臂的重量过大,就应该减小摆动延时等。51单片机有两个外部中断请求,可以充分将它们利用起来进行调试。比如外部中断0可以调节摆角延时大小,外部中断1调节角度细分间隔等,具体情况要根据实际而定。供电系统用到5V和6V即可,芯片自行选择,稳压电路要设计合理,采用单独供电模式可减缓稳压芯片的负荷。
[1]方龙,陈丹,肖献保.基于单片机的机械手臂控制系统设计[J].广西轻工业,2008,08:89-90.
[2]卢建设,陈兆阳.基于单片机的多自由度机械手臂设计[J].科技创新与应用,2013,31:115.
[3]贾伟涛.单片机控制机械手臂的设计与制作[J].电子制作,2006,05: 33-34.
邓二伟(1994-),男,山西大同人,西北民族大学电气工程学院,研究方向:嵌入式物联网。