Помогите с сервоприводом. - ФОРУМ ДВ Робот dvrobot.ru
Пятница, 16.11.2018, 04:54
Главная Мой профиль Регистрация Выход
  • НАШ МАГАЗИН
  • Вы вошли как Гость | Группа "Гости"Приветствую Вас, Гость
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: GRACH, Serg  
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » Помогите с сервоприводом.
    Помогите с сервоприводом.
    HappyEndДата: Понедельник, 12.08.2013, 00:57 | Сообщение # 1
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    Доброго времени суток.Купил сервоприводы Turnigy TG9e 9g,но не получается ими управлять на atmega8.
    Перечитал много статей,но мало что понял.
    Может кто-нибудь пошагово объяснить,Пример кода простого.
    Пользуюсь AlgorithmBuilder и Programmers Notepad [WinAVR].Спасибо.
     
    loriДата: Понедельник, 12.08.2013, 08:32 | Сообщение # 2
    12 Вольт
    Группа: Пользователи
    Сообщений: 108
    Репутация: 20
    Статус: Offline
    В общем это обычная серва.
    В ардуино есть готовая библиотека servo и пример использования, с помощью этой библиотеки, в принципе, можно "завести" любой серво-двигатель
    smile
     
    HappyEndДата: Понедельник, 12.08.2013, 15:26 | Сообщение # 3
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    у меня не ардуино=)Атмега8 просто.
     
    DuZeRДата: Понедельник, 12.08.2013, 17:11 | Сообщение # 4
    5 Вольт
    Группа: Пользователи
    Сообщений: 42
    Репутация: 2
    Статус: Offline
    принцип управления стандартными сервами сводится к подаче на управляющий вход последовательности импульсов с определенной частотой и длительностью этих самых импульсов.. описание стандарта полно в нете.. Если просто - нужно программно выставить на ноге меги 1, подождать несколько миллисекунд(от 1 до 2, соответственно крайние положения сервы, если нужно более точно выставить - использовать задержку в микросекундах), после этого выставить 0. импульсы следуют с частотой 50 гц.. посмотри картинки в нете - будет понятнее

    по поводу простого кода - реализаций может быть множество. конкретно с AlgorithmBuilder не работал


    Возможности машины зависят от фантазии человека...
     
    HappyEndДата: Понедельник, 12.08.2013, 18:49 | Сообщение # 5
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    коды пишу в winavr ,AlgorithmBuilderом прошиваю.в интернете много кодов находил,но не подходят=/ не создается hex файл
     
    SergДата: Понедельник, 12.08.2013, 22:55 | Сообщение # 6
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Код
    #include <avr\io.h>

    int main(void) {

    DDRD=0x00;

    PORTD=0xFF;

    DDRB=0xFF;

    ICR1=20000;

    TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|

    (0<<FOC1A)|(0<<FOC1B)|(1<<WGM11)|(0<<WGM10);

    TCCR1B|=(0<<ICNC1)|(0<<ICES1)|(1<<WGM13)|(1<<WGM12)|

    (0<<CS12)|(1<<CS11)|(0<<CS10);

        for (;;) {

    if(bit_is_clear(PIND, 0)){

        OCR1A+=10;

    loop_until_bit_is_set(PIND, 0);

        }

    if(bit_is_clear(PIND, 1)) {

        OCR1A-=10;

    loop_until_bit_is_set(PIND, 1);

        }

        }

    }
     
    SergДата: Понедельник, 12.08.2013, 23:00 | Сообщение # 7
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Двигатель PB1.Кнопки PD0, PD1.
    Переходите уж на AVR Studio 4.
    smile
     
    HappyEndДата: Среда, 14.08.2013, 01:45 | Сообщение # 8
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    почему-то серва двигается в одну сторону все время=\
     
    SergДата: Среда, 14.08.2013, 16:16 | Сообщение # 9
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    нужно понажимать кнопки.
     
    HappyEndДата: Среда, 14.08.2013, 19:08 | Сообщение # 10
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    кнопки нажимал .может с сервами что-то,новые два.неужели брак.пробовал еще один код ,кнопка смены режима работает,диоды горят индикаторные,а серва не реагирует так же,уперто крутится в одну сторону.
     
    muveyДата: Среда, 14.08.2013, 19:52 | Сообщение # 11
    220 Вольт
    Группа: Пользователи
    Сообщений: 303
    Репутация: 1
    Статус: Offline
    HappyEnd, посмотри,мож что с реостатом в серве...часто нет контакта ползунка реостата..

    Ex nihilo nihil fit
     
    blindmanДата: Среда, 14.08.2013, 20:02 | Сообщение # 12
    5 Вольт
    Группа: Пользователи
    Сообщений: 54
    Репутация: 0
    Статус: Offline
    HappyEnd,
    1. на какой частоте контроллер работает? Этот код подразумевает 1 МГц
    2. В программу добавить в секции инициализации OCR1A = 1000;

    Serg, вот так не пиши
    #include <avr\io.h>

    снег башка упадет под Linux  не соберется

    так пиши
    #include <avr/io.h>
     
    SergДата: Среда, 14.08.2013, 22:00 | Сообщение # 13
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Ох ох... точно забыл.  wacko А может начать с 0x00, пусть мотор стоит  при старте
     
    HappyEndДата: Четверг, 15.08.2013, 01:22 | Сообщение # 14
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    blindman, работает на 1МГц . Добавил    OCR1A = 1000 , ничего не изменилось.подключал светодиод,при нажатии на кнопки частота мигания меняется .
     
     
    blindmanДата: Четверг, 15.08.2013, 02:20 | Сообщение # 15
    5 Вольт
    Группа: Пользователи
    Сообщений: 54
    Репутация: 0
    Статус: Offline
    Может яркость меняется? Там частота должна быть 50 Гц. И меняться не должна. Меняется скважность импульсов.

    Добавлено (15.08.2013, 02:20)
    ---------------------------------------------
    Упс

    Ни фига не 1 МГц. Код рассчитан на 8 МГц. А при тактовой 1 МГц частота импульсов на выходе будет 6,25 Гц

    На 1 МГц TCCR1B должен настраиваться вот так

    TCCR1B|=(0<<ICNC1)|(0<<ICES1)|(1<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(0<<CS10);

     
    HappyEndДата: Вторник, 20.08.2013, 03:21 | Сообщение # 16
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    на днях придут другие сервы.попробую с ними.

    Добавлено (20.08.2013, 03:21)
    ---------------------------------------------
    пришли новые сервы. и с ними та же беда, только старые крутились в одну сторону непрерывно ,а новые с рывками

    Сообщение отредактировал HappyEnd - Вторник, 20.08.2013, 03:21
     
    SergДата: Вторник, 20.08.2013, 22:21 | Сообщение # 17
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    uhm
     
    SergДата: Четверг, 22.08.2013, 20:51 | Сообщение # 18
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Попробуйте записать эту прошивку.
    Движок потенциометра на ножку 23 Mega8.
    Управляющий вывод сервы на ножку 15.
    По задумке серва должна управляться потенциометром.
    Прикрепления: servo.hex(6.9 Kb)
     
    HappyEndДата: Суббота, 26.10.2013, 04:32 | Сообщение # 19
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    И так ,я вернулся) Времени не было.  так все на этом этапе и стоит.не работает.Может это зависеть от  питания МК,может не так что? сколько примеров не смотрел не пробовал,не получается.Простые программыуправлением яркостью светодиодов  и то не работают,прошиваю все.а светодиод горит просто и все
     
    SergДата: Суббота, 26.10.2013, 11:32 | Сообщение # 20
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    В электронике абсолютно все зависит от питания.
    Можно попробовать запитать от трех пальчиковых батареек. Для МК это допустимо.
     
    HappyEndДата: Суббота, 26.10.2013, 20:12 | Сообщение # 21
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    Вот этот код рабочий.Пытаюсь в нем разобраться.Светодиод меняет цвет но не плавно,а очень быстро мигает,подключил серв. крутиться в обе стороны,но очень дергается.
    http://radioparty.ru/index.php/prog-avr/program-c/293-rgb-lesson
     
    SergДата: Суббота, 26.10.2013, 20:45 | Сообщение # 22
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    А на чем именно испытываете этот код?
    Переключите фьюзы на внутренний генератор 1МГц.
     
    HappyEndДата: Суббота, 26.10.2013, 21:27 | Сообщение # 23
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 10
    Репутация: 0
    Статус: Offline
    atmega8. Попробовал значение if (pwm_counter++ > 163)  уменьшить,стал светодиод плавно менять цвет.А как сделать,что бы диод моргал и с каждым морганием тускнел пока полностью не погаснет?А с фьюзами пока не работал.

    Сообщение отредактировал HappyEnd - Суббота, 26.10.2013, 21:29
     
    SergДата: Суббота, 26.10.2013, 22:02 | Сообщение # 24
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Цитата HappyEnd ()
    А как сделать
    Понизить тактовую частоту
     
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » Помогите с сервоприводом.
    • Страница 1 из 1
    • 1
    Поиск:

    ДВ Робот - Чат