AT89S51单片机全地形八足机器人机械手的设计(18)
时间:2017-01-17 19:45 来源:毕业论文 作者:毕业论文 点击:次
图5.2 论文实验调试硬件实物图 5.2 调试结果分析 调试时由于没有加入机械手臂,只能直观地查看每个电机转了多大角度,每个电机转动速率,以及电机的正反转,将其记录下来后,代入模型计算看能否满足要求,调试项目如下,调试结果如表5.1。 (1)手动控制:在上位机界面中输入电机速率,每个电机需要转动的圈数,每个电机的转向,电机”手动控制”按钮,观察电机运行结果 (2)自动抓取:在上位机界面中输入目标位置的坐标,单击“自动抓取”按钮,上位机经过算法算出每个电机的控制命令传给下位机,观察电机运行结果。 (3)自动返回:机械手运行到目标点完成抓取动作后就得返回初始位置,单击“自动返回“按钮查看电机运行结果(实际上电机转动角度应不变,只改变转动方向)。 (4)停止:机械手中途遇突发情况需急停时,单击“停止”按钮,电机应该能立即停止运行。 测试编号 控制命令 执行效果 1 自动抓取(50,50,50) 速率22.5º/s 电机转动角度有小的误差,尤其是肩关节 电机实际运行速率比设定的稍慢 2 自动返回 同上 3 自动抓取(100,100,100) 速率11.25 °/s 电机运行正常 实际运行速率比设定稍慢 4 自动返回 同上 5 手动运行 电机转动圈数(1, 0.5, 2, 1) 电机转动方向(0, 1, 1, 0) 速率 11.25 º/s 电机运行正常 实际运行速率比设定稍慢 6 停止 能及时停止 表5.1 调试结果 5.3 调试过程中遇到的问题及解决方案 问题1:电路设计时有些地方考虑不周到,导致焊接的电路板有错误想改很麻烦。 解决方案:选用了实验室的面包板,和51开发板相结合的方法,直接在面包板上插上电路和开发板通过插线连接进行调试,此种方法简单快捷,纠正也方便。 问题2:当电机速率设定比较大时,电机转动角度就会有误差,如测试编号1的结果所示,速度设置为22.5 º/s时,实际电机运行还是有一定的角度误差的。 解决方案:由于步进电机空载情况下若脉冲频率过高,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频,所以,机械手实际运行时,速度不能太快,否则转动角度会有误差,正如测试编号3、5那样将速率调低时,误差大大减小。 问题3:电机实际转动速率比设定的慢。当我设定转动速率为11.25 º时,理论转一圈需32秒,而实际大概用了34秒。 解决方案:经过思考,觉得可能和延时函数有关,毕竟整个脉冲频率是通过调用延时程序实现的,没有直接用定时器延时来得精确,得修改延时程序中的循环变量的值(k的最大值),不断地调试,最终找到一个合适的值为117。 void delay(uint p) //延时1ms程序 { uchar k; while(p--) {for(k=0; k<117; k++) { } } } 5.4实际机械手系统所需改进地方 (1)手爪抓取物体时的抓取力度是操作人员根据物体的大小、形态来判断手爪电机需转动圈数。为了方便,应该在机械手的手爪上装一个力传感器或一个开关器,判断手爪是否抓牢物体,这样既方便又安全准确。 (责任编辑:qin) |