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

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

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

#1

Сообщение AlexCrane » 18.07.2021{, 19:43}

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

      Блоки бета-версия от 18.07.2021:
      Обозначения:Показать
      _|¯ - постоянная подача true, отработка по переднему фронту
      _|_ - Подача сигнала через RTrig на один цикл
      Входы:Показать
      Позиция (угол) или Позиция (длина имп.) - Задание целевой позиции
      Макс скрость, град/сек - установка максимальной скорости (градусы в секунду)
      Ускорение, градус в сек за сек или Ускорение (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 и максимум местами
      Выходы:Показать
      _|¯ Готов - На выходе высокий уровень, если сервопривод стоит или остановился
      Текущая позиция (угол) - Текущая позиция в углах при подаче импульса на вход _|_ Получить текущую позицию
      Целевая позиция (угол) - Целевая позиция в углах при подаче импульса на вход _|_ Получить целевую позицию
      Параметры блоки описаны внутри блока.

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

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

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

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

      #2

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

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

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

      Спасибо.

      дрон
      Рядовой
      Сообщения: 94
      Зарегистрирован: 09.11.2017{, 19:25}
      Репутация: 2
      Откуда: Москва
      Имя: Андрей

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

      #3

      Сообщение дрон » 26.07.2021{, 18:19}

      Здравствуйте, попробуйте так:
      Новый рисунок (4).bmp
      Новый рисунок (4).bmp (3.76 МБ) 2508 просмотров
      Отправлено спустя 51 минуту 51 секунду:
      Последний раз редактировалось дрон 26.07.2021{, 19:12}, всего редактировалось 1 раз.

      дрон
      Рядовой
      Сообщения: 94
      Зарегистрирован: 09.11.2017{, 19:25}
      Репутация: 2
      Откуда: Москва
      Имя: Андрей

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

      #4

      Сообщение дрон » 26.07.2021{, 19:11}

      Да, есть такое, на единицу отстает от заданного, может AlexCrane обратит внимание.

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

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

      #5

      Сообщение AlexCrane » 27.07.2021{, 07:50}

      Wadim77 писал(а):
      26.07.2021{, 17:38}
      Но почему то так - я задал угол 90 гр. А при считывании получается 89 гр.
      Походу опять нужно к Гайверу обращаться (в библиотеке видимо баг какой-то)...
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      vitko112
      Рядовой
      Сообщения: 11
      Зарегистрирован: 18.04.2020{, 22:56}
      Репутация: 2
      Имя: Виктор

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

      #6

      Сообщение vitko112 » 25.08.2021{, 18:48}

      Приветствую!
      Подскажите, пожалуйста, этот блок будет работать с ESP-32?
      С mega удалось подружить, а вот с ESP-32 ни в какую.

      Аватара пользователя
      Dryundel
      Полковник
      Сообщения: 2401
      Зарегистрирован: 22.05.2017{, 23:15}
      Репутация: 783
      Откуда: Ярославль
      Имя: Андрей
      Контактная информация:

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

      #7

      Сообщение Dryundel » 28.07.2022{, 15:50}

      vitko112 писал(а):
      25.08.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
      Полковник
      Сообщения: 2401
      Зарегистрирован: 22.05.2017{, 23:15}
      Репутация: 783
      Откуда: Ярославль
      Имя: Андрей
      Контактная информация:

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

      #8

      Сообщение Dryundel » 28.07.2022{, 22:31}

      Библиотека ServoSmooth обновлена до версии 3.9.
      Включена поддержка ESP32
      https://github.com/GyverLibs/ServoSmooth

      sergii2012
      Сержант
      Сообщения: 129
      Зарегистрирован: 07.01.2019{, 16:02}
      Репутация: 4
      Имя: Сергей

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

      #9

      Сообщение sergii2012 » 27.09.2022{, 10:49}

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

      Daniil
      Рядовой
      Сообщения: 6
      Зарегистрирован: 23.05.2021{, 18:25}
      Репутация: 0
      Имя: Иван

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

      #10

      Сообщение Daniil » 09.10.2022{, 19:08}

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

      Ответить

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