主要材料:树莓派PICO
ADXL345 模块
USB线(MICRO USB)
彩色导线
用到的工具:电烙铁,强力胶
简介:
Raspberry Pi (RPi) Pico提供了一种方便且经济高效的方式来创建便携式共振测量设备,该设备可用于不同的Klipper打印机。
ADXL345/343 板
市场上有不同的ADXL345电路板,ADXL343板也是一种有效的替代方案。
根据电路板布局和使用的组件,连接电路板时应考虑一些事项。
常规
这些板主要可以通过可能具有稳压器或电平转换器来区分。
稳压器
- 稳压器允许电路板连接到 3.3V 或 5V
- ADXL芯片本身需要3.3V电压。稳压器确保只有3.3V实际到达芯片
- 在下图中,稳压器标有绿色矩形
电平转换器
- 数字电子产品,如MCU(又名打印机板)或RPis,需要在其引脚上具有一定的电压
- 3D打印中的典型电压为3.3V(最常见)或5V
- 电平转换器允许在 3.3V 和 5V 之间转换,反之亦然
- 默认情况下,ADXL系列位于3.3V域中。这意味着即使连接到3V,它也只能输出3.5V(参见稳压器)。
- 电平转换器可改变这一点:当ADXL连接到5V(参见稳压器)时,它还将在电路板的连接引脚上输出5V
- 在下图中,电平转换器用黄色矩形标记
警告:RPI 和许多 MCU 板仅设计用于 3.3V。带电平转换器的电路板不得连接到 5V,并且只能连接到容限为 3.3V 的合作伙伴。这将破坏合作伙伴。
I2C 板
- 大多数电路板使用SPI作为通信总线。 SPI的速度足以提供高达3200个样本/秒,因为它是谐振测量所必需的
- 某些电路板似乎被迫使用下拉电阻进入I2C模式(另一种总线类型)
- 此类电路板不适用于谐振测量,但可以通过移除下拉电阻进行返工
- 指ADXL345 无效 ID ·问题 #3637 ·Klipper3d/klipper ·GitHub 144特别感谢@JanKolibri
警告:避免使用此类板, 如果您对在这样的板上焊接感到不舒服.
ADXL345,内置稳压器和电平转换器
adxl345_ldo_level_shift800×630 77 KB
内置稳压器的ADXL345
不带稳压器的ADXL345
ADXL343,内置稳压器和电平转换器
adxl343_ldo_level_shift800×558 64.6 KB
ADXL345,带稳压器并强制至I2C
Wiring
ADXL345 pin | RPi Pico pin | RPi Pico pin name |
---|---|---|
VIN (or VCC) | 36 | 3V3 Out |
GND | 38 | GND |
CS | 2 | SPI0 CSn (GP 1) |
SDO | 1 | SPI0 RX (GP 0) |
SDA | 5 | SPI0 TX (GP 3) |
SCL | 4 | SPI0 SCK (GP 2) |
Compiling & flashing the firmware for the Pico
Compile the firmware
cd ~/klipper/
make menuconfig
make
Flash the firmware
- 将Pico连接到常规的Klipper Raspberry Pi(或其他SBC)USB端口,同时按住按钮
BOOTSEL
- 鉴于不存在其他大容量存储设备,Pico应注册为块设备
/dev/sda
- 挂载块设备并将 Klipper 固件文件复制到其中
sudo mount /dev/sda1 /mnt
sudo cp out/klipper.uf2 /mnt
sudo umount /mnt
- 卸载后,Pico应使用新固件自动重新启动
配置克利珀
- 获取正确的路径
serial
ls /dev/serial/by-id/*
- 将以下内容添加到文件中:
printer.cfg
- 使用命令重新启动 Klipper。
RESTART
新建一个cfg叫做《Pico_adxl345.cfg》Pico_adxl345.cfg文件代码如下
[mcu pico]
serial: /dev/serial/by-id/usb-Klipper_rp2040_E6616408439A7A27-if00
restart_method:command
[printer]
#kinematics: cartesian
max_accel: 7000
max_accel_to_decel: 7000
[adxl345]
spi_bus: spi0a
cs_pin: pico:gpio1
[resonance_tester]
[resonance_tester]
accel_chip: adxl345
probe_points:
175,175,10
[gcode_macro USB_ADXL345]
gcode:
G28
G90
G1 X150 Y150 F10000
G1 Z10 F500
G90
SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
SHAPER_CALIBRATE
在printer.cfg中添加一行
#[include Pico_adxl345.cfg]
启用时请去除#号
如果发现无法识别的问题,可以尝试去除GND线,部分情况下可以解决
重要:在重新连接RPi Pico或重新启动Klipper后,第一次测量将失败。这是由于 SPI 初始化存在一些问题。后续测量将起作用。
RPi Pico上可用的SPI总线
可以将多个ADXL板连接到一个RPi Pico:
ADXL345 引脚 | RPi 笔尖引脚名称 | 斯皮0亚 | 斯皮0b | SPI0C | 斯皮1亚 | 斯皮1b |
---|---|---|---|---|---|---|
虚拟货币(或可变可变资本) | 3V3输出 | 36 | 36 | 36 | 36 | 36 |
接地 | 接地 | 38 | 38 | 38 | 38 | 38 |
.CS | 南航 | 2 (GP1) | 7 (GP5) | 22 (GP17) | 12 (GP9) | 17 (GP13) |
性别歧视条例 | SPI RX | 1 (GP0) | 6 (GP4) | 21 (GP16) | 11 (GP8) | 16 (GP12) |
自主权评估 | 斯皮德克萨斯 | 5 (GP3) | 10 (GP7) | 25 (GP19) | 15 (GP11) | 20 (GP15) |
标准及校正实验所 | SPI SCK | 4 (GP2) | 9 (GP6) | 24 (GP18) | 14 (GP10) | 19 (GP14) |
笔记:
- 标头是总线的名称,值为
pin-number (GPIO number)
- 引脚定义基于Klipper/spi.c at 02D5F9754fc7F9E493C8BC5A6418E2A9ea9D7AE1 ·Klipper3d/klipper ·GitHub 157