一种3D打印机控制器及3D打印机控制方法与流程

文档序号:21772837发布日期:2020-08-07 19:20阅读:950来源:国知局
一种3D打印机控制器及3D打印机控制方法与流程

本申请一般涉及3d打印机技术领域,具体涉及一种3d打印机控制器及3d打印机控制方法。



背景技术:

3d打印机是快速成型技术的一种装置,由控制组件、机械组件、和耗材等组成。其中,控制组件对最终模型打印的精度和效果具有决定作用。现有的3d打印机大多以mcu作为主控,mcu指令是以先后顺序执行的,而3d打印机的多个轴的运动是同时执行的,导致不同轴之间的执行存在时延,影响打印精度。现有的3d打印机的运动控制大多是以t型加减速,会导致机器震动和电机失步的情况。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种3d打印机控制器及3d打印机控制方法,能够解决现有技术中3d打印机仅采用mcu作为主控导致的打印精度不高的问题。

第一方面,本申请提供了一种3d打印机控制器,包括处理器和可编程逻辑器件,所述处理器用于接收代码数据,基于所述代码数据生成运动块数据,并发送所述运动块数据给所述可编程逻辑器件,所述可编程逻辑器件用于接收和缓存所述运动块数据,基于所述运动块数据生成对应的脉冲信号,所述可编程逻辑器件采用s型脉冲发生器。

第二方面,本申请还提供了一种3d打印机控制方法,包括以下步骤:

处理器获取代码数据;

所述处理器解析代码数据并基于所述代码数据生成运动块数据;

可编程逻辑器件接收和缓存所述运动块数据,并基于所述运动块数据生成对应的脉冲信号,所述脉冲信号是s型脉冲发生器产生的,用于并行同步发送给对应的驱动芯片以控制电机运动。

本申请提供的3d打印机控制器采用处理器加可编程逻辑器件的架构,例如mcu加fpga架构,mcu发挥其浮点运算和高实时处理性能,fpga发挥在电机驱动上的并行性,能有效消除不同轴之间执行上的时延。fpga实现s型曲线执行脉冲发生器,能有效减小器震动和电机失步,提高打印精度,解决了现有技术仅采用mcu作为主控导致的打印精度不高的问题。

附图说明

图1为本申请的实施例中一种3d打印机控制器的示意图;

图2为本申请的实施例中一种3d打印机控制器中可编程逻辑器件的结构框图;

图3a为本申请的实施例中一种s型加减速的示意图;

图3b为传统的t型加减速的示意图;

图4为本申请的实施例中一种3d打印机控制方法的流程图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1为本申请的实施例中一种3d打印机控制器的示意图。一种3d打印机控制器100包括但不限于处理器101和可编程逻辑器件102。其中,处理器101用于接收代码数据,基于所述代码数据生成运动块数据,并发送所述运动块数据给可编程逻辑器件102。可编程逻辑器件102用于接收和缓存所述运动块数据,基于所述运动块数据生成对应的脉冲信号。所述脉冲信号被发送给步进电机的驱动芯片,驱动芯片根据收到的脉冲间隔和脉冲数控制步进电机走的速度和角度。可编程逻辑器件102与一或多个驱动芯片相连,每个驱动芯片与一个电机相连,3d打印机控制器100的主要作用是将接收到的代码数据转换成每个电机的脉冲,从而控制电机运动。

图2为本申请的实施例中一种3d打印机控制器中可编程逻辑器件的结构框图。可编程逻辑器件102包括但不限于数据接收模块201、数据缓存模块202、数据分解模块203和s型脉冲发生器204,其中,数据接收模块201用于接受处理器101发送的运动块数据,数据缓存模块202用于缓存运动块数据,数据分解模块203用于将运动块数据分解为每个轴的运动数据,s型脉冲发生器204用于将每个轴的运动数据以s型曲线执行脉冲发生器。s型脉冲发生器204至少一个,与至少一个驱动芯片一一对应相连接,至少一个s型脉冲发生器产生至少一个脉冲信号,并行同步发送给所述至少一个驱动芯片,所述至少一个驱动芯片控制电机运动。每个s型脉冲发生器都连接一颗驱动芯片以发送脉冲信号,每颗驱动芯片都连接一个电机,驱动芯片在脉冲信号的驱动下控制对应电机运动。

在本申请的一些实施例中,处理器101可以是mcu,可以是cpu,还可以是其他的asic,可编程逻辑器件102可以是fpga,还可以是cpld。例如,处理器101采用mcu,可编程逻辑器件102采用fpga,则3d打印机控制器采用mcu加fpga的架构。再如,3d打印机控制器还可以采用单颗fpga实现,其中单颗fpga内置一个处理器或者生成软核从而实现mcu与fpga的功能。

图3为本申请的实施例中一种s型加减速的示意图。s型脉冲发生器在fpga的实现方法,为了提高fpga的效率和节约fpga的资源,fpga不进行浮点运算,而是预设一个加加速度(加速度的加速度)aa=c,c为常数,则加速度acc=aa*t,t为时间,得到一个等效的加速度增加1的时钟周期数na=fref/aa,速度vt=aa*t*t/2,得到一个等效的速度增加1的始终周期数nv=fref/acc,则脉冲发送间隔时钟数np=fref/vt*ustep,其中,fref为脉冲发生器的时钟频率,uste为单位mm需要发生的脉冲数。

传统的3d打印机的运动控制是以t型加减速实现的,如图3b所示,每一段运动的加速度是恒定的,根据f=m*a,每次电机的启动加速和结束减速都会存在力的突变,会导致机器震动和步进电机失步的情况。本申请的3d打印机控制器中采用的s型脉冲发生器,是以s型加减速进行运动控制的,同传统的t型加减速相比,能有效减少机器震动和步进电机失步,从而提高打印的精度。

图4为本申请的实施例中一种3d打印机控制方法400的流程图。一种3d打印机控制方法400包括如下步骤:

s401、处理器获取代码数据。3d打印机通常是以gcode为打印文件,主要内容是运动轨迹(g代码)。3d打印机控制器中的处理器首先获取代码数据,处理器可以是mcu,可以是cpu,还可以是其他的asic,例如mcu通过外接接口(例如usb接口、sd卡接口等)获取代码数据。

s402、所述处理器解析代码数据并基于所述代码数据生成运动块数据。s402具体可以包括:处理器解析代码数据,结合当前运动参数生成运动块数据,运动块数据包含电机每个轴的运动距离、速度、加速度等信息。

s403、可编程逻辑器件接收和缓存所述运动块数据,并基于所述运动块数据生成对应的脉冲信号,所述脉冲信号是s型脉冲发生器产生的,用于并行同步发送给对应的驱动芯片以控制电机运动。

其中,可编程逻辑器件可以是fpga,还可以是cpld。例如fpga接收并缓存mcu发送的运动块数据,将运动块数据进行数据分解,以s型曲线执行脉冲发生器产生脉冲信号。s型脉冲的实现方法是:fpga不进行浮点运算,而是预设一个加加速度(加速度的加速度)aa=c,c为常数,则加速度acc=aa*t,t为时间,得到一个等效的加速度增加1的时钟周期数na=fref/aa,速度vt=aa*t*t/2,得到一个等效的速度增加1的始终周期数nv=fref/acc,则脉冲发送间隔时钟数np=fref/vt*ustep,其中,fref为脉冲发生器的时钟频率,ustep为单位mm需要发生的脉冲数。

fpga中的每个s型脉冲发生器都连接一颗驱动芯片以发送脉冲信号,每颗驱动芯片都连接一个电机,驱动芯片在脉冲信号的驱动下控制对应电机运动。脉冲信号是并行同步发送给对应的驱动芯片以控制电机运动,从而保证了多个电机运动的同步性。

本申请提供的3d打印机控制器采用处理器加可编程逻辑器件的架构,例如mcu加fpga架构,mcu发挥其浮点运算和高实时处理性能,fpga发挥在电机驱动上的并行性,能有效消除不同轴之间执行上的时延。fpga实现s型曲线执行脉冲发生器,能有效减小器震动和电机失步,提高打印精度,解决了现有技术仅采用mcu作为主控导致的打印精度不高的问题。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1