Шаговый двигатель на 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 КБ) 19199 просмотров
      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      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 КБ) 211 скачиваний
      Бесконечное вращение с реверсом - Шагаем в режиме относительных координат -
      ШД G шагаем относительно.zip
      (51.17 КБ) 205 скачиваний
      Крутим мотор туда сюда на определенное количество шагов бесконечно viewtopic.php?t=7245&start=40#p103761[/color]
      Протестировал базовые функции. НЕ удалось достичь высоких скоростей на моем ШД (максимум 2500 при питании 50В Nema23)

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

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #201

      Сообщение Ardudue » 04.07.2023{, 15:40}

      AlexCrane писал(а):
      01.07.2023{, 20:26}
      в версии 2.3а не нужен https://flprog.pro/index.php?/files/fil ... erstepper/
      В моем проекте блок ШД_AlexCrane_GyverStepper_v1.15a_(Code_-_Professional)_01.07.2021 заменил на 2.3а, программа рандомно перестает выполняться.
      Никак не пойму на один оборот вала шаговика какое значение надо поставить в ПБ на вход "Steps" - если мотор имеет 200 шагов на один оборот, на драйвере применяется микрошаг 16?

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

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

      #202

      Сообщение AlexCrane » 04.07.2023{, 21:31}

      Ardudue писал(а):
      04.07.2023{, 15:40}
      на вход "Steps" - если мотор имеет 200 шагов на один оборот, на драйвере применяется микрошаг 16?
      3200 шагов на один оборот.
      Как показали испытания библиотека Гайвера не очень хорошо работает с большими скоростями (ШД работает рывками, часто встает). На библиотеке AccelStepper работает плавнее, но скорости меньше. На библиотеке FastAccelStepper работает очень шустро, но есть ограничения на количество ШД.

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

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #203

      Сообщение Ardudue » 05.07.2023{, 16:55}

      AlexCrane писал(а):
      04.07.2023{, 21:31}
      Сколько вы используете ЩД в своем проекте?
      Шаговика у меня три.
      Алгоритм простой:
      При подаче питания на контроллер запускается шаговик Z-стоп по концевику, затем запускаются XиY – стоп по концевику.
      Жму кнопку старт - 10шагов шагает X и одновременно 20 шагов шагает Y.
      Точности повторения попадания в одну точку не удалось добиться – 2мм то не доходит , то переходит как X так и Y.

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

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

      #204

      Сообщение AlexCrane » 05.07.2023{, 21:52}

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

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #205

      Сообщение Ardudue » 06.07.2023{, 18:51}

      AlexCrane, У меня Atmega2560+RAMPS1.4, драйверы DRV8825 (микрошаг 16) моторы Nema 17.
      X.PNG
      X.PNG (6.46 КБ) 1144 просмотра
      Y.PNG
      Y.PNG (4.44 КБ) 1144 просмотра

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

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

      #206

      Сообщение AlexCrane » 06.07.2023{, 20:33}

      Ardudue, Используйте блоки на библиотеке FastAccelStepper. 2560 как раз тянет 3 ШД на максимальных скоростях и работает стабильно.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #207

      Сообщение Ardudue » 07.07.2023{, 20:12}

      AlexCrane писал(а):
      06.07.2023{, 20:33}
      Используйте блоки на библиотеке FastAccelStepper.
      С этой библиотекой я так понимаю для каждого драйвера мотора надо использовать выход таймера для step , и, к сожалению, на RAMPS1.4 только Z-STEP использует D46 – выход Timer 5, остальные X-STEP - A0, Y-STEP - A6.
      avr atmega2560:
      11/12/13 Timer 1,
      5/2/3 Timer 3
      6/7/8 Timer 4
      46/45/44 Timer 5

      Для X, Y придется резать дорожки и работать паяльником...

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

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

      #208

      Сообщение AlexCrane » 07.07.2023{, 21:28}

      Ardudue писал(а):
      07.07.2023{, 20:12}
      Для X, Y придется резать дорожки и работать паяльником...
      Думаю это не так сложно... Ну или свою плату сделать.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #209

      Сообщение Ardudue » 04.08.2023{, 14:02}

      AlexCrane писал(а):
      06.07.2023{, 20:33}
      Используйте блоки на библиотеке FastAccelStepper. 2560 как раз тянет 3 ШД на максимальных скоростях и работает стабильно.
      Если использовать Timer 3 pin5, то можно ли использовать pin 2,3 как входные?
      В RAMPS1.4 на них концевики висят ?
      У автора библиотеки не увидел информации.

      MM33
      Рядовой
      Сообщения: 41
      Зарегистрирован: 23.06.2021{, 11:52}
      Репутация: 7
      Имя: Михаил

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

      #210

      Сообщение MM33 » 04.08.2023{, 15:41}

      Видимо я чего то пропустил...
      Где можно взять блоки на библиотеке FastAccelStepper?

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #211

      Сообщение Ardudue » 04.08.2023{, 17:17}


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

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

      #212

      Сообщение AlexCrane » 04.08.2023{, 20:35}

      Ardudue писал(а):
      04.08.2023{, 14:02}
      Если использовать Timer 3 pin5, то можно ли использовать pin 2,3 как входные?
      Если используете один ШД то можно.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      EgorKa
      Сержант
      Сообщения: 217
      Зарегистрирован: 09.03.2019{, 17:49}
      Репутация: 21
      Имя: Egor

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

      #213

      Сообщение EgorKa » 05.08.2023{, 06:52}

      Ardudue писал(а):
      04.08.2023{, 14:02}
      Если использовать Timer 3 pin5, то можно ли использовать pin 2,3 как входные?
      В RAMPS1.4 на них концевики висят ?
      У автора библиотеки не увидел информации.
      А почему не использовать пятый таймер. На ramps пин 46 (Timer 5).
      Я так понимаю можете повесить еще два мотора на пины 45 и 44 пятого таймера.
      AlexCrane, или я не правильно понял замысел автора библиотеки FastAccelStepper?

      Аватара пользователя
      Ivan_Kornege
      Лейтенант
      Сообщения: 342
      Зарегистрирован: 29.04.2017{, 08:24}
      Репутация: 27
      Откуда: гАндурас
      Имя: Ivan

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

      #214

      Сообщение Ivan_Kornege » 05.08.2023{, 12:17}

      AlexCrane писал(а):
      04.08.2023{, 20:35}
      Если используете один ШД то можно.
      сейчас попробовал тестануть с тремя шаговиками Ваш пб FastAccelStepper 0.3a, ниче не понял.
      Описания входов нет.
      И хотел задействовать на каждый мотор отдельный таймера 3,4 и 5.
      Но когда в ПБ ставлю номер таймера он меняется и в дух других блоках.
      Или чет делаю не так или можно использовать только один таймер и его три пина вешать на каждый мотор?

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

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

      #215

      Сообщение AlexCrane » 05.08.2023{, 20:59}

      Ivan_Kornege писал(а):
      05.08.2023{, 12:17}
      Описания входов нет.
      Вроде на русском все написано. Как описать вход Старт шагать? Поехали? Или Старт крутить вперед? Типа Начать вращение шагового двигатели по часовой стрелке неограниченное количество шагов?
      Ivan_Kornege писал(а):
      05.08.2023{, 12:17}
      И хотел задействовать на каждый мотор отдельный таймера 3,4 и 5.
      Отдельный выход разных таймеров можно только на DUE
      Ivan_Kornege писал(а):
      05.08.2023{, 12:17}
      Или чет делаю не так или можно использовать только один таймер и его три пина вешать на каждый мотор?
      На выходы только одного таймера можно вешать ШД. Для нано и уно только 2 ШД, на мегу 3 ШД, на esp32 много ШД. Это ограничения библиотеки в угоду большой скорости.

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

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #216

      Сообщение Ardudue » 06.08.2023{, 17:01}

      AlexCrane писал(а):
      04.08.2023{, 20:35}
      Если используете один ШД то можно.
      EgorKa писал(а):
      05.08.2023{, 06:52}
      А почему не использовать пятый таймер. На ramps пин 46 (Timer 5).
      Я так понимаю можете повесить еще два мотора на пины 45 и 44 пятого таймера.
      Видимо так и сделаю.

      Sams
      Рядовой
      Сообщения: 22
      Зарегистрирован: 31.03.2023{, 13:28}
      Репутация: 2
      Имя: Вася

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

      #217

      Сообщение Sams » 16.08.2023{, 14:24}

      а под stm32f103 есть возможность доработать ?
      при попытке компиляции ругается на таймеры

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #218

      Сообщение Ardudue » 16.08.2023{, 20:08}

      Sams писал(а):
      16.08.2023{, 14:24}
      а под stm32f103 есть возможность доработать ?
      при попытке компиляции ругается на таймеры
      потому что библиотека под AVR , это к автору библиотеки обращайтесь.
      Хотя GyverStepper глючная библиотека... типа распиаренная , но плохо работающая...

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #219

      Сообщение Ardudue » 19.08.2023{, 12:48}

      Ivan_Kornege писал(а):
      05.08.2023{, 12:17}
      Описания входов нет.
      AlexCrane писал(а):
      05.08.2023{, 20:59}
      Вроде на русском все написано. Как описать вход Старт шагать? Поехали? Или Старт крутить вперед? Типа Начать вращение шагового двигатели по часовой стрелке неограниченное количество шагов?
      AlexCrane, тоже попробовал применить блок, правильно понимаю назначение входов, выходов?
      Входы:
      Скорость, шаг/сек - устанавливаем скорость постоянного вращения, шаг/сек.
      Ускорение, шаг/сек/сек - устанавливаем ускорение постоянного вращения
      Линейное ускорение, шаг - ????
      Прыжок, шаг - ???
      Абсолютные координаты - Режим абсолютных координат true, Режим относительных координат - false???
      _|_ Старт шагать -Пуск постоянного вращения, через RTrig
      Шаги - Установка количество шагов (мотор тотшагает установленное количество шагов и остановится)
      _|_ Старт крутить вперед -
      _|_ Старт крутить назад -
      _|_ Стоп с ускорением - Плавная остановка ШД, через RTrig (где задается ускорение???)
      _|_ Стоп быстрый - Резкая остановка ШД,сброс координат не происходит, через RTrig
      _|_ Стоп быстрый с уст. позиции -Резкая остановка и сброс координат в 0, через RTrig???
      _|_ Установка текущей позиции - ???
      Установка текущей позиции в шагах - ???
      _|_ Один шаг вперед - подаем один имульс мотор сделает один шаг???
      _|_ Один шаг назад - подаем один имульс мотор сделает один шаг???

      _|_ Включить выхода управления ШД - какие выхода включает?

      _|_ Выключить выхода управления ШД - какие выключает?

      Выходы:
      _|¯ Готов - На выходе высокий уровень, если мотор стоит или остановился
      Текущая позиция - На выходе текущая позиция в шагах
      Ускоряюсь - на выходе высокий уровень если ускоряется управление двигателем???
      Торможу - ???
      Двигаюсь - на выходе высокий уровень если мотор шагает
      Реверс - на выходе 1 или 0 (направление по часовой или против какой сигнал определяет???)

      Ardudue
      Лейтенант
      Сообщения: 425
      Зарегистрирован: 13.04.2020{, 18:22}
      Репутация: 24
      Имя: Антон

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

      #220

      Сообщение Ardudue » 19.08.2023{, 15:01}

      AlexCrane, не работает на меге 2560
      FastAccelStepper DRV8825 MEGA2560 тест Z FLP823.flp
      (3.38 МБ) 38 скачиваний

      Ответить

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