WIFI 联网

都啥年代了,如果 3d 打印机不是网络的,那该多落后呀。联网后有很多好处,可以远程控制,截面更直观,调试起来更方便等等。这里要感谢中国的 ESP32,十几块钱的 MCU+WIFI+蓝牙,打遍世界无敌手,现在直接把 3d 打印机的主板+屏幕的价格,拉到 100 元以内。

这里还要感谢与其配套的 Marlin 开源 3d 打印软件,很多很多厂商,都是在这个开源软件上套了一层皮。

①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳

在没有联网的情况下,大家是怎么调试机器呢?

1. 配置

前提条件是主板已经安装了天线。

1.1 上传 WEB 资源包

登录 AP 模式并上传 WEB 资源包

① 获取 AP 模式下 IP

AP:表示一个独立的热点。

STA: 表示接入了现有的网络设备。

② 连接网络

连接到这个 AP 网络

名称(SSID): MT3DP
密码(PASSWORD): 12345678

③ 访问服务

打开浏览器 在地址栏输入刚才获得的 IP 并且访问

④ 上传 WEB 资源包

上传的文件:index.html.gz

1.3 连接到现有网络

① 进入 WEB 设置界面

首页点击设置按钮。

② 修改设置并配置网络

  • 修改当前模式:sta
  • 搜索 wifi 网络,找到当前的家庭网络
  • 输入 wifi 密码
  • 这个都修改完毕后,要重启主板。

③ 检测是否配置完成

可以通过连接到和主板相同的 WIFI 热点 通过屏幕显示的 IP 连接到 WEB 控制台

2. 远程打印文件

2.1 上传文件

右侧标题为 SD 文件的区域可以进行 SD 卡(或 TF 卡)文件上传、删除或打印操作

上传操作:

  • 1.点击 刷新 按钮以查看当前 SD 卡内文件
  • 2.点击 上传 按钮 选择需要上传的 gcode 文件
  • 3.等待进度条走完 上传完成

上传文件会耗费较大算力 建议上传时尽可能不操作屏幕

2.2 打印文件

点击某个文件的打印按钮进行打印文件。

3. 远程调试机器

3.1 操作说明

进入控制台

发送指令: 输入指令后,点击发送按钮。

3.2 常用指令

;可以作为注解

⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳

① 回到原点

G28 ; Home all axes xyz回到原点

也可以制定那个轴回到原点:

  • G28 X Z ; Home the X and Z axe

如果跟踪 gcode 代码会发现,要先设置到绝对值。

M82 ;absolute extrusion mode
G28 ;Home
G1 Z15.0 F6000 ;Move the platform down 15mm
;Prime the extruder

② 返回限位开关状态

M119 ; 返回所有限位开关的状态

返回以下结果

  • Reporting endstop status
    x_min: TRIGGERED
    y_min: TRIGGERED
    z_min: TRIGGERED
    filament: open
    ok

③ 移动某个轴

这里是在界面上点击移动 z 轴后,系统提示的信息。

G91
G1 Z10 F100
G90

上述脚本的解释

  • G91:启用相对模式
    • 设置相对位置模式。在这种模式下,所有坐标都被解释为相对于最后一个位置。这包括挤出机位置,除非被 M82.
  • G1 Z10 F100 : z 轴移动 10mm ,移动速度 100 毫米/分钟(这个在界面上可以看到)
    • 应该按照指定速度进行移动,因为高速移动时时会产生震动。
  • G90:启用绝对模式,绝对定位是默认设置。
    • 在绝对模式下,G 代码中给出的所有坐标都被解释为逻辑坐标空间中的位置。这包括挤出机位置,除非被M83.

如果这个时候输入M119,会发现限位开关返回的内容如下:其中 z 轴已经移动了。

M119
Reporting endstop status
x_min: TRIGGERED
y_min: TRIGGERED
z_min: open
filament: open
ok

④ 加热喷嘴

这里加热喷嘴与热床。

加热喷嘴到 60 度

输入:M104 S60 T0

M104 S60 T0
ok
ok T:23.16 /60.00 B:23.63 /0.00 @:0 B@:0

解释

  • S60 表示目标温度是 60 度
  • T0 表示喷头,这里是测试,理论上喷头应该是 190 度

如果想取消加热

M104 S0 T0
ok
ok T:59.95 /0.00 B:25.17 /0.00 @:3 B@:0

如果想报告温度,使用 M105

M105
ok T:47.35 /0.00 B:24.69 /0.00 @:0 B@:0
ok T:46.89 /0.00 B:24.84 /0.00 @:0 B@:0
ok T:42.94 /0.00 B:24.65 /0.00 @:0 B@:0

如果要加热热床呢?是不知道怎么操作呢?

???

⑤ 操作风扇

这个只能操作可控风扇,对常开风扇没有作用。如果风扇过大,会导致加热头加热不利,那么需要关闭风扇。

M106 - 设置风扇速度

M106

可以设置风扇速度

M106 S200

速度,从 0 到 255。S255 提供 100% 占空比;S128 产生 50%。

M107 - 风扇关闭

M107

⑥ 操作挤出机

这里是根据界面上的操作进行的。其中 T0 表示切换刀具,这里可以忽略不看了。

T0
G91
G1 E5 F400
G90

解释说明

  • G1 E5 F400 : E 代表挤出机,F 代表速度。 以 400mm/秒的速度,挤出 5mm 的耗材。

⑦ 挤出机

如何在这个操作中,对挤出机进行调平呢?

T0
G91
G1 E100 F100
G90

⑧ 参看系统设置

M503 - 报告设置

M92使用不带参数或M503在旧版本的 Marlin 上获取当前的每单位步数设置

将所有运行时可配置设置(在 SRAM 中)的简明报告打印到主机控制台。此命令报告可能与 EEPROM 中存储的设置相同或不同的活动设置。

M503
echo: G21 ; Units in mm (mm) 将单位设置为毫米。
echo: M149 C ; Units in Celsius 将温度单位设置为C =摄氏度。
echo:; Filament settings: Disabled 耗材设置无效
echo: M200 S0 D1.75 设置耗材直径 D=直径 S0=禁用体积挤压模式
echo:; Steps per unit:
echo: M92 X80.16 Y80.00 Z402.41 E90.00 设置每单位的轴步数
echo:; Maximum feedrates (units/s):
echo: M203 X80.00 Y80.00 Z5.00 E25.00 设置一个或多个轴的最大进给率(以当前单位/秒为单位)。
echo:; Maximum Acceleration (units/s2):
echo: M201 X500.00 Y500.00 Z50.00 E1000.00 设置一个或多个轴的最大加速度(以当前单位每秒平方)
echo:; Acceleration (units/s2): P<print_accel> R T
echo: M204 P500.00 R3000.00 T500.00 设置启动加速度。P打印加速 R回抽 T行驶加速度
echo:; Advanced: B<min_segment_time_us> S T J
echo: M205 B20000.00 S0.00 T0.00 J0.01 高级设置.B=最小分段时间 S=打印移动的最小进给率
echo:; Home offset:
echo: M206 X0.00 Y0.00 Z0.00 设置原点偏移
echo:; Material heatup parameters:
echo: M145 S0 H190.00 B65.00 F0 在 LCD 菜单中设置材料的预热预设。B=热床 H=喷嘴 F=风扇 S=材料编号
echo:; PID settings:
echo: M301 P17.05 I0.55 D225.05 设置控制喷嘴的PID 回路的值。
echo: M304 P480.34 I76.65 D805.85 设置床PID
echo:; Retract: S<length> F Z
echo: M207 S3.00 W13.00 F2700.00 Z0.00 回抽设置:S缩回长度 W缩回交换长度(多挤出机)F退刀速度(单位/分钟)Z缩回时的 Z 提升
echo:; Recover: S<length> F
echo: M208 S0.00 W0.00 F480.00 回抽回复:S额外的恢复长度。可以为负值以减少恢复长度。 W额外的恢复交换长度。可以为负数以减少长度。F恢复进给速度(单位/分钟)
echo:; Auto-Retract: S=0 to disable, 1 to interpret E-only moves as retract/recover
echo: M209 S0 设置自动缩回 S=自动缩回开/关
echo:; Stepper driver current:
echo: M906 X700 Y700 Z700 以毫安为单位设置步进电机电流。
echo: M906 T0 E800 以毫安为单位设置步进电机电流。T<index>E 轴的索引(工具)编号。 E<mA>E0 步进器的电流
echo:; Hybrid Threshold:
echo: M913 X120 Y120 Z4 设置混合阈值速度 ,设置了x y z的混合阈值
echo: M913 T0 E80 设置混合阈值速度 ,设置了x y z的混合阈值
echo:; Driver stepping mode:
echo: M569 S1 X Y Z 设置 TMC 步进模式:在x y z 上启用 StealthChop
echo: M569 S1 T0 E 在支持 TMC 驱动程序时在stealthChop 和 spreadCycle 之间切换。
echo:; Filament load/unload lengths:
echo: M603 L0.00 U100.00 配置自动灯丝更换参数。
echo:; Filament runout sensor:
echo: M412 S1 启用(和重置)耗材中断检测

⑨ 设置步进数值

M92 进行设置,M500 进行保存,M501 从 EEPROM 加载所有保存的设置。

M92 X80.16 Y80 Z402.41 E90
M500
M501

⑩ 获取当前位置

M114 - 获取当前位置

M115 - 固件信息

⑪ 设置温床

M140 - 设置床温

M140 S80

设定目标温度,无需等待

⑫ 设置自动报告

M154 - 位置自动报告

M155 - 温度自动报告

每 4 秒报告一次当前位置
M154 S4
停止报告位置
M154 S0

主机软件可以跟踪温度,随时间显示和绘制图表,但轮询 M105 不是最佳的。主机只需 M155 设置一个时间间隔,Marlin 就会自动继续发送数据。此方法优于使用 轮询 M105。

⑬ 设置温度等待

要设置这个命令,前边必须要先设置温度。

M190 - 等待床温

该命令可以选择为加热床设置一个新的目标温度,并在继续之前等待达到目标温度。如果温度设置为 ,S 则仅在加热时等待。

M192 - 等待探头温度

使用此命令暂停,直到探头达到给定的目标温度。

M192 S44 ; Wait for probe temperature to go above 44C
M192 R28 ; Wait for probe temperature to get close to 28C

下面给一个例子

M104 S40
M109 S40

在实际操作中,这个不起作用。

⑭ 定义宏命令

M810-M819 - G 代码宏

使用 M810-M819 命令设置和执行 10 个不同的 G 代码“宏”。在命令之后放置任何内容以定义其宏。要运行宏,只需发送 M810-M819 本身。一个宏中的多个命令由竖线字符 (' |') 分隔。

定义宏

M815 G0 X0 Y0|G0 Z10|M300 S440 P50

运行宏

M815

⑮ 常见代码解析

下面以2020-0.5-hot.gcode 代码的开始与结束进行说明:

开始代码

;FLAVOR:Marlin
;TIME:1226
;Filament used: 1.26811m
;Layer height: 0.2
;MINX:64.06
;MINY:22.004
;MINZ:0.25
;MAXX:92.636
;MAXY:50.58
;MAXZ:19.85
;Generated with Cura_SteamEngine 4.8.0
M140 S65 ;设置床温
M105 ;报告温度
M190 S65 ;等待床温
M104 S210 ; 设置热端温度
M105 ; 报告温度
M109 S210 ; 等待热端温度
M82 ;absolute extrusion mode 将 E 设置为绝对定位
G28 ;Home 回到原点
G1 Z15.0 F6000 ;Move the platform down 15mm z提高15mm
;Prime the extruder
G92 E0 ; 设置位置
G1 F200 E3 ; 喷头挤出3mm耗材
G92 E0 ; 设置挤出机0
G92 E0 ; 设置挤出机0
G92 E0 ; 设置挤出机0
G1 F2700 E-4 ; 挤出机回抽4mm
;LAYER_COUNT:99
;LAYER:0 ;当前层数
M107 ; 风扇关闭
M204 S1000 ; 设置移动加速度:1000mm/s/s
M205 X30 Y30 ;高级设置:X最大加加速度(30mm/秒)Y最大加加速度(30mm/秒)
G0 F2100 X64.448 Y24.539 Z0.25 ;:继续G0用于非打印动作。它使 G 代码更适用于激光、雕刻机等。移动到某个位置
M205 X10 Y10 ;高级设置:X最大加加速度(10mm/秒)Y最大加加速度(10mm/秒)
;TYPE:SKIRT 打印裙边
G1 F2700 E0 ; 挤出机
G1 F1200 X64.724 Y24.023 E0.03132 ; 移动到这个位置,挤出内容
G1 X65.068 Y23.55 E0.06263 ; x移动了0.344mm y移动了:0.473mm
G1 X65.473 Y23.127 E0.09398 ; e移动0.03131
G1 X65.932 Y22.764 E0.1253 ;

关机的代码

M204 S2000 ; 设置移动加速度:2000mm/s/s
M205 X30 Y30 ;高级设置:X最大加加速度(30mm/秒)Y最大加加速度(30mm/秒)
G0 F4200 X70.311 Y44.148 ; 快速移动到 x y
M204 S1000 ; 降低速度
M205 X10 Y10 ; 降低加速度
G1 F1200 X70.489 Y44.326 E1268.10624 ; 移动到 x y 并挤出
;TIME_ELAPSED:1226.068081 用过的时间
G1 F2700 E1264.10624 ; 挤出耗材
M140 S0 ;关闭热床
M204 S4000 ; 设置加速度
M205 X20 Y20 ;高级设置:X最大加加速度(20mm/秒)Y最大加加速度(20mm/秒)
M107 ; ????
M104 S0 ; 设置喷嘴温度0
M140 S0 ; 关闭热床
;Retract the filament 回抽耗材
G92 E1 ;设置一个或多个轴的当前位置。
G1 E-1 F300 ;回抽1mm
G28 X0 Y0 ;x y回到原点
M84 ; ??
M82 ;absolute extrusion mode 将 E 设置为绝对定位。
M104 S0 ;设置喷嘴温度0
;End of Gcode

⑯ 开关机

下面两个好像不是太好用

M81 - 关机

M80 - 开机

⑰ 堵头处理

;长料出
M104 S240
M109 S240
T0
G91
G1 E-30 F400
G90
;短料进
M104 S240
M109 S240
T0
G91
G1 E100 F300
G90

3.3 精调挤出机

① 在耗材 120mm 做标记

游标卡尺测量出

用一个便签纸标记距离。

② 预热喷头

加热喷头到 190 度

M104 S190 T0

获取温度报告 :M105

③ 进料

按照 100mm/分钟的速度,挤出 100mm 耗材

T0
G91
G1 E100 F100
G90

系统默认的速度是 400mm/分钟,也可以把上面修改成 F400

④ 测量实际情况

用游标卡尺测量实际距离。

假设上面的结果是 18

⑤ 计算出偏差

计算方式:

  • 首先要知道最初设置时多少,这里举例是 93

  • 然后根据测算,120mm 剩了 18mm,也就是按照 93 的速率,挤出了 102mm

  • 那么如果要挤出 100mm 需要多少速率呢?

    • 102/93 = 100/a 这里要计算出a
    • 以上的计算方法,小树与国外网站的计算都对。

⑥ 设置并保存

使用 M92 进行设置,使用 M500 进行保存。

M92 Exxxxx
M500

3.4 新增指令

新增指令:
1.查看电机方向
M101
修改电机方向 (输入对应轴括号内字符即可)
X轴:M101 X
屏幕旋钮方向: M101 C
随后再次输入M101即可查看是否修改完成
2.查看设备工作模式
M222
修改工作模式为3D打印模式: M222 M0
修改工作模式为激光雕刻模式: M222 M1
修改工作模式为写字机模式: M222 M2

4. 远程查看设备状态

4.1 控制设备移动

4.2 控制当前温度