Управление двигателем (сервой) с USB.
Не совсем понимаю необходимость Arduino и SSC-32, ведь если купить переходник c USB на LPT то больше ничего из железа не нужно.
Там фишка есть - передача одного пакета USB в такой переходник занимает порядка 1 мс, а для формирования импульса для сервы - нужны как минимум 2 таких пакета ( 2 команды - “Выдать 1 на какой-то вывод LPT” и “Выдать туда 0” ), и их обе нужно передать за 0.7 - 2 мс. Уменьшить это время в обычном режиме ( не BitBang ) в переходнике USB-COM на FT232R у меня не получилось ( возможно, я хреновый программист ).
Так что Алексей прав - можно попробовать через режим BitBang. Там пакет с USB пишется в буфер FT232R, и оттуда выдается наружу с заданной тактовой частотой, что даст и начало импульса ( …0001111… ), и конец ( …1111000… ), а до следующего импульса по стандарту - 20 мс, т.е. точно успеет, даже с поправкой на задержки в компьютере ( если он не совсем уж перегружен ). Переходники USB-COM на FT232R вроде продают, а м.б. есть такие же без преобразователя уровня ( т.е. на выходе - обычный TTL, что и нужно ). Компьютер должен выдавать на USB до 0.5А, но реально - обычно USB-порты идут парами, и защита - тоже ставится на 2 сразу, т.е. 1А ( но м.б. не во всех, надо проверять ). Так что есть хорошие шансы, что одну слабенькую серву оно потянет ( особенно если по питанию еще емкость повесить, т.к. сервы обычно больше всего потребляют в момент старта ).
Почитал сайт Arduino.ru но так и не нашёл в нём о том что с сервами мощностью до 200мА она работает без дополнительного питания.
И как определить что серва “слабенькая” (как сказало уже несколько участников дискуссии). Ведь в характеристиках в магазинах пишут только:
• Speed (sec/60deg): 0.13
• Torque (Kg- cm/Oz-in): 2.8/39.2
• Size (mm): 39.5x20x35.6
• Weight (g/oz): 42/1.48
и нет указания на потребление электричества.
В этом примере пиушт что серва может дать нагрузку 2.8кг/см, к кнопка фотоаппарата нажимается уже при грузике весом в 250г. Означает ли это что серва имеет 10-ти кратный перебор по необходимой мне мощности, и надо искать более слабую? (которая соответсвенно будет и меньше потреблять)
я написал выше модель сервы, которая у меня работала от внутреннего питания ардуины. косвенно, ток потребления можно понять по максимальному усилию, которое может развить серва… соответственно берите такую у которой усилие будет не больше вышеприведённой в примере. а лучше меньше, потому что она у меня на пределе работала.
Я делал управление сервами с ждостика Сайтек X51, подключенного к компу. В USB компа втыкался радиомодуль APC220.
На принимающей стороне также APC220 и Ардуина Нано.
Рулил обычнми 9g сервами без дополнительного питания. Что-то более мощное нужно через транзисторы подключать.
Жаль видео не сохранилось продемонстрировать =(
А куда на принимающей стороне транзисторы то?
Ну как куда - через них сервы подключать т.к. мощности на выходах ардуины недостаточно. Без транзисторов в лучшем случае работать не будет из-за нехватки силы тока, в худшем - порт у контроллера сгорит.
сгенерировать звуковой сигнал нужной скважности и длительности импульса уже не вариант? а перед входом сервы поставить несколько последовательных диодов, как ограничитель сигнала. вот и получится на выходе меандр нужной формы. ppm серве больше не нужно.
Ну как куда - через них сервы подключать т.к. мощности на выходах ардуины недостаточно. Без транзисторов в лучшем случае работать не будет из-за нехватки силы тока, в худшем - порт у контроллера сгорит.
Никогда не задавался вопросом, а сколько оно по управляющим входам тока жрет, что транзисторы надо ставить?
Никогда не задавался вопросом, а сколько оно по управляющим входам тока жрет, что транзисторы надо ставить?
микроамперы оно жрёт, транзисторы ставят для уменьшения возможного рассогласования сопротивления сигнальной линии источника и приёмника.
в микроамперы охотно верю, а вот про остальное не больно 😉
ах, да. ёмкость входного каскада приёмника. она может быть довольно большой. и вместо красивых меандров получится синусоида-пила и прочий хлам.
ну и сколько у стандартного футабъего приемыша Выходное сопротивление, что оно с этим справляется без всякого гемора?
ну и сколько у стандартного футабъего приемыша Выходное сопротивление, что оно с этим справляется без всякого гемора?
видимо довольно низкое, если он с этим справляется без всякого гемора 😃))
микроамперы оно жрёт, транзисторы ставят для уменьшения возможного рассогласования сопротивления сигнальной линии источника и приёмника.
Смотря какая серва.
Ардуина на выходе до 100мА даёт, больше не рекомендуется нагружать. У многих мини-серв ток удержания в пределах 600мА
Какая тема-то долгая. Я так понимаю ТЗ для китайцев: некий донгл в усб с крутяшкой на попе и софт со стрелкой. А чего? подогревалка для кофе есть? Значит мощи хватит. Дело за малым.
Сила тока USB по спецификации 500мА (2.5Вт). Фактически может быть разной в разных устройствах, но рассчитывать стоит максимум на этот ток. Иначе либо тока не даст нужного, либо вообще порт сгорит в худшем случае.
В новом USB 3.0 планируется 100Ватт, но он вроде пока в природе не втречается (только 4,5Вт версия), во всяком случае предложение увеличения до 100Вт было озвучено в 2011 году.
Хост контроллер ПК может выдать 0,5 А на оба порта Usb, а не на каждый.
Учтите, что чем дальше, тем хилее становятся порты Usb, аналогичная ситуация была и с RS-232.
На системном уровне ПК каждую мсек определяет наличие подключения к порту Usb.
Windows считает себя умнее нас и даже если Вы в прикладной программе установите таймер на 20 мсек и будете выводить в Usb байт, на осциллографе увидите провалы до 100 мсек, что может привести к сбою работы сервы.
Для качественного управления любым неинтелектуальным периферийным устройством, необходимо поставить свой микроконтроллер после FTDI-232 или CP2102. На мой взгляд CP2102, удобнее и проще. Для него легко можно сделать свои дискрипторы и драйвера, чтоб операционка видела устройство не как виртуальны COM-порт а как USB-устройство.
Мы на работе уже лет 5-ть как отказались от FTDI.
Если это вызовет интерес на форуме, то можно заняться разработкой платы для управления и формирования сигналов управления двигателями и сервами(можно и сделать обратную связь дя измерения скоростей и прочих параметров устройств) и программы управления.
Если слюбится моя задумка установки в качестве движителей на каноэ на импеллерах с бк, то буду себе делать такую автономную плату.
Сделал макет CP2102 и C8051F314 для управления сервой от USB.
Диаппазон выходных управляющих импульсов от 0,75 до 2,25 мсек разбит на 144 ступени.
К серве пока не подключал, т.к. нет в наличии, смотрел осликом.
Если это вызовет интерес на форуме, то можно заняться разработкой платы для управления и формирования сигналов управления двигателями и сервами
pololu за $20 предлагают готовую. Эта цена уже более приятная.
www.schatenseite.de/usb-servo.html
www.societyofrobots.com/member_tutorials/node/25
сам не делал, просто случайно в “паутине” запутался.
Для качественного управления любым неинтелектуальным периферийным устройством, необходимо поставить свой микроконтроллер после FTDI-232 или CP2102. На мой взгляд CP2102, удобнее и проще.
Для данной задачи гараздо удобнее использовать tusb3410. Ибо это не компорт на самом деле, а мелкий мк “с функциями компорта” в драйверах. Есть и еще плюсы-минусы… Прошивка в него грузится либо из внешней епром, либо драйвером из файла при втыкании в usb.
Ну давайте изменим ТЗ. Любая 2313 сможет представиться USB устройством и сформировать нужные серве PWM. Как обеспечить питание от USB если это ещё и ноут?
Дмитрий, а что именно питать? Если только схему USB-дешифраторы - то от компа проблем нет, а если еще и сервомашинки, то тут могут возникнуть проблемы. На пару микро серв еще может и хватит питания, а вот на стандартные - уже врядли, они могут перегружать порт и комп его просто отрубит по питанию. Без внешнего питания при питаниии стандартных машинок и их количестве больше 2 не обойтись.
а потом, нет никакой разницы, где юсб, на пк или на ноуте - стандарт - 5 вольт на выходе и максимальный ток который может быть отдан во внешенее устройство - не более 500мА, для ноута ток отдаваемый во внешнее устройство может быть снижен (все зависит от производителя).
Если только схему USB-дешифраторы - то от компа проблем нет, а если еще и сервомашинки, то тут могут возникнуть проблемы
Вот я об этом! ТС упорно отказывался от внешнего питания. А при питании от USB только стрелочку микросервой и можно крутить ИМХО.