Серво – контроллер 16 - ФОРУМ ДВ Робот dvrobot.ru
Воскресенье, 17.12.2017, 08:18
Главная Мой профиль Регистрация Выход
  • НАШ МАГАЗИН
  • Вы вошли как Гость | Группа "Гости"Приветствую Вас, Гость
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    Страница 1 из 11
    Модератор форума: GRACH, Serg 
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » Серво – контроллер 16 (управляем 16 серводвигателями по 1 проводу)
    Серво – контроллер 16
    SergДата: Суббота, 19.01.2013, 02:52 | Сообщение # 1
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Рассмотрим Серво – контроллер 16, который позволяет с легкостью управлять 16 серводвигателями по 1 проводу. Это существенная экономия портов Arduino.
    Купить контроллер можно здесь. Модуль может управляться от компьютера через USB порт специальной программой, либо радиомодулем с интерфейсом UART, либо любой платой Arduino на скорости 9600, 19200, 38400, 57600, 115200.
    В модуле присутствуют пара 12-ти битных АЦП. На их основе можно реализовать чувствительные сенсоры робота.
    Есть модификации модуля на 24 и 32 порта, которые позволяют собрать очень сложного робота.
    Можно управлять как отдельным серводвигателем, так и группой.
    Разъемы S1-S16 предназначены для подключения 16 двигателей. Имеются также S17- S24, но в этой версии модуля эти выводы работать не хотят.
    RXD- прием команды, TXD- передача данных от АЦП. Передаваемое значение 0-4096 (0000-03FF), максимальное напряжение на входе АЦП- 3,3 Вольт.
    Разъем VSS предназначен для питания микроконтроллера. Допустимый диапазон от 6 до 12 Вольт.

    Теперь пробуем управлять двумя серводвигатеями типа SG90 и S3003. Один двигатель подключаем к разъему S1, другой к S12
    Соединяем вывод TX Arduino c выводом RXD модуля

    Пишем такой код:
    Код
    void setup() { // устанавливаем скорость
       Serial.begin(9600);
    }

    void loop() { // двигатель имеет крайние положения 500 и 2500
          
       move(1, 700, 100);  //двигатель с контакта S1 устанавливаем в положение 700 за 100 миллисекунд
       move(12, 600, 100);  //двигатель с контакта S12 устанавливаем в положение 600 за 100 миллисекунд
       move(1, 1700, 100);  //двигатель с контакта S12 устанавливаем в положение 1700 за 100 миллисекунд
       move(12, 1800, 100);  //двигатель с контакта S12 устанавливаем в положение 1800 за 100 миллисекунд
    }

    void move(int servo, int position, int time) { //фунция управления положением
       Serial.print("#"); // эти 6  строк  выводят в UART команду в виде  #1P700T100
       Serial.print(servo);
       Serial.print("P");
       Serial.print(position);
       Serial.print("T");
       Serial.println(time);
       delay(time);
    }


    Видео работы:
     
    SergДата: Суббота, 19.01.2013, 03:17 | Сообщение # 2
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Также модуль можно настраивать с помощью специальной программы. Нс скринах видно, как с помошью мыши можно запрограммировать движения руки-манипулятора. Не забываем после каждого изменения положения манипулятора нажимать кнопку "ADD"  в программе. Этой кнопкой мы запоминаем положения всех двигателей в общий список команд. Затем эти команды можно записать в Arduino. Либо это список команд можно записать во внутреннюю память модуля, нажав кнопку "Download". В этом случае можно обойтись без Arduino и получить совершенно автономного робота. smile




    Драйвера для Windows XP, Windows 7 и программу управления можно скачать по ссылкам №1 №2 №3 №4
    Прикрепления: 2894821.gif(221Kb) · 9754043.gif(232Kb) · 2846536.gif(98Kb) · 5828776.gif(102Kb) · 32_Servo_Contro.pdf(1055Kb)
     
    SergДата: Суббота, 19.01.2013, 20:32 | Сообщение # 3
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Еще один пример кода. От предыдущего отличается тем, что управление двигателями происходит не по очереди, а одновременно.

    Код
    void setup() { // устанавливаем более высокую скорость скорость     
           Serial.begin(115200);     
         }     

         void loop() { // двигатель имеет крайние положения 500 и 2500     
    Serial.print("#1P1500T100#12P2500T100");
    Serial.print("#1P500T100#12P500T100");
    Serial.print("#1P1500T100#12P2500T100");
    Serial.print("#1P500T100#12P500T100");

    }
     
    cmept-27Дата: Суббота, 27.04.2013, 13:14 | Сообщение # 4
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 17
    Репутация: 0
    Статус: Offline
    А как работать с датчиками на этой плате ?
     
    SergДата: Суббота, 27.04.2013, 13:20 | Сообщение # 5
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Никак. На этой плате нет датчиков. По крайней мере, я их не находил.
     
    cmept-27Дата: Суббота, 27.04.2013, 13:34 | Сообщение # 6
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 17
    Репутация: 0
    Статус: Offline
    Там есть два входа для для аналоговых датчиков )))

    Добавлено (27.04.2013, 13:34)
    ---------------------------------------------
    AD1 и AD2

     
    SergДата: Суббота, 27.04.2013, 13:54 | Сообщение # 7
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Со встроенными АЦП я не работал, не было необходимости. На плате Arduino своих АЦП достаточно, зачем еще дополнительные? Паук будет без Arduino?
     
    cmept-27Дата: Суббота, 27.04.2013, 13:57 | Сообщение # 8
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 17
    Репутация: 0
    Статус: Offline
    Есть команды запроса из Arduino

    Сообщение отредактировал cmept-27 - Суббота, 27.04.2013, 13:57
     
    SergДата: Суббота, 27.04.2013, 14:00 | Сообщение # 9
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Я только завтра смогу почитать описание команд на этот контроллер.
     
    cmept-27Дата: Понедельник, 29.04.2013, 14:12 | Сообщение # 10
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 17
    Репутация: 0
    Статус: Offline
    Хорошо. Просто интересно. Я знаю что есть. Но не могу найти мануал полный. А на ихнем сайте не все команды  (((

    Добавлено (27.04.2013, 14:05)
    ---------------------------------------------
    А раньше видел описание опроса датчиков

    Добавлено (29.04.2013, 14:12)
    ---------------------------------------------
    Read the 2 analog input voltage

    #UPAD1\n\r     Read AD1 port voltage
    #UPAD2\n\r     Read AD2 port voltage

    Return 2-byte hexadecimal number (with precision 12bit 0V~3.3V)
    Returned data range :0000~03ff (decimal numbers 0~4096)

     
    MaksДата: Понедельник, 24.06.2013, 16:21 | Сообщение # 11
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 3
    Репутация: 0
    Статус: Offline
    Цитата (Serg)
    Этой кнопкой мы запоминаем положения всех двигателей в общий список команд. Затем эти команды можно записать в Arduino. Либо это список команд можно записать во внутреннюю память модуля, нажав кнопку "Download". В этом случае можно обойтись без Arduino и получить совершенно автономного робота.
    А можно поподробнее как записать в Arduino.
    И после нажатия кнопки "Download" как плата будет отрабатывать,она пройдет цикл команд и остановится,или же цикл будет повторяться.
    Как я понял после загрузки команды будут из собственной памяти,для этого  наверно надо подать еще и питание на USS.
    Пробовал загрузить и питать от USB - ни чего не происходит,плата друга.
    Хочу заказать себе такую же,поэтому и назрели вопросы.
     
    SergДата: Понедельник, 24.06.2013, 18:07 | Сообщение # 12
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    "Копировать-вставить" в скетч Arduino.
    Цикл будет бесконечный.
    Питание нужно подать, так как у платы 2 разъема питания. Один для микроконтроллера, другой силовой, для двигателей.
     
    MaksДата: Понедельник, 24.06.2013, 18:28 | Сообщение # 13
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 3
    Репутация: 0
    Статус: Offline
    Цитата (Serg)
    "Копировать-вставить" в скетч Arduino.
    Так в том то и дело что не найду такой функции.Выделяю все шаги и есть варианты Delet , Run , Cucle Run , Add  и Clear ActionList
    Или она появится только при подключении Arduino
    Вроде получилось через Exsport сохранить в блокноте,а с него надо копировать в Arduino ?


    Сообщение отредактировал Maks - Понедельник, 24.06.2013, 18:32
     
    SergДата: Понедельник, 24.06.2013, 22:26 | Сообщение # 14
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Экспорт в Блокнот- это конечно неплохой вариант. Единственный! smile
     
    MaksДата: Понедельник, 24.06.2013, 22:53 | Сообщение # 15
    1.5 Вольт
    Группа: Пользователи
    Сообщений: 3
    Репутация: 0
    Статус: Offline
    Тогда делаем большой список сериал принт и копируем с блокнота

    Сообщение отредактировал Maks - Понедельник, 24.06.2013, 23:09
     
    SergДата: Понедельник, 24.06.2013, 22:59 | Сообщение # 16
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Ну ничего страшного. Главное, что работает!
     
    IL76Дата: Среда, 28.01.2015, 22:14 | Сообщение # 17
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 12
    Репутация: 0
    Статус: Offline
    Здравствуйте. Спасибо за статью и описание. как работать с этим серво контроллером. 
    У меня только вопрос. Есть разные сервы одни потребляют при нагрузке ток до 1 ампера. другие могут потреблять 11 ампер. Как узнать сколько и каких  я могу подключить серв в этот контроллер? Какой ток выдержит этот контроллер?
     
    SergДата: Пятница, 30.01.2015, 09:02 | Сообщение # 18
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Конечно, 16 серв по 11 Ампер -это уж слишком. Навряд ли выдержит источник питания, не говоря уже об этой платке. Но если подвести питания непосредственно на моторы, минуя плату, то вполне будет работать.
     
    SutsukoДата: Среда, 25.02.2015, 18:07 | Сообщение # 19
    5 Вольт
    Группа: Пользователи
    Сообщений: 42
    Репутация: 0
    Статус: Offline
    Цитата Serg ()
    Либо это список команд можно записать во внутреннюю память модуля, нажав кнопку "Download". В этом случае можно обойтись без Arduino и получить совершенно автономного робота.
    В этом случае, я так понял, сервы будут работать постоянно....?
    Можно сделать так что бы они срабатывали только по команде от Arduino, но при этом что бы программный код был прописан в это контроллер, а не в Arduino...???
     
    SergДата: Четверг, 26.02.2015, 21:33 | Сообщение # 20
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Навряд ли...
     
    SutsukoДата: Понедельник, 02.03.2015, 17:17 | Сообщение # 21
    5 Вольт
    Группа: Пользователи
    Сообщений: 42
    Репутация: 0
    Статус: Offline
    Тогда второй вопрос.
    Есть ли в продаже серво контроллер для двух серв....?
     
    SergДата: Понедельник, 02.03.2015, 20:03 | Сообщение # 22
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    http://dvrobot.ru/240/868.html http://dvrobot.ru/237/150.html
     
    SutsukoДата: Вторник, 03.03.2015, 08:10 | Сообщение # 23
    5 Вольт
    Группа: Пользователи
    Сообщений: 42
    Репутация: 0
    Статус: Offline
    Цитата Serg ()
    http://dvrobot.ru/240/868.html http://dvrobot.ru/237/150.html
    Это вы кому....???
     
    SergДата: Вторник, 03.03.2015, 20:38 | Сообщение # 24
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    это контроллеры для двух серв и более
     
    SutsukoДата: Среда, 04.03.2015, 18:28 | Сообщение # 25
    5 Вольт
    Группа: Пользователи
    Сообщений: 42
    Репутация: 0
    Статус: Offline
    Цитата Serg ()
    это контроллеры для двух серв и более
    Там ссылка на серво-тестер и Arduino mini....
     
    SergДата: Среда, 04.03.2015, 21:16 | Сообщение # 26
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Им вполне под силу контролировать сервомотор.
     
    SutsukoДата: Пятница, 06.03.2015, 07:04 | Сообщение # 27
    5 Вольт
    Группа: Пользователи
    Сообщений: 42
    Репутация: 0
    Статус: Offline
    Цитата Sutsuko ()
    Есть ли в продаже серво контроллер для двух серв....?
    Я имел ввиду такой же щит только на два серво-привода и размерами поменьше...
     
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » Серво – контроллер 16 (управляем 16 серводвигателями по 1 проводу)
    Страница 1 из 11
    Поиск:

    ДВ Робот - Чат