Як побудувати USB-контролер, який має ручки, повзунки та вимикачі


34

Як можна створити інтерфейс для USB-пристрою, який дозволяє взаємодіти горщики, лінійні коси / журнали та миттєві перемикачі / перемикання на комп'ютер?

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

Відповіді:


29

Я використовував би одну з дощок Teensy . Це мікроконтролерні плати, схожі на Arduino, які підтримують USB. На відміну від Arduino, вони можуть з'являтися на ПК як будь-який USB-пристрій. Це означає, що ви можете створити власну власну USB-клавіатуру, джойстик, MIDI-пристрій тощо тощо, і ПК має використовувати стандартні драйвери.

The Teensy підтримує ID Arduino IDE , або ви можете запрограмувати на C та використовувати LUFA (для підтримки USB) безпосередньо.

Ось декілька посилань на проект, щоб допомогти.


10
Для цього типу додатків я б запропонував претендувати на HID. Драйвери, які вже написані, ви просто імітуєте мишку або подібний пристрій.
Кортук

1
+1 для джойстика, вам навіть не потрібно будувати дошку mcu, плата, відновлена ​​з джойстика Borken з аналоговими осями, буде працювати так само добре ...
peufeu

6

Я б використовував мікроконтролерну плату, як Arduino. Ви читаєте АЦП та цифрові введення / виведення та надсилаєте символи ASCII на ПК за допомогою з'єднання UART-> USB.

Скільки необхідного зовнішнього обладнання залежить від потрібної точності. Я думаю, що для більшості застосувань внутрішнє обладнання мікроконтролера буде достатнім. Я б дебютував комутаторами в апаратному забезпеченні.

Для інтерфейсу USB просто напишіть просто парсер, щоб ви могли запитувати показання. Наприклад, якщо ПК надіслав рядок "A00?" UC може повернути зчитування на аналоговий канал 0. "D00?" UC може повернути стан цифрового входу 0. Для зміни цифрового виходу можливо щось на зразок "D00 = 1" або "D00 = 0". Це короткі пасма фіксованої довжини. Слід дуже легко розібратися.


4

Мені подобається використовувати Arduinos, вони прості в програмі, і ви можете легко надсилати дані на комп'ютер з різних входів через бортове з'єднання USB. Дані можуть бути надіслані до середовищ програмування Arduino Serial Monitor - це корисно для налагодження.

Потім я використовую таку програму, як Pure Data (PD) або Max MSP для отримання серійних даних. Дані можна надсилати з цих програм у всіляких корисних форматах. Тому що це досить просто, щоб робити будь-які криві журналу або масштабування в програмному забезпеченні - вам не доведеться турбуватися про покупку дорогих горщиків для журналів або використання важких значень цінностей - просто купуйте набір робочих місць того ж значення і турбуйтеся про деталі пізніше (1 К або 10 К, як правило, легко отримати).

Цей безкоштовний: http://puredata.info/

Ця платна версія є платною, але вона має хорошу демонстраційну версію: http://cycling74.com/downloads/


4

Отримайте ардуїно

Отримайте DangerShield .

Напишіть код для надсилання даних датчика DangerShield на ПК через RS-232 через USB-з'єднання.

Напишіть власну програму на зразок VB.NET або щось для перекладу даних у щось корисне на ПК, наприклад, віконні повідомлення Win32 чи щось таке.


3

Я б запропонував використовувати PoKeys . Дуже просто додавання 55 цифрових вводу-виводу, 7 аналогових входів (12-бітових), ШІМ-виходів та багато іншого. Це може бути навіть в поєднанні з чим - то на кшталт цього .


2

Я б поїхав з ардуїно чи сангвіно, як більшість людей пропонував. Просто google для них. Вони надзвичайно прості у використанні, і ви зможете працювати і працювати протягом декількох годин, як тільки будете мати всі необхідні компоненти.


2
"Just google for them" is not accepted as an answer around here. Give details here.
stevenvh



1

An alternative which may or may not suit is to buy commercially available analogue joysticks / joypads (from $fckall on ebay china, or from the games store) and replace their analogue input components with your own, or just rip the main PCB out and transplant into your hardware.

You'll need to match some of the electrical characteristics, but the hard work of coding/USB comms etc. is done for you and usually the comms protocols / input mapping is well known.

Chinese knock-offs of PlayStation-style USB controllers etc. can be had for a few bucks, which is well below the price of hobbyist *duino IO boards etc. and cheap enough to be disposable when you blow the first one or two up.


0

The GamepadBlock makes use of an ATmega32U2 together with LUFA to implement a full speed USB HID device to poll several original game controllers. The ATmega has a hardware USB interface and getting started was easy since LUFA provides several demo projects.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.