Jump to content
FLProg.PRO

Recommended Posts

ШД AlexCrane FastAccelStepper


Блок управления шаговыми двигателями на основе библиотеки FastAccelStepper

 

Библиотека здесь https://github.com/gin66/FastAccelStepper

 

Заявлена поддержка ESP32 (не тестировалась)

Всегда качайте последнюю версию. На данный момент перспективная библиотека.

 

Количество управляемых ШД для AVR ограничено

Для 168/328 - 2 ШД

Для 2560 - 3 ШД

Для ESP32 - почти не ограничено (внутри блока более подробно)

 

Описание внутри блока

 

Примеры:

Пример 1 Пробуем шагать

Пример 1а Пробуем шагать с паузами

Пример 1б Шаги туда-сюда с поиском концевика

Пример 2 Пробуем вращать

Пример 3 Простая программа шагов

Пример 4 Простая программа шагов с паузами

Пример 5 Простой станок нарезки из 2-х ШД, входные данные - длина нарезки и количество. 1й ШД протягивает требуемое количество шагом (мм), 2й ШД с резаком отрезает (некоторое количество шагов в одну сторону и затем обратно)


 

  • Thanks 2
  • Haha 3
Link to comment
Share on other sites

Приведу несколько примеров использования подобных блоков (AccelStepper, GiverStepper, FastAccelStepper).

 

Нужно представить что блок это "черный ящик" куда мы передаем некие параметры (скорость, ускорение, шаги и пр.) и получаем сигнал готовности ШД. На основе этого и строим алгоритмы по управлению ШД.

 

Пример 1. Пробуем шагать.

 

Сигнал Готов с блока ШД будет передавать в блок ШД через TT триггер нужное количество шагов и запускать ШД. Получим классический пример движения ШД сначала в одну строну, затем в обратную и так бесконечно.

 

Одновременно подключим кнопку Стоп. для проверки резкой остановки ШД и обнуления координат. А затем запуск двигателя туда-сюда, но уже с новой позиции.

 

FastAccelStepper. Пример01. Шаги. Туда-сюда и быстрый стоп.flp

Link to comment
Share on other sites

Пример 3. Простая программа. Несколько шагов

 

В этом примере попробуем выполнить несколько запрограммированных последовательностей шагов с разными скоростями, ускорениями, шагами.

 

Создадим три массива в которых пропишем для каждого шага свои скорости, ускорения и шаги. Сигнал Готов будет увеличивать счетчик программы, пока не достигнет конца.

 

FastAccelStepper. Пример03. Простая программа. Несколько шагов.flp

Link to comment
Share on other sites

Пример 4. Простая программа. Несколько шагов с паузами

 

В этом примере попробуем добавить несколько пауз в нашу простую программу из примера 3. Для этого нам нужно задержать сигнал Готов на нужное нам время на нужном шаге.

 

Можно создать еще массив для пауз, но если нам нужно всего несколько, то добавим простые блоки сравнения.

FastAccelStepper. Пример04. Простая программа. Несколько шагов с паузой.flp

Link to comment
Share on other sites

Пример 1б. Шаги туда-сюда с поиском концевика.

 

Разобьём процедуру поиска концевика на 3 шага

1. Если концевик нажат, то откатимся от него на несколько шагов. Если не нажат то переходим к шагу два.

2. Начнем крутится в обратную сторону на низкой скорости до нажатия концевика

3. Если концевик нажат, то резко останавливаемся, обнуляем координаты, и стартуем основную программу

 

 

FastAccelStepper. Пример01б. Шаги. Туда-сюда с поиском концевика.flp

Link to comment
Share on other sites

@tema Проверил, в версии 8.2.1 по умолчанию стоит плата Esp32 версии 2.0.7. - есть предупреждения, но компилируется.

Спойлер

fl821_fas.thumb.png.3aaefdd99e745f3019791748efbfd5c5.png

В версии 8.2.2 - стоит плата Esp32 версии уже 2.0.9. - компилируется ваш проект без одного замечания.

Спойлер

fl822_fas.thumb.png.35baaca174ed89cc34310eb94b5cc499.png

 

Link to comment
Share on other sites

Александр приветствую!

В настройках БП ШД AlexCrane FastAccelStepper (для МК ESP32) имеется строка "выбора драйвера" (см. скриншот).

Не в курсе, что за параметры там приведены?

Спасибо!!!

2023-07-12_14-24-48.thumb.png.9dba3ff81c4f552828e1f3137b0774f5.png

  • Haha 1
Link to comment
Share on other sites

Докладываю:

МК: ESP32 WROOM DEVKIT V1

Soft: FLProg-7.5.1 (компиляция и загрузка скетча ~ 30 сек, против 3 мин 30 сек на FLProg-8.2.*)

Плата Esp32 версии 2.0.9 (в IDE)

Для испытаний используется БП "ШД_AlexCrane_FastAccelStepper_v0.1a_(Code_-_Professional)" (Автор - Уважаемый AlexCrane).

Скетч компилируется без ошибок и использует незначительное кол-во ресурсов МК!!!

Измерения выходных параметров БП производились цифровым осциллографом Hantek 6104BC (полоса 100 МГц).

Измеренное БП "Cyclescec_(Code_-_Professional)" (Автор - Уважаемый тов. Dryundel) число "циклов в сек" работы МК с инсталлированным БП составляет порядка 100 кГц.

Предельная частота выходных импульсов БП ограничена значением 200 кГц (что подтверждает использование авторами Белой Магии!!!); при увеличении задания скорости БП (например 220000 Гц), блок прекращает генерацию выходных импульсов.

Измерения производились для версий драйверов ESP32 rmt и mcpwm/pcnt (в параметрах БП); разницы в работе не замечено.

Самопроизвольная девиация генерируемой БП частоты вых. импульсов составляет +/-300 Гц от установленного значения 200 кГц, что составляет 0,15% (при  частоте колебаний порядка 1 Гц).

Отклонений в линейности генерации вых. импульсов от Задания БП не замечено (при измерениях в пяти точках).

Огромнейшая Благодарность автору библиотеки "FastAccelStepper" и разработчику БП "ШД AlexCrane FastAccelStepper" AlexCrane!!!

Блок великолепен!!!

Будем дальше думать...

:дай_пять: 

Фото и скрины в аттаче.

С Уважением,1396691653_2023-07-1300-22-29.thumb.JPG.0f23ba058cd4ee6f56203b2703c2ef17.JPG

Александр (Abay)

1.png

2(rmt).png

  • Thanks 2
  • Haha 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...