基于STM32单片机的咖啡拉花机*

2020-03-24 01:53韩高飞许一靖朱峻屹李治恒李博涵潘爽爽高宏峰
山西电子技术 2020年1期
关键词:拉花断电梯形

韩高飞,许一靖,朱峻屹,李治恒,李博涵,潘爽爽,高宏峰

(河南科技大学信息工程学院,河南 洛阳 471023)

0 引言

随着人们生活的需求不断增加和咖啡市场的不断扩大,咖啡已逐渐成为公众喜爱的一种饮料。拉花作为精品咖啡的重要组成部分,拉花图案对顾客的视觉、嗅觉、味觉等感官产生重要影响。

目前,大多数高级咖啡馆均有专业的拉花师,但培养一位初级拉花师需花费六个月的时间和两万元左右的费用。同时越来越繁杂的咖啡拉花图案和急剧增加的顾客数量,使手工拉花已经无法满足需求。因此市场迫切需要一种可以自动拉花[1]的智能设备。

为了解决目前自动拉花中存在的问题,本文设计了一种新型的咖啡拉花机[2]。首先,采用气动活塞式打印喷头,实现奶油连续且稳定体积挤出;通过引入步进电机梯形速度前瞻算法和加减速算法,进一步重新设计拉花机运动控制算法,以解决拉花立体打印[3]过程中遇到的柔性冲击、高曲率拐角突变等问题。本文所提方案能提高拉花的精度和稳定性,实现咖啡拉花机自动拉花的功能。

1 系统工作流程

系统流程图如图1所示。首先,对要打印的图案通过三维建模软件Soidworks建立模型,并将软件建立的模型保存为STL文件格式,STL文件格式中含有模型的三角面片信息。其次,再设置切片软件初始层后续、外层厚度和打印速度等参数,并通过适应性分层算法切割3D模型,规划模型打印路径,将STL文件转化成具有G代码命令流格式的G代码文件,最终保存到SD卡中。SDIO实现把SD卡中的数据读取到STM32的内存中,STM32通过解析G代码命令,产生脉冲信号给步进电机驱动器,而后驱动器控制XYZ轴步进电机运动。

图1 系统工作流程

2 3D打印喷头结构设计

3D打印喷头[4]的重要功能是将奶油连续和稳定体积挤出。为了尽量限制3D打印喷头结构尺寸、减轻重量以及在耗材用完后方便换料,本设计将采用气动活塞式结构的3D打印喷头。3D打印喷头由喷嘴、料筒、活塞和气泵组成,其中气泵选用流量能精确控制的蠕动泵,蠕动泵产生的气压通过泵管等压力推动活塞,活塞再挤压料筒内部的空气将奶油从喷嘴挤出[5]。由于考虑到咖啡拉花打印不需要达到像FDM打印那样高的打印精度,为了减小挤出阻力,并根据实际打印效果分析,喷嘴最终选用了18G(内径0.86 mm,半径为0.43 mm)针管,有效长度为7 mm。

该喷头料筒的优点是采用非固定安装方式,易于更换,可将奶油预先灌装在塑料料筒中,耗材用完后直接更换料筒,工作效率高,用户使用方便。

3 硬件设计

系统硬件主要包括步进电机驱动电路模块和断电续打模块。步进电机驱动电路将控制器输出的微弱电流脉冲信号进行放大,按步进顺序关系分配给各个绕组使之步进动作。断电续打模块利用电容储存余电对微控制器芯片发送断电指令,保存当前时刻的位置信息。当再次上电时,可以继续打印上次未完成的模型。

3.1 步进电机驱动电路设计

本设计使用的是两相四线混合式步进电机,其需要范围为9V~36V的工作电压和1.7A的额定电流。驱动电路将采用DVR8825的微双极步进电机驱动芯片,其具有可调节电流大小、过流和过热保护等功能。驱动电路包括EN、DIR、STEP 3路等输入端口,ENABLE端口用于使能DRV8825内部的场效应管输出,当ENABLE为高时,不使能输出,电机处于锁紧状态;而当ENABLE为低时,使能输出,电机会处于运动状态。DIR用于控制步进电机的正反转,DIR为正时,电机正转;DIR为低时,电机反转。STEP为步进电机脉冲输入端口,STEP收到控制器发送过来的一个脉冲后,产生1.8°的步距角。

3.2 断电续打模块

断电续打模块为AC220V和开关电源的中转区,一端接插座220V,另一端接开关电源,通过继电器控制它们之间的通断。其核心思想是当突然断电时,利用其储存在电容里的余电对微控制器芯片发送断电指令,通知单片机此刻断电以保存当前时刻的位置信息,当再次上电时,继续打印上次未打印完成的模型。使用继电器实现弱电控制强电,光电耦合器PC817隔离前后级电路,避免强电部分对弱电部分的干扰。Single端输出高电平时为正常状态。由于光耦反应速度在几微秒左右,当突然断电时,Single会瞬间发出一个低电平通知单片机来完成保存数据的命令,此时,单片机利用存储在电容里的余电进行数据的保存。实验证明,此功能可以使单片机顺利完成数据的存储。

图2 步进电机驱动电路

4 软件设计

软件设计主要包括步进电机运动控制[6]和人机交互。用户可以在拉花机显示屏上选择想要打印的拉花图案,通过手机扫码完成支付,拉花机为用户制作一杯拉花咖啡。在步进电机运动控制上提出了梯形加减速算法和速度前瞻算法。其中,梯形加减速算法主要用于控制步进电机的运动过程,而速度前瞻算法运用圆弧转接算法对打印路径中的拐角速度进行速度规划。

4.1 梯形加减速算法

咖啡拉花机中的步进电机在使用过程中会遇到以下几种情况:首先,咖啡拉花机在步进电机正常运行状态下速度相对较慢,而步进电机启动、停止和速度变化较大时,咖啡拉花机容易发生失步和过冲现象;其次,步进电机控制系统的极限启动频率远远低于要求的运行速度,当按照要求的运行速度直接启动时,控制系统可能会因速度过高而发生丢步或堵转等现象;最后,当到达终点时STM32控制中心立即停止发送脉冲串,电机转子会因系统惯性而转过平衡位置,一旦系统负载的惯性较大,步进电机转子会转到接近终点平衡位置的下一个平衡位置,并最终停止在该位置。因此,为了解决上述问题,本文将采用梯形加减速算法[7]以保持良好的步进电机运动控制过程。

图3 梯形加减速算法速度变化曲线

由图3分析可知,梯形加减速算法速度变化曲线可以分为以下三个阶段:

1) 加速过程:此阶段的速度保持固定斜率呈现不断上升的变化趋势,得到vi+1=vi+aT,其中vi+1为第i+1个插补周期的速度;vi为第i个插补周期的速度;a为用户设定的加速度;T为插补周期。

2) 匀速过程:此阶段的速度将保持不变,即vi+1=vi;

3) 减速过程:此阶段的速度沿直线不断下降,即vi+1=vi-aT。

由上述曲线和数学模型可知,在给定步数时,速度将从零开始加速,当到达既定的最大速度后保持匀速运动,运动到一定步数后开始减速,最后停下来到达给定的步数,速度曲线类似一个梯形的变化过程,这样可以让电机启动或者停止更加平滑,避免抖动的出现。

4.2 速度前瞻算法

咖啡拉花机在高曲率或拐角处时,拉花机喷头的方向将发生突变,会严重影响拉花精度。本文采用速度前瞻控制算法[8]来减少打印过程中的振动冲击。其主要分为以下几个步骤:首先,预先获取待打印模型的位置信息,基于位置信息以得到规划的最佳速度值。其次,利用得到的多个连续插补段速度值以避免频繁的加减速过程,并对高曲率点或者拐角处的情况及时调整速度。通过预读一部分G代码指令,每次执行插补均可提前获取相邻打印路径的诸多信息,如:变速点位置和速度信息等,并及时对打印速度进行平滑处理。通过圆弧转接算法对打印路径中的拐角速度完成规划,可以实现较好的系统性能。

速度前瞻算法流程图如图4所示。STM32微控制器在执行插补前,需要预读3条G代码指令,其中每条G代码指令均由运行速度值和XYZ坐标轴位置组成。获得坐标位置和运行速度后,通过对位置坐标进行计算以得到2段插补段路程分别对应的脉冲数。在脉冲数的基础上,通过查梯形曲线速度表(将事先规划好的速度曲线存入到ROM中,在加减速过程中控制ROM地址的偏移来生成连续变化的速度值)和每段插补段的运行速度,得到速度值对应的累计脉冲数。最终,基于各插补段G代码命令得到不同的运行速度,并利用本文所提的梯形曲线加减速算法完成咖啡拉花机的速度规划。

图4 速度前瞻算法

5 结束语

本文基于STM32 ARM微控制器设计了新型的咖啡拉花机,在3D打印喷头的机械结构设计和步进电机运动控制算法等方面提出诸多改进方案,解决了目前咖啡立体拉花打印精度低、稳定性差等问题。

猜你喜欢
拉花断电梯形
梯形填数
认识梯形
梯形达人
高压感应电动机断电重启时的瞬态仿真
河北民间舞蹈井陉拉花在高校推广与传承的策略研究
日光灯断电关闭及自动延时开关设计
最怕孩子突然断电那一刻
外婆家的太阳能热水器
3D打印咖啡拉花只需10秒 图案任选
咖啡拉花的逆袭