Найти тему
Михаил Девятков

Klipper, Moonraker и FluiddPi. Настройка MCU HOST и подключение ADXL345

Оглавление

Ранее я рассмотрел вопросы установки и настройки Klipper, об этом можно почитать по ссылкам:

Установка Klipper, Moonraker и FluiddPi
Настройка printer.cfg и калибровка Klipper
Подключение по UART к Raspberry
Управление питанием
Подключение и прошивка BIGTREETECH EBB 36/42
Подключение 3D touch (BL touch)

Сейчас я расскажу про подключение акселерометра ADXL345. Он нужен для измерения резонансных частот, для внесения в printer.cfg параметров, которые положительно сказываются на качестве печати. Но для начала нужно настроить MCU HOST, это позволит ПО Klipper взаимодействовать с GPIO Raspberry (собственно куда и подключается акселерометр). Оригинальное руководство можно почитать тут.

Настройка MCU HOST

Запускаем Putty. Если кто еще не знает что это, в подробностях в публикации про установку Klipper, Moonraker и FluiddPi. Вводим поочередно команды для обновления.

sudo apt-get update
sudo apt-get upgrade

Выполняем скрипт для добавления в автозагрузку. И запускаем конфигуратор для сборки прошивки.

cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
make clean
make menuconfig

Выбираем "Linux process", "Y", "Q".

Компилируем прошивку, останавливаем klipper, прошиваем и запускаем klipper.

make
sudo service klipper stop
make flash
sudo service klipper start

Добавляем раздел в printer.cfg:

[mcu host]
serial: /tmp/klipper_host_mcu

Настройка MCU HOST завершена.

Подключение и настройка акселерометра ADXL345

Внимательно соединяем плату ADXL345 с Raspberry, по схеме. Главное ничего не перепутать.

-6

Крепим плату акселерометра на голову принтера, надо понимать как расположены оси на плате, и как его крепим на голову. Ниже фото как я закрепил, у меня поменялись местами ось Y и Z. На плате нанесено расположение осей.

Снова идем в Putty. Устанавливаем дополнительные пакеты и зависимости.

~/klippy-env/bin/pip install -v numpy
sudo apt update
sudo apt install python3-numpy python3-matplotlib
sudo raspi-config

В конфиге Raspberry включаем SPI.

Добавляем в printer.cfg:

[adxl345]
cs_pin: host:None
[resonance_tester]
accel_chip: adxl345probe_points:
100, 100, 20

Где 100, 100, 20 - это координаты XYZ проведения тестирования, надо X, Y отредактировать что бы была середина стола.

-10

Проверяем как подсоединили датчик, вводим в терминал Fluidd:

ACCELEROMETER_QUERY

Должны получить похожее на это:

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

Если получили похожее на это:

Invalid adxl345 id (got xx vs e5)

Проверяем подключение и исправность датчика.

Проверяем базовый уровень шума, вводим команду:

MEASURE_AXES_NOISE

Должны получиться значения 1-100, если значения в разы больше, то ищем причину. Возможно вибрации вентилятора или рядом проходящая железная дорога.

Теперь можно приступить к измерению резонансов. Вводим команду

TEST_RESONANCES AXIS=X

После завершения, следующую:

TEST_RESONANCES AXIS=Y

Видео процесса калибровки

В результате работы мы получим два файла: /tmp/resonances_x_*.csvи /tmp/resonances_y_*.csv. Далее их обрабатываем с помощью скрипта Raspberry Pi. Снова идем в Putty и поочередно вводим команды, ждем окончания выполнения.

~/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

Запускаем FileZilla. Если еще не знаете что это, тут подробно. Идем в директорию tmp, скачиваем графики /tmp/shaper_calibrate_x.png и /tmp/shaper_calibrate_y.png

-14

Добавляем в printer.cfg раздел:

[input_shaper]
shaper_freq_x: 96.6
shaper_type_x: ei
shaper_freq_y: 89.4
shaper_type_y: mzv

Значения меняем на рекомендуемые параметры, они на графиках.

Спасибо, что дочитали до конца.

Планирую сборку MPCNC, очень интересный проект. Почти все детали приобретены, печать уже идет. Подписывайтесь на мой канал.

Также что б ни чего не пропустить подписывайтесь на мое сообщество ВК и канал Telegram
https://vk.com/cncand3d
https://t.me/cncand3d