APP下载

智能多路径图书分拣机器人设计

2020-12-10成凤敏张学辉

唐山学院学报 2020年6期
关键词:舵机程序设计单片机

成凤敏,张学辉

(唐山学院 智能与信息工程学院,河北 唐山 063000)

0 引言

一家拥有众多借阅者的图书馆,每天会有大量的图书出借和归还,由于人工难以将归还的图书快速归放原位,使得图书堆积,无法有效利用,既不利于图书的整备,也不方便读者借阅。因此,为实现图书快速归位,设计了一种智能多路径图书分拣系统来代替人工进行分拣工作,此系统通过图像扫描进行图书种类识别,并利用无线传输模块实现上位机与下位机之间的数据交互,借助机械臂快速有序地完成图书的归架整理工作。

1 方案设计

系统包括以扫描枪为主体的识别部分和以控制单片机为核心的机器人分拣部分,系统中用到两个单片机,分别为处理分析扫描数据的扫描单片机和控制机械臂动作的控制单片机。系统框架如图1所示。

图1 系统框架图

识别部分包括扫描枪、扫描单片机和无线发送模块。扫描枪扫描图书上的6位条形码获取图书信息,通过MAX232进行编译并传入扫描单片机,扫描单片机将信息编译成无线传输模块能够识别的信号,再通过无线发送模块转发至机器人分拣部分,完成识别与分拣两部分之间的通信。

机器人分拣部分包括电机驱动模块、超声波测距模块、光电传感器、无线接收模块、控制单片机和机械臂。无线接收模块接收识别部分发送来的信号,并传给控制单片机,之后控制单片机向机械臂发出信号,直接驱动机械臂上的3个舵机,对目标图书进行抓取。抓取图书后,控制单片机向电机驱动模块发出信号,使电机和两个寻迹模块启动。机器人沿规划轨迹行驶,同时超声波测距模块启动,在前进过程中不断检测并及时避障。当寻迹模块检测到目标地点的标记物时,机械臂停止前进,并将抓取的图书放下。

2 硬件系统设计

2.1 无线传输模块设计

无线传输模块作为系统的通信中枢,可将识别部分与机器人分拣部分进行有效的连接。目前的分拣系统由于受硬件和软件的诸多限制,在使用上都是一台上位机单独控制一个分拣机器人。要实现一台上位机控制多个机器人完成所有工作和总分配,需要用到无线传输模块。

无线传输模块选用低功耗设计的NRF24L01,工作在发射模式下发射功率为10 dBm时电流消耗为11.3 mA,接收模式下电流消耗为12.3 mA,掉电模式和待机模式下电流消耗更低。

无线传输模块采用串口型,由USB转TTL模块转接到电脑上,通过电脑的串口助手读取无线传输模块上的信息,这有助于对无线传输模块的信息进行调试。NRF24L01的RXD引脚连接USB转TTL模块的2引脚和单片机TxD/P3.1端口,USB转TTL模块的3引脚连接单片机RxD/P3.0端口。

2.2 机械臂控制系统设计

在机械臂控制系统中,利用单片机控制机械臂完成抓取图书的动作。控制机械臂的舵机有3个,编号为1号、2号、3号,在机械臂上由上至下放置,采用并联方式依次相连,3个舵机之间相互配合,准确地抓取目标图书,完成抓取收纳任务。最上面的1号舵机,控制抓物钳的张开和收拢;中间的2号舵机,调整抓物钳的水平位置,便于抓取目标图书;最下方的3号舵机,调整舵机的水平方向。连接3个舵机的每条控制线都在单片机上有所对应,舵机直接与单片机连接,便于电信号处理。将机械臂控制端口置于单片机的一侧整齐排列,有利于接线和电信号的传输,且不易和其他电路串联。3个舵机的电源和地线连接在一起,由单片机的电源统一供电,这样有利于检测出在机械臂上所出现的各种问题。

2.3 电机驱动模块设计

选用L298N作为4个电机的驱动模块,L298N内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,内含双H桥电机驱动芯片,其中每个H桥可提供2 A的电流,功率部分的供电电压范围是2.5~4.8 V,逻辑部分为5 V供电,接受TTL电平[1]。

驱动模块的4个端口IN1-IN4与单片机的P1.0-P1.3端口一一连接,用来接收单片机上的电信号。为了维持电信号的稳定,提升单片机所输出的信号电压,在连线中增加上拉电阻A102J。另外,为了防止电机在运行过程中因电压问题出现不同步现象,对L298N采取单独供电。

2.4 超声波测距模块设计

超声波测距模块用于机器人在行进过程中检测前方是否有障碍物,做到有效避障。通过发送和接收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离[2]。设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用D=ct/2求出[3]。

3 程序设计

程序设计分模块进行,主要包括三部分:扫描程序设计、行进程序设计和机械臂抓取程序设计。

3.1 扫描程序设计

单片机接通电源后运行主程序,主程序开启定时器和定时中断程序,每10 ms检测一次所连接的引脚获取的信号,在收到信号后单片机对MAX232的信号进行读取,并在检测完信号后将连接的引脚信号进行复位,防止二次检测,也防止后面的信号无法传输。信号复位后单片机将信号进行编译,首先单片机发送启动信号给NRF24L01,当NRF24L01接收到启动信号后才从单片机中接收信号,然后单片机会不断地将信号发送给NRF24L01,同时NRF24L01将接收到的信号以无线信号直接传送出去。

3.2 机器人行进程序设计

电机之间性能不同,导致电机在相同的电压、电流参数下转动速度不同,如果一个电机比另一个电机转动速度快,机器人不会走直线而是转圈,因此需要对电机性能进行测试,即调整驱动程序。为了让4个电机转动的速度为同一个数值,将电机在同电压下进行两两测试,经过3次比较之后找到最快转速的电机,将其所供给的电压设为一个定值20,其后所有电机的所供电压在此基础上进行相应的增加,然后依次和最快转速的电机进行两两测试,当机器人能进行直线行驶时记录此电机的电压,最后得出其余3个电机的供电数值。

完成4个电机的程序设计后,再对寻迹模块进行设计。寻迹模块在检测到地点标记物黑线时会变为低电平输出。单片机内启用定时器对各引脚电信号进行检测,当检测到对应引脚达到低电平时,说明机器人前端的一侧检测到黑线,此时如果加快反向侧的电机转速,可使机器人快速脱离黑线。但是当机器人运行速度过快,很容易在检测时来不及反应而直接冲出轨道,同样在转弯的时候也容易在持续的加速中冲出轨道,找不到继续行进的路线,因此在程序设计时没有加快反向侧的电机转速,而是减慢了所有电机的转速,并且将检测到黑线那一侧电机的转速再次减慢,形成更大的速度差来达到相同的效果,这样保证了机器人在偏离轨道或者转弯时能够平稳行进,提高了容错率。机器人行进程序流程如图2所示。

图2 机器人行进程序流程图

3.3 机械臂抓取程序设计

机械臂抓取动作需要驱动机械臂上的3个舵机进行转动,因此需要单片机的3个引脚对其进行控制。单片机对舵机持续发送电信号,使舵机不停地转动,当信号中断时,舵机停止转动,使机械臂固定在某位置。

3个舵机的转动角度和转速是固定的,在设计时将机械臂的转动时间调到极限,将机械臂先转动到一个极限位置进行复位,然后再进行转动,转动一定角度时停止,这样就很容易达到指定位置。

当3个舵机调整角度的程序完成后,在运行程序时将3个舵机的运行顺序分开,依次运行。先运行3号舵机程序完成机械臂水平转动角度,然后运行2号舵机程序调整机械臂上下距离,最后运行1号舵机程序使钳子张开或收缩进行抓取,然后2号舵机再抬高抓头,完成收纳动作。机械臂抓取程序流程如图3所示。

图3 机械臂抓取程序流程图

4 结论

智能分拣机器人采用静态卸载,只要图书电子标签的信息正确,即可实现分拣零差错率。与人工分拣相比,智能分拣机器人不仅省时省力,而且还具有分拣差错小、可靠性高和拓展性强等优点,同时系统电路结构简单,成本低。因此,具有广泛的应用前景。

猜你喜欢

舵机程序设计单片机
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
从细节入手,谈PLC程序设计技巧
基于单片机的便捷式LCF测量仪
基于dsPIC单片机的飞艇舵机控制实现
高职高专院校C语言程序设计教学改革探索
超音速舵机保护器