Перейти к основному содержанию

ADXL345

Подключение

  • Подключение акселерометра показано на рисунке ниже
Loading...

Пример конфигурации

[adxl345]
cs_pin: PB12
spi_bus: spi2 # Аппаратный SPI, можно выбрать аппаратный или программный SPI. По умолчанию аппаратный SPI
# spi_software_mosi_pin: PB15 # Программный SPI, можно выбрать аппаратный или программный SPI. По умолчанию аппаратный SPI
# spi_software_miso_pin: PB14
# spi_software_sclk_pin: PB13

[resonance_tester]
accel_chip: adxl345
#accel_chip_y: adxl345 bed
probe_points:
100, 100, 20 # Обычно центр нагревательного стола, измените в соответствии с вашим оборудованием

Руководство по использованию

Тестирование и калибровка акселерометра

Установка пакетов зависимостей

Внимание
  • Если на устройстве работает система FlyOS-FAST, необходимые зависимости уже предустановлены. Этот шаг можно пропустить.
  • Если используется не FLY верхняя плата, обязательно выполните следующие операции по установке.
  • Рекомендуется подключаться с помощью SSH-инструментов, таких как MobaXterm, PuTTY, перед выполнением операций.
  • Данное руководство основано на Raspberry Pi, для других платформ используйте как справочный материал.

Этапы установки

  1. Последовательно выполните следующие команды для установки пакетов зависимостей.
  2. Время установки зависит от производительности процессора и состояния сети, обычно требуется 10–20 минут. Пожалуйста, подождите до завершения установки.
  3. Если объем оперативной памяти (RAM) устройства слишком мал, установка может завершиться неудачно.

Шаг 1: Установка системных пакетов зависимостей

sudo apt install python3-numpy python3-matplotlib libatlas-base-dev

Шаг 2: Установка пакетов зависимостей виртуальной среды Klipper

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

Тестирование акселерометра

Предварительные условия

  • Принтер выполнил операцию возврата в ноль (Homing).
  • Убедитесь, что в конфигурационном файле Klipper правильно включен акселерометр.

Команды для тестирования

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

ACCELEROMETER_QUERY

Если подключено несколько акселерометров, можно указать чип для тестирования:

ACCELEROMETER_QUERY CHIP=<имя чипа ADXL>

Замените <имя чипа ADXL> на фактический идентификатор акселерометра (например, adxl345).

Совет

В некоторых старых версиях Klipper может потребоваться выполнить ACCELEROMETER_QUERY дважды, чтобы получить данные акселерометра.

Решение распространенных проблем

Отключение питания

Перед проверкой, повторным подключением или заменой жгута акселерометра полностью выключите принтер и отключите его от источника питания. Не подключайте и не отключайте модули ADXL/LIS2DW/MPU/ICM и не прикасайтесь к оголенным контактам, когда устройство находится под напряжением.

  1. Сбой при первом выполнении: В некоторых версиях Klipper может происходить задержка распознавания команды. Если при первом выполнении данные не возвращены, выполните ту же команду повторно.
  2. Команда не распознана: Если после многократного выполнения все еще выводится сообщение о неизвестной команде, это может быть связано со слишком старой версией Klipper. Рекомендуется:
    • Обновить Klipper до последней версии
    • Или перепрошить систему последней версией (например, последней версией FlyOS-FAST)
  3. Invalid adxl345 id: Если появляется сообщение Invalid adxl345 id (got xx vs e5), сначала немедленно выполните ACCELEROMETER_QUERY повторно; если ошибка сохраняется, в первую очередь замените готовый жгут акселерометра, переходную плату или модуль датчика для перекрестной проверки. Не рекомендуется самостоятельно пропаивать или ремонтировать точки пайки.
  4. Invalid lis2dw / mpu / icm id: При использовании датчиков LIS2DW, MPU9250, ICM20948 проверьте соответствие имени раздела конфигурации, шины связи и модели чипа фактическому аппаратному обеспечению.
  5. Unable to obtain response / timeout: Обычно указывает на проблему связи между верхней платой и MCU акселерометра. Проверьте соединение USB/CAN, идентификатор [mcu], cs_pin, spi_bus или i2c_bus.

Оценка результатов

  • Нормальный вывод: Если возвращается непрерывный поток данных (как показано на рисунке ниже), это указывает на то, что акселерометр работает нормально и можно проводить измерения для компенсации резонанса.
  • Ошибочный вывод: Если отображается тайм-аут, отсутствие данных или ошибка связи, последовательно проверьте:
    1. После отключения питания убедитесь в надежности подключения акселерометра
    2. Правильность конфигурации датчика и SPI в файле конфигурации
    3. В первую очередь, путем замены готового жгута, переходной платы или модуля датчика, определите, есть ли проблема с питанием/связью
Loading...

Распространенные ошибки при тестировании резонанса

Сообщение об ошибкеЧастая причинаСпособ устранения
No data received from accelerometerАкселерометр не подключен, неправильный порядок линий SPI/I2C, проблемы с питаниемСначала выполните ACCELEROMETER_QUERY для подтверждения нормальной связи, затем повторите тест
Insufficient axis data for shaper calibrationСлишком малый диапазон движения, слишком низкое ускорение, высокий уровень шума показаний датчикаУвеличьте диапазон теста или accel_per_hz, проверьте надежность крепления акселерометра
Frequency range too narrowСлишком слабый ремень, частота механического резонанса машины выходит за пределы диапазона измеренияПроверьте натяжение ремня, крепость механической конструкции; при необходимости уменьшите max_freq или увеличьте accel_per_hz
Резонансный график полон шума, без явных пиковДатчик закреплен ненадежно, помехи от вибрации вентилятора, раскачивание жгутаПосле отключения питания заново закрепите датчик, при тестировании отключите вентиляторы, провода сигнала прокладывайте отдельно от проводов двигателя
SHAPER_CALIBRATE ничего не выводит или завершается с ошибкойОтсутствие зависимостей Python (numpy/matplotlib), недостаток памятиУстановите зависимости согласно инструкции в начале статьи; для вычисления больших резонансных графиков может потребоваться больше памяти
Cannot test Z axis together with other axesTEST_RESONANCES одновременно указывает ось Z и оси X/YОсь Z необходимо тестировать отдельно, не смешивая с X/Y
Invalid POINT parameterНеправильный формат координат POINT= или отсутствие трех значений x,y,zЗаполните в формате POINT=100,100,20
Invalid NAME parameterПустое имя вывода, содержит специальные символы или не соответствует требованиям командыИспользуйте английские буквы, цифры, символы подчеркивания или дефисы для именования
No accelerometer measurements foundВо время теста не было получено действительных данных акселерометраСначала выполните ACCELEROMETER_QUERY, затем проверьте крепление датчика и связь
Unsupported outputПараметр OUTPUT= содержит неподдерживаемый типЗаполните в соответствии с поддерживаемыми типами вывода Klipper, обычно используется resonances

Если ACCELEROMETER_QUERY работает нормально, но тест резонанса постоянно завершается неудачей, в первую очередь проверьте в следующем порядке:

  1. После отключения питания убедитесь, что поверхность акселерометра плотно прилегает к тестируемой детали, нет амортизирующих материалов или ослабленного двустороннего скотча.
  2. На время теста временно отключите вентиляторы обдува модели, хот-энда и камеры.
  3. Убедитесь, что во время теста жгут не натягивает датчик и не цепляется за движущиеся оси.
  4. Увеличьте амплитуду теста: в разделе [resonance_tester] постепенно увеличьте accel_per_hz со значения по умолчанию 75 до 100–150.
  5. Если используется акселерометр на инструментальной плате (USB/CAN), убедитесь, что линии связи не проходят рядом с проводами двигателя или стола.

Калибровка акселерометра

Этапы калибровки

  1. Убедитесь, что принтер выполнил возврат в ноль.

  2. Введите следующую команду в консоли для запуска автоматической калибровки осей X и Y:

    SHAPER_CALIBRATE
  3. После завершения калибровки сохраните конфигурацию:

    SAVE_CONFIG

Калибровка одной оси

Если нужно откалибровать только одну ось, используйте:

SHAPER_CALIBRATE AXIS=X

Или замените X на Y.

Предупреждение безопасности

Во время калибровки принтер может совершать сильные вибрации. Если вибрация слишком сильная, немедленно нажмите кнопку аварийной остановки или отправьте команду M112 для экстренной остановки.

Регулировка интенсивности вибрации

Если во время теста вибрация слишком сильная, можно уменьшить значение параметра accel_per_hz (по умолчанию 75):

[resonance_tester]
accel_per_hz: 50

Проблемы конфигурации и настройки: Если акселерометр работает нормально, но после включения компенсации резонанса эффект плохой, неправильно установлен shaper_freq, возникают конфликты между Pressure Advance и Input Shaper и т.д., обратитесь к разделу Проблемы конфигурации компенсации резонанса и Pressure Advance.

Примечание: Вышеуказанные шаги применимы для конфигурации компенсации резонанса большинства 3D-принтеров на основе Klipper. Настраивайте в зависимости от фактического аппаратного обеспечения и системной среды.

Loading...