当前位置: 首页 » 数控技术 » 数控系统 » 正文

基于ARM的桌面型3D打印机控制系统设计


放大字体  缩小字体 发布日期:2018-04-20

3D打印(即三维打印、增材制造),也称作快速成型技术,具有不受零件复杂程度限制,完全数字化控制,无需开磨具等特点,因此3D打印机在生产应用方面有着巨大的潜力。3D打印机主要分为入门级和工业级2种。文中介绍的桌面型3D打印机为入门级,系统采用的工艺类型为熔融挤出成型。

目前桌面型3D打印机控制系统主要采用AVR系列单片机作为核心控制器,该系列单片机工作频率较低、内部外设少,致使该系统数据处理速度慢、电路复杂、调试困难、抗干扰能力差。因此文中设计了基于ARM的桌面型3D打印机控制系统。


1 系统的总体设计方案

控制系统的核心CPU选用基于ARMCorxtex-M3内核的LPC1768微控制器,控制系统主要完成对步进电机的控制、挤出机加热电阻和加热床的温度控制、挤出机工作零点与行程的控制;读取SD卡存放的配置文件、打印数据文件;通过USB与上位机通信。

控制系统的总体框图如图1所示。控制系统的供电通过电源电路提供。系统通过LPC1768微控制器的片内SPI接口读取SD卡里的配置文件、打印数据文件,通过片内USB接口实现与上位PC机进行可靠快速通信,保证打印数据文件及时正确传输,同时上位机可通过USB接口给系统发送控制命令。

两路输出数字信号分别控制加热床加热电路和挤出机加热电路中的低通电阻NMOS功率开关管,实现加热床及挤出机中加热电阻的加热。温度传感器电路的两路模拟量经片内A/D转换通道输入,实现加热床、挤出机温度的检测和控制。四路步进电机驱动电路分别控制X、Y、Z这3个轴的步进电机及挤出机的步进电机,实现打印件的打印。三路行程开关电路定位X、Y、Z轴的原点和运动相对位移量。ISP/JTAG接口用于测试程序的烧写与调试。

2 系统的硬件电路设计

2.1 LPC1768微控制器电路

LPC1768微控制器含有丰富的内部外设使得该处理器特别适合运动控制应用,能够实现单片控制。LPC1768芯片采用32位操作,工作频率可达100MHz,采用3级流水线和哈佛结构,带独立的本地指令和数据总线以及用于外设的第三条线,因此具有数据处理速度快的特点。外设组件包括高达512KB的Flash存储器,64KB的数据存储器,保证了程序及数据处理的空间;USB主机/从机/OTG接口;SPI接口;8通道的12位ADC、10位DAC;4个通用定时器;多达70个通用I/O引脚、标准JTAG测试/调试接口,便于程序调试与程序烧写。因此采用LPC1768无需外部扩展就能实现控制系统的所有功能。LPC1768微控制器电源电压为3.3V;磁珠L7把数字电源和模拟电源分开,磁珠L8把数字地和模拟地分开,电路减少了数字信号与模拟信号的相互干扰;主振荡器接12MHz晶振作为CPU的时钟源,RTC振荡器接32kHz提供RTC时钟输出,作为PLL0、CPU和看门狗定时器的时钟源;S2为微控制器复位按键;TDO、TDI、TMS、TRST、TCK、RST为JTAG接线端口;EXTRUDER_Heat、BED_Heat端口分别连接挤出机、加热床电路,EXTRUDER_Temp、BED_Temp端口分别连接两路温度传感器电路;SD_SSEL、SD_SCK、SD_MOSI、SD_MISO端口连接SD卡电路;由于行程开关电路电源为+5V,微控制器电源为+3.3V,Opto_X_IN、Opto_Y_IN、Opto_Z_IN端口需要接上拉电阻进行电压转换,然后分别接三路行程开关电路;USB_D_P、USB_D_N、USB_Connect、USB_VCC、USB_UP_Led端口接USB通信接口电路。MZ_DIR、MZ_EN、MZ_STEP等端口分别接四路步进电机驱动电路。

2.2步进电机驱动电路设计

步进电机采用两相四线混合式42系列步进电机,工作电压为24V,额定相电流为1.7A,步进精度为5%。步进电机驱动芯片采用Allegro带转换器和过流保护的DMOS微步驱动器A4988。A4988是一款完全的微步电动机驱动器,可在全、半、1/4、1/8及1/16步进模式时操作两相步进电机,输出驱动性能可达35V及±2A。能够为系统所选步进电机提供足够的输出功率。带有内置转换器,易于操作,无须进行相位顺序表、高频率控制行或复杂的界面编程。A4988包括一个固定关断时间电流稳压器,该稳压器可在慢或混合衰减模式下工作。在微步运行时,A4988内的斩波控制可自动选择电流衰减模式(慢或混合)。混合衰减电流控制方案能减少可听到的电动机噪音、增加步进精确度并减少功耗,降低驱动芯片的温度,提供内部同步整流控制电路,以改善脉宽调制(PWM)操作时的功率消耗。内部电路保护包括带滞后的过热关机、欠压锁定及交叉电流保护,不需要特别的通电排序。

A4988步进电机驱动器及外围电路如图2所示。LPC1768微控制器只要控制ENABLE、DIR、STEP这3路端口就能完全实现步进电机的运动。ENABLE端口使能A4988内部的FET输出,ENABLE端口输入为高电平时不使能输出,电机不运动,处于锁紧状态;只有ENABLE端口为低电平时使能输出,电机才可以运动。DIR端口输入信号控制步进电机的正反转,为高电平时,步进电机顺时针旋转,为低电平时,步进电机逆时针旋转。STEP端口输入微步信号,如果LPC1768微控制器按工作频率给STEP端口输入上升沿微步信号,就能够控制步进电机工作。通过调节开关S10、S11、S12控制细分步进量,细分方法如表1所示。

为了克服步进电机运行时存在的低频振荡、高频出力不足容易失步以及定位精度不高等缺,文中系统采用1/16步进量细分法,同时能够使步进电机具有良好平滑运行性能。StepMotor_1B和StepMotor_1A引脚分别连接到2相步进电机其中一相线圈的两端,StepMotor_2B和StepMotor_2A引脚分别连接到2相步进电机其中另一相线圈的两端。电容C29是电荷泵电容产生一个高于VIN1的门电平,另外VIN1与VCP端口之间加一个100nF的电容C40,同时用来驱动A4988中DMOS源端门。滑动变阻器P5提供REF端口电压经内部DAC给电压比较器同相输入端,SENSE1、SENSE2端口的R74、R75电阻取样输出电流给电压比较器反相输入端,当R74、R75两端电压等于内部DAC输出时,A4988输出关闭。本电路的最大输出电流为ITrip-MAX=VREF/(8×RS)=(3.3×10)/(39+10)/8×0.047=1.79A。调节P5,可使步进电机工作在1.7A的额定相电流。

2.3行程开关电路

系统中行程开关采用光电器件,克服了接触式行程开关存在响应速度慢、精度差、接触检测容易损坏被检测物及寿命短等缺点,且体积小、寿命长、精度高、响应速度快、检测距离远以及抗光、电、磁干扰能力。LPC1768微控制器输入端口采用下降沿中断模式,保证了信号的实时处理,提高了控制的精确度。行程开关电路如图3所示。关电开关放置在各个轴运动的零点,当一个轴或多个轴往零点运动时,如果固定在轴上的挡片运行到U1GK152光电器件槽内,挡片挡住了连接在1、2脚上的发光二极管发出的光,U1的3脚输出高电平,Q1导通,OUT端口输出低电平信号。微控制器通过判断端口信号是否为下降沿信号来控制步进电机运动。

2.4USB通信接口电路

LPC1768微控制器内部含有USB通信接口,不需要外加USB接口芯片就能实现与上位机通信。

文中系统采用USB从机模式,数据传输速度最高达12Mb/s,因此保证了数据的及时准确度,提高了抗干扰能力,减少了电路板的面积。USB通信接口电路图如图4所示,USB_Connect端口在软件控制下,该端口用于切换R87、1.5kΩ外部电阻;USB_VCC端口用于监控USB总线电源的存在;USB_D_N端口和USB_D_P端口用于数据传输;USB_Up_Led端口连接发光二极管用于显示通信状态。

2.5温度传感器电路

温度传感器采用负温度热敏电阻,温度传感器电路如图5所示。

热床的热敏电阻,EXTRUDER_NTC1,EXTRUDER_NTC2两端外接用于控制挤出机的热敏电阻。BED_Temp端口、EXTRUDER_Temp端口分别连接微控制器用于读取加热床的加热温度、挤出机的加热温度。


3 系统软件部分的设计

控制系统软件具有通信、数字信号的控制和数据读取与处理等功能,能实现系统的控制要求。系统主程序主要包括系统初始化;通过SPI接口读取SD卡中的配置文件(SD卡中如果有配置文件,替换初始化中的配置文件;如果SD卡中没有配置文件,使用初始化时的配置文件);判断是否有数据通过USB接口接收上位机发送的数据(如果有读取上位机发送的数据,把数据保存在串口接收缓存区;如果没有上位机发送的数据,读SD卡中打印数据文件并保存到SD卡接收缓存区);然后处理接收的数据,如果超过30s没有数据处理,关闭程序控制功能并停止步进电机。软件主流程图如图6所示。当使用SD卡保存打印数据文件时,不需要与上位机连接,使系统工作在脱机打印状态就可以独立完成打印任务。初始化程序主要包括关中断、中断优先级和中断向量表的设置;系统时钟源初始化;SPI串口初始化;系统节拍定时器初始化;定时器0/1初始化;A/D转换初始化;I/O引脚初始化;使能步进电机驱动器A4988的ENABLE引脚;配置文件初始化等。

3.1步进电机控制程序

由于步进电机的极限启动频率比较低,而运行速度比较高,以要求的速度直接启动步进电机不能正常启动,因此步进电机在整个运行过程中需要有一个加速-恒速-减速停止的过程。速度控制是通过控制系统的脉冲频率或换向周期来实现的。步进电机控制采用定时器1中断实现。通过中断读取串口接收缓存区中的数据或SD卡接收缓存区中的数据,计算出步进电机需要运行的总步数、加速步数、恒速步数、减速步数以及步进电机运行方向。然后通过程序判断并给相应的方向引脚和步进引脚脉冲信号从而实现步进电机的正反转运动。步进电机控制程序流程图如图8所示。

3.2温度控制程序

温度控制程序实现了加热床、挤出机的温度控制。通过10ms的定时器中断读取温度传感器上的电压模拟量,计算转换成数字量,再根据温度转换表将数字量转换成相应的温度值,与设定的参考温度比较实现温度的控制。在软件设计中,采用了PID方式调节温度,从而有效地控制温度的偏移,提高了打印件的质量。温度控制流程图如图8所示。

通过上位机软件显示的实际测试温度曲线如图9所示。给出2种控制方式的设定温度为180℃,PID参数为Kp=22.2,Ki=1.08,Kd=114。

从图中温度曲线可以看出,PID调节的温度较无PID调节的温度曲线稳定,无PID调节的温度与设定温度大约有10℃的波动,且温度偏高,有PID调节的温度趋近于设定的温度。

3.3实验结果

实验样机和正在打印3D模型如图10所示。

4 结束语

文中以基于ARM的LPC1768芯片为控制核心,给出了实现桌面型3D打印机控制系统的软硬件设计方法。采用LPC1768微控制器提高了处理数据的能力,加快了打印速度,行程开关使用光电器件,减少了打印件各层的偏移,通过PID调节温度减少了打印件断丝,粗糙等挤出材料不均匀现象,提高了打印质量。样机测试运行结果表明,系统运行性能稳定,打印质量满足了设计要求。

 
 
[ 免费发文

 

 
推荐图文
推荐数控技术
点击排行
网站首页 | 关于我们 | 升级会员 | 联系客服 | 广告合作 | 广告位图 | 使用协议 | 版权隐私 | 蜀ICP备2021024440号
Powered by DESTOON