roboforum.ru

Технический форум по робототехнике.


Про движение сервы - дёргается.

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

Про движение сервы - дёргается.

Сообщение Spok » 23 окт 2010, 10:58

Приветствую!

Дошли сервы, дошли руки до серв (TowerPro SG-5010 и TowerPro MG-995). Собрал простейшую схему на МК, но ведут они себя, кажется, как-то странно.
Даже с учётом погрешностей программы: кручу вручную в одну сторону, серва - туды-туды-туды-туды-туды-туды - потом вжжж и отъехала в обратную сторону, и даже дальше, чем сначала стояла.
Это нормально?
Ещё ни разу не удалось повернуть даже градусов на 45. Всё как-то вот недалеко от... некоего положения.
Подскажите, где и в чём может быть ошибка?

В симуляторе ведёт себя очень похоже на то, что вижу в реале.
Вложения
exp_Servo.zip
Код и схема=проект.
(87.16 КиБ) Скачиваний: 0
Spok
 
Сообщения: 7
Зарегистрирован: 11 июл 2009, 23:28

Re: Про движение сервы - дёргается.

Сообщение Radist » 23 окт 2010, 12:36

99.9% программа неправильная. Работа с сервами очень подробно освещена в уроках авр123.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Про движение сервы - дёргается.

Сообщение MEXAHuK » 23 окт 2010, 14:08

На первый взгляд - период (y) должен быть 20 мс, а у тебя 50 мс плюс длина импульса плюс ввод-вывод данных на уарт.
Правильнее формировать сигнал управления по таймеру, а не на задержках.

ЗЫ а зачем дрыгать всем портом B, если серва подключена к B0 ? :)
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Про движение сервы - дёргается.

Сообщение Spok » 23 окт 2010, 14:31

Спасибо, Radist, за Ваше мнение о неправильности моей программы. Если бы Вы скачали её исходный код, то б заметили, что на языке C она имеет всего четыре значимые строчки, из них две - задержки и две - установка битов. Имхо, в них запутаться сложнее, чем в не к ночи помянутом курсе avr123 с его таймерами, константами, 8-ю сервами, левой программой на 16 серв и рекламой через слово.

Дальнейшие эксперименты: с SG-5010 - лучше не стало. С MG-995 удалось выяснить следующее:
крайнее "левое" положение (~45 градусов "влево") соответствует x=1200 мкс, крайнее "правое" (~30 градусов "вправо") - когда x=200 мкс. Если управляющего сигнала не подавать (или x < 200 ) - серва резко отворачивается "вправо" на 90 градусов.

Добавлено спустя 8 минут 42 секунды:
MEXAHuK писал(а):На первый взгляд - период (y) должен быть 20 мс, а у тебя 50 мс плюс длина импульса плюс ввод-вывод данных на уарт.

Строго говоря, период = x+y, но это не имеет значения. Всё одинаково при y от 4 мс до 200 мс.
Там не ввод-вывод, там проверка единственного флага. Гипотетически - 2 команды ассемблера - и главное, это линейная и постоянная задержка.

MEXAHuK писал(а):Правильнее формировать сигнал управления по таймеру, а не на задержках.

Не верю, что это настолько принципиально. Пусть сначала так заработает.

MEXAHuK писал(а):ЗЫ а зачем дрыгать всем портом B, если серва подключена к B0 ? :)

Забыл, как правильно писать - & или &&... :sorry:
Spok
 
Сообщения: 7
Зарегистрирован: 11 июл 2009, 23:28

Re: Про движение сервы - дёргается.

Сообщение Duhas » 23 окт 2010, 23:32

загоните свою прогу в протеус и померьте там периоды.. когда делали себе сервоконтроллер тож были дергаться из-за кривых периодов...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Про движение сервы - дёргается.

Сообщение Spok » 23 окт 2010, 23:59

Duhas писал(а):загоните свою прогу в протеус и померьте там периоды.. когда делали себе сервоконтроллер тож были дергаться из-за кривых периодов...

Смешно. Для кого я проект в протеусеи код выложил? Периоды там стабильнее некуда.
Между прочим, сильно помогло вручную покрутить вал туды-сюды раз тридцать. На 995 с металлическими шестерёнками ощущение, будто в середине чуть заедает. 5010 ничё не помогло. Заодно узнал пределы отклонения.

Всё равно ни черта не работает. Переписал прогу на таймеры. Сделал цикл из стороны в сторону - качалка стала отклоняться дальше, рывки чуть-чуть стали меньше. Если крутить вручную - всё одинаково.

Может быть, кто-нибудь поделится точно работающим простым кодом?
Или она так и должна охрененно скакать? По полсантиметра-сантиметру? Ни на одном видео в сети такой ерунды не видел...
Spok
 
Сообщения: 7
Зарегистрирован: 11 июл 2009, 23:28

Re: Про движение сервы - дёргается.

Сообщение avr123.nm.ru » 24 окт 2010, 00:10

Наверно серва просаживает питание МК и он сбрасывается.

По Мантиньяку попробуйте - раздельное питание.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Про движение сервы - дёргается.

Сообщение Angel71 » 24 окт 2010, 00:14

соберите ssc32, если ничего не изменится, значит точно с эелектроникой серв что-то не так. а пока вариантов масса, что может быть не так - прям чтоб все сервы, да еще и разных моделей себя неадекватно вели... оч подозрительно и врядли дело в сервах.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Про движение сервы - дёргается.

Сообщение Michael_K » 24 окт 2010, 02:45

avr123.nm.ru писал(а):Наверно серва просаживает питание МК и он сбрасывается.

+1
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Про движение сервы - дёргается.

Сообщение Radist » 24 окт 2010, 09:15

Spok писал(а):Спасибо, Radist, за Ваше мнение о неправильности моей программы. Если бы Вы скачали её исходный код, то б заметили, что на языке C она имеет всего четыре значимые строчки, из них две - задержки и две - установка битов. Имхо, в них запутаться сложнее, чем в не к ночи помянутом курсе avr123 с его таймерами, константами, 8-ю сервами, левой программой на 16 серв и рекламой через слово.



У меня нет протеуса, как то привык без симуляторов. Да и на С я не пишу - только на асме. Поэтому программу я не смотрел. Как бы я сделал проверку сервы на задержках:
В начале программы зажигаем светодиод, потом пауза секунда. Если он горит только после включения - то контролер не сбрасывается от просадки питания (но не сбрасывается ли электроника сервы - так не проверить). Затем формирую импульсы 1,5 мс длинной и паузы 18,5 мс длиной - серва должна стоять, может чуть качаться. Затем формирую импульсы 1 мс длинной и паузы 19 мс длиной - серва должна повернуться. Еще я бы замерил ток сервы и напряжение питания на ней осциллографом.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Про движение сервы - дёргается.

Сообщение =DeaD= » 24 окт 2010, 09:41

Чем питаете, от какого источника? MG995 может до 2А жрать в пике, если ваш БП не обеспечивает такой ток - всё начинает циклически перегружаться, включая МК в самой серве.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Про движение сервы - дёргается.

Сообщение Pirate » 24 окт 2010, 10:10

сервотестер рулит по любому, стоит не дорого.. не догоняю почему их себе никто не покупает... с ним все просто, зашел в магазин врубил питание врубил серву в тестер покрутил ею, посмотрел как себя ведет, понравилось купил, не понравилось нет. Придя домой точно знаешь что она не заедает не глючит и т.д. и уже в половину меньше проблем при выяснении где же кроется глюк.
Аватара пользователя
Pirate
 
Сообщения: 289
Зарегистрирован: 18 авг 2010, 23:35
Откуда: Одесса

Re: Про движение сервы - дёргается.

Сообщение Angel71 » 24 окт 2010, 10:15

:ROFL: затопал в интернет магазин, подрубил тестер серв и купил
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1


Вернуться в Новичкам или основы основ роботостроения.

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

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