roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 20:29

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Про движение сервы - дёргается.
СообщениеДобавлено: 23 окт 2010, 10:58 
Не в сети

Зарегистрирован: 11 июл 2009, 23:28
Сообщения: 7
Приветствую!

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

В симуляторе ведёт себя очень похоже на то, что вижу в реале.


Вложения:
Комментарий к файлу: Код и схема=проект.
exp_Servo.zip [87.16 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 23 окт 2010, 12:36 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 23 окт 2010, 14:08 
Не в сети
Аватара пользователя

Зарегистрирован: 07 янв 2005, 23:39
Сообщения: 228
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов
На первый взгляд - период (y) должен быть 20 мс, а у тебя 50 мс плюс длина импульса плюс ввод-вывод данных на уарт.
Правильнее формировать сигнал управления по таймеру, а не на задержках.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 23 окт 2010, 14:31 
Не в сети

Зарегистрирован: 11 июл 2009, 23:28
Сообщения: 7
Спасибо, 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:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 23 окт 2010, 23:32 
Не в сети
Аватара пользователя

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

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 23 окт 2010, 23:59 
Не в сети

Зарегистрирован: 11 июл 2009, 23:28
Сообщения: 7
Duhas писал(а):
загоните свою прогу в протеус и померьте там периоды.. когда делали себе сервоконтроллер тож были дергаться из-за кривых периодов...

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

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

Может быть, кто-нибудь поделится точно работающим простым кодом?
Или она так и должна охрененно скакать? По полсантиметра-сантиметру? Ни на одном видео в сети такой ерунды не видел...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 00:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Наверно серва просаживает питание МК и он сбрасывается.

По Мантиньяку попробуйте - раздельное питание.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 00:14 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 02:45 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
avr123.nm.ru писал(а):
Наверно серва просаживает питание МК и он сбрасывается.

+1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 09:15 
Не в сети
Аватара пользователя

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



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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 09:41 
Не в сети
Аватара пользователя

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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 10:10 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Про движение сервы - дёргается.
СообщениеДобавлено: 24 окт 2010, 10:15 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO