基于不器3D打印机_改装绘图机方案教程
重要说明:
没有买mega2560的板子,因为最近价格有些贵。12块的8266手上有几块。这个绘图机可能和大家都的不一样,只是一个玩具,验证性的原型机。
- 这只是一个原型机,它的绘制速度非常慢,只有大约30mm/s。原因主要是用的不是C语言实现,而是micro python脚本语言实现。
- 只能做个demo演示。限位开关都没有装,装了目前也用不上,原因是esp8266能用的脚太少,没有足够安全可用的GPIO, 换成esp32才能加。
- 没有大量测试,除了慢,按照要求生成gcode它还是能工作的。
教程开始:
- 改装硬件部分
材料准备:
- 不器方案3D打印机相关配件。
- Esp8266 node-mcu一块。
- 一支写字笔,带弹簧的那种。
- 机器安装
完如下图,只用XYZ相关部分,不用安装挤出相关部件,但要安装打印头的铝块。
- 绘制笔改装
这种笔很常见,把笔打开,削掉一部分笔芯,然后把弹簧放在顶部,解决绘制过程中纸面不平的问题,由于笔尖有弹性可以自动补偿。这个是参考了大鱼。
绘制笔的安装,笔刚好能放进打印洞,然后用2根扎带穿过笔上端的孔,绕过打印头中间轴固定好笔。
- Ramp1.4/1.5连接esp8266控制板
esp8266只控制step/dir两种信号,共计6个,同时输出5V供电机驱动模块。42电机驱动使能脚全部接地。虽然esp8266有更多的GPIO脚,但是它们是复用的,使用了会引起一些问题,比如下载受影响。这6个脚是摸索出来的,可以安全使用。
X电机:
Xstep-> esp8266控制板D6也就是GPIO12
Xdir-> esp8266控制板D5也就是GPIO14
Y电机:
Ystep-> esp8266控制板D1也就是GPIO5
Ydir-> esp8266控制板D2也就是GPIO4
Z电机:
Zstep-> esp8266控制板D0也就是GPIO16
Zdir-> esp8266控制板D7也就是GPIO13
具体连接参考如下图:
还有ramps的供电:
是用8266上的5V供电,也就是usb供的电。
完整的电路连接:
以上硬件完成后,
- 改装软件部分
大致流程是:
- 先用inkscape生成svg矢量图,比如调整到合适的大小。
- 然后用转换svg成gcode。
- 下载gcode到esp8266上,它有4MB flash.
- 调整XYZ工作点
- 执行绘制程序,指定一下绘制文件名,运行脚本程序开始绘制。
A)矢量图编辑
矢量图编辑软件,选择的是开源免费的inkscape1.0.2.去官网下载。
如果拿一张图片制作矢量图,有时候还是很麻烦的,如果本身就是线条型图片,相对容易得多。如果能下到svg这样的矢量图最好。
以葫芦娃图片为例生成svg文件。
插入inkscape,会自动弹出导入选择ok
进入path/trace bitmap
选择autotrace效果比较好,OK后关掉
点击红框内的path,进入路径模式,会显示path信息。如下图,说明路径信息已经生成。
点击红框内,进入对象模式,点击图片,然后按del键删除图片,只保留path对象。
然后如下图,只有path.
调整大小,和位置。
输出保存为svg文件。
- 转换svg成gcode
Inkscape 扩展插件gcodeplot有这个功能。
不过它原先是绘制区域的方式,我改了一下只描边,直接用命令行进行转换gcode。
转换工具代码:
https://github.com/chuanjinpang/esp8266_upy_plotter_controller_fireware/tree/main/svg-gcodeplot
转换命令:
python3 gcodeplot.py -Z 2.5 -Z 0 -t 0.125 your_file_name.svg
转换结果:
生成带注释的your_file_name.svg.gcode
和一个不带注释,更紧凑的rmc_your_file_name.svg.gcode
由于上传速度慢,一般使用rmc_your_file_name.svg.gcode
参数说明:
-Z|--lift-delta-z=z: amount to lift for pen-up (millimeters) Z轴提笔高度,相对于z-work的。如果板子很平,可以设置得比较小。
-z|--work-z=z: z-position for drawing (millimeters) Z轴工作高度,一般设置为0.因为没有限位。
-t|--tolerance=x: ignore (some) deviations of x millimeters or less [default 0.05] 绘制精度,越小越精细,当然gcode文件也会越大。绘制时间也会越久。
可以用些软件查看生成的gcode 绘制结果。这个网页查看不错:https://ncviewer.com/
- 下载gcode到esp8266上
相关windows软件下载地址:
https://github.com/chuanjinpang/esp8266_upy_plotter_controller_fireware/tree/main/upy_windows_tool
可以使用MicroPython File Uploader,将gcode文件上传到esp8266上。
选择好串口,打开串口,选择要上传的文件,发送。
说明:不要使用uPyCraft上传,它好像会自动去掉\r\n这样的行,然后python逐行读取gcode会出现问题。
上传完毕后,可以在uPyCraft/device文件夹下看到相对的xx.gcoe文件。
- 调整XYZ工作点
这一步本来是不必要的,但是因为没有装限位器,所以要手工把X,Y,Z调整到合适的位置。
原代码如下位置为XY的零点。Z零点就是在纸面工作位置上。
E执行绘制程序
个人喜欢用uPyCraft操作upy。简单快捷。
将绘制程序上传,py文件用uPyCraft上传没有问题。
绘制程序只有3个文件:
stepper.py |
实现42步进驱动 A4988 或者TMC2225,驱动dir/step/en. step(self, count)实现方向转动step,负值是反向,正值是挂电正向转step. 由于8266实际可用GPIO脚太少,只有6个可安全任意使用,其它脚会引起一些问题,比如使用GPIO15影响下载,运行后下载就状态不对了。 |
corexy.py |
实现corexy的位置控制, set_xy(self,ex,ey)驱动X,Y轴位置 set_z(sz,ez)驱动Z轴位置 注意这里Z轴是独立的,不是corexy的部件,原因是Z本身是独立的,如果是激光绘制,就没有Z轴步进的概念,只有一个控制信号。 可能将来会做一个激光雕刻的原型机。 |
draw_gcode.py |
实现gcode绘制 draw_gcode_file(cxy,sz,gp,"3rect.svg.gcode")绘制指定的gcode. 由一个gcode_parse来解析gcode,支持最多4个参数。 def cxy_run_gcode_file(cxy,sz,gp,file_name) 解析器单独运行,负责解析,然后调用cxy_run_xyz()驱动3轴运行。 def cxy_run_one_gcode(cxy,sz,gp,line): update,x,y,z= gp.parse_one_gcode(line) if update: return cxy_run_xyz(cxy,sz,x,y,z) else : return x,y,z |
在主绘制程序文件draw_gcode.py中,指定一下要绘制的gcode文件名:
draw_gcode_file(cxy,sz,gp,"rmc_plane_v.svg.gcode")
具体代码如下:然后点击>下载并运行。
- 等待绘制完成
绘制有点慢,下面好像画了30分钟?
- 调试
为啥用upy进行原型机开发,原因是快速,交互性调试。开发效率高,除了运行慢。
stepper.py 里面是步进电机控制的,可以来测试单个电机的操作。
可以在console里面直接输入
sx = Stepper(14, 12, 13, speed=10000,name="x")
sx.step(100)进行交互性调试,这也是python方便强大的地方。
Corexy.py一样,有一个调试程序,也可以直接在console里面交互性调试。
基于不器3D打印机_改装绘图机方案教程相关推荐
- python 3d打印机_如何使用Python构建自己的CNC控制器和3D打印机
python 3d打印机 by Nikolay Khabarov 通过尼古拉·哈巴罗夫(Nikolay Khabarov) 如何使用Python构建自己的CNC控制器和3D打印机 (How you c ...
- dlp型3d打印机_【论文新萃】光聚合成型3D打印技术复制印章研究
光聚合成型3D打印技术复制印章研究 冯明帅1 彭嘉俊2 马立2 (1.广东省公安厅刑事技术中心,广东广州,510050 2.广东警官学院刑事技术系,广东广州,510440) 摘 要:本项目研究 ...
- 只要400行代码就能自已实现一个绘图机原型固件,esp8266 + micropython 用3d打印机改的绘图机
开源供大家参考. 网上很多用marlin固,glrb固件的方案,我觉得用micropython写个原型机固件要容易点,果然400行就可以演示了. 方案: esp8266 + micropython + ...
- 基于TMI8421的3D打印机步进电机解决方案
打印机一直是工作中不可缺少的一部分,当下,随着3D打印技术的推广,3D打印机逐渐进入我们的生活与工作当中.每个人都期望可以在办公室环境下安静快速的打印,更高效地完成每项打印工作:更生动逼真的重现理想的 ...
- 开发者成长激励计划-基于TencentOS Tiny FDM 3D打印机云控制系统方案
点击上方"嵌入式应用研究院",选择"置顶/星标公众号" 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 1.方案 ...
- 物联网不求人-3D打印机伴侣
物联网不求人-3D打印机伴侣 在上一期物联网不求人-服务器搭建So Easy教程中,我们学会了搭建常见的一些创客相关物联网服务器,让我们以最低成本拥有了自己的私有服务器,从此物联网不求人.对于一名合格 ...
- python实现3d扫描_三维激光扫描建模仪(基于树莓派)
MAKER:mfx2/译:趣无尽 Cherry(转载请注明出处) 只需要将物体放入到一个盒子里,就可以得到它的 3D 模型数据,是不是很方便呢? 今天我们就用树莓派制作一台三维激光扫描建模仪.能够将物 ...
- 3d打印光固化好还是热固化好_光固化3D打印机定制
光固化3D打印机定制,2017年8月份巨影研发制造的:"新一代工业级大幅面熔融沉积式高温FDM3D打印机"被广东省科技厅评选为创新产品. 光固化3D打印机定制, 智造科技DLP光固 ...
- 打印机打印一次出三张_一次性帮你搞定3D打印机堵塞问题
3D打印技术是近年来工业领域的新型制造技术,随着3D打印机制造技术的成熟及制造产业链的不断完善,适合家庭.学校等场合使用的桌面级3D打印机也应运而生. 桌面级3D打印机 目前3D打印机主要有" ...
最新文章
- 将Hexo同时部署在github和腾讯云开发者平台或Coding初级实践教程
- # 2018-2019-1 20165230 《信息安全系统设计基础》第四周学习总结
- (经验总结)flowable工作流_01_流程实例管理
- ipad能安装python么_ipad上能安装python吗
- 大同语网站页面资料汇总编书(PDF)
- DevExpress DXperience 的ASPxFilterControl 不显示 Like 菜单的方法
- mysql unix格式_将MySQL Unix-Timestamp格式转换为日期格式?
- [原创]IPV4分组的格式
- c/c++中与字符串处理相关的函数
- 让电脑假装蓝屏的C语言,【技术天地】一句命令让你的电脑蓝屏~(有强迫症的童鞋试试~~)...
- 百度与谷歌地图坐标转换
- C语言短除法求二进制数,C语言中实现十进制转二进制输出
- Unity Shader学习:玻璃材质
- 威联通 nas mysql_威联通(NAS)应用篇:自建OwnCloud网盘(百度网盘,拜拜~~~)
- 华为鸿蒙系统问世微信红包,一个巨头的诞生 华为鸿蒙车机系统问世
- grafana graphite statsd搭建安装部署 实时监控_亲测成功
- 关于关于接口测试自动化的总结与思考接口测试自动化的总结与思考
- 大数据面试杀器__大数据股市指数项目思维导图
- 离散数学-集合:1.集合的基本概念
- 浙江省谷歌地球高程DEM等高线下载
热门文章
- php 超出 2147483647,超出Tcl值(2147483647字节)的最大大小
- 半年卖8万吨辣条,卫龙再闯IPO
- 计算机boss是什么东西,Boss. 是什么意思?
- Redis相关介绍以及关系型数据库和非关系型数据库
- 凹凸世界服务器维护到几点,凹凸世界6月10日版本更新停服维护公告_凹凸世界6月10日版本更新了什么_玩游戏网...
- rust拆自己家门_rust 腐蚀 怎么拆门 | 手游网游页游攻略大全
- 中国的法学教育不应只是培养立法者
- php图片传入及改名代码,WordPress上传中文名图片自动重命名
- [Unity3D]判断鼠标抬起和添加相应事件
- ContentWindow属性的用法及作用