Сервопривод на Gyver ServoSmooth

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

Сервопривод на Gyver ServoSmooth

Сообщение AlexCrane »

Блок для управления сервоприводами на основе библиотек Gyver'а
    GyverServo.png
      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      GyverSmooth (https://alexgyver.ru/servosmooth/ , https://github.com/GyverLibs/ServoSmooth)
      GyverTimers (https://alexgyver.ru/gyvertimers/)

      Блоки бета-версия от 18.07.2021:
      Серво_AlexCrane_GyverServoSmooth_v3.8с_(Code_-_Professional).ubi
      [spoiler=Обозначения:]_|¯ - постоянная подача true, отработка по переднему фронту
      _|_ - Подача сигнала через RTrig на один цикл
      [/spoiler]

      [spoiler=Входы:]
      Позиция (угол) или Позиция (длина имп.) - Задание целевой позиции
      Макс скрость, град/сек - установка максимальной скорости (градусы в секунду)
      Ускорение, градус в сек за сек или Ускорение (0.1-1) - установка ускорения в градусах/сек/сек (рабочее от 1 до ~1500). 0 - отключено (или установка ускорения (0.05 - 1.0). При значении 1 ускорение максимальное.)
      _|_ Отключить серву - Запрет работы сервопривода, через RTrig
      _|_ Включить серву - Разрешение работы сервопривода после запрета, через RTrig
      _|_ Получить текущую позицию - получение текущей позиции в градусах (0-макс. угол). Зависит от min и max (или получение текущей позиции в мкс (500 - 2400)), через RTrig
      _|_ Получить целевую позицию - получение целевой позиции в градусах (0-макс. угол). Зависит от min и max (или получение целевой позиции в мкс (500 - 2400)), через RTrig
      _|¯ Автоотключение - вкл/выкл автоматического отключения (detach) при достижении угла. По умолч. вкл
      _|¯ Смена направления - меняем 0 и максимум местами
      [/spoiler]

      [spoiler=Выходы:]
      _|¯ Готов - На выходе высокий уровень, если сервопривод стоит или остановился
      Текущая позиция (угол) - Текущая позиция в углах при подаче импульса на вход _|_ Получить текущую позицию
      Целевая позиция (угол) - Целевая позиция в углах при подаче импульса на вход _|_ Получить целевую позицию
      [/spoiler]

      Параметры блоки описаны внутри блока.

      Ненужные режимы, входы отключаются.

      Спасибо [ref]дрон[/ref] за тестирование.
      У вас нет необходимых прав для просмотра вложений в этом сообщении.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....
      Wadim77
      Рядовой
      Сообщения: 21
      Зарегистрирован: 20 авг 2020, 19:23
      Имя: Wadim

      Сервопривод на Gyver ServoSmooth

      Сообщение Wadim77 »

      Здравствуйте! Подскажите, попробывал этот блок. Серва крутится. Вопросов нет. Но Когда подключаю в настройках ВЫХОД (Текущая позиция) - на выходе показывает 0. Что логично т.к. на вход(Текущая позиция ) не подается импульс. Как правильно сделать, что бы я мог в любое время запросить позицию сервы? (Я буду опрашивать эту позицию по MODBUS). Вот и не понимаю как сделать.толи постоянно кидать импульсы(условно генератор ставить, что думаю неправильно), толи еще както? Спасибо!

      П.С. Инвертнул вход (тек. позиция). по сути постоянно включил. Значение считываются. Но почему то так - я задал угол 90 гр. А при считывании получается 89 гр.
      Т.е. при любом установленном значения угла (180, 90, 45 итд) вы опросе значения текущей позиции выдает на единицу меньше. Может кто знает почему так (если кто то может проверить это) . Возможно это у меня только такой глюк.

      Спасибо.
      дрон
      Сержант
      Сообщения: 117
      Зарегистрирован: 09 ноя 2017, 19:25
      Откуда: Москва
      Имя: Андрей
      Поблагодарили: 16 раз

      Сервопривод на Gyver ServoSmooth

      Сообщение дрон »

      Здравствуйте, попробуйте так:
      Новый рисунок (4).bmp
      Отправлено спустя 51 минуту 51 секунду:
      У вас нет необходимых прав для просмотра вложений в этом сообщении.
      Последний раз редактировалось дрон 26 июл 2021, 19:12, всего редактировалось 1 раз.
      дрон
      Сержант
      Сообщения: 117
      Зарегистрирован: 09 ноя 2017, 19:25
      Откуда: Москва
      Имя: Андрей
      Поблагодарили: 16 раз

      Сервопривод на Gyver ServoSmooth

      Сообщение дрон »

      Да, есть такое, на единицу отстает от заданного, может AlexCrane обратит внимание.
      Аватара пользователя
      AlexCrane
      Капитан
      Сообщения: 903
      Зарегистрирован: 20 окт 2017, 13:22
      Откуда: Ульяновск
      Имя: Александр
      Поблагодарили: 12 раз

      Сервопривод на Gyver ServoSmooth

      Сообщение AlexCrane »

      Wadim77 писал(а): 26 июл 2021, 17:38 Но почему то так - я задал угол 90 гр. А при считывании получается 89 гр.
      Походу опять нужно к Гайверу обращаться (в библиотеке видимо баг какой-то)...
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....
      vitko112
      Рядовой
      Сообщения: 17
      Зарегистрирован: 18 апр 2020, 22:56
      Имя: Виктор
      Благодарил (а): 4 раза

      Сервопривод на Gyver ServoSmooth

      Сообщение vitko112 »

      Приветствую!
      Подскажите, пожалуйста, этот блок будет работать с ESP-32?
      С mega удалось подружить, а вот с ESP-32 ни в какую.
      Аватара пользователя
      Dryundel
      Полковник
      Сообщения: 2437
      Зарегистрирован: 22 май 2017, 23:15
      Откуда: Ярославль
      Имя: Андрей
      Благодарил (а): 3 раза
      Поблагодарили: 31 раз

      Сервопривод на Gyver ServoSmooth

      Сообщение Dryundel »

      vitko112 писал(а): 25 авг 2021, 18:48 Приветствую!
      Подскажите, пожалуйста, этот блок будет работать с ESP-32?
      С mega удалось подружить, а вот с ESP-32 ни в какую.
      Если еще кому то актуально, для работы блока с ESP32, поправьте библиотеку самостоятельно.
      А именно:
      В файле ServoSmooth.h найдите строку

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

      #include <Servo.h>
      и замените ее на

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

      #if defined(ESP32)
         #include <ESP32Servo.h>
      #else
         #include <Servo.h>
      #endif
      После этого библиотека будет работать и с ESP32 тоже.
      .
      С Гайвером связался, думаю поправит либу в ближайшее время.
      Аватара пользователя
      Dryundel
      Полковник
      Сообщения: 2437
      Зарегистрирован: 22 май 2017, 23:15
      Откуда: Ярославль
      Имя: Андрей
      Благодарил (а): 3 раза
      Поблагодарили: 31 раз

      Сервопривод на Gyver ServoSmooth

      Сообщение Dryundel »

      Библиотека ServoSmooth обновлена до версии 3.9.
      Включена поддержка ESP32
      https://github.com/GyverLibs/ServoSmooth
      sergii2012
      Сержант
      Сообщения: 152
      Зарегистрирован: 07 янв 2019, 16:02
      Имя: Сергей
      Благодарил (а): 5 раз

      Сервопривод на Gyver ServoSmooth

      Сообщение sergii2012 »

      срывается резко почему то
      с углами ниче не понятно.. не докручивает до конца. так и должно быть?.
      Daniil
      Рядовой
      Сообщения: 6
      Зарегистрирован: 23 май 2021, 18:25
      Имя: Иван

      Сервопривод на Gyver ServoSmooth

      Сообщение Daniil »

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

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

      Кто сейчас на конференции

      Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя