roboforum.ru

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

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

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

Spok » 23 окт 2010, 10:58

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

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

В симуляторе ведёт себя очень похоже на то, что вижу в реале.
Вложения
exp_Servo.zip
Код и схема=проект.
(87.16 КиБ) Скачиваний: 0

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

Radist » 23 окт 2010, 12:36

99.9% программа неправильная. Работа с сервами очень подробно освещена в уроках авр123.

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

MEXAHuK » 23 окт 2010, 14:08

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

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

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:

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

Duhas » 23 окт 2010, 23:32

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

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

Spok » 23 окт 2010, 23:59

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

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

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

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

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

avr123.nm.ru » 24 окт 2010, 00:10

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

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

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

Angel71 » 24 окт 2010, 00:14

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

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

Michael_K » 24 окт 2010, 02:45

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

+1

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

Radist » 24 окт 2010, 09:15

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



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

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

=DeaD= » 24 окт 2010, 09:41

Чем питаете, от какого источника? MG995 может до 2А жрать в пике, если ваш БП не обеспечивает такой ток - всё начинает циклически перегружаться, включая МК в самой серве.

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

Pirate » 24 окт 2010, 10:10

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

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

Angel71 » 24 окт 2010, 10:15

:ROFL: затопал в интернет магазин, подрубил тестер серв и купил


Rambler\'s Top100 Mail.ru counter