Вопрос по проекту, серво, сдвиговый регистр

Тема в разделе "Arduino & Shields", создана пользователем Marco, 16 янв 2013.

  1. Marco

    Marco Нерд

    Здравствуйте! Собираюсь собрать 4х-ногого робота, у каждой ноги 3 свободы движения, соответственно на каждую ногу по 3 сервопривода (всего 12 шт.)

    Детали
    • Управлять сервами будет Arduino UNO Rev 3
    • Сервоприводы TowerPro micro 9g SG90
    • Питание от кроны на 9V (но скорее всего она не потянет, поэтому вместо кроны будет аккумулятор на 16-30V)
    • Каркас и конечности будут из пластика (пока не решил какого)
    • Ультразвуковой дальнометр HC-SR04
    • И мелкие детали: диоды, керамические конденсаторы, регулятор напряжения (L7805CV), но они почти ничего не весят


    Характеристики серв

    SG90 Specs:
    • Dimensions: 22 X 11.5 X 22mm
    • Operating Speed (4.8V no load): 0.12sec/60 degrees
    • Stall Torque (4.8V): 17.5oz/in (1 kg/cm)
    • Temperature Range: -30 to +60
    • Degree CDead Band Width: 7usec
    • Operating Voltage: 3.0-7.2 Volts
    • Each servo comes with 3 different servo horns and fittings as seen.
    Please Note: 6 volts really does mean 6 volts not 7+ as is likely with 5 fully charged 2nd generation NMH cells


    Вопрос 1

    Решил сэкономить, поторопился, теперь не уверен, осилят ли они вес комплектующих. И вообще, не будут ли они дргыгаться, вести себя неадекватно, не сломаются ли зубья на шестеренках. Уже заказаны и летят в страну назначения (18 серв)

    Уже собрал прототип ноги из 3х серв, двигаются то плавно, то немного притормаживаются, но не дергаются, а иногда просто останавливаются и жужжат. Использовал стандартную библиотеку Servo

    Серво легко останавливается, небольшим усилием пальца.


    Вопрос 2

    На UNO всего 6 управляющих выходов, также итал про ограничения и блокировку некоторых. Так вот, купил сдвиговый регистр 74HC595. Получится ли им управлять сервами нормально? Скорость "мышления" не так важна.


    Это будет первый проект, от неопытности чуть не расчитал, но хочу довести его до конца с тем, что имеется. Буду благодарен за небольшую консультацию!
     
  2. apomelov

    apomelov Нерд

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

    Большом количеству серв точно понадобится отдельное питание (отдельное от платы). И счастье не в его вольтах, а выдаваемой мощности, то есть токе, который он может обеспечить. У меня есть сомнения, что сервы будут хорошо работать при напряжении 16-30 вольт. Я недавно питал серву постоянного вращения от хороших 12 вольт и, судя по звукам, ей не нравилось, не зря документации написано 4-6В.

    По поводу выводов -- на uno 6 выходов оснащены так называемым аппратным ШИМ, которые нужны для работы функции analogWrite, но, если я правильно понимаю, стандартная библиотека Servo занимается программной эмуляцией ШИМ, что позволит использовать любой из выходов, так на 12 серв должно хватить.

    А вот сдвиговым регистром я пока только светодиоды включал и использовал его память: сначал в него передаются 8 бит по очереди, он их запоминает, потом открывается "задвижка", и он эти биты выставляет на свои выходные ноги. Для управления сервами недостаточно выставить бит, надо посылать последовательность импульсов оределенной длины (ШИМ). Возможно, если держать открытой "задвижку" регистра, "выбрать" на нем один выход, а потом подавать на вход сигнал ШИМ, то он и на выходе появится. Но тогда в один момент времени будет крутиться только одна серва из 8. Зато, может, будет проще с питанием.

    Вот, рассказал, что знал.
     
  3. Marco

    Marco Нерд

    По поводу питания - cервы уже питаются отдельно, регулятор напряжения L7805CV из 9V преобразует в 5 (но надо бы, чтобы на входе выдерживалл более 1.5А)

    Тут пишут, что сдвиговый регистр подойдет для сервоприводов
    http://robocraft.ru/blog/arduino/541.html
     
  4. Marco

    Marco Нерд

    Интересно, погуглим!
     
  5. Marco

    Marco Нерд

    Еще есть чип для управления сервами http://robottini.altervista.org/12-servos-controller-low-cost

    Цитирую его: А low cost chip, using I2C protocol that can drive 12 servos. First good news, the I2C protocol uses only the analog pins 4 and 5. Second good news is that you can use up to 8 chip, so it is possible to drive up to 8×12=96 servos with only 2 analog pins, the 4 and 5. Third good news is that the chip costs about 4 euros and half. A price that can be accepted by every robot builder.

    Стоит ли смотреть в эту сторону?
     
    Unixon нравится это.
  6. Unixon

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

    Про сдвиговой регистр забудьте, вам ШИМ контроллер нужен многоканальный, вроде того, что Marco предлагает. В принципе то можно и на регистре сдвига сделать, но возни будет много, а результат... :confused: И еще посмотрите в сторону импульсных стабилизаторов напряжения, а то на линейных половина батареи будет уходить в тепло, с таким количеством серв еще и быстро.
     
    Marco нравится это.
  7. apomelov

    apomelov Нерд

    Правильно ли я понимаю, что импульсный преобразователь не понижает входное напряжение, а быстро его прерывает так, чтобы в среднем получилось требуемое напряжение? Таким, видимо, можно грузить двигатель или обогреватель, а вот микроконтроллер работать с ним не будет?
     
  8. Unixon

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

    Не совсем так, бывают и понижающие и повышающие преобразователи. Погуглите по словам "DC-DC преобразователь". Естественно, на выходе напряжение осредняется емкостью, и фильтруется соотвествующим образом, после чего отправляется на питание всего, чего нужно, включая и микроконтроллеры.
     
  9. Dmitriy Kunin

    Dmitriy Kunin Гик

  10. Marco

    Marco Нерд


    А тот самый чип для управления 12-ю сервами, что можете о нем сказать, если имели опыт?

    На ebay не нашел, на dx.com нету, только на hobbytronics можно заказать, но вот, стоит дверять этому магазину? Никогда о нем не слышал, что то и отзывов не нашел о нем.

    Есть ли альтернативы, примерно по той же цене? (было бы хорошо на ebay)
     
  11. Marco

    Marco Нерд

    Спасибо, с питанием то мы разберемся, по этому вопросу много информации нашел, в том числе и ветку в которой вы отписались тоже, меня более интересует управление сервами через регистр, либо через чип, а может через все 12 пинов на программном PWM? плюсы, минусы, название. Код не обязателен

    С весом, который осилят сервы, вроде разобрался тоже, сомнителена только прочность зубъев на пластиковых шестеренках
     
  12. Dmitriy Kunin

    Dmitriy Kunin Гик

  13. Dmitriy Kunin

    Dmitriy Kunin Гик

    Я бы вообще микросхему TLC5940 в DIP исполнении, добавил в хотелки.
    Если есть где её добыть по разумной цене, сильно не выбиваясь из привычной логистики...
    Я бы сразу LEDCUBE заделал, светодиоды уже заждались.
     
  14. Marco

    Marco Нерд

    Цены вполне разумные, на ebay от 2$, что то везде пишут, что используются для управения светодиодами, а для серв они подойдут? (для TowerPro 9g SG90 4.8-6V, ампераж так и не нашел, в даташите тоже искал)
     
  15. Dmitriy Kunin

    Dmitriy Kunin Гик

    В них встроен драйвер светодиодов, но в вашем случае он не используется.
    Поэтому питание серв остаётся внешним, а c tlc берётся только pwm.
     
    Marco нравится это.
  16. Marco

    Marco Нерд

    На сколько такое решение будет хорошим? Или все-таки использовать чип I2С?

    Уже гуглю про tlc+servos
     
  17. Dmitriy Kunin

    Dmitriy Kunin Гик

    сильно гуглить и не надо вот аж с библиотеками :)
    http://playground.arduino.cc/Learning/TLC5940
    А про I2C, я бы взял и то и то оттестировал и чего больше понравится, то и заюзал...
     
  18. Dmitriy Kunin

    Dmitriy Kunin Гик

  19. Marco

    Marco Нерд

    Хм, а там написано о TLC: This means you can drive up to 16 servos at once, as well as use any spare channels for your other PWM needs!
     
  20. Dmitriy Kunin

    Dmitriy Kunin Гик

    Это я прочитал половину предложения и не въехал в смысл, руки печатают быстрее мозгов :)