StallGuard и нагрузка на мотор

магнит полидиагональный устанавливается в торец вала на плате микросхема положения
Спасибо что объяснили.
если в управляющей программе будет подача несусветная с метр в секунду
Что-то у меня есть сомнения что это будет так уж идеально работать, особенно в контексте того что есть две другие оси которые ни сном ни духом не в курсе о том что их коллега споткнулся и пытается сейчас вернуться в желаемое положение, но вундервафля настолько интересная что я заказал себе парочку для ознакомления. Благодарность мою за эту ссылку не выразить словами.
 
Спасибо что объяснили.

Что-то у меня есть сомнения что это будет так уж идеально работать, особенно в контексте того что есть две другие оси которые ни сном ни духом не в курсе о том что их коллега споткнулся и пытается сейчас вернуться в желаемое положение, но вундервафля настолько интересная что я заказал себе парочку для ознакомления. Благодарность мою за эту ссылку не выразить словами.
собственно на все оси и ставятся. по идее почучается что правдивость перемешения контролит не сама GRBL а драйвер шагового тоесть данное устройство. это лучше чем вообще ничего. вот не помню выход алярма есть или нету если есть то можно уже с grbl связать чтоб в паузу вгоняло устройство.
 
сверху прикручивается плата у нее таракан контроля как раз попадет под действие магнита это своего рода датчик Холла только на 360 градусов(Просто энкодер ).
Это и есть магнитный энкодер с квадратурным выходом. Я делал на чипах AS5600 и 5601 и он может быть запрограммирован от 8 до 2048 импульсов на оборот. Ни какого дребезга и пропусков но круглый магнит нужно юстировать ну очень точно. И магнит не простой а поперечный-с диаметральной намагниченностью. Это их минус так сказать. Китайцы с али часто кладут обычный и не работает нормально.
 
  • Последнее редактирование:
Последнее редактирование:
Ну вобщем барахло приехало уже неделю как, но времени небыло до этих выходных.

Итак:
контроллер с поддержкой SPI, вот такой
драйверы моторчиков TMC2130 (вообще не рекомендую брать именно такие, они очень сильно греются даже от 1.3А моторов, на 2А я их ставить не стану даже с активным охлаждением, знал бы взял бы TMC5160)
под пины diag0 diag1 всех драйверов припаяны фимейл разъёмы на плату, и поставлены перемычки SG лимитов:
16158
код поправлен вот таким образом, по сути просто пишет координаты и текущее значение StallGuard, немного грязненько, но я не планирую в таком виде пулреквест слать, это чисто поисследовать:

Немного нужно поиграться со значениями:
Уровень чувствительности в попугаях (ниже - более чувствительное)
$170 => $xStallGuard 5
$171 => $yStallGuard 5
$172 => $zStallGuard 4

карент моторов в амперах
$140 => $xRunCurrent 0.7
$141 => $yRunCurrent 0.7
$142 => $zRunCurrent 0.7

Ниже, в выводах, напишу детальнее как эти значения работают.

Сырые данные собираются с телнета в файлик.

Сетап эксперимента вот такой:
16159
Т.е. моторы ничего фактически не делают.

Моделька вот такая:
16160


В результате получился вот такой файл с исходными данными: co.rar

Чтобы его распарсить был написан такой скрипт:

Который сгенерировал 3 картинки для каждого из моторов которые показывают его нагрузку в попугаях(ближе к нулю - выше нагрузка, ближе к 1024 - ниже нагрузка):
X:
16162
Y:
16163

Z:
16164

Вывод: при правильно подобранных настройках технология может работать и, скорее всего, ответить на вопросы, например:
- в каком месте случился пропуск шага
- можно ли добавить немного фидрейта

Кроме того, меня очень удивила повторяемость паттернов нагрузки между слоями фрезеровки, т.е. система более-менее детерминированная и на неё не влияют внешние условия. Я ожидал что без нагрузки никаких паттернов не будет и всё будет зависеть от случайных помех.

Но не всё гладко.

Чувствительность этого измеряется в попугаях от 0(самая большая нагрузка) до 1023(самая малая). Всё остальное за границей чувствительности. Граница чувствительности не очень большая и не линейно зависит от скорости подачи, т.е., условно:
при скорости подачи от 50 до 100мм/мин я смог получить реальные значения на чувствительности 4, при скорости подачи от ~100 до ~1000 на чувствительности 5, пока затрудняюсь померить это в граммах или в чём-то ещё без того чтоб подключить это к механике.
Следовательно, на нетипичных скоростях, например lead-in/lead-out мувы для осей X/Y или быстрое перемещение на оси Z, скорее всего, будет показывать 0 или 1023, т.е. за границами чувствительности. Я решил эту проблему отфильтровав те датапоинты в которых фид рейт странный:
self.meaningful_feed_range = {"X" : (60,800), "Y": (60,800), "Z": (10,180)}

Наверное, можно будет поиграться с esp32_grbl в плане того чтобы если оно меняет скорость подачи меняло режим чувствительности, но это пока кукаретические рассуждения.
 

Вложения

  • co.rar
    114.9 KB · Просмотры: 5
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать