Дружим raspbery pi с ADXL345
В процессе подготовки, для настройки adxl345(далее аксель), выявил, что не советуют подключать аксель напрямую в Raspberry PI (далее малинка), т.к. возникают проблемы с их настройкой, но оказалось все не так сложно, а даже довольно просто.
Приступим:
Распиновка:




Далее устанавливаем софт:
sudo apt update
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev
Далее устанавливаем NumPy в среду klipper:
~/klippy-env/bin/pip install -v numpy
*долгое занятие, у меня было примерно 10-15 минут
Далее выполняем команды:
cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
Далее необходимо скомпилировать код микроконтроллера:
cd ~/klipper/
make menuconfig
В меню Microcontroller Architecture выбираем Linux process:

Проверяем, что не было дополнительных параметров на пины GPIO

Если все так же, то выходим с сохранением и выполняем команды:
sudo service klipper stop
make flash
sudo service klipper start
Если у вас ошибка Permission denied, то вам необходимо добавить вашего пользователя в группу tty
sudo usermod -a -G tty pi
*необходимо указать своего пользователя(тут указан пользователь pi поменяйте на своего)
Далее открываем файл printer.cfg и добавляем после меню MCU:
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
probe_points:
100, 100, 20 # an example

*после можно будет закомментировать, т.к. аксель необязательно ставить на всегда, а только в случаях, когда изменяется механика принтера.
В общем это все, переходим на главную страницу klipper, вводим команду:
ACCELEROMETER_QUERY
Должно появится, что-то похожее:
Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800
Далее надо запустить команду:
MEASURE_AXES_NOISE
вы должны получить некоторые базовые цифры для шума акселерометра по осям (должно быть где-то в диапазоне ~1-100). Слишком высокий шум по осям (например, 1000 и более) может указывать на проблемы с датчиком, проблемы с его питанием или слишком шумные несбалансированные вентиляторы на 3D-принтере.
Если все хорошо, то можно приступать к «снятию» показаний. Тут расписывать не буду, и так много инструкций. Я лишь хотел показать, как подружить малинку с акселем так, чтобы работало.