基于三自由度的智能物流小车

2019-10-10 07:17郑登华贺一烜柏孟杰
科技传播 2019年18期
关键词:舵机机械手程序设计

郑登华,贺一烜,柏孟杰,张 星

1 智能物流小车的设计

智能物流机器人使用的材料:Arduino mega 2560 控制板,步进电机,TB6560 步进电机驱动器,全向轮(麦克纳姆轮),黑白标传感器,二维码,OLED 显示屏,舵机,openmv,航模电池等。

智能物流机器人的结构设计:结构设计主要分为小车底板设计,机械手设计,电路设计以及程序设计等方面。机械手和小车底板以亚克力板为原料,通过激关切割得到我们所需要的零件,然后将其组装,得到一个完整的机械结构,也可以通过3D 打印以及线切割等方式得到所需的零件[1]。大多数小车的底板通常为正方形或者长方形,这样就必须采用四轮结构,不仅耗费材料,而且因为地面摩擦力的原因,会使小车在转向方面存在很多的问题.而我们采用的是三轮结构,圆形底盘,通过步进电机独有的可控转圈数的功能,不仅能实现360 度无死角转弯,而且还能提高转向时的精准度,减少小车转向时存在的误差,同时,小车前进时是由两个轮子带动,这样小车便有3 个方向可利用。

图1 小车正面图

图2 小车侧面图

小车机械手的设计:小车机械手的主要功能是准确抓取与放置,所以用舵机控制是最好的选择,一方面是舵机易于控制,方便调试,另一方面是舵机控制能精确到度数,提高放置物品的精确度。但在比赛中,抓取物品规则大小由抽签决定,并且手爪部分要现场打印,装配,所以机械手的结构最好是越简单越好,用的舵机是越少越好,如果舵机使用过多,不仅会让调试过程变得复杂,也会使放置的误差变大。在此建议大家用2 个舵机或3 个舵机控制,使用2 个舵机时,可采用平行4 杆结构,一个舵机用于控制升降,另一个舵机控制抓取(如图3),而3 个舵机则可以采用以上结构(图2)。

电路控制方面:小车用到的模块种类很多,工作电压也不相同,其中TB6560 步进电机驱动器的工作电压通常是10V 到35V,其他模块普遍是5V 供电,而电池供电则规定在12V 以内,所以必须要使用降压模块给电源降压,才能让模块正常的使用,也可以通过多电源控制,比如单独给步进电机驱动器一个电源,而其他模块一个共用电源。由于这个比赛用的模块比较多,线路也比较复杂,所以建议大家可以制作一块PCB 板,将用到的电源以及模块集成在PCB 板上,这样不仅可以减少线路的复杂度,也可以在小车出现故障时,快速检查线路方面的问题。

图3 平行四杆的机械手

程序设计方面:小车的程序涉及行走路线的规划,小车功能的实现以及物品放置的精确度等等,程序比较复杂,逻辑也比较繁琐,所以建议大家使用模块化编程,将小车实现的功能做成一个库的形式或者定义成函数的方式,使用时调用即可。而在这个程序设计中,最关键的便是步进电机的控制,在这里我们使用步进电机的型号是MG42S1,与之相匹配的驱动器为TB6560,同样也可以采用TB6600,虽然两者控制方法不同,但原理基本相同,再此我重点介绍TB6560 的控制方法,TB6560驱动器适合4.2A 以内的42,57,86 两相/四相/四线/六线的步进电机,步伐控制共有6 种细分方式,大家可根据需求选择,而本文中的小车采用整步的细分方式,具体的程序{digitalWrite(CW,LOW);digitalWrite(CW1,LOW);while(j){digitalWrite(CLK,HIGH);digitalWrite(CLK1,HIGH);delayMicroseconds(500);digitalWrite(C LK,LOW);digitalWrite(CLK1,LOW);delayMicrose conds(500);j-=1;}},其中CW 信号的高低是控制小车轮子转动的方向,当CW 高电平或悬空时为正转,低电平时为反转,而CLK 的高低电平则是控制电机正常运行,需要有高低电平变化才能控制电机正常转动,如果改变高低电平变化的时间,则还可以控制电机转动的速度,不仅如此,该程序还能通过修改文中j 的大小实现控制步进电机转指定的圈数,由于该步进电机的步距角为1.8 度,故当j=200 时刚好可以控制电机转动一圈,也可以在while 里面加入循迹程序,这样便可实现循迹加定位的功能,但这只是步进电机最简单的控制方法,适用于初学者,如果想要实现步进电机更加强大的功能,大家还可以使用PID 算法控制,加入方向,加速度等功能。

2 智能物流小车的结构与程序优化

智能物流小车最初的结构设计与程序设计只能算是设计者的主观想法,如果想要在赛道上稳定,高效的工作,还需要后期花费大量的时间进行调试与修改,例如小车完成后的结构是否能达到比赛要求,机械手结构是否完成其功能,小车功能是否能按照程序设计那样运行等问题,都需要我们进行大量的场地实践,不断完善小车的功能。而对于小车实现功能方面,建议大家在编程时,不要盲目的把自己所有的程序杂合在一起,刚开始就让小车一次性实现所有的功能,这样不仅会导致小车功能无法实现,还有可能导致自己的程序无法编译通过,而更为严重的问题是自己都无法确定小车的问题在哪里,所有建议大家在编写总程序时,一步一步的实现小车的功能,例如可以先实现小车的行走,循迹,再进一步实现二维码,显示屏等功能,因为只有这样你才能及时发现程序调试过程中的问题,这样也方便自己检查。

3 针对2019 年四川省智能物流小车竞赛的一些策略

2019 年四川省智能物流小车于2019 年11 月份开始,完成的功能主要有二维码扫描,颜色识别,显示屏,物料放取,Wi-Fi 网络通信等功能,而其中有一项规定是在4 小时内完成小车机械爪的设计与制作,路线重新规划与程序调试的任务,这个规定就进一步的要求参赛队员之间要有紧密的配合,合理的分工,并且要求路径规划以及程序方面要足够的精简,这样才有可能在4 个小时内完成程序的编写。对于路径的规划,建议大家可以使用坐标法对程序的进行设计,可以先定义一个起始坐标与方向(x,y,d),然后找到小车停止时的坐标与方向(x1,y1,d1),如第一次扫二维码的位置与方向(6,1,2),然后两者之差就可以得出x 方向应走多少步,y 方向应走多少步,中间应旋转多少度,并且还要将小车实时的位置记录下来,作为下一次使用时的初始坐标(x,y,d),尽管这个方法在程序设计时比较困难,但做出了之后的程序在修改中便会变得十分简单,这样也可以使程序在后期修改中更加方便,也更加的智能化。

4 结语

目前,智能物流小车竞赛的难度逐步变大,要求实现的功能也越来越多,无论是结构设计,还是程序设计,都需要花费大量的时间,所以要求团队成员要分工明确,相互合作,才能在竞赛中取得优异的成绩。

猜你喜欢
舵机机械手程序设计
抓取脆弱物体的机械手
基于Visual Studio Code的C语言程序设计实践教学探索
含齿隙弹载舵机的全局反步模糊自适应控制
从细节入手,谈PLC程序设计技巧
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
高职高专院校C语言程序设计教学改革探索
搬运机械手PLC控制系统设计
PLC梯形图程序设计技巧及应用
基于ADAMS与MATLAB的机械手控制系统仿真研究