摘 要:介绍了一种基于单片机的两轴图书录入系统的设计。最终实现的录入系统能够按照编写的流程对图书进行翻页、压平、拍照等动作。基于此机械可实现图书馆、档案馆藏书、资料的自动电子化转档。本机械全部由单片机自动控制,避免了人工完成这些机械的重复劳动。
关键词:图书录入;单片机;自动化;步进电机;气路
纸质档案、书籍的电子化转档一直是比较机械繁琐的工作,本文介绍了一种图书录入系统的设计。该设计能够将固定在录入位置上的图书逐页翻页并拍照。目前具有类似功能的机械在全球并不多见,本设计在实际中有较高的应用价值。本设计使用STM32[1]单片机作为控制核心控制机械的两大系统:运动控制系统和气路控制系统。最终两部分系统相互配合完成书页的翻页、压平动作。
1 图书录入系统框图
如图1所示,整个系统以STM32F103ZET6单片机为控制核心,它负责输出系统的运动控制信号和电磁阀控制信号。单片机的信号经放大电路放大、稳压后输出到步进电机驱动器和电磁阀上。步进电机驱动器接收单片机的控制信号来操作步进电机运动。
系统的执行端为4个步进电机和3个电磁阀。4个步进电机分为两组分别执行水平方向和竖直方向的运动。步进电机驱动接收单片机的信号,控制步进电机运行的具体方向和距离。电磁阀按照单片机的信号控制由气泵产生的高压气流运动,参与图书的翻页动作。
2 机械部分
机械部分作为整个系统的支撑,是控制的最终执行端。除了固定框架,功能性的机械有两个部分:运动机械和气路。
2.1 运动机械
运动机械由步进电机、传动皮带和运动框架组成,在水平方向和竖直方向分别设置了一对步进电机用来操作水平方向和竖直方向的运动。
给定竖直方向和水平方向步进电机的方向和脉冲数以后,吸盘可以运动到机械限制允许的任意坐标。机械运动的控制通过对步进电机驱动器设置对应的运动方向以及运动脉冲数实现。
2.2 气路
气路由气泵、电磁阀、真空阀、吸盘及其升降缸组成。气泵产生的高压气流通过电磁阀、真空阀配合在吸盘处产生吹气、吸气气流,以及通过升降气缸控制吸盘的升降。
与吸盘相关的有4个动作:吸盘上升、吸盘下降、吸盘吸气和吸盘吹气。吸盘的上升与下降通过向气缸的对应口吹入高压气流来完成,这两个动作由同一个阀控制。吸盘吹气动作由吸盘气流控制阀直接将高压气流接入吸盘气口即可完成。气路示意图如图2所示。
比较复杂的是吸盘的吸气。由于气泵产生的是高压气流,而吸气需要吸盘处气压低于大气压,即需要产生负压。因此气路里面用到了真空阀,在真空阀入口吹入高压气流则其出口处就能产生低于大气压的负压。在执行其他动作时,负压是不必要的,所以在真空阀之前加装了气流控制阀控制真空阀入口气流的通断。只有在需要吸盘吸气时气流控制阀才打开。
2.3 系统相关电气设备的原理
机械部分的电气设备主要为步进电机和电磁阀,它们是控制信号的最终执行端。通过它们对电信号的执行来完成单片机中存储的动作。步进电机的动作有水平运动和竖直运动,分别由对应方向上的一对步进电机来完成。电磁阀控制的气路动作有4种,由气缸控制阀、真空阀气流控制阀、吸盘气流控制阀3个电磁阀配合完成。
2.3.1 步进电机的电气原理
步进电机是一种按照固定步进角转动的无刷式同步电机。其转角即使没有反馈也能精确控制,所以常用于开环系统中进行精确的位置控制。步进电机不像有刷直流电机,给以工作电压就会转动。它有多组齿状磁极围绕转子排列。磁极由外部控制电路(如微控制器)控制供电。当步进电机工作时,第一组磁极通电,定子齿轮的齿被磁极吸引。齿轮的齿与第一组磁极对齐后,它们会与下一组磁极有一个较小的角度偏差。所以,当下一组磁极通电且第一组磁极断开后,定子齿轮又转动一个微小的角度与当前通电的磁极对齐。步进电机转动的过程就是不断地重复这个动作。每个微小转动被称为“步级角”,整数倍的步级角构成一圈完整的旋转。因此步进电机可以按照精确的角度旋转。
2.3.2 电磁阀的电气原理
本设计中有3个电磁阀,分别是:气缸控制阀、真空阀气流控制阀和吸盘气流控制阀。它们通过接收24 V的0/1信号来控制接入其内的气流的通断以及方向。
气缸控制阀有一个气流输入口和两个气流输出口,气流输入口输入的是来自气泵的高压气流,气流输出口分别接升降气缸的上升气流口和下降气流口。该阀响应0/1信号,当信号为1时,输入口的气流被导入下降气流口,则气缸上部的高压气流推动活塞下降;反之,气流被导入上升气流口,气缸下部累积高压气体推动活塞上升。
真空阀气流控制阀只有一个气流输入口和一个气流输出口,它的作用是控制入口到出口的气流的通断,进而控制与其气流出口相连接的真空产生阀是否产生负压。当真空阀气流控制阀信号为1时,出口与入口导通,高压气流进入真空产生阀,产生负压。当真空阀气流控制阀信号为0时,出口与入口断开,真空产生阀没有高速气流通过,无法产生负压。
吸盘气流控制阀有两个气流输入口一个气流输出口,两个气流输入分别为来自气泵的高压气流和来自真空阀的负压气流(只有当真空阀气流控制阀的信号为1时这个口才有负压气流)。气流输出口接到吸盘的气孔上。由此,吸盘气流阀可根据电信号控制吸盘的气流为吸气还是吹气。当信号为1时,气流输出口被连接到高压气流输入口上,吸盘处产生吹气气流。当信号为0,且真空产生信号为1时,气流输出口被连接到负压气流输入口上,吸盘处产生吸气气流。
3 放大电路
由于单片机的驱动能力有限,为了驱动步进电机集成控制器的光耦合和电磁阀的24 V信号,设计了以ULN2003A和TIP127组成的放大电路。放大电路主要分为两个部分:光耦合驱动和电磁阀驱动。
3.1 步进电机驱动器光耦合驱动电路
图3所示为光耦合驱动电路,电路的输入为左边的P5和P6接口,连接到单片机的对应管脚,管脚分别提供如下信号:4个集成控制器的使能信号E、4个集成控制器的方向信号D和每个方向上步进电机的运动脉冲信号PUL,经过2003A芯片内部的达林顿管稳压后变换为可驱动光耦合的信号,通过P1、P2、P3、P4 4个四脚接头分别接到4个步进电机集成控制器。
3.2 电磁阀驱动放大电路
本设计采用的所有电磁阀工作在24 V,以24 V为1信号,0 V为0信号。电磁阀驱动电路中以24 V稳压源作为电磁阀信号源,使用TIP127[2]作为电子开关,使用ULN2003A将单片机的5 V信号放大到24 V驱动TIP127开关。
通过2.3.2节可知本设计中有3个接收电子信号的电磁阀,分别是气缸控制阀、真空阀气流控制阀和吸盘气流控制阀。每个电磁阀都有一根信号线与地线。实际电路中,每个阀的信号和地分别与各自TIP127的集电极与公共地相接。整个电磁阀驱动放大电路图如图4所示。
4 控制核心与软件设计
本设计的控制核心为STM32F103ZET6[3-4]单片机。基于此单片机运行机械、电磁阀的控制程序以实现各种不同的运动,最终实现翻书动作。
4.1 底层函数
编写软件时,先将底层的功能封装成函数,如电机使能、电机方向。最初设计时步进电机脉冲输出函数可以用普通I/O输出,也可以使用PWM模块直接产生步进脉冲。但是PWM口输出的脉冲个数无法精确控制,最终方案使用I/O口完成步进脉冲输出。
步进脉冲输出的最底层函数是void xShift(int delay)函数[5],该函数用来在指定方向上输出一个脉冲,x为H或V分指定水平方向和竖直方向(下同),入口参数delay决定了脉冲的周期为2×delay×100 ?滋s。
将这个函数封装可得到运动算法函数:void xPul(long nPul,unsigned char dr),该函数用来执行在dr指定的方向上运动nPul个脉冲的运动算法。为了避免急起急停,本函数通过修改每个Shift( )的周期来实现速度曲线按梯形变化:保持一定斜率从最低速上升到最高速,维持最高速,按一定斜率从最高速降到最低速。
3个宏量决定了速度曲线的相关数据:x_HSDLY最高速度延时、x_LSDLY最低速度延时、x_ACCER速度升降速率倒数。这3个宏与xPul函数配合产生周期变动的脉冲来控制步进电机按照期望的速度运行。
最终会使用到的函数是void xMove(long wFrom,long wTo)函数,该函数的两个参数指定了运动的起止点相对于坐标原点的脉冲数。通过起止点各自相对于原点的脉冲数可以计算出两个信息:从起点运动到终点需要产生多少个脉冲,以及从起点运动到终点的运动方向。这两个参数传入xPul函数,xPul函数最终调用xShift产生具体的脉冲来实现运动。xPul函数产生的速度曲线如图5所示。
4.2 动作控制主程序
按照设计的功能,机械在上电后依次完成如下动作:
(1)提升玻璃板,运动到封面上方;
(2)压下玻璃板,为封面拍照;
(3)提升玻璃板;
(4)运动到吸取页面位置,吸取页面;
(5)运动到放下页面位置,吹下页面;
(6)运动到拍照位置,压下玻璃板,两个摄像头同时为左右两页拍照;
(7)重复步骤(3)~步骤(5),直到整本书翻完。
该系统运动控制由单片机输出使能、方向以及脉冲信号控制步进电机驱动器从而控制步进电机的启停、方向以及速度,气路控制通过单片机输出开关信号控制气阀打开或闭合,从而实现吸盘升/降以及气流吹气或吸气。通过步进电机与电磁阀的动作配合实现各种实际的动作,如翻书、压平等,从而很好地代替了人工的重复劳动。
参考文献
[1] 李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008.
[2] 程琤.单片机原理与应用系统开发[M].北京:机械工业出版社,2011:1-9.
[3] 王景景.单片机原理及应用[M].北京:机械工业出版社,2010.
[4] 肖看,李群芳.单片机原理、接口及应用:嵌入式系统技术基础(第2版)[M].北京:清华大学出版社,2010.
[5] 谭浩强.C程序设计[M].北京:清华大学出版社,2005.