Ранее я рассмотрел вопросы установки и настройки 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, по схеме. Главное ничего не перепутать.
Крепим плату акселерометра на голову принтера, надо понимать как расположены оси на плате, и как его крепим на голову. Ниже фото как я закрепил, у меня поменялись местами ось 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 отредактировать что бы была середина стола.
Проверяем как подсоединили датчик, вводим в терминал 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
Добавляем в 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