Arduino uno + mutliservo sheild от амперки

Тема в разделе "Arduino & Shields", создана пользователем Вайка, 24 окт 2014.

  1. Вайка

    Вайка Нуб

    Никак не могу заставить двигаться дополнительные сервы, при включении питания серва максимум дернутся и всё, хотя подключая серву к портам от D* всё прекрасно работает.
    так же не хочет компилироваться строка
    serv.setSendAttempts(4); (взято с вики амперки)
     
  2. Такая же проблема. Поэтому возникает вопрос к знающим от нуба: какое минимальное количество, например, батареек (и каких) нужно для работы shield (1 серва на любом из входов 0-17)

    и функции setSendAttempts действительно нет в библиотеке multiservo(( ... а это грустно...
     
    Последнее редактирование: 25 окт 2014
  3. Вайка

    Вайка Нуб

    серву от входов D* я запустил от питания на ардуино через юсб и перемычке на shield, с остальных 18 запустить не удалось
     
  4. SSnick

    SSnick Гик

    действительно, написанное выше очень грустно...
    наверное тяжело вам (без сарказма) познавать программирование даже без нулевого знания о базовых вещах элетричества...
     
  5. тут скорее наоборот. Захотелось что-то новое попробовать... выбор пал на arduino (захотелось увидеть результат не только на экране))). И что теперь делать не понятно...
     
  6. Unixon

    Unixon Оракул Модератор

    Как именно вы работаете с дополнительным сервами?

    Она вам не нужна. Видимо, осталась от старой версии библиотеки.

    С вас фото установки и скетч.
     
    Последнее редактирование: 28 окт 2014
  7. Unixon

    Unixon Оракул Модератор

    Минимум три AA/AAA последовательно, максимум четыре. Для большего количества серв блоки из 3-4 батареек параллельно, в среднем по блоку на 1-2 новые сервы.

    Забудьте про этот артефакт.
     
  8. Вайка

    Вайка Нуб

    #include <Wire.h>
    #include <Multiservo.h>
    Multiservo myservo;
    void setup(void)
    { Wire.begin();
    myservo.attach(5); }

    void loop(void)
    { myservo.write(0);
    delay(1000);
    myservo.write(90);
    delay(1000);
    myservo.write(180);
    delay(1000);
    myservo.write(90);
    delay(1000);
    myservo.write(0);
    delay(1000);}

    WTU5c0pklCs.jpg
     
  9. ALev

    ALev Гик

    Во-первых, про setSendAttempts. В 99,97% случаев этой функцией пользоваться не надо. В библиотеке Multiservo была проведена ревизия и после неё эта функция стала недоступна (сроки поджимали, надо было закрывать задачу). Я после отпуска верну на место эту функцию.

    По поводу того, что сервы не работают. Повторите, пожалуйста по шагам следующее:

    1. Удалите библиотеку Multiservo. В идеале лучше бы полностью удалить Arduino IDE или попробовать на компьютере, где её ещё не было.

    2. Зайдите на страницу [[http://github.com/amperka/multiservo.git|библиотеки Multiservo]] и нажмите на зелёную кнопку с надписью «multiservo-1.0.1.zip». Скачается ZIP архив.

    3. Откройте Arduino IDE и добавьте библиотеку Multiservo, выбрав файл архива (распаковывать самому не надо!).

    4. Откройте пример Multiservo Sweep.

    5. Подключите сервопривод к 17-ому контакту, установите перемычку PWR JOIN.

    6. Нажмите кнопку сборки примера и прошивки. Серва должна начать крутиться.

    Если нет, сообщите где возникла проблема.
     
  10. Удалила, переустановила, заодно попробовала на ubuntu. Эффект все тот же: cерва на выходах d* крутится, а на выходах на сервоприводы нет (при этом загрузка выполняется без ошибок).
     
  11. densants

    densants Нуб

    Доброго времени суток, я так же не могу заставить двигаться дополнительные сервы, при включении питания сервы дернутся и всё, на портах D2, D3, D5, D6, D7, D8 всё работает, так же не компилируется строка
    serv.setSendAttempts(4);
    Скачал последний релиз библиотеки: https://github.com/amperka/Multiservo
    Помогите пожалуйста очень нужно.
     
  12. acos

    acos Официальный гик Администратор

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

    Итак, с помощью платы Arduino можно прошить multiservo shield самостоятельно, и все заработает как нужно. Я дам инструкцию для Windows x64, позже отредактируем для остальных систем.

    Итак, качайте архив в приложении к этому посту. У вас должна быть установлена Arduino IDE (нужно, т.к. вместе с ней устанавливается avrdude).
    1. Открываем Arduino IDE, из меню открываете скетч «Файл»→«Образцы»→«ArduinoISP». Прошиваете скетч в вашу Arduino.
    2. НЕ УСТАНАВЛИВАЯ multiservo Sield на Arduino (а просто положив его рядом), соедините его ICSP-пины с колодками Arduino так, как показано на рисунке. (только если у вас не Arduino Mega2560. Для неё пины другие (пины указаны в комментариях в начале ArduinoISP.ino)).
    3. Распакуйте архив multiservo.zip куда-то, например в D:\ .
    4. В получившейся после распаковки папке будет файл "multiservo.bat". Откройте его в текстовом редакторе (щелкнуть по нему правой кнопкой мыши, в меню выбрать пункт «Изменить»)
    5. В строчке «set comport=COM8» измените номер com-порта на тот, на котором у вас Arduino сейчас находится.
    6. Если у вас не x64 винда, то измените текст "C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avrdude" на "C:\Program Files\Arduino/hardware/tools/avr/bin/avrdude". Ну или просто найдите файл avrdude.exe на своем компьютере и вставьте в это место путь до него:)
    7. Сохраняем изменения и закрываем multiservo.bat
    8. Запускаем multiservo.bat двойным кликом левой кнопкой мыши, как обычно. И ждём. После этого начнется прошивка. Результат который выдаст командная строка через какое-то время должен походить на тот, что лежит в файле allDone.txt. Если результат не похож - проверьте, соответствуют ли все соединения рисунку и попробуйте опять. Если что - пишите сюда же.
    9. Все. После этих действий мультисервошилд будет прошит и будет работать.

    Ещё раз прошу извинений за брак. Виновные найдены и теперь дед Мороз о них кое-что знает. Надеемся, такое больше не повторится.

    UPD: Батничек из вложения к этому cообщению перестал работать из-за обнолвения Avrdude в составе Arduino. Смело качайте другой архив из соседнего сообщения
     

    Вложения:

    • multiservoISP.png
      multiservoISP.png
      Размер файла:
      107,5 КБ
      Просмотров:
      1.869
    • multiservo.zip
      Размер файла:
      125,3 КБ
      Просмотров:
      792
    Последнее редактирование: 21 июл 2015
    croissant-sama нравится это.
  13. densants

    densants Нуб

    Все сделал по инструкции работает, отлично. Большое СПАСИБО!!!
     
  14. Теперь работает. Спасибо за решение проблемы.
     
  15. SnJon

    SnJon Нерд

    Доброго времени суток. Пару недель назад приобрел данный шилд. При подключении светодиоды вообще не горят. Измерил напряжение на контактах - присутствует. Сервоприводы работают только от ножек D с очень большой реакцией. Проблема в прошивке? И что тогда со светодиодами?!
     
  16. SnJon

    SnJon Нерд

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

    Вот что выдало в батнике:
    Код (Text):
    D:\multiservo>set comport=COM7

    D:\multiservo>"C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avrdude" -C avrdude.conf -p atmega48 -c avrisp -P COM7 -b 19200 -U flash:w:main.hex -U lfuse:w:0xFF:m
    avrdude: error at avrdude.conf:332: programmer type must be written as "id_type"

    D:\multiservo>ping -n 105 127.0.0.1  1>NUL
     
  17. acos

    acos Официальный гик Администратор

    @SnJon Разобрался в чем дело. У меня тоже такая петрушка повторилась. Не так давно в Arduino IDE обновился avrdude. Не знаю, что конкретно там поменяли, но стал не совместим с avrdude.conf из архива. Вот новый батник, который будет работать. Все инструкции из поста выше сохраняются, нужен немного измененный батничек из вложения:
     

    Вложения:

    • multiservo.zip
      Размер файла:
      101,8 КБ
      Просмотров:
      640
  18. acos

    acos Официальный гик Администратор

    У нас случилась новая беда. Ну и старая за компанию.
    На заводе "астрологи объявили неделю вверхтормашками".
    Завод припаял светодиоды не в ту сторону. В итоге светодиоды на плате работают, но только как диоды в обратном включении. И не горят. Мы завод поблагодарили, и отправили всю партию назад - на перепайку.
    Беда не пришла одна - человек, занимающийся прошивкой, похоже влюбилась. Это уже наша вина.

    Очень неприятная ситуация. От лица компании приношу свои извинения. С радостью готовы заменить платы с негорящими светодиодами на нормальные, как только те придут с завода (неделя-две). По поводу не работающих плат - они будут работать после перепрошивки новым батником. Если перепрошивка вызывает затруднения - точно так же с радостью обменяем, правда это может занять какое-то время.
     
    Последнее редактирование: 21 июл 2015
  19. SnJon

    SnJon Нерд

    Все получилось, заработало! Спасибо. Вы известите о приходе исправных плат?
     
  20. acos

    acos Официальный гик Администратор

    Отлично!

    На странице отсутствующего товара, в магазине, есть такая ссылка "Сообщить о поставке
    на e-mail
    " . Вы можете оставить там имэйл, и как только они появятся, придет сообщение об этом