SERVO - 12 програмных ШИМ в WinAVR

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

SERVO - 12 програмных ШИМ в WinAVR

Сообщение Granit » 31 окт 2008, 20:02

Не пинайте пожалуйста ногами... Просто я начал уже учиться под avr-gcc писать, а везде примеры или только под CVAVR или управление серво при помощи аппаратного ШИМа... Я себе поставил цель управлять 12-ю сервами при помощи программного шима на AtMega16. Как я понял ШИМ можно генерировать в данной ситуации при помощи прерываний по одному таймеру, но как это сделать мне до сих пор не ясно... Может кто программирует под WinAVR и во всех мельчайших подробностях объяснит...или хотя-бы даст дельные советы... Сразу говорю - все курсы я уже перечитал, и прогуглил, и ресурс winavr.scienceprog.com тоже прочитал. Однако неясность осталась, надеюсь на понимание и помощь!

===========
SERVO Серво - рулевая машинка - вопросы и ответы
viewtopic.php?f=4&t=3723
Не судите строго, я начинающий, но у меня всё получится!!!
Аватара пользователя
Granit
 
Сообщения: 59
Зарегистрирован: 14 дек 2007, 21:19
Откуда: Курган
прог. языки: С++

Re: SERVO & WinAVR

Сообщение avr123.nm.ru » 31 окт 2008, 20:06

Granit писал(а): цель управлять 12-ю сервами при помощи программного шима на AtMega16.
во всех мельчайших подробностях объяснит...или хотя-бы даст дельные советы...


http://avr123.nm.ru/z13.htm - управление 8 servo на одном таймере - разъяснено детально.
Реализация на Си и от компилятора зависят только некоторые строки.

Отличие в объявлении прерываний в WinAVR и IAR там - http://avr123.nm.ru/03.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: SERVO & WinAVR

Сообщение Сергей » 31 окт 2008, 20:12

На форуме есть мой пример как рулить сервами. А скоро закончу мой серво модуль на 8 серв, так что смогу помочь с прошивкой
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: SERVO & WinAVR

Сообщение Granit » 31 окт 2008, 20:15

Извините, но у вас там всё перемешано... Там вместе с передачей данных... мне отдельно нужно, неясность даже наверное в том, как формируется сигнал ШИМ(
Не судите строго, я начинающий, но у меня всё получится!!!
Аватара пользователя
Granit
 
Сообщения: 59
Зарегистрирован: 14 дек 2007, 21:19
Откуда: Курган
прог. языки: С++

Re: SERVO & WinAVR

Сообщение avr123.nm.ru » 31 окт 2008, 20:27

Granit писал(а): как формируется сигнал ШИМ(

ШИМ аппаратный делают вот так - http://avr123.nm.ru/z8.htm
А при програмном ШИМ просто управляют таймеровм как в задаче 6 - http://avr123.nm.ru/z6.htm - каждый раз вписывают с какого числа считать до переполнения и соотв. прерывания, или таймер всегда с нуля считает а вписывают число при насчете которого сделать прерывание. В прерывании уже "дергают ножками" МК.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: SERVO & WinAVR

Сообщение Tracer » 01 ноя 2008, 02:30

Granit писал(а): Сразу говорю - все курсы я уже перечитал, и прогуглил, и ресурс winavr.scienceprog.com тоже прочитал. Однако неясность осталась, надеюсь на понимание и помощь!


Значит заканчивай читать и начинай ДУМАТЬ.
Конкретнее в чем неясность у тебя осталась?

Granit писал(а): Как формируется ШИМ


ШИМ 100% - постоянное напряжение 100% времени "1"
ШИМ 50% - меандр - 50% времени "1" 50% времени "0"
ШИМ 0% - нет импульсов 100% времени "0"
Остальное вариации :о)

Напишт подробнее Что ты хочешь для одной ноги - что не понятно? Рассмотрим А на "N" ног уже сделаешь по образу и подобию.
Наводящий вопрос - Какая частота тебе нужна?
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Re: SERVO & WinAVR

Сообщение Granit » 01 ноя 2008, 10:10

Сейчас даташиты снова начал изучать, Сергей навёл на путь истиный))
Не судите строго, я начинающий, но у меня всё получится!!!
Аватара пользователя
Granit
 
Сообщения: 59
Зарегистрирован: 14 дек 2007, 21:19
Откуда: Курган
прог. языки: С++

Re: SERVO - 12 програмных ШИМ в WinAVR

Сообщение Granit » 01 ноя 2008, 21:02

Сегодня наконец-то получилось МК прошить, правда сделано всё было на соплях, но вобщем-то я нашёл http://winavr.scienceprog.com/example-a ... g-avr.html - быстренько забил в редактор и прошил, и серва у меня почему-то просто дёргалась, причём вал не поворачивался, а было слышно только "чиканье". МК Atmega8L, серва Mg9995, питал всё от мезинчиковых батареек 1.5, подключённых последовательно, т.е. 4.5В
Не судите строго, я начинающий, но у меня всё получится!!!
Аватара пользователя
Granit
 
Сообщения: 59
Зарегистрирован: 14 дек 2007, 21:19
Откуда: Курган
прог. языки: С++

Re: SERVO - 12 програмных ШИМ в WinAVR

Сообщение avr123.nm.ru » 01 ноя 2008, 21:41

Granit писал(а): серва у меня почему-то просто дёргалась

посмотрите в PROTEUS что за сигнал на выходе. Может серва у вас питание просаживала и МК рестартился.
Выложите вашу папку проекта в архиве.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: SERVO - 12 програмных ШИМ в WinAVR

Сообщение Granit » 02 ноя 2008, 10:16

Чё-та я теперь окончательно запутался даже с аппаратным шимом о_О. Файлы выложил

Добавлено спустя 24 минуты 32 секунды:
Кстати вот по поводу питания - я всё собрал на коленке, проводами от витой пары)))) вся схема у меня была "на соплях", просто хотелось проверить что всё работает. МК прошился, но раза со стопицотого, т.к. я ножки от программатора перепутал, поэтому программатор писал что-то вроде 0x12 != 0xff. Я в принципе-то хочу паучка сделать, есть 12 сер мощных, простор для творчества))) Запитать сервы от отдельного питания на аккумуляторах по 1.5В, последовательно подключённых в кол-ве 4-х штук, т.е. получим 6В, а МК от 3-х отдельных тоже последовательно подключённых, т.е. 4.6В. Я понял что при таком питании не стоит заморачиваться различными стабилизаторами, поскольку питание МК никак проседать не будет=)
Вложения
Simple.zip
Файлы прошивки с исходником и протеусовский
(43.67 КиБ) Скачиваний: 60
Не судите строго, я начинающий, но у меня всё получится!!!
Аватара пользователя
Granit
 
Сообщения: 59
Зарегистрирован: 14 дек 2007, 21:19
Откуда: Курган
прог. языки: С++

Re: SERVO - 12 програмных ШИМ в WinAVR

Сообщение avr123.nm.ru » 02 ноя 2008, 10:38

Granit писал(а):Чё-та я теперь окончательно запутался даже с аппаратным шимом о_О.

Прочитай НЕ СПЕША и ДУМАЯ - http://avr123.nm.ru/z8.htm для распутывания.

Спешка твой враг - по твоим же словам.

А потом про управление SERVO - http://avr123.nm.ru/z13.htm НЕ СПЕША и ДУМАЯ

Добавлено спустя 15 минут 14 секунд:
Ваш пример работает нормально в PROTEUS
Вложения
SERVO_WinAVR_PROTEUS.7z
(55.46 КиБ) Скачиваний: 80
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва


Вернуться в Готовые модули

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

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