roboforum.ru

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

Как управлять сервомоторами?

Как управлять сервомоторами?

Кавитационная эрозия » 24 июл 2006, 13:53

Приобрел я два сервомоторчика HS-81 micro, производителя Hitec, дополнительные характеристики этого сервомотора:

Размер: 30*12*30 мм.
Действие скорости (Operating Speed): 0.11 сек/60 градусов АТ 4.8 вольт.
Вращающийся момент (Output Torque): 2.6 кг.см(36oz.in) AT 4.8 вольт.
Вес (Weight): 16.6 г (0.58oz).
Размер (Size): 30*12*30мм

Я честно сказать даже понятия пока не имею как их запустить, что для этого мне нужно?
Собрать дополнительную плату управления этими сервомоторами?
У кого есть опыт работы с сервомоторами, подскажите пожалуйста порядок управления этими двигателями (по возможности с линками на ресурсы, очень буду благодарен).

P.S. Заранее спасибо!

avr123.nm.ru » 24 июл 2006, 15:35

на форуме уже тем 10-15 про ЭТО.

KiCom » 24 июл 2006, 17:59

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

Кавитационная эрозия » 24 июл 2006, 21:16

Ок, спасибо :)
Вы правы, надо было мне вначале поиск поюзать, а потом задавать вопросы :)

Кавитационная эрозия » 26 июл 2006, 12:49

Занимался я поиском, но конкретного решения так и не нашел, только обсуждение и теорию, а схем и прочего нету (на форуме) :(
Мне надо собрать контролер на два сервомотора, но я без визуального хелпа просто не смогу этого сделать, если кто сталкивался с подобной проблемой помогите пожалуйста принципиальными схемами и програмным решением. (желательно на МК АТ90S2313 или Tini2313).
Заранее спасибо!

KiCom » 26 июл 2006, 13:11

Теория управляния сервой такова в двух словах:
Импульс повторяетсья с частотой 50 гц от длины импульса зависит как повернется серва если длина импкльса 1.5 мк то по центру если 0.9 то в левом крайнем положении, если 2.1 то в правом крайнем положении, нам нужно генерировать этот сигнал.
Програмно на tiny2313 можно управлять 8 сервами, програмно тоесть МК все время будет занят только генерацией импульсов. Если МК больше не для чего ненужен то почему-бы и нет.
Сервами также можно управлять аппаратно генерирую ШИМ сигнаг. Что такое ШИМ и как его сгенерировать написано на http://avr123.nm.ru/z8.htm но у tiny2313 всего 1 ШИМ тоесть одна серва на МК что не очень удобно.
Или придется перейти на более навороченный МК или програмно на tiny2313. Советую перейти на mega16. На mega16 можно управлять 4 сервами с одного МК не загружая его.

Кавитационная эрозия » 26 июл 2006, 13:21

KiCom писал(а):...


Чтобы управлять шаговым двигателем, нужен драйвер например LB**** или ULN****, а для сервы требуется драйвер или можно напрямую подключать к портам МК?
Если требуется, то какой?

KiCom » 26 июл 2006, 13:25

Драйвер не какой не нужен, у сервы есть три контакта, земля, питание, сигнал. Землю цепляешь к общей земли, сигнал цепляешь на ножку МК можно через резистор но это не обязательно, питание на +5 вольт. Вывод специальный драйвер не нужен (он уже в серве стоит с завода)

Кавитационная эрозия » 26 июл 2006, 13:31

KiCom писал(а):...

Спасибо большое!
Сегодня попробую поэксперементировать, все не понятное потом выложу в виде вопросов в этой теме :)

Johnny Bravo » 26 июл 2006, 14:31

KiCom писал(а):у tiny2313 всего 1 ШИМ

DataSheet писал(а):Features... Four PWM Channels

KiCom » 26 июл 2006, 15:53

И правда, ошибочка вышла

Кавитационная эрозия » 31 июл 2006, 12:34

Подскажите пожалуйста как генерить сигнал надо для сервы,
в CV AVR для АТ90S2313 или подскажите где можно почитать про эти управляющие импульсы.

KiCom » 31 июл 2006, 12:39

Я так и не понял ты как будешь управлять аппаратно или програмно?

Кавитационная эрозия » 31 июл 2006, 12:56

Хочу серву подключить к МК и управлять ею через него, вопрос только в импульсе, как его генерить (программно) и можно еще аппаратно :)

KiCom » 31 июл 2006, 13:05

Какой сигнал нужен серве я написал чуть выше. Прогрограмно это делаеться так: в ключаем таймер на частоту 50 гц и включаем прерыввание по переполнению таймера. Когда происходит прерывание мы подаем на ножку PB0 (к этой ножке и надо цеплять сигнальный провод сервы) лог. 1  потом ждем от 0.9 мс до 2.1 мс и подаем лог.0 на этуже ножку.
Код: Выделить всёРазвернуть
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x70;
PORTB.0=1;
delay(время);
PORTB.0=0;
}

Вместо delay(время); вставляем функцию задержки, что такое задержка и как этим пользоватьсчя напиано в курсе.
Это будет программный способ, чем он плох, да тем что МК будет сидеть в прерывании и ждать от 0.9мс до 2.1мс и ничего больше сделать. Разберись сначало с ним.


Rambler\'s Top100 Mail.ru counter