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

Использование акселерометра

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

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

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

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

Шаги установки

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

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

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

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

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

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

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

  • Принтер выполнил операцию возврата в исходное положение (Хоминг).
  • Убедитесь, что акселерометр правильно включен в конфигурационном файле 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: Обычно указывает на проблему связи между верхним компьютером и микроконтроллером акселерометра. Проверьте соединение 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 axesВ TEST_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

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

Loading...