На данный момент я не нашёл простейшего подробного гайда по подключению adxl345 к плате bigtreetech pi v1.2 по 40Pin-GPIO. На эту тему немало информации в сети но хотелось бы собрать по крупицам всё воедино, так как у многих возникают сложности в подключении этих компонентов. Так как я новичёк и для меня эта процедура абсолютно не известна, постараюсь описать всё максимально понятно и в той последовательности, в какой выполнял её я.
За основу у нас взят простейший adxl345 с гребёнкой под пайку (если не уверены в своих навыках пайки используйте другой гайд по подключению через комплектный SPI или USB).
И микрокомпьютер BigTreeTech Pi V1.2
Гайд поделю на две части.
1.
На акселерометре припаиваем гребёнку
Для подключения акселерометра к плате я использовал dupont провода мама-мама
Чтобы понять что соединять, мне помогла информация из сети по распиновке микрокомпьютера.
Соединяем контакты:
ADXL345 → (№ пина) BTT PI V1.2
GND → (20) GND
VCC → (17) 3.3V
CS → (24) PG12 GPIO204
SDO → (21) PH8 GPIO232, SPI1_MISO
SDA → (19) PH7 GPIO231, SPI1_MOSI
SCL → (23) PH6 GPIO230, SPI1
В целом так должно это выглядеть.
Теперь отсоединяем провода от акселерометра, предварительно для большего удобства можно склеить скотчем или термоклеем, можно обжать если есть такие разьёмы, решение за вами.
2.
Далее программная часть. (Описываю в такой последовательности, какой делал я)
Открываем терминал (я использую mobaxterm) и выполняем поочерёдно команды из официальной документации Klipper
https://www.klipper3d.org/Measuring_Resonances.html
Далее:
В разделе /boot/ в файле BoardEnv.txt необходимо раскоментировать overlays=spidev1_2.
Через терминал у меня этого не получилось, потому что boot наверное в readonly смонтирован. Я поправил этот файл через Винду.
Затем:
В printer.cfg (можно через веб-морду) добавляем:
[mcu host]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: host:gpio204
spi_bus: spidev1.2
[resonance_tester]
accel_chip: adxl345
probe_points: 117.5,117.5,10
Далее возвращаемся к терминалу и выполняем команду:
sudo systemctl status klipper-mcu.service
Всё сохраняем и выходим.
Думаю не нужно объяснять как ориентировать акселерометр по осям, ибо подходить к такой калибровке нужно осознано и понимать нужно оно или нет), а также рекомендовать модель для монтажа adxl345 ибо их множество и при желании можно спроектировать свою модель!
Из официальной документации Klipper:
Внимание: убедитесь, что акселерометр и любые винты, которые его удерживают, не касаются металлических частей принтера. В принципе, крепление должно быть спроектировано таким образом, чтобы обеспечить электрическую изоляцию акселерометра от рамы принтера. Невыполнение этого требования может создать контур заземления в системе, который может повредить электронику.
https://www.klipper3d.org/Measuring_Resonances.html
Затем погасим хост на всякий случай, перезагружаем клиппер, подключаем к акселерометру хост и запускаем его. Собственно должна загрузиться веб-морда без ошибок.
Теперь можно выполнить проверку настройки. В консоли введём:
ACCELEROMETER_QUERY CHIP=adxl345
(Пояснение из официальной документации Klipper: введите, ACCELEROMETER_QUERY CHIP=где — имя чипа, как оно было введено, например CHIP=bed(см.: bed-slinger ) для всех установленных чипов акселерометра.
Вы должны увидеть текущие измерения акселерометра, включая ускорение свободного падения, например
Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800
Если вы получили ошибку типа Invalid adxl345 id (got xx vs e5), где xx есть другой ID, немедленно попробуйте еще раз. Проблема с инициализацией SPI. Если вы все еще получаете ошибку, это указывает на проблему с подключением к ADXL345 или неисправный датчик. Дважды проверьте питание, проводку (чтобы она соответствовала схеме, ни один провод не был сломан или ослаблен и т. д.) и качество пайки.)
https://www.klipper3d.org/Measuring_Resonances.html
Пробуем выполнить:
MEASURE_AXES_NOISE
(Пояснение из официальной документации Klipper: Далее попробуйте запустить MEASURE_AXES_NOISE в Octoprint, вы должны получить некоторые базовые цифры для шума акселерометра на осях (должны быть где-то в диапазоне ~1-100). Слишком высокий шум осей (например, 1000 и более) может указывать на проблемы с датчиком, проблемы с его питанием или слишком шумные несбалансированные вентиляторы на 3D-принтере.)
https://www.klipper3d.org/Measuring_Resonances.html
В целом процедуру подключения ADXL345 к BTT PI V1.2 по 40Pin-GPIO можно считать законченной.
Далее вы можете провести несколько реальных тестов, выполнив соответствующие команды для измерения резонансов по осям X и Y.
Можете ссылаться на официальную документацию Klipper.
https://www.klipper3d.org/Measuring_Resonances.html
Неоценимую помощь и терпение оказал @konstant, за что ему огромная благодарность.
Надеюсь этот гайд многим поможет в решении данного вопроса.
Всем отличной печати!