Управление двигателем (сервой) с USB.
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.write(90); // устанавливает сервопривод в среднее положение
}
void loop() {}
всё… ардуино управляет у вас сервой… ещё четыре строчки обработчика сообщений, которые по USB идут… и ты управляеш с компа…
arduino.ru/Reference/Library/Servo/write
вот документация переведённая. на компе тебе нужно будет общаться с виртуальным COM портом. проще придумать сложно 😃
В момент поворота с усилием, близким к максимальному мотор потребляет, в зависимости от мощности 0,5 - 2 ампера
Взято от сюда www.rcdesign.ru/articles/radio/servo_intro
Вот убей не могу понять где будет использоваться приблуда. В помещении? Тогда какая проблема доп блок питания в розетку воткнуть? На улице? Тогда зачем нагружать акки компа лишней нестандартной нагрузкой если можно использовать LiPo и питать от неё ардуинку и серву?
Аккамуляторы нетбуков тянут 12 часов (ну по крайней мере 11-ти дюймовые Asus).
Дам я девайс другу, и что, ему ещё к нему LiPo покупать и зарядник? Неразумно…
Мощность большая не нужна, ну чтобы была сопостовимая с усилием пальцев (0.1 H/m), чтобы на кнопку фотоаппарата нажать.
Дам я девайс другу, и что, ему ещё к нему LiPo покупать и зарядник? Неразумно…
Мощность большая не нужна, ну чтобы была сопостовимая с усилием пальцев (0.1 H/m), чтобы на кнопку фотоаппарата нажать.
так а друг куда поставит? если на модель то берёт 5В которые на приёмник идут и никаких проблем. если на столе, то можно прямо с ардуины питание брять, это то она потянет.
если на столе, то можно прямо с ардуины питание брять, это то она потянет.
Не совсем понял. Тоесть вы хотите сказать что Arduino так же как и эта может тянуть одну серву до 450mA без питания?
Не совсем понял. Тоесть вы хотите сказать что Arduino так же как и эта может тянуть одну серву до 450mA без питания?
Чтобы на кнопку фотоаппарата жать, и если серва не очень мощная сама по себе. То должно хватить питания от USB. На ардуине есть пины, на которые разведено внутреннее питание. помоему до 200mA можно вешать… примерно. Просто потребление сервы зависит от нагрузки на неё. Нагрузка создаётся как статичиская, так и динамическая. Статическая нагрузка это нажатие на кнопку, и удержание положения. Статическая нагрузка не велика, кнопка фото. Динамическая нагрузка, возникает при смене положения качалки, преодоление инерции системы, трения в редукторе. Переключение как я понимаю будет происходить дискретно и составлять значимую долю рабочего хода сервы. Соответственно в этот момент будет чуть ли не максимальный ток. По этому если серва мощная, то току не хватит 😦 возможные пути решения, плавное перемещение качалки не от 180градусов до 90градусов за минимальное время. А растянуть на несколько шагов. Но это не нужное усложнение, просто взять серву не очень мощную. Я вечером напишу какую я в опытах использовал, она при полном токе и питание от ардуины начинала подглючивать, но прям чуть чуть.
для опытов использовал серву HK 15178B. питал от ардуины. но в случае топик стартера похоже действительно есть смысл переплатить и использовать готовую плату, на одну (не мощную) серву.
Не совсем понимаю необходимость 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мА