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

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

      viktorz1
      Рядовой
      Сообщения: 11
      Зарегистрирован: 24.09.2020{, 00:08}
      Репутация: 0
      Имя: Виктор

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

      #41

      Сообщение viktorz1 » 25.04.2021{, 22:31}

      Для альтернативного подключения не хватает выводов. Придётся как то комбинировать с платами расширения портов и возможно данные для дисплея по уарту на другую ардуину передавать. В общем надо пробовать. Может и уарт тоже не работает :)

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

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

      #42

      Сообщение EgorKa » 29.04.2021{, 18:25}

      AlexCrane писал(а):
      24.03.2021{, 22:49}
      Все вопросы к Гайверу
      еть телеграм канал с чатом https://t.me/alexgyvershow

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

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

      #43

      Сообщение AlexCrane » 05.05.2021{, 21:44}

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

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

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

      #44

      Сообщение AlexCrane » 11.05.2021{, 19:32}

      AlexGyver по моей просьбе пофиксил проблему ускорений в режиме постоянного вращения. Подправил блок под новую версию библиотеки (1.12), искать в шапке. Прошу проверить.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

      #45

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

      AlexCrane писал(а):
      24.03.2021{, 22:49}
      b]getSpeed[/b] - Просмотр текущей скорости мотора на выходе curSpeed, через RTrig
      Это похоже ошибка?

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

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

      #46

      Сообщение AlexCrane » 12.05.2021{, 19:45}

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

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

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

      #47

      Сообщение ingener » 13.05.2021{, 11:00}

      Может, имелось в виду, что триггер не нужен? Значение скорости на выходе показывается и динамически меняется и при постоянной единице на входе GetSpeed.

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

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

      #48

      Сообщение Ivan_Kornege » 14.05.2021{, 14:13}

      AlexCrane, что то так и не понял как на Вашем блоке сделать следование к позиции с заданной скоростью (без ускорения) и потом включить реверс для возврата в исходную.
      Т.е. со скоростью 10 шагов/сек надо прошагать 500 шагов и остановится.
      Затем включаем реверс и шагаем с этой же скоростью 10 шагов/сек назад 500 шагов.

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

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

      #49

      Сообщение Ivan_Kornege » 14.05.2021{, 14:40}

      AlexCrane писал(а):
      11.05.2021{, 19:32}
      Подправил блок под новую версию библиотеки (1.12)
      уже выпустил GyverStepper v1.13 https://github.com/AlexGyver/GyverLibs#GyverStepper

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

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

      #50

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

      AlexCrane писал(а):
      12.05.2021{, 19:45}
      В чем Вы видите здесь ошибку?
      Вот здесь b]getSpeed[/b] лишние " b] и [/b] ".

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

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

      #51

      Сообщение Ardudue » 16.05.2021{, 16:03}

      Ivan_Kornege писал(а):
      14.05.2021{, 14:13}
      AlexCrane, что то так и не понял как на Вашем блоке сделать следование к позиции с заданной скоростью (без ускорения) и потом включить реверс для возврата в исходную.
      Т.е. со скоростью 10 шагов/сек надо прошагать 500 шагов и остановится.
      Затем включаем реверс и шагаем с этой же скоростью 10 шагов/сек назад 500 шагов.
      изописания ПБ похоже нельзя реализовать вашу задумку. Полагаю надо в ПБ AlexCrane реализовать входы для параметров в функции setTarget.

      или сделайте блок из этого кода

      Код: Выделить всё

      // крутим мотор туда-сюда плавно с ускорением
      // драйвер STEP-DIR
      
      #include "GyverStepper.h"
      // GStepper< STEPPER4WIRE> stepper(2048, 5, 3, 4, 2); 
      // мотор с драйвером ULN2003 подключается по порядку пинов, но крайние нужно поменять местами
      // то есть у меня подключено D2-IN1, D3-IN2, D4-IN3, D5-IN4, но в программе поменял 5 и 2
      GStepper<STEPPER2WIRE> stepper(200, 3, 2, 4);   //200 - количество шагов на один оборот вала
      // 3 - STEP
      // 2 - DIR
      // 4 - EN
      
      
      void setup() {
        Serial.begin(115200);
        // режим следования к целевй позиции
        stepper.setRunMode(FOLLOW_POS);
        // установка макс. скорости в шагах/сек
        //stepper.setMaxSpeed(400);
        stepper.setMaxSpeed(10);
        // установка ускорения в шагах/сек/сек
        stepper.setAcceleration(0);  // ускорение нУль
      }
      void loop() {
        // просто крутим туды-сюды
        if (!stepper.tick()) {
          static bool dir;
          dir = !dir;
          stepper.setTarget(dir ? -500 : 500);   // крутим 500 шагов и обратно 500 
        }
        // график положения
        static uint32_t tmr2;
        if (millis() - tmr2 > 20) {
          tmr2 = millis();
          Serial.println(stepper.getCurrent());
        }
      }
      

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

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

      #52

      Сообщение AlexCrane » 16.05.2021{, 23:01}

      Ivan_Kornege, Как за образец, вот пример - мотор шагает туда-сюда
      ШД туда-сюда.gif
      ШД туда-сюда.gif (64.71 КБ) 1031 просмотр
      ШД туда-сюда.png
      проект
      Пример ШД туда-сюда.zip
      (82.82 КБ) 141 скачивание
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

      #53

      Сообщение Ivan_Kornege » 17.05.2021{, 15:35}

      Ardudue, AlexCrane, Мужики спасибо за подсказки.
      У меня примитивная задумка челнока с ручным управлением.
      При первом включении дуины нажимаю кнопку "Старт" шаговик шагает со скоростью 10 шагов/сек надо прошагать 500 шагов и остановить шаговик пока не нажму кнопку "Реверс".
      Нажимаю кнопку "Реверс" затем "Старт" тогда шаговик шагает 10 шагов/сек назад 500 шагов и останавливается.
      Если надо то процесс повторяю.
      Вот можно ли так сделать на этом ПБ ?

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

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

      #54

      Сообщение Ardudue » 17.05.2021{, 16:06}

      Ivan_Kornege, может вот так, с железкой не проверял, пробуйте
      Пример ШД туда-сюда кнопка.flp
      (2.22 МБ) 108 скачиваний

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

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

      #55

      Сообщение AlexCrane » 17.05.2021{, 16:45}

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

      Аватара пользователя
      Vuktor
      Сержант
      Сообщения: 237
      Зарегистрирован: 11.04.2021{, 14:44}
      Репутация: 12
      Имя: Vuktor

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

      #56

      Сообщение Vuktor » 17.05.2021{, 17:58}

      А где об вот этих пользовательских блоках почитать?

      блоки.jpg

      vovka1973
      Майор
      Сообщения: 1060
      Зарегистрирован: 14.02.2016{, 14:16}
      Репутация: 42
      Откуда: kazahstan

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

      #57

      Сообщение vovka1973 » 17.05.2021{, 18:27}

      Vuktor писал(а):
      17.05.2021{, 17:58}
      А где об вот этих пользовательских блоках почитать?


      блоки.jpg
      это блоки от ecoins
      Изображение

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

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

      #58

      Сообщение AlexCrane » 17.05.2021{, 20:30}

      Vuktor, можно взять здесь viewtopic.php?t=5426&start=980#p100083, лично мое мнение - самые нетормозные блоки вывода на LCD
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Аватара пользователя
      Vuktor
      Сержант
      Сообщения: 237
      Зарегистрирован: 11.04.2021{, 14:44}
      Репутация: 12
      Имя: Vuktor

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

      #59

      Сообщение Vuktor » 17.05.2021{, 23:34}

      AlexCrane, Спасибо. Скачал, заглянул, что-то всё сложно показалось. Думаю, как-нибудь потом разберусь.
      Последний раз редактировалось Vuktor 09.06.2021{, 10:29}, всего редактировалось 1 раз.

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

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

      #60

      Сообщение AlexCrane » 18.05.2021{, 07:10}

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

      Ответить

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