Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 57
  1. #21
    Пользователь
    Регистрация
    11.11.2008
    Возраст
    44
    Сообщений
    59
    Вес репутации
    208

    По умолчанию Re: Управление сервоприводом.

    Господа.
    Может быть поможете с возникшей проблемкой? Делаю моторезированный дисплей. По осям стоят 2 серво, один стоит нормально, другой перевернут вращается в другую сторону (!!!)
    Пишу отдельно скетч для каждого серво все нормально работает. Как только пишу для обеих ничего не получается.
    Пробовал писать по методике как в этой темке, то они начинаю дергаться и нет никакой плавности. Пробовал с библиотекой "servo.h". Там как только подключаешь второй серво позиционирование сразу же сбивается
    Опыта явно не хватает. Писал по аналогии с разными примерами. Помогите сделать эту приблуду, 3-й день сижу уже на одном месте.

  2. #22
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Управление сервоприводом.

    Нужно инвертировать сигнал step_on для второй сервы

  3. #23
    Пользователь
    Регистрация
    11.11.2008
    Возраст
    44
    Сообщений
    59
    Вес репутации
    208

    По умолчанию Re: Управление сервоприводом.

    ну правильно. есть пределы допустим от 600 до 2000 микросекунд для управления от положения закрыто до открыто. Вторая серво у меня управляется с одинаковым шагом в обратную сторону. Только правда другой переменной.
    Chip, может я не совсем правильно тебя понял.

    Сбой работы с первой серво со встроенной библиотекой наблюдается если вначале просто вписать servo2.attach(3);. Сам ничего не пойму почему так? ведь остальное остается без изменения и касается только servo1, а правильно позиционироваться она уже перестает.
    Последний раз редактировалось KotKin; 03.01.2010 в 01:55.

  4. #24
    Пользователь
    Регистрация
    11.11.2008
    Возраст
    44
    Сообщений
    59
    Вес репутации
    208

    По умолчанию Re: Управление сервоприводом.

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

    З.ы.: По ходу пъессы спалил каким то чудом Мегу328. под рукой была мега8. Залил бутлоадер ардуино. Разница ощутима. Загружаю скетч в контроллер и жду секунд 10 начала выполнения. Раньше раза в 3-4 меньше надо было ждать. Так должно быть?

  5. #25
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    443

    По умолчанию Re: Управление сервоприводом.

    по поводу серв:
    Если ардинка не должна ничего делать кроме движения серв, спокойно выдавай вручную импульсы на серву. Длительность импульса на серву от 0.8 мс до 2.4 (по-моему) мс. Между началами импульсов пауза порядка 20 мс. Последнее время может быть заметно больше 20мс, от этого зависит быстродействие сервы.

    Посему делаешь ручную генерацию - поставил ногу в 1 - подождал микросекунды, скинул ногу. Поставил вторую - подождал - скинул. Потом тупо пауза 20мс.

    2. Скорее всего мега 8 имеет не 16 МГц резонатор. По умолчанию мега8 имеет 1 мегагерц от внутреннего генератора, насколько я помню. Максимум - 8 МГц от внутреннего генератора, но там стоит по умолчанию делитель. Вообще быстродействие этих кристаллов на одной и той же частоте одинаковое. Более того, зачастую мега8 будет работать быстрее и код будет требовать меньше места из-за особенностей расположения регистров.

    И еще - учти, что фьюзы надо для разных контроллеров разные задавать. Может дело в этом.

    зы. Да, еще... По моему опыту спалить мегу довольно сложно. У нее можно сжечь ноги, мне даже удавалось сжечь часть еепрома (типа каждый нулевой бит в каждом 8 байте), но сжечь в ноль лично мне не удалось ни разу.
    Последний раз редактировалось SBorovkov; 09.01.2010 в 05:32.

  6. #26
    Пользователь
    Регистрация
    11.11.2008
    Возраст
    44
    Сообщений
    59
    Вес репутации
    208

    По умолчанию Re: Управление сервоприводом.

    Цитата Сообщение от SBorovkov Посмотреть сообщение
    по поводу серв:
    Если ардинка не должна ничего делать кроме движения серв, спокойно выдавай вручную импульсы на серву. Длительность импульса на серву от 0.8 мс до 2.4 (по-моему) мс. Между началами импульсов пауза порядка 20 мс. Последнее время может быть заметно больше 20мс, от этого зависит быстродействие сервы.
    Серво вот такая HS-125MG. Питаю от 6В. Время реакции должна быть нормальная.
    Когда отлаживал углы, управлял по одной серво отдельно. Для плавности хода изменял угол на 1 градус и делал задержку в 50мс. Все выглядело замечательно. Был уверен что когда их будет две, задержку уменьшу ну пусть даже до 10-20мс. Но не тут то было. Ставил задержку больше, чтоб посмотреть как они себя ведут в паре. И такое ощущение что они тянут в разные стороны (крышка дергается) Думал так и есть и просто не свел углы поворота. Убрал команду записи во вторую серво и первая (одна) поворачивается дерганьем. Такое ощущение что задержка между импульсами не 20мс а 200. Вот и хочу что кто нить предложил свой вариант.
    Посему делаешь ручную генерацию - поставил ногу в 1 - подождал микросекунды, скинул ногу. Поставил вторую - подождал - скинул. Потом тупо пауза 20мс.
    Так и делаю
    2. Скорее всего мега 8 имеет не 16 МГц резонатор. По умолчанию мега8 имеет 1 мегагерц от внутреннего генератора, насколько я помню. Максимум - 8 МГц от внутреннего генератора, но там стоит по умолчанию делитель. Вообще быстродействие этих кристаллов на одной и той же частоте одинаковое. Более того, зачастую мега8 будет работать быстрее и код будет требовать меньше места из-за особенностей расположения регистров.
    Дык фюзы я прописал для работы с внешним резонатором, а на ардуино он 16Мгц. Разницы в скорости работы контроллера я не ощутил. Все идентично. Но вот перед стартом большаааая пауза.
    И еще - учти, что фьюзы надо для разных контроллеров разные задавать. Может дело в этом.
    Фюзы прописал согласно инструкции c сайта http://arduino.cc/en/Hacking/Bootloader
    зы. Да, еще... По моему опыту спалить мегу довольно сложно. У нее можно сжечь ноги, мне даже удавалось сжечь часть еепрома (типа каждый нулевой бит в каждом 8 байте), но сжечь в ноль лично мне не удалось ни разу.
    Сам не знаю как получилось. Ничего не коротил. Вечером убрал на полку, на следующий день достал и уже не работает. Начал греться как кипятильник.

  7. #27
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    443

    По умолчанию Re: Управление сервоприводом.

    Ты пока сними сервы, добейся, чтобы они не зацепленные друг за друга физически начали работать как надо. Я так понял, что сейчас они у тебя в готовом устройстве стоят.

    Хотя, если честно, я бы не рекомендовал такую работу серв. Это не мотор-редукторы, а умные механизмы. Представь, что у тебя по какой-либо причине возникло рассогласование между сервами. Пусть небольшое, порядка 2-3 градусов в какой-либо зоне. Для этого достаточно плохо работающего переменника в серве. Дальше сервы начнут борьбу друг с другом.

    давай код, мож разберемся. Лучше - код всего проекта, упрощенного до упора.

    Еще: 6 вольт для AVR - это перебор, у него 6 вольт - абсолютный максимум напряжения, выше которого он может банально сгореть. Серва на управляющий вывод не дает напряжение, но всякое бывает. Выводы рядом... Если есть возможность, лучше питай сервы от 5 вольт, усилие уменьшится и скорость тоже, но насколько я понимаю, в данном случае это не очень принципиально.

    Почитай про паразитное питание, полезно http://easyelectronics.ru/parazitnoe-pitanie.html

    Еще - учти, что когда ты монитор доводишь до крайнего положения, импульсы на сервы надо либо прекращать (тем самым выключая серву), либо включать на некоторое время, а затем делать большую паузу. Дело в том, что включенная серва (на которую идут импульсы) при малейшем отклонении начинает пытаться возвращать качалку в правильное положение. При этом переменный резистор внутри сервы находится почти в одном и том же положении и относительно быстро стирает покрытие. В результате серва через некоторое время начинает "дрожжать", контакт пропадает и серва пытается найти нужное положение. Этим она стирает остатки покрытия.

  8. #28
    Пользователь
    Регистрация
    11.11.2008
    Возраст
    44
    Сообщений
    59
    Вес репутации
    208

    По умолчанию Re: Управление сервоприводом.

    Цитата Сообщение от SBorovkov Посмотреть сообщение
    Ты пока сними сервы, добейся, чтобы они не зацепленные друг за друга физически начали работать как надо. Я так понял, что сейчас они у тебя в готовом устройстве стоят.
    Мощности серво хватает тянуть рамку без монитора и отключенную серво. Но когда ставишь монитор вес существенно увеличивается. Для запаса мощности я и воткнул вторую (в холодное время одной тем более хватать не будет).
    Нормальной работы каждой серво я добился в собранном девайсе без монитора подключая их по одной и даже померил углы.

    Хотя, если честно, я бы не рекомендовал такую работу серв. Это не мотор-редукторы, а умные механизмы. Представь, что у тебя по какой-либо причине возникло рассогласование между сервами. Пусть небольшое, порядка 2-3 градусов в какой-либо зоне. Для этого достаточно плохо работающего переменника в серве. Дальше сервы начнут борьбу друг с другом.
    это самое страшное. но они часто так работать не будут, думаю что должно хватить на долго.

    давай код, мож разберемся. Лучше - код всего проекта, упрощенного до упора.

    Еще: 6 вольт для AVR - это перебор, у него 6 вольт - абсолютный максимум напряжения, выше которого он может банально сгореть. Серва на управляющий вывод не дает напряжение, но всякое бывает. Выводы рядом... Если есть возможность, лучше питай сервы от 5 вольт, усилие уменьшится и скорость тоже, но насколько я понимаю, в данном случае это не очень принципиально.
    AVR питаю строго от 5В. а сервы от 6В для максимального усилия!!!

    Почитай про паразитное питание, полезно http://easyelectronics.ru/parazitnoe-pitanie.html

    Еще - учти, что когда ты монитор доводишь до крайнего положения, импульсы на сервы надо либо прекращать (тем самым выключая серву), либо включать на некоторое время, а затем делать большую паузу. Дело в том, что включенная серва (на которую идут импульсы) при малейшем отклонении начинает пытаться возвращать качалку в правильное положение. При этом переменный резистор внутри сервы находится почти в одном и том же положении и относительно быстро стирает покрытие. В результате серва через некоторое время начинает "дрожжать", контакт пропадает и серва пытается найти нужное положение. Этим она стирает остатки покрытия.
    Держать на серво моник постоянно это не реально конечно. Они используются для открытия моника (время работы секунды 2-3). Дальше включается 3-я серво которая подставляет палец под упор. (это где то еще 1 секунда). Все дальше все серво отключаются.
    Для того чтоб моник убрать все происходит в обратном порядке.

  9. #29
    Пользователь
    Регистрация
    11.11.2008
    Возраст
    44
    Сообщений
    59
    Вес репутации
    208

    По умолчанию Re: Управление сервоприводом.

    Попробую все таки вытащить серво из механизма чтоб исключить механическую нагрузку.

  10. #30
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    443

    По умолчанию Re: Управление сервоприводом.

    круто ты к вопросу подошел, уважаю.

    Я помню отлаживал библиотеку серв на с++, без среды ардуины. Замучался - мини серва работает, а полнормазмерную серву колбасит, потребление у них огромное, КРЕН в перегрев через 2-3 секунды уходил. На те же контакты подключаю мелкую - все в шоколаде, крутится туда-сюда. Осциллографа, естественно, нет. Сидел в дебаггере, часа три убил на это дело. А оказалось все просто - два канала серв на одну ногу слали сигналы. Импульсы шли то короткие, то длинные (сервы должны были быть в разных положениях). И минисерва это дело фильтровала как-то, а полноразмерная - нет. Вот и на каждом импульсе (под 100 раз в секунду) она то в одну сторону мотор двинет на полную, то в другую.

    А время 3-5 секунд (с запасом) на каждое открытие монитора - это вечная конструкция получится. Серв (если они нормальные, а у тебя хорошие сервы) хватает как минимум на год постоянных полетов. А в полете импульсы на каждую серву идут постоянно.
    Последний раз редактировалось SBorovkov; 09.01.2010 в 18:29.

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •