发布信息

一种基于Marlin固件的3D打印方法

作者:admin      2022-08-31 17:13:05     451



塑料加工应用技术一种基于marlin固件的3d打印方法技术领域1.本发明属于3d打印技术领域,具体涉及一种基于marlin固件的3d打印方法。背景技术:2.自3d打印的提出,主流的打印机固件主要是sprinter和marlin固件。sprinter固件是最早开发的3d打印机固件,而marlin固件和repetier-firmware固件都是由其衍生而来;一般用户在使用marlin固件的时候只需要改变一下configuration.h文件中的一些参数即可,非常方便。因此在这两者中,marlin固件的使用更加广泛,很多打印机控制软件都兼容marlin固件,而sprinter固件已经无人维护,使用人数也越来越少。marlin固件优点:3.(1)预加速功能;可以减少拐角处耗材的堆积,曲线打印更加的平滑;4.(2)支持圆弧,可以得到最平滑的圆弧,减少串口通信量;5.(3)温度多重采样,降低噪声干扰,采样16次计算平均温度;6.(4)自动调节温度,可以随着实际情况改变打印速度;7.(5)支持脱机打印,可以直接读取g码文件,不必是根目录下的文件。8.labview是一种程序开发环境,类似于c和basic开发环境,但是labview与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而labview使用的是图形化编辑的g语言编写程序,产生的程序是框图的形式。9.随着科技的发展和普及,3d打印机已经成为大众常见的一种产品,技术人员也开发出了各种各样的功能,比如三维采集装置平台、三轴写字机和三轴雕刻机。但是在开发这些功能时,采用的是传统编程环境与数据采集卡(或者是运动控制卡)相结合的方法。在传统的编程环境中,对于新手来说,无论是界面或者是后台程序,难度均相对较大;而采用labview则有上手容易和开发速度快的优点,但与labview配套的数据采集卡(或者运动控制卡)价格昂贵,成本较高。从目前公开的资料来看,为数不多的利用labview来开发3d打印系统的相关研究机构都采用这种方式。技术实现要素:10.本发明拟提供一种基于marlin固件的3d打印方法,实现直接调用gcode文件实施3d打印并实现显示打印头的平面运动轨迹。11.为解决上述技术问题,本发明采用的技术方案如下:12.一种基于marlin固件的3d打印方法,包括以下步骤:13.步骤1:启动3d打印系统,并对3d打印系统进行初始化;14.步骤2:建立上位机与3d打印设备之间的通信,完成对3d打印设备的初始化;15.步骤3:设置3d打印设备的启动参数,对3d打印设备进行三维坐标系下x轴和y轴方向的移定性测试;16.步骤4:通过手动控制3d打印设备的打印头在三维坐标系下的x轴、y轴和z轴方向上的移动步进值、移动速度以及复位,并设置打印时各部件的参数;17.步骤5:运行步骤3中所设置的启动参数,并在前面板上图形化显示3d打印设备所采集到的数据;18.步骤6:运行打印文件,开始进行打印。19.优选的,所述步骤1包括以下步骤:20.步骤1.1:确定与3d打印设备相连的串口,并保存确定的串口;21.步骤1.2:根据3d打印设备的设计极限,输入三维坐标系下x轴、y轴和z轴三个方向下的位移最大值,确定被打印物体的最大体积。22.优选的,所述步骤2包括以下步骤:23.步骤2.1:设置3d打印设备的打印头相对于复位原点的移动距离和移动速度,分别在三维坐标系下的x轴和y轴方向上按照设置的参数作往复运动;24.步骤2.2:前面板基于传感器的检测信息获取打印头相对于复位原点之间的距离,并在前面板上实时显示。25.优选的,所述步骤3包括以下步骤:26.步骤3.1:在前面板上设置打印头、热床和3d打印设备工作空间的温度;27.步骤3.2:在前面板上设置风扇转速,调节3d打印设备工作空间的温度;28.步骤3.3:在前面板上设置打印头的移动速度和单步移动距离,分别对x-y平面和z轴方向进行复位,或进行三维总复位;并手动控制x-y平面上八个方向以及z轴的两个方向的移动,并基于出料量设置挤出头的挤出与回退。29.优选的,所述步骤4包括以下步骤:30.步骤4.1:前面板获取3d打印设备上的所有限位开关的状态,并以led等的形式显示限位开关的状态;31.步骤4.2:通过前面板设置温度采样频率,并在前面板上图形化显示温度变化曲线。32.优选的,所述步骤5包括以下步骤:33.步骤5.1:通过文档储存路径调用gcode文件,运行gcode文件,并在前面板上实时显示gcode代码;34.步骤5.2:打印头进行走位,且在前面板上通过平面图显示打印头行走轨迹。35.优选的,所述步骤1中对3d打印设备初始化:对准备状态显示标签页中的按键显示为start,并清空温度显示图表,设定3d打印设备的打印头轨迹显示图表的显示范围;并判断3d打印设备是否为自动初始化,若为假,则进入设置标签页,输出空队列,同时通过标签参考号取出设置标签页的文本来与“setting”文件对比,相等时退出对比循环,若有错误则输出错误;若自动初始化为真,则将“initialize”和空字符串连接后放入队列再输出队列供下一步的步骤使用,若存在错误,则输出错误。36.综上所述,由于采用了上述技术方案,本发明的有益效果是:37.1.由于本发明在建立硬件结构成熟的开源marlin固件的基础上,具有功能全面和成本低廉的特点,同时自主开发的labview驱动程序对各个功能模块已形成子vi和控件,可单独进行调用,功能强大,有效提高开发速度。38.2.由于本发明采用labview可视化图形编程的g语言,具有并行运行的属性,各个循环之间可实时互通信息,有效利用计算机资源,增强了系统的实时性,一定程度上消除了打印头走不到位的情况。附图说明39.本发明将通过例子并参照附图的方式说明,其中:40.图1为本发明的控制流程图。41.图2为本发明的后面板程序结构图。42.图3为本发明的系统初始化程序框图。43.图4为本发明的系统初始化程序流程图。44.图5为本发明的发送循环中3d打印机-值改变事件的程序框图。45.图6为本发明的发送循环中3d打印机-值改变事件的实现流程图。46.图7为本发明中更新3d打印机事件的程序框图。47.图8为本发明的接收循环中更新3d打印机的实现流程图。48.图9为本发明的发送循环中保存-值改变事件的程序框图。49.图10为本发明的发送循环中保存-值改变事件的实现流程图。50.图11为本发明的接收循环中保存事件的程序框图。51.图12为本发明的接收循环中保存事件的实现流程图。52.图13为本发明的发送循环中删除-值改变事件的程序框图。53.图14为本发明的发送循环中删除-值改变事件的实现流程图。54.图15为本发明的接收循环中删除事件的程序框图。55.图16为本发明的接收循环中删除事件的实现流程图。56.图17为本发明的发送循环中初始化-值改变事件的陈序框图。57.图18为本发明的发送循环中初始化-值改变事件的实现流程图。58.图19为本发明的接收循环中初始化事件的程序框图。59.图20为本发明的接收循环中初始化事件的实现流程图。60.图21为本发明的接收循环中训练事件的程序框图。61.图22为本发明的接收循环中训练事件的实现流程图。62.图23为本发明的发送循环中开始训练-值改变事件的程序框图。63.图24为本发明的发送循环中-值改变事件的实现流程图。64.图25为本发明的接收循环中开始训练事件的程序框图。65.图26为本发明的接收循环中开始训练事件的实现流程图。具体实施方式66.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。change)、风扇控制-值改变(“fan control”:value change)、温度控制-值改变(“nozzle temp”,“bed temp”,“chamber temp”:value change)、监控数据-值改变(“monitor data”:value change)、方向控制-值改变(“y+”,“x+”,“x+y‑”,“y‑”,“x-y+”,“xy+”,“x‑”,“xy‑”,“z+”,“z‑”,“extrude”,“retract”:value change)、复位控制-值改变(“home xy”,“home z”,“home all”:value change)、调用gcode-值改变(“gcode file”:value change)、运行gcode-值改变(“start gcode”:value change)、暂停gcode-值改变(“pause gcode”:value change)、停止gcode-值改变(“stop gcode”:value change)、开始训练-值改变(“start torture”:value change)、3d打印机-值改变(“3d printer”:value change)、保存-值改变(“save”:value change)、删除-值改变(“delete”:value change)、面板关闭-值改变(panel close);93.所述接收循环中包含的事件任务有:默认(default)、初始化(“initialize”)、更新打印机(“update_printer”)、保存(“save”)、删除(“delete”)、移动(“move”)、禁用步进电机(“disable_steppers”)、复位(“home”)、设置温度(“set_temp”)、设置风扇(“set_fan”)、请求数据(“request_data”)、加载gcode(“load_gcode”)、运行gcode(“run_gcode”)、暂停gcode(“pause_gcode”)、停止gcode(“stop_gcode”)、完成gcode(“finish_gocde”)、开始训练(“start_torture”)、训练(“torture”)、停止训练(“stop_torture”)、关闭(“close”);94.所述计时循环本身有四个参数分别是:时钟源:1000khz(timing source)、周期:1000ms(period)、优先:100(priority)、处理器:-2(processor),内容有一个可以更新周期的控件来调整周期,还有一个获取监控数据(“monitor data”)页文本的属性节点,用获取的文本来判断进入默认(default)和停止(“stop”)事件中的某一个事件。95.通过对以上循环中的事件的组合应用,再加上3d打印设备的初始化和3d打印设备的关闭来完成图1中所示的前面板流程,具体如下:96.所述步骤1中对3d打印设备初始化:对准备状态显示标签页中的按键显示为start,并清空温度显示图表,设定3d打印设备的打印头轨迹显示图表的显示范围;并判断3d打印设备是否为自动初始化,若为假,则进入设置标签页,输出空队列,同时通过标签参考号取出设置标签页的文本来与“setting”文件对比,相等时退出对比循环,若有错误则输出错误;若自动初始化为真,则将“initialize”和空字符串连接后放入队列再输出队列供下一步的步骤使用,若存在错误,则输出错误。97.所述标签页中的内容设置包括基本参数的设置、保存、删除和基本参数初始化;98.基本参数的设置、保存和删除:发送循环中的3d打印机-值改变事件,同时将新字符串送入发送循环中供下次循环使用,如图5和图6所示,通过前面板设置标签页的3dprinter空间中输入或选择已有打印机名称,设置完成后,连接在update_printer字符串后,加入总队列后发送给接收循环;接收循环接收接收循环接收到队列后经过出列和解绑出消息,消息验证正确且在无错的情况下进入更新打印机事件,如图7和图8所示,从束中解绑出数据变量再转换成字符串,此字符串传送给两路,一路用来将选择的端口,在由参考数验证的组态数据所指定的段中,写到com port关键字后,然后显示端口的同时,与接收循环中的值对经并输出布尔值,与接收循环中的初始化布尔值相与后显示结果,另一路同样在由参考数验证的组态数据所指定的段中,循环写入x_max、y_max、x_max关键字,写循环输出关键字后的值,组成索引数组,分别用用显示x、y、z的值,显示x方向上的最大最小值,显示x、y图上的最大最小值,同时从写循环中输出参考号,获取段名,再输出参考数到接收循环,显示打印机名;点击前面板设置标签页的save按键,进入发送循环中的保存-值改变事件,同时将字符串又送回发送循环,如图9和图10所示,将发送循环中的字符串捆绑在save后形成束,接着加入总队列并发送给接收循环;接收循环接收到队列后经过出列和解绑出消息,消息验证正确且在无错的情况下进入保存事件,如图11和图12所示,把消息按名称解绑并转换为字符串,作为由来自接收循环的参考数验证的组态数据,用它来指定段,并将前面板设置标签页选择的串口号写到关键字com port后,然后写入指定段中,同时送出参考数;又在下一个参考数验证的组态数据所指定段中,依次将x-y-z方向上的三个双精度数写到x_max、y_max、z_max关键字后,然后输出参考数到接收循环;进入保存事件的同时会出现对话框询问是否重新初始化端口,如果选是则将initialize字符串与刚进入保存事件是转换的字符串捆绑,最后放入队列,输出错误并重新进行初始化,如果选否则直接输出错误;当前面板设置标签页的删除图标被按下,发送循环中的删除-值改变事件产生,同时将字符串送回发送循环,如图13和图14所示,发送循环中的字符串捆绑在delete后形成束,接着加入总队列并发送给接收循环;接收循环经过消息确认进入删除事件,如图15和图16所示,按名称解绑束得到变体数据,再将变体数据转换为vi可识别的字符串,移出参考号验证的组态数据中的字符串,通过参考号获得另一个段名,显示段中另一个打印机名,同时输出参考号;99.基本参数初始化:当前面板设置标签页的initialize按键被按下,发送循环中的初始化-值改变事件产生,同时将initialize字符串放回发送循环供下次循环使用,如图17和图18所示,将发送循环中的字符串捆绑在initialize后形成束,接着加入发送循环中的队列,最后将新产生的队列发送到接收循环中;接收循环将出列的消息经过消确认进入初始化事件,如图19和图20所示,同时有三路信息进入,分别是来自于接收循环的资源名、参考数和出列的束,出列的束经过按名称解绑束得到变体数据再转换为vi可识别的字符串,再判断此字符串或路径是否为空,若为空则给打印机控件的属性赋刚转换的字符串,否则将第二路信息通过参考数获得段名后得到的索引数组中的值赋给打印机控件属性,调用已存储的字符串,同时把获取段名得到的字符串也赋给打印机控件的字符串属性,获取段名后若数组不为空,可直接为读取com port关键字后的值提供输出参考数,然后调用marlin固件初始化控件进行固件的初始化,同时将错误状态读出并取反后返回接收循环,最后输出资源名,清空对应的错误,若有错误显示错误,如果数组为空,则显示没有打印机被设置的提示语,然后输出标签数组,循环对比到标签为setting时,停止循环对比,改变setting标签的状态,最后清空对应的错误,若有错误显示错误,同时输出参考数,将第一路接收到的资源名直接输出。100.本发明还包括对标签页的内容进行稳定性测试(torture testing),具体包括:具体包括:训练参数的设定、显示和开始训练,设定打印头或热床的移动速度和离原点距离后,打印头在三维坐标系的x轴和y轴方向上进行往复动动,同时数字显示其位置。101.训练参数的设定与显示:经过消息确认进入训练事件,如图21和图22所示,判断是否有错误,若有循环等待,若没有则判断训练x轴或y轴,进一步判断座标值是否为零,若为0则显示最大值,若不为零,则显示实际值,同时判断是否初始化,如果没有,则输出反方向的值并显示,如果已初始化,则输出正方向上的值并显示,再将此距离值跟在速度值后形成束输出,再进一步判断是束为测试模式,若是则等待200ms,并输出资源名,若不是则调用marlin驱动移动控件,最后将有关torture的字符串束加入队列,同时输出资源名;102.开始训练:当稳定性测试标签页中的start按键按下,进入开始训练-值改变事件,如图23和图24所示,从事件框的ctlref参数中取文本判断是否为start,如果是则将start_torture束加在消息队列后,控件上转而显示为“stop”,同时输出队列到接收循环,如果否则将stop_torture束加在消息队列后,控件上显示为“start”,同时输出队列到接收循环;接收循环经过消息确认后进入开始训练事件,如图25和图26所示,先判断是否为测试模式,如果是则直接将有关torture的字符串束加入队列,同时输出资源名,如果不是测试模式则判断是否已初始化,如果没初始化则弹出消息,同时按键显示为“start”,如果已初始化,则判断选择了x轴还是y轴,然后按相同的方式把三个座标轴的值按顺序放入x-y-z捆绑成的束中,调用marlin驱动复位控件,接着调用marlin驱动按绝对路径定位控件,再调用marlin驱动移动控件按x-y-z构成的束中的数值移动,最后将有关torture的字符串束加入队列,同时输出资源名。103.本发明在labview可视化编程环境下,利用已有的开源marlin固件及其labview驱动程序构建3d打印系统。实现对打印机硬件,包括四个电机、两个加热装置、一个风扇的控制,包括两个热传感器的数据采集,以及三个限位开关的状态信息获取;实现根据所设采样频率实时显示温度变化曲线;实现直接调用gcode文件实施3d打印并实时显示打印头的平面运动轨迹。104.以上所述实施例仅表达了本技术的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部