Шаговый двигатель на 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 КБ) 18966 просмотров
      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      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 раз.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

      #81

      Сообщение AlexCrane » 01.07.2021{, 16:44}

      azgold, Исправил, проверь если все нормально отпишись, выложу в шапку

      - Выложил исправленную версию в шапку
      Последний раз редактировалось AlexCrane 01.07.2021{, 23:00}, всего редактировалось 1 раз.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      azgold
      Рядовой
      Сообщения: 6
      Зарегистрирован: 03.06.2021{, 16:16}
      Репутация: 0
      Имя: Николай

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

      #82

      Сообщение azgold » 01.07.2021{, 20:14}

      AlexCrane писал(а):
      01.07.2021{, 16:44}
      azgold, Исправил, проверь если все нормально отпишись, выложу в шапку
      ШД_AlexCrane_GyverStepper_v1.15a_(Code_-_Professional).ubi
      Спасибо огромное! Все работает!!! Резисторы регулируют, оба двигателя работают, видимых багов не заметил.

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

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

      #83

      Сообщение MM33 » 02.07.2021{, 11:01}

      всем добрый день!
      сравнил работу шаговых двигателей в версии от Gyver и той что выкладывал AlexCrane раньше в другой ветке .
      По моим ощущениям версия от Gyver не использует таймера для генерации Step и отсюда наблюдается не очень четкая работа двигателей ( похрюкивание и повизгивание ) даже в установившемся режиме по скорости. При этом хорошо работает ( плавно ) разгон/торможение. (Второй блок, который вытаскивается после всех на холсте присутствует).
      Блоки от AlexCrane разгоняют и тормозят ступенчато, но двигатели работают гораздо мягче .
      Может я что то упускаю , не ставлю галочек в нужном месте , не пользуюсь регулировками и т.д?

      Отправлено спустя 3 часа 26 минут 12 секунд:
      AlexCrane, правильно я понимаю что в Вашей версии разгон идет до половины пути указанного в шагах на входе Step, а далее идет ступенчатое торможение? ( Судя по звукам издаваемым двигателем это так)
      Как объединить две версии управления ШД взяв от каждой лучшее: бесступенчатый разгон /торможение от Giver до заданной скорости далее движение на этой скорости и потом торможение до нуля и генерацию Step от аппаратного таймера. ( на программный Step накладываются прерывания и в результате Step становится не стабильным по времени прихода следующего импульса , а это воспринимается двигателем как изменение скорости. учитывая что к валу двигателя ( да и сам якорь двигателя ) приведены моменты инерции нагрузки , все это вызывает дополнительные шумы, дрожание , и прочие неприятности вплоть до пропуска шагов.

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

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

      #84

      Сообщение AlexCrane » 02.07.2021{, 15:34}

      MM33 писал(а):
      02.07.2021{, 14:27}
      разгон идет до половины пути указанного в шагах на входе Step
      ускоряется до максимальной скорости с заданным ускорением, если не успеет разогнаться то начнет плавное торможение со скорости которую успел набрать
      MM33 писал(а):
      02.07.2021{, 14:27}
      далее идет ступенчатое торможение
      возможно нужно уменьшить период прерываний
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

      #85

      Сообщение MM33 » 02.07.2021{, 16:14}

      ок, в понедельник попробую

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

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

      #86

      Сообщение MM33 » 05.07.2021{, 11:18}

      всем добрый день! Попробовал поиграться с периодом прерываний , эффекта в регулировании это не дало, но на малых значениях (10...20) начинает пропадать связь с Каскадой .

      Отправлено спустя 4 минуты 49 секунд:
      предыдущее сообщение актуально для блока с библиотекой от Giver

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

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

      #87

      Сообщение Wadim77 » 26.07.2021{, 17:16}

      Добрый день!
      А не подскажете схемку в флпрог для этой библиотеки (ГайверСтеппер).
      Смысл такой -
      1. Включил ардуино (с подключенным драйвером и мотором)
      2. Нажал кнопку (Обнулить)
      3. Мотор крутится влево до концевика.
      4. Обнулился (встал в нулевую точку и понял, что он в нуле)
      5. Далее я ввожу нужные мне значения (например с уарта или просто с потенциометра на вход СТЕП) и управляю мотором (устанавливаю на нужную позицию).

      Не могу соориентироваться как нарисовать схему в ФБД - с функцией обнуления (установки нуля) координат.

      СПАСИБО!

      Аватара пользователя
      ingener
      Лейтенант
      Сообщения: 556
      Зарегистрирован: 14.10.2018{, 00:26}
      Репутация: 20
      Имя: Андрей

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

      #88

      Сообщение ingener » 27.07.2021{, 10:12}

      AlexCrane, можно ли использовать блок без встроенного генератора? Т.е. убрать все лишнее, чтобы не задействовать на него ресурсы контроллера - блок будет только выдавать значения скорости на выходе out speed. Соответственно, с ускорением и торможением.
      Эти значения будут подаваться на отдельный генератор. Так можно достичь более высокой частоты = деления шагов = плавности работы мотора.

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

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

      #89

      Сообщение AlexCrane » 27.07.2021{, 13:15}

      ingener, Вряд ли Гайвер закладывал такой функционал в свою библиотеку. Проще взять другие блоки для расчета ускорений, вот тут недавно обсуждали блоки ускорений, такой не подойдет?
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Аватара пользователя
      ingener
      Лейтенант
      Сообщения: 556
      Зарегистрирован: 14.10.2018{, 00:26}
      Репутация: 20
      Имя: Андрей

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

      #90

      Сообщение ingener » 27.07.2021{, 13:55}

      AlexCrane писал(а):
      27.07.2021{, 13:15}
      обсуждали блоки ускорений, такой не подойдет?
      Блок подойдет, конечно, для плавного разгона и торможения. Но главный вопрос - отработка кол-ва шагов, т.е. заблаговременно начать снижать скорость, чтобы остановиться к заданному значению шагов.

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

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

      #91

      Сообщение AlexCrane » 27.07.2021{, 14:38}

      ingener писал(а):
      27.07.2021{, 10:12}
      Т.е. убрать все лишнее, чтобы не задействовать на него ресурсы контроллера
      Вот все ресурсы идут на расчеты, а не на генерацию импульсов. Так что используй, разве что два пина пропадет
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Аватара пользователя
      Di123
      Капитан
      Сообщения: 828
      Зарегистрирован: 03.11.2018{, 19:38}
      Репутация: 29
      Имя: Дмитрий

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

      #92

      Сообщение Di123 » 30.07.2021{, 18:06}

      не получается привязать АЦП к шагам что бы шд повторял движения ручки потенциометра
      но он всё время крутится по кругу хотя я ему задаю текущию фиксированую позицию от АЦП
      2021-07-30_220133.png
      2021-07-30_220133.png (6.84 КБ) 1164 просмотра

      edyapd
      Капитан
      Сообщения: 768
      Зарегистрирован: 20.09.2019{, 11:38}
      Репутация: 65
      Имя: Эдуард

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

      #93

      Сообщение edyapd » 31.07.2021{, 12:01}

      Di123, я не разбирался с этим блоком, но похоже у вас просто логическая ошибка.
      Вы на каждом такте генератора говорите блоку, что это текущая позиция. И судя по входу Step от неё надо сделать 100 шагов. Вот он и крутится постоянно.

      Ingwar
      Полковник
      Сообщения: 1929
      Зарегистрирован: 28.10.2015{, 22:47}
      Репутация: 223
      Откуда: Ленобласть
      Имя: Игорь

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

      #94

      Сообщение Ingwar » 31.07.2021{, 13:28}

      edyapd писал(а):
      31.07.2021{, 12:01}
      Di123, я не разбирался с этим блоком, но похоже у вас просто логическая ошибка.
      Вы на каждом такте генератора говорите блоку, что это текущая позиция. И судя по входу Step от неё надо сделать 100 шагов. Вот он и крутится постоянно.
      Это не важно, все равно виноват кто то другой :smile38:
      Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

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

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

      #95

      Сообщение AlexCrane » 31.07.2021{, 18:38}

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

      baobao
      Рядовой
      Сообщения: 1
      Зарегистрирован: 09.06.2021{, 07:28}
      Репутация: 0
      Имя: bao

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

      #96

      Сообщение baobao » 17.08.2021{, 20:05}

      hi AlexCrane, i need to contol 4 stepper like robot arm with some step but i don't know how to do it ... pls help me

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

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

      #97

      Сообщение Wadim77 » 18.08.2021{, 20:57}

      AlexCrane писал(а):
      31.07.2021{, 18:38}
      Di123, Для этого лучше использовать абсолютные координаты
      А схемку не подскажете? Спасибо!

      Аватара пользователя
      Di123
      Капитан
      Сообщения: 828
      Зарегистрирован: 03.11.2018{, 19:38}
      Репутация: 29
      Имя: Дмитрий

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

      #98

      Сообщение Di123 » 19.08.2021{, 02:49}

      Wadim77, ничего не получилось

      Аватара пользователя
      belyx
      Сержант
      Сообщения: 247
      Зарегистрирован: 24.07.2016{, 20:38}
      Репутация: 20
      Откуда: Витебск Беларусь

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

      #99

      Сообщение belyx » 23.10.2021{, 14:09}

      взял пример отсюда #52 Сообщение AlexCrane
      поставил библиотеку позавчера с сайта по ссылке с 1 поста
      всё запустилось, думаю отлично-добавлю режимов-
      тем более
      AlexCrane писал(а):
      24.03.2021{, 22:49}
      ТРЕБУЕТСЯ ТЕСТИРОВАНИЕ ВСЕХ РЕЖИМОВ....
      1 этап 200 шагов 2 раза
      2 этап -200 шагов 2 раза (в обратную сторону)
      3 этап 20 раз по 20 шагов
      4 этап 20 раз по -20 шагов (в обратную сторону)
      5 этап 20 шагов,затем -40 шагов (в обратную сторону) и так 40 раз (качалка)
      немного доработал схемку
      30 Пример ШД туда-сюда БЕЗ LCD.flp
      (2.7 МБ) 52 скачивания
      получилось в итоге:
      в уарт выводит вроде всё по задуманному
      30.txt
      (10.17 КБ) 36 скачиваний
      в реальности
      делает оборот(200 шагов)-1этап,затем 2 оборота назад (400 шагов)-этап 2+видно 1пачку 3 этапа,останавливается, стоит,1 пачку шагов в обратную 4 этапа,останавливается, стоит, и затем качалка 5 этапа,но количество шагов одинаково ,покачается и переход на 1 этап
      на 3,4 этапах (на пине STEP вообще нет импульсов-осциллографом)
      на 5 этапе делает вперёд-назад одинаковое число шагов(должно быть 20 и 40 в обратную)
      от скорости махSpeed не зависит - менял
      вспомнил-выяснилось что на выходе ready у меня был почему-то двойной импульс.
      добавляю pos в уарт
      Screenshot_3.png
      Screenshot_3.png (4.66 КБ) 1006 просмотров
      и отключаю последнюю плату.
      смотрю соответствие POS и переменной отсчёт которая считает старты
      и .... вопросов ещё больше.(по старту позиция POS должна постепенно меняться на количество шагов на входе,отшагали шаги-новый старт,отсчет изменился на 1,позиция должна снова изменится на количество шагов)
      Документ Microsoft Word.docx
      (24.59 КБ) 35 скачиваний
      и почему при установке параметра в блоке 200 шагов на оборот позицию выводит 400 ?
      может где ошибка ? косяки блока + косяки проекта ? рекомендации

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

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

      #100

      Сообщение AlexCrane » 23.10.2021{, 20:53}

      belyx, А теперь попробуй тоже самое, но без прерываний.
      belyx писал(а):
      23.10.2021{, 14:09}
      в блоке 200 шагов на оборот позицию выводит 400
      Не реализовано, в параметрах это указано
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Ответить

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