用ADXL345加速度传感器测量机器共振,通过Klipper的input_shaper功能大幅改善震纹

说真的这是我用Klipper玩3D打印机至今,用过效果最佳的改造了。测试完成后,震纹几乎绝迹,并且可以大幅提高打印速度,打印的质量也很可以接受。所以非常推荐玩Klipper的小伙伴进行加装改造。所以,废话少说,Let’s go……

第一步,材料准备

ADXL345加速度传感器一块,然后就……没了……

ADXL345

从选择来说,这个加速度传感器在淘宝型号上很多,从几十到几元钱都有,我采购的是9元多的,感觉也挺好的,所以也就不用太讲究价格什么了,可以酌情采购。

第二步,安装及接线

这是官方的接线图,不过研究下来其实3.3V和GND可以直接图中箭头指的这两个,这样就可以直接压一个4×2的插头一次性解决了

安装位置可以参考这个

安装有几个要注意的点:

1)具体安装位置其实没有太大讲究,毕竟这个模块作用只是测试,测试好后可以拆掉,但是一定要尽量靠近喷嘴,并注意每个方向的轴确要和打印机的轴向平行。

2)ADXL345板子上有XYZ的方向指向,在配置参数axes_map可以配置配置传感器板子的方向和机子的xyz轴的方向的对应关系,配置顺序是x,y,z,也就是如果你的板子的z轴指向的方向对应打印机的x轴max,板子y轴对应打印机的y轴max,x轴对应打印机的z轴max的话,那么你配置的方向就是-z,-y,-x(上图),负数代表和方向相反。

第三步,配置树莓派

硬件接好之后就可以试着软件的安装了,首先因为Klipper需要通过树莓派的SPI针脚读取加速度传感器的数据,所以需要先将树莓派变成klipper的一块mcu板子,这样klipper才能读取到加速度传感器的数据。这一步在klipper官方的教程中是没有的,所以很多人这一步会忽略。

下面的命令都是在树莓派系统终端中执行

首先安装Python的科学计算库,用作分析计算共振数据(实际执行的pip路径需要根据你klipper的venv环境的实际安装的路径来定,绝大部分情况是home目录下的klippy-env中,命令已加上使用国内清华园的地址)

~/klippy-env/bin/pip install -v numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

安装系统依赖库

sudo apt install python-numpy python-matplotlib

先复制官方提供的系统启动脚本,并设置成系统自动启动

cd ~/klipper/
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
sudo update-rc.d klipper_mcu defaults

配置并编译树莓派的固件

cd ~/klipper/
make menuconfig

配置的控制器类型的时候,切记得要选择Linux process的

配置完成后就可以编译固件了

sudo service klipper stop
make flash
sudo service klipper start

sudo usermod -a -G tty pi

打开树莓派的SPI的接口

sudo raspi-config

上述步骤没有报错完成后,重启一次树莓派

第四步,配置Klipper

打开Klipper的配置文件,在合适的地方加入下面的配置代码

[mcu rpi]
serial: /tmp/klipper_host_mcu

[adxl345]
cs_pin: rpi:None
axes_map: x,y,z
#   加速度传感器的轴的方向,默认顺序是x,y,z,如果你的板子摆放方向是是传感器板子的z轴和机子的x轴交换,那么这个配置值就是z,y,x,如果方向也存在相反的情况,譬如板子的正面x轴是机子的反方向,那么配置需要加上负数,譬如z,y,-x这样。

[resonance_tester]
accel_chip: adxl345
probe_points:
    100,100,20  # 这个地方建议配置成热床的中间

配置完成后重启一下Klipper,在终端内输入命令查询传感器工作状况

ACCELEROMETER_QUERY

这个命令是查询加速器的参数,如果前面的软硬件安装正常的话,就会收到返回的加数据传感器参数,类似于下面内容……

Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800

第五步,测试加速度

开始测试前,先把打印机的加速度配置调大(这个测试完之后可以还原回去)

[printer]
max_accel: 10000
max_accel_to_decel: 10000

如果你之前有配置过input_shaper的功能,需要先关掉之前配置好的参数

SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0

然后就开始可以测试共振了,比较省事的就是直接用自动测试配置命令

SHAPER_CALIBRATE

测试的时候,刀头会从0MHz~120MHz震动,逐渐测试x轴和y轴数据,期间声音会逐渐增大,如果机子组装过程没有太大问题的话,机子不应该会有太剧烈反应(如果有太剧烈的反应建议检查组装过程)
完成测试后会进行一下计算,然后会显示出x轴和y轴推荐的配置方法和配置值,并提示是否需要SAVE_CONFIG,如果没啥问题,直接SAVE_CONFIG即可

SAVE_CONFIG

完成测试后,可以将模块从机子上拆除掉,但是以后调整过皮带松紧,刀头重量等变化,就需要重新测试,该项测试由于涉及机械的高频率震动,官方建议不适合经常操作,否则影响机子寿命。

最后,没了……