Установка акселерометра ADXL345

Вам потребуется напечатанный адаптер для крепления ADXL345 к задней части X-каретки. Его можно найти здесь

https://www.klipper3d.org/Measuring_Reso...

Шаг 1

Подключите акселерометр к Raspberry Pi

Акселерометр 3V3 — к контакту 17 Raspberry Pi 3.3 В

Акселерометр GND — к контакту 20 Raspberry Pi Земля

Акселерометр CS — к контакту 24 Raspberry Pi GPIO08 (SPI0_CE0_N)

Акселерометр SDO 21 — к Raspberry Pi GPIO09 (SPI0_MISO)

Акселерометр SDA — к контакту 19 Raspberry Pi GPIO10 (SPI0_MOSI)

Акселерометр SCL 23 — к Raspberry Pi GPIO11 (SPI0_SCLK)

Шаг 2

Существует несколько вариантов крепления акселерометра. Я использовал этот кронштейн

Шаг 3

Необходимо подключиться по SSH к принтеру и установить NumPy.

~/klippy-env/bin/pip install -v numpy

Будьте терпеливы, установка этого пакета может занять 10–20 минут. После завершения выполните:

sudo apt update

sudo apt install python3-numpy python3-matplotlib -y

Проверьте, что драйвер SPI для Linux включён

sudo raspi-config

#3 Interface Options > P4 SPI > Yes > OK > Finish

Шаг 4

Раскомментируйте раздел input shaper и resonance tester в конфигурации.

probe_points: Рекомендуется использовать 1 точку в центре стола немного выше. Я использовал те же координаты, что и при хоминге Z

Перезапустите Klipper командой

RESTART

Шаг 5

Проверьте связь Raspberry Pi с ADXL345, выполнив в консоли следующую команду

ACCELEROMETER_QUERY

Она должна вернуть примерно следующее:

adxl345 values (x, y, z): -152.983740, 10249.910580, 152.983740

Если вы получаете ошибку типа Invalid adxl345 id (got xx vs e5), где xx — другой идентификатор, это указывает на проблему с подключением ADXL345 или на неисправный датчик. Проверьте питание, проводку (соответствие схеме, отсутствие переломленных или неплотных проводов и т. п.) и качество пайки.

Шаг 6

Выполните хоминг принтера.

Во время тестирования резонанса вибрации могут стать очень интенсивными. Находитесь рядом с принтером на случай, если потребуется отменить тест командой M112

Теперь можно запустить первый тест резонанса по оси X

TEST_RESONANCES AXIS=X

После завершения запустите тест для оси Y

TEST_RESONANCES AXIS=Y

После завершения теста будут сгенерированы CSV-файлы, сохранённые на Raspberry Pi.

Шаг 7

Подключитесь по SSH к принтеру и выполните следующие 2 команды

~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png

~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png

Этот скрипт сгенерирует графики /tmp/shaper_calibrate_x.png и /tmp/shaper_calibrate_y.png с частотными характеристиками

Вы можете использовать WINSCP для копирования их на ПК, если хотите, но это не обязательно.

Вы также получите рекомендуемые частоты для каждого input shaper, а также указание, какой input shaper рекомендуется для вашей конфигурации.

Вы можете увидеть мои значения для X

Вы можете увидеть мои значения для Y

Шаг 8

Для CoreXY можно также использовать Klipper для сравнения натяжения ремней X и Y. Это не указывает, слишком ли туго или слишком слабо натянуты ремни. Это показывает, равно ли натяжение ремней друг другу.

Выполните в консоли следующие команды

TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data

TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data

Подключитесь по SSH к Raspberry Pi и выполните

~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png

По сгенерированному графику видно, что у X были значительно более высокие частоты, чем у Y. Мне пришлось подтянуть натяжитель левого ремня, чтобы сблизить частоты.

Как видно из второго теста, частоты X и Y стали ближе, но всё ещё требуют небольшой донастройки. Думаю, большая часть вариации частот связана с моим кабель-каналом. При более низких частотах он заметно сильнее дребезжит только при калибровке X.

Перевод руководства с ifixit.com