Сервопривод и 180°

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Heretique, 23 янв 2017.

  1. Heretique

    Heretique Нерд

    То ли лыжи, то ли я.
    В целом, проблема такая - дойдя до 180° сервопривод не прекращает попытки повернуть вал - раздаётся равномерное гудение, как будто он пытается продолжить движение.
    На других положениях молчит, то есть - всё в норме.
    Это в порядке вещей, или нет?)
     
  2. SafeSound

    SafeSound Нуб

    Тоже этот вопрос интересует, аналогичная ситуация.
     
  3. mcureenab

    mcureenab Гуру

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

    В серве нет концевых выключаталей. Сервопривод прибор аналоговый как по обратной связи так и по управлению. Для правильной работы требуется калибровка.
     
  4. Heretique

    Heretique Нерд

    Очень просто. В примерах - в примерах, Карл! - указан параметр 180. Я его применяю - железо рычит.
    Я железо люблю, но с сервоприводами не работал. Погасил и более не трогал в 180°. Пошел на форум уточнить - что я делаю не так.
    Про концевики понятно, но если он сам знает, до какого угла дошел - почему не перестаёт идти? Больше похоже на заводской брак, если честно.
     
  5. mcureenab

    mcureenab Гуру

    Откуда ему знать то? У контроллера сервы на входе отрицательной обратной связи только напряжение с потенциометра, а ни какие не градусы. Прибор аналоговый. Погрешность в 10% в порядке вещей.

    Надо заметить что 0 и 180 градусов, это предельные значения. Как правило приборы не эксплуатируют на пределе. 10 - 170 градусов это нормально.
     
    arkadyf нравится это.
  6. Heretique

    Heretique Нерд

    Спасибо, стало понятнее.
    Тогда почему он так не реагирует на нулевое положение?
     
  7. sys

    sys Злобный Буратино Модератор

    Если не секрет, какая модель сервы?
    Если дешевые sg90 то 170 в лучшем случае.
    В любом случае легко проверяются предельные значения прямо из консоли IDE.
    нулевое значение в модуле/библиотеке задано минимальным импульсом и как правило вписывается нормально :)... а вот максимальное значение импульса может и не поддерживаться сервой.
     
    Последнее редактирование: 24 янв 2017
  8. Heretique

    Heretique Нерд

    http://amperka.ru/product/servo-fs90
    Вот он, тип. Гражданской наружности. Из Йодонабора)
     
  9. sys

    sys Злобный Буратино Модератор

    ну я его использую с амперковской библиотекой с максимальным значением 160 :)

    при желании можно поэкспериментировать с эспруиновской библиотекой/модулем
    http://www.espruino.com/Servo+Motors
    http://www.espruino.com/modules/servo.js
    там по по другому реализовано
     
    Последнее редактирование: 24 янв 2017
    arkadyf нравится это.
  10. mcureenab

    mcureenab Гуру

    Ну может лочический ноль в программе это, физически +10 градусов на серве. Тогда логические 170 градусов, это физические 180 - предел. И не факт, что логические и физические градусы 1:1 идут.
    Если использовать серву, например, для руления машинкой не выкручивая до упора, то это не суть важно. Обратную связь обеспечивает сам пилот, а серва только выставляет и удерживает указанное положение.
     
    arkadyf нравится это.
  11. sys

    sys Злобный Буратино Модератор

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

    P.S. Вот подробнее про сервы http://wiki.amperka.ru/робототехника:сервоприводы
     
    Последнее редактирование: 24 янв 2017
    acos и arkadyf нравится это.
  12. acos

    acos Официальный гик Администратор

    http://wiki.amperka.ru/js:servo
    http://js.amperka.ru/modules/@amperka/servo.js

    Поиграйтесь с значениями. По дефолту в библиотеке вот так
    Код (Javascript):

      this._pulseMin = 0.675;
      this._pulseMax = 2.325;
    может 0 и 180 в вашей серве вовсе не 0 и 180 (в длинах импульсов, я имею ввиду), а поменьше,

    Можно попробовать подключить серву вот так:

    Код (Javascript):

    var myServo = require('@amperka/servo').connect(P13,
                                           {pulseMin: 0.650, pulseMax: 2.300});
     
     
    SafeSound и arkadyf нравится это.
  13. SafeSound

    SafeSound Нуб

    Как говорили выше.. в примерах такое значение)
    Подскажите, вы подразумеваете некую механическую калибровку или программную (по аналогии в посте выше)?
     
  14. mcureenab

    mcureenab Гуру

    Программную. Тут написано Сервопривод и 180°

    Мне не попадались сервоприводы с какой либо собственной калибровкой крайних положений вала.
     
    SafeSound нравится это.
  15. Kb498

    Kb498 Нерд

    у этих сервоприводов бывают кривые крайние положения, например если ему передавать команду 180 градусов, то он может упереться в край, и продолжать пытаться повернуться, соответственно непрерывно работая и нагреваясь. надо в программе ограничить ему пределы например от 10 до 170 градусов и т.п. где у него край выясняется экспериментально - когда привод занимает какое-то положение, он должен остановиться и затихнуть, а если продолжает жужжать или дергается - значит либо слишком большая нагрузка либо уперся в край.
     
    arkadyf нравится это.