Шаговый двигатель на GyverStepper

Версия не ниже FLP7.3.4

Пользовательские блоки для управления шаговыми двигателями и сервоприводами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Шаговый двигатель на GyverStepper

#1

Сообщение AlexCrane » 24.03.2021{, 22:49}

Блок для управления ШД на основе библиотек Gyver'а
    ШД ГайверЛиб.png
    ШД ГайверЛиб.png (40.2 КБ) 18967 просмотров
      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      GyverStepper (https://alexgyver.ru/gyverstepper/)
      GyverTimers (https://alexgyver.ru/gyvertimers/)

      В блоке реализована поддержка всех функций библиотеки gyverstepper!

      Особенности использования данных блоков:Показать
      Первым на холст программирования нужно вытаскивать блок ШД AlexCrane GyverLIB и лишь затем блок ШД Конечный.
      Если вытащили еще один блок ШД AlexCrane GyverLIB, то удалите блок ШД Конечный и вытащите его заново.
      Если удалите самый последний блок ШД AlexCrane GyverLIB то удалите и блок ШД Конечный и начните заново.


      Возможно автор программы Сергей что-то подправил, но сейчас компилируется нормально и без ШД блок конечный... Пока оставил...
      Блоки бета-версия от 17.06.2021: - исправлена ошибка изменения скорости в режиме постоянного вращения на лету

      Обозначения:Показать
      _|¯ - постоянная подача true, отработка по переднему фронту
      _|_ - Подача сигнала через RTrig на один цикл
      Входы:Показать
      _|_ EnableMotor - Подать питание на мотор, через RTrig
      _|_ DisableMotor - Снять питание с мотора, через RTrig
      Endless_Rotation_Speed - Скорость постоянного вращения, шаг/сек
      Endless_Rotation_Smooth - Режим ускорения для бесконечного вращения На данный момент используется вход Acceleration
      _|_ Start_Endless_Rotation - Пуск постоянного вращения, через RTrig
      _|_ Stop - Плавная остановка ШД, через RTrig
      _|_ Brake - Резкая остановка ШД, через RTrig
      _|_ Reset - Резкая остановка и сброс координат в 0, через RTrig
      MaxSpeed - Максимальная скорость шаг/сек, указывать обязательно
      Acceleration - Ускорение в шаг/сек за сек, указывать обязательно
      Steps - Установка шагов
      _|_ Start_Steps - Пуск шагов, через RTrig
      _|¯ Absolute - Режим абсолютных координат true, Режим относительных координат - false
      _|¯ CCW - Направление вращения
      _|_ CurrentPosition - Текущая позиция мотора
      _|_ setCurrentPosition - Установка текущей позиции мотора, через RTrig
      _|¯ AutoPower - Управление питанием
      _|_ getSpeed - Просмотр целевой скорости мотора на выходе curSpeed, через RTrig
      Выходы:Показать
      _|¯ Ready - На выходе высокий уровень, если мотор стоит или остановился
      Position - На выходе текущая позиция в шагах
      curSpeed - На выходе текущая целевая скорость мотора
      Параметры блоки описаны внутри блока.

      Ненужные режимы, входы отключаются.
      Выявленные недостатки библиотеки gyverstepper: пока не проверено…Показать
      1. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop, то мотор резко останавливается и продолжает медленно шагать! Как решение использовать резкую остановку break или reset. Все вопросы к Гайверу (в тестовом примере с его сайта у меня наблюдаются такие-же глюки).
      2. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop и тут же включить опять бесконечное вращение то мотор ускоряется не с нуля а с момента остановки (может стартануть вообще без ускорения)... Решение см. п.1.
      Примеры (внимание в примерах используются и старые и новые блоки…Показать
      Бесконечное вращение -
      ШД G бесконечное вращение.zip
      (90.63 КБ) 210 скачиваний
      Бесконечное вращение с реверсом - Шагаем в режиме относительных координат -
      ШД G шагаем относительно.zip
      (51.17 КБ) 204 скачивания
      Крутим мотор туда сюда на определенное количество шагов бесконечно viewtopic.php?t=7245&start=40#p103761[/color]
      Протестировал базовые функции. НЕ удалось достичь высоких скоростей на моем ШД (максимум 2500 при питании 50В Nema23)

      ТРЕБУЕТСЯ ТЕСТИРОВАНИЕ ВСЕХ РЕЖИМОВ....
      Можете отблагодарить на кофе, ну или хотя-бы лайкните пост.
      Последний раз редактировалось AlexCrane 01.07.2021{, 23:00}, всего редактировалось 11 раз.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Axel
      Рядовой
      Сообщения: 25
      Зарегистрирован: 08.05.2018{, 12:25}
      Репутация: 0

      Шаговый двигатель на GyverStepper

      #161

      Сообщение Axel » 24.04.2023{, 01:10}

      Столкнулся с двумя проблемами. Не понятно, особенности блока такие или что-то неправильно делаю.

      1. При смене сигнала на входе CCW направление вращение не меняется до выключения и включения контроллера. Например, на CCW подается 1 и двигатель вращает по часовой стрелке. Меняю на 0, двигатель продолжает вращать по часовой стрелке. Значение направления записывается в EEPROM. Если выключить и включить контроллер, то начинает вращать против часовой стрелки, как и должно быть. В обратном направлении тоже самое. В чем может быть проблема?

      2. Двигатель вращает поворотный стол. Количество шагов ШД для оборота стола на 360 градусов почему то отличается от направления вращения. По часовой стрелке надо меньше шагов (примерно на 200), чем против часовой. Это нормально?

      Аватара пользователя
      AlexCrane
      Капитан
      Сообщения: 895
      Зарегистрирован: 20.10.2017{, 13:22}
      Репутация: 294
      Откуда: Ульяновск
      Имя: Александр

      Шаговый двигатель на GyverStepper

      #162

      Сообщение AlexCrane » 24.04.2023{, 17:49}

      Axel писал(а):
      24.04.2023{, 01:10}
      1. При смене сигнала на входе CCW направление вращение не меняется до выключения и включения контроллера
      Поставьте последнюю версию v2.6.3 - reverse() в step-dir драйвере теперь применяется сразу
      Axel писал(а):
      24.04.2023{, 01:10}
      Это нормально?
      Это не нормально. Возможно в проекте что-то не так.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Аватара пользователя
      Rovki
      Полковник
      Сообщения: 4872
      Зарегистрирован: 22.04.2016{, 17:25}
      Репутация: 269
      Откуда: Чехов
      Имя: Анатолий
      Контактная информация:

      Шаговый двигатель на GyverStepper

      #163

      Сообщение Rovki » 27.05.2023{, 16:35}

      Подскажите есть ли где блоки для работы с ШД (3 шт) на базе ESP8266(32)- управление драйвером (step/dir) , спасибо ?
      Электронщик до мозга костей и не только

      MihailK
      Сержант
      Сообщения: 104
      Зарегистрирован: 05.12.2020{, 23:42}
      Репутация: 11
      Имя: Михаил

      Шаговый двигатель на GyverStepper

      #164

      Сообщение MihailK » 11.06.2023{, 01:04}

      Rovki писал(а):
      27.05.2023{, 16:35}
      ШД (3 шт) на базе ESP8266(32)
      это не блоки, но 3 двигателя к ESP подключают https://myrobotlab.org/content/esp-wroo ... 7-steppers

      Аватара пользователя
      Rovki
      Полковник
      Сообщения: 4872
      Зарегистрирован: 22.04.2016{, 17:25}
      Репутация: 269
      Откуда: Чехов
      Имя: Анатолий
      Контактная информация:

      Шаговый двигатель на GyverStepper

      #165

      Сообщение Rovki » 11.06.2023{, 08:04}

      MihailK писал(а):
      11.06.2023{, 01:04}
      Rovki писал(а):
      27.05.2023{, 16:35}
      ШД (3 шт) на базе ESP8266(32)
      это не блоки, но 3 двигателя к ESP подключают https://myrobotlab.org/content/esp-wroo ... 7-steppers
      Спасибо, но это не совсем то ,что нужно . Драйверы ШД другие (промышленные , step\dir)
      Электронщик до мозга костей и не только

      tema
      Сержант
      Сообщения: 187
      Зарегистрирован: 21.09.2020{, 12:31}
      Репутация: 7
      Имя: tema

      Шаговый двигатель на GyverStepper

      #166

      Сообщение tema » 11.06.2023{, 09:14}

      тоже надо хотябы на1 двигатель

      MihailK
      Сержант
      Сообщения: 104
      Зарегистрирован: 05.12.2020{, 23:42}
      Репутация: 11
      Имя: Михаил

      Шаговый двигатель на GyverStepper

      #167

      Сообщение MihailK » 11.06.2023{, 22:33}

      Rovki писал(а):
      11.06.2023{, 08:04}
      промышленные
      промышленными народ управляет ПК +mach3 (или аналогичная программа)+LPT плата 500руб

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #168

      Сообщение LForest » 12.06.2023{, 00:57}

      Установил Ваш блок, скаченный по ссылке в шапке, и у меня он вот такой.
      Изображение
      Меня заинтересовал GyverStepper большим функционалом, нежели у AccelStepper 0_о
      А где он весь? =)

      Название блока отличается, но это тот, что в ссылке прямо под описанием.
      Библиотеки я в IDE установил. Может еще что-то надо в саму FLProg добавить, чтобы блок был полным по функционалу?

      shpuntic48
      Рядовой
      Сообщения: 21
      Зарегистрирован: 26.06.2020{, 07:17}
      Репутация: 0
      Откуда: Khabarovsk
      Имя: михаил

      Шаговый двигатель на GyverStepper

      #169

      Сообщение shpuntic48 » 12.06.2023{, 08:25}

      Подключи все режимы и будет полный функционал
      Вложения
      Безымянный.jpg

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #170

      Сообщение LForest » 12.06.2023{, 16:02}

      А х ты жЪ! Прокрутить надо было :smile171:
      Не сталкивался еще с окном настроек модуля, у которого список спрятанный, потому не заметил полоску прокрутки :smile427:
      Благодарю и извиняюсь за тупняк свой. Я, по сути, на момент написания всего несколько часов юзал программу и познакомился с FLProg по причине срочной реализации одного простенького станка на одном шаговике.

      Постараюсь самостоятельно разобраться, но если опять упрусь - можно за оплату получить помощь? Просто этот станок на производстве нужен поскорее. Механика уже готова давно и я уже 2 недели мыкаюсь в попытках написать программу его работы, ибо не проггер.

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #171

      Сообщение LForest » 12.06.2023{, 18:24}

      Рискну, все таки, описать алгоритм, который мне нужен. Если есть возможность - помогите с учетом того, что я новичок. Понимаю, что не фиг лезть в сложные задачи, пока в основах не разобрался. Рад бы, но этот простой станок надо было сделать еще 2 недели назад, ибо другой дорогущий станок простаивает, в который все бабки вбухали почти и к которому данный мини станок необходим на завершающем этапе производства товара.
      Алгоритм таков:
      У станка всего одна ось, по которой бегает голова с зеркалом и линзой от парковки до конца рабочей области в 2,5 метра, после чего сразу обратно до парковки. То есть один такой цикл туда-сюдашный, который запускается кнопкой "Старт". Сам шаговик в данном алгоритме первую половину крутится против часовой, вторую по часовой. Если это усложняет, то не проблема в конструкции его перевернуть.
      Все это с ускорением/замедлением, потому как требуется большая скорость движения головы. Это, собственно, и есть алгоритм работы.
      Так же есть две кнопки для юстировки зеркал станка, по которым шаговик крутится в одну сторону и в другую. Соответственно две кнопки - "Лево" против часовой до отпускания, "Право" по часовой до отпускания.
      При включении станка шаговик должен без ускорения крутиться против часовой на пару оборотов, после чего сразу по часовой до контакта с концевиком парковки. После этого уже ждать запуска, описанного в начале, алгоритма по кнопке "Старт".

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

      Аватара пользователя
      Rovki
      Полковник
      Сообщения: 4872
      Зарегистрирован: 22.04.2016{, 17:25}
      Репутация: 269
      Откуда: Чехов
      Имя: Анатолий
      Контактная информация:

      Шаговый двигатель на GyverStepper

      #172

      Сообщение Rovki » 12.06.2023{, 19:02}

      MihailK писал(а):
      11.06.2023{, 22:33}
      Rovki писал(а):
      11.06.2023{, 08:04}
      промышленные
      промышленными народ управляет ПК +mach3 (или аналогичная программа)+LPT плата 500руб
      Я про такие и аналогичные https://aliexpress.ru/item/100500235780 ... 4aa60Zna5L
      на Нано работают не плохо, хотелось бы и на ESP32 сделать
      Электронщик до мозга костей и не только

      Аватара пользователя
      AlexCrane
      Капитан
      Сообщения: 895
      Зарегистрирован: 20.10.2017{, 13:22}
      Репутация: 294
      Откуда: Ульяновск
      Имя: Александр

      Шаговый двигатель на GyverStepper

      #173

      Сообщение AlexCrane » 12.06.2023{, 19:51}

      Обновил версию блока для ШД. Убрал старые болячки. Теперь корректно работает. Прошу протестировать.
      Попробуйте этот блок на ESP32 (мне интересно он вообще работает? Или убрать из блока поддержку этого МК)
      Вложения
      гайвер3.flp
      (2.13 МБ) 23 скачивания
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Аватара пользователя
      AlexCrane
      Капитан
      Сообщения: 895
      Зарегистрирован: 20.10.2017{, 13:22}
      Репутация: 294
      Откуда: Ульяновск
      Имя: Александр

      Шаговый двигатель на GyverStepper

      #174

      Сообщение AlexCrane » 12.06.2023{, 23:09}

      LForest, На каком МК и какие скорости нужны?
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #175

      Сообщение LForest » 13.06.2023{, 18:22}

      AlexCrane писал(а):
      12.06.2023{, 23:09}
      На каком МК и какие скорости нужны?
      Контроллер DM542 (микрошаг 400)
      ШД NEMA 23HS6602 униполярный, но использую как биполярный. Вроде как центральные отводы обмоток надо на GND цеплять, но я не рискнул. И вообще не знаю, можно ли подключать униполярные к данному драйверу. В Вашем модуле ШД1_v1.3 есть варианты UNI, но в них управление идет через 4 пина, тогда как у драйвера только два управляющих PUL и DIR.
      Скорость 8000. Подобрал ее на модуле ШД1_v1.3. Почему-то на модуле ШД AlexGrane GyverLIB уже после 3500 клинит, а на этом клинит после 8000. Может это уже ограничение Arduino Uno и надо взять мегу, к примеру?
      Если честно даже этой скорости маловато, в иделе 25 об/с. Про биполярные написано, что их можно раскручивать до 1500 об/м.
      Вложения
      Скриншот 13-06-2023 180552.jpg
      Скриншот 13-06-2023 180552.jpg (23.38 КБ) 506 просмотров

      Аватара пользователя
      AlexCrane
      Капитан
      Сообщения: 895
      Зарегистрирован: 20.10.2017{, 13:22}
      Репутация: 294
      Откуда: Ульяновск
      Имя: Александр

      Шаговый двигатель на GyverStepper

      #176

      Сообщение AlexCrane » 13.06.2023{, 18:58}

      LForest писал(а):
      13.06.2023{, 18:22}
      Контроллер DM542 (микрошаг 400)
      ШД NEMA 23HS6602 униполярный, но использую как биполярный. Вроде как центральные отводы обмоток надо на GND цеплять, но я не рискнул. И вообще не знаю, можно ли подключать униполярные к данному драйверу. В Вашем модуле ШД1_v1.3 есть варианты UNI, но в них управление идет через 4 пина, тогда как у драйвера только два управляющих PUL и DIR.
      Скорость 8000. Подобрал ее на модуле ШД1_v1.3. Почему-то на модуле ШД AlexGrane GyverLIB уже после 3500 клинит, а на этом клинит после 8000. Может это уже ограничение Arduino Uno и надо взять мегу, к примеру?
      Если честно даже этой скорости маловато, в иделе 25 об/с. Про биполярные написано, что их можно раскручивать до 1500 об/м.
      Центральные обмотки ШД никуда не нужно "цеплять", тогда будет работать как биполярный и будет работать с DM542. На библиотеке от Гайвера вполне реально на UNO выдать до 20000 шаг/сек если программа будет не очень сложная. Период прерывания убавь где-то до 30.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #177

      Сообщение LForest » 13.06.2023{, 19:19}

      Ну так я про то и написал, что не "цепляю" центральные никуда, а использую только крайние контакты обмоток, потому ак у драйвера есть только B-B+A-A+.
      Установил период прерываний на 30 в блоке на библиотеке Гайвера. MaxSpeed предельный 6000, выше клин. Но скорость побольше стала, чем в предыдущей попытке на AccelStepper.
      При попытке установить еще меньше до 10, который указан минимальным в описании, вообще не запускается. В смысле вообще не реагирует на кнопку старта.

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #178

      Сообщение LForest » 13.06.2023{, 19:55}

      Попытался вот так реализовать алгоритм туда-сюда, но при компиляции ошибка. Так понимаю два блока нельзя использовать?
      Если так, то я никак не пойму, каким образом я могу использовать выходы Ready и Position, если они всегда выполняются в конце программы. Так же я пытался передавать из Position в переменную, но, опять же, это не имеет смысла, потому как запись в нее происходит в конце работы блока и я не могу определить половину значения Steps, чтобы использовать ее.
      Каким образом можно два раза задействовать этот блок?
      Вложения
      Скриншот 13-06-2023 195245.jpg

      Аватара пользователя
      AlexCrane
      Капитан
      Сообщения: 895
      Зарегистрирован: 20.10.2017{, 13:22}
      Репутация: 294
      Откуда: Ульяновск
      Имя: Александр

      Шаговый двигатель на GyverStepper

      #179

      Сообщение AlexCrane » 13.06.2023{, 20:25}

      LForest писал(а):
      13.06.2023{, 19:55}
      Так понимаю два блока нельзя использовать?
      Можно но это будет управление двумя независимыми ШД.

      Чисто из-за спортивного интереса накидал ваш алгоритм.

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

      LForest
      Рядовой
      Сообщения: 19
      Зарегистрирован: 11.06.2023{, 23:47}
      Репутация: 0
      Имя: Сергей

      Шаговый двигатель на GyverStepper

      #180

      Сообщение LForest » 13.06.2023{, 20:53}

      Это не совсем мой алгоритм...
      Если честно я уже реально удивляюсь. На разных форумах просил помочь и все мне показывают безконечное вращение туда-сюда, тогда как мне нужно делать один цикл туда-сюда с остановкой и ожиданием повторного запуска. Это даже видно из того алгоритма, что я пытался на двух блоках сделать выше.
      Может у меня шиза и я слова путаю? 0_о Вот мой текст: - "У станка всего одна ось, по которой бегает голова с зеркалом и линзой от парковки до конца рабочей области в 2,5 метра, после чего сразу обратно до парковки. То есть один такой цикл туда-сюдашный, который запускается кнопкой "Старт"."

      PS Если у меня уже после 6000 клинит, то может драйвер полудохлый или двигатель? Может такое быть? Питание я на него подаю 48 вольт при диапазоне драйвера 20-50. Должен тянуть максимальные... вроде как.
      БР честный. Долго бегал по радиорынку с мультиметром, проверяя. Хотя у вас уно, а у меня нано. Может и правда унку нельзя так напрягать, хотя мозги у них одинаковые.

      Ответить

      Вернуться в «Управление шаговыми двигателями и сервоприводами»