Как бы я управлял выходом питания через USB-порты в Linux? - PullRequest
8 голосов
/ 07 сентября 2011

Я собрал робота из тонкого клиентского ПК (может работать под управлением Windows CE или Linux) и двух серводвигателей. Я подключил USB-концы к серводвигателям, поэтому, когда они подключаются к тонкому клиенту, они непрерывно работают. В Linux, как я могу установить величину тока или напряжения, идущего от портов USB к серводвигателям? Смогу ли я запустить сценарий оболочки, чтобы установить мощность определенного USB-порта для замедления двигателя или его остановки? Если это невозможно сделать с помощью программного обеспечения, какой самый простой способ сделать это с помощью аппаратного обеспечения без необходимости покупать слишком много?

Ответы [ 6 ]

7 голосов
/ 07 сентября 2011

Напряжение USB зафиксировано на номинальном уровне 5 Вольт и не может контролироваться.

Поведение USB-устройств относительно их потребления тока хорошо определено в спецификациях USB.Предполагается, что устройства USB потребляют до 1 единицы нагрузки (100 мА), если они не согласовали более высокую нагрузку с хоста USB.Вполне вероятно, что сервомоторы, которые у вас есть, будут нуждаться в том, чтобы потреблять более высокие токи, чем они, и не смогут запросить их, не будучи USB-устройством и не договариваясь с хостом.В зависимости от серводвигателя, которым вы пытаетесь управлять, вам потребуется либо подать сигнал ШИМ, либо аналоговое напряжение для управления положением двигателя.Хосты USB не предназначены для обеспечения ни одного из них.

Ваши лучшие варианты для управления двигателем от вашего ПК:

  1. Получите специальный контроллер USB для вашего серводвигателя (если онсуществует)
  2. Создайте свой собственный на основе небольшого микропроцессора (например, с помощью Arduino)
  3. Выберите другой порт на ПК.Если возможно, можно управлять параллельными портами ПК для обеспечения управления драйверами двигателя.
3 голосов
/ 20 июня 2012

Ответы здесь, кажется, говорят, что это аппаратная проблема, но я думаю, что это программная проблема. У ASUS есть Ai Charge, которая более чем вдвое увеличивает зарядку продуктов Apple от стандартного порта USB 2.0.

Характеристики USB 1.0, 2.0 и 3.0 (все при 5 вольт) 4 провода (2 данных и 2 выделенная мощность)

Распределение напряжения: USB 1.0 и USB 2.0 = 0,5 А или 500 мА = 2,5 Вт USB 3.0 = 0,9 А или 900 мА = 4,5 Вт. Стенная бородавка = 1,5 А или 1500 мА = 7,5 Ai Charge = 1,2 А или 1200 мА = 6 Вт

Ai Charge работает на материнских платах ASUS и не ASUS и является программой, которую можно установить в Windows.

Лично я НЕНАВИЖУ Apple, поэтому я хочу найти способ сделать это с выходом 1.2A usb 2.0 для моего нетбука во время работы под Linux.

2 голосов
/ 20 сентября 2012

вам нужно использовать ШИМ для управления скоростью двигателя, для этого вам нужен микроконтроллер, серия PIC18F поддерживает USB-связь, есть множество примеров кода, доступных в интернете, как использовать USB в серии PIC18F, также вам нужен транзисторный массивили H-Bridge для управления закладными из PIC.

Самый простой способ связи - запрограммировать последовательный порт USB в микроконтроллере PIC18F, и при подключении этого 18F к компьютеру он обнаружит последовательный порт USB, поэтомуВы можете отправлять команды на последовательный порт для управления скоростью.

2 голосов
/ 07 сентября 2011

Я не верю, что можно напрямую манипулировать напряжением USB.Они предназначены для обеспечения постоянного напряжения +5 В, если только в других концентраторах не снижается мощность.

Возможно, вам лучше будет разместить этот вопрос на http://electronics.stackexchange.com

1 голос
/ 07 сентября 2011

Я не думаю, что это возможно, и даже если бы это было так, подумайте об этом: USB-порт не предназначен для питания двигателей, потому что вы можете сжечь USB-порт. USB ограничен до 500 мА (или там около), и любое устройство питания, например, двигатель, может потребовать больше, чем это.

Другое дело, что сервоприводы должны работать с постоянным напряжением, а скорость регулируется импульсами синхронизации на проводе управления. http://en.wikipedia.org/wiki/Pulse-width_modulation

Вы должны использовать драйвер (аппаратное обеспечение) для питания двигателя от внешнего источника питания.

0 голосов
/ 07 сентября 2011

Это цель транзистора, или попробуйте с потенциометром

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...