Наблюдать за USB-геймпадом с Arduino?

usb

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

Геймпад поставляется с разъемом USB. Я разрезаю USB-кабель, припаиваю его подключаемыми контактами, которые затем подключаются к макету. Я подключаю геймпад к источнику питания 5 В от Arduino и подключаю USB Data+ к аналоговому входному контакту Arduino (A0). Пожалуйста, проверьте изображения ниже.

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

Мой вопрос: Можно ли обнаружить нажатия кнопок геймпада при таком расположении? Если это возможно, то где, по-вашему, я делаю что-то не так?

USB Gamepad and Arduino

schematic

, 👍1

Обсуждение

У вас arduino нет хост-контроллера USB, поэтому вы не можете. Вы зря сломали геймпад.., @Eugene Sh.

Хорошо, спасибо за упоминание контроллера USB-хоста, это то, что мне нужно!, @Andree

Добавление хост-контроллера USB к Arduino технически и экономически глупо. Вам было бы лучше с чем-то вроде kl25z, который дешевле, более производителен и имеет встроенную систему. Или вы можете выпотрошить геймпад и заменить электронику., @Chris Stratton

Да, настоящие геймпады SNES или Megadrive гораздо легче читать., @pjc50

Как плата разработки KL25z с закрытым исходным кодом 20 дешевле, чем открытая аппаратная плата 2, - nano с 3,- usb-хост-щит ???, @Joeri


2 ответа


Лучший ответ:

2

Как уже упоминалось, проблема в том, что геймпад, который вы используете, взаимодействует через USB, для связи с которым требуется чип USB - хоста. Однако экраны USB-хоста можно найти на eBay (в разделе "arduino USB Host shield") за 10 долларов, и они поставляются с разъемом USB, поэтому вы можете легко использовать его с другим геймпадом, у которого не был обрезан разъем. Это также позволит использовать HID устройства, такие как мыши и клавиатуры, если вы пожелаете, так что стоит иметь щит.

,

0

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

Удивительно, но для некоторых USB-устройств (например, клавиатуры) вам необходимо опросить данные. Ничего не будет отправлено хосту автоматически. Чтобы узнать, по какому протоколу они говорят, вам нужно подключить игровой планшет к ПК и отслеживать сигналы.

Также вам нужно отслеживать как D+, так и D - сигналы, они оба используются.

Вот замечательное видео Бена Едока о USB-клавиатурах, в котором он углубляется в мониторинг сигналов и протокола, может стать хорошим началом для вашего проекта: https://www.youtube.com/watch?v=wdgULBpRoXk

,