Форум myROBOT.ru » Лаборатория » Электронная мастерская » usb джойстик на avr

Страниц (2): [1] 2 »
 

1. Bobrozub - 13 Марта, 2012 - 14:16:39 - перейти к сообщению
Доброго время суток!
Задался вопросом по подключению (современного) джойстика/геймпада например к 8й меге.
Помогите, может кто уже делал? После нескольких часов поиска нарыл только инфу по подключению пресловутых доисторических геймпадов и джойстиков к компу.
Цель задачи заключается в управлении моторами/шаговыми двигателями/сервоприводами желательно с помощью современного джойстика с usb интерфейсом.
Проект v-usb как-то не особо помог. Там есть проект подключения геймпда от playstation к компьютеру, но он не особо подходит, так как управление моторами желательно производить напрямую через МК, и желательно использовать джойстик, чтобы можно было плавно регулировать обороты, больше или меньше наклоняя рукоятку джойстика в каком-то направлении (что с помощью геймпада неудобно делать). И еще желательно использовать все кнопки ждойстика для дополнительных функций.
По управлению движками/сервоприводами/моторами проблем нет, нарыл много инфы по этой теме.
То есть, нужно понять, как можно мегой считывать все команды джойстика, купленного в магазине.
Помогите пожалуйста советом или инфой, заранее спасибо!
2. Romaaan - 13 Марта, 2012 - 15:25:35 - перейти к сообщению
немного не понятно-вам нужен USB джойстик, или при помощи USB джойстика управлятять нагрузками?
3. Bobrozub - 13 Марта, 2012 - 16:29:58 - перейти к сообщению
Нужно с помощью джойстика управлять через МК например сервоприводом.
То есть, джойстик подключается к МК, сервопривод тоже подключается к МК через какой-нибудь драйвер, и МК обрабатывает сигналы от джойстика и в зависимости от этого управляет сервоприводом.

Так как почти у всех джойстиков сейчас интерфейс usb, то получается нужно либо МК подключить к джойстику через его usb кабель, либо слегка разобрать джойстик, и МК подключить напрямую к потенциометрам рукоятки и, допустим, к кнопкам.


Но такой способ варварский.. чтобы ковыряться внутри нового купленного джойстика.
Я так понимаю, чтобы МК по usb интерфейсу напрямую общался с джойстиком, то это нужно реализовать программно специальные дрова конкретно для данного джойстика. Еще калибровка джойстика и тп. Нужна специальная прога. Короче - туча дел.
Конечно это круто, но я не хочу идти по пути наибольшего сопротивления Закатывать глаза
Да и мозг себе сломаю)
Может взять какую-нибудь ардуину?
Или все таки лезть внутрь джойстика, подпаять проводки, сделать свой выход, чтобы МК работал с потенциометрами джойстика, ну и можно за одно несколько кнопок подключить. Кажется, что это довольно просто.

Нигде еще не нашел инфы, как это сделать, везде пишут только как подключить джойстик через МК к копму.
4. elmot - 13 Марта, 2012 - 16:50:36 - перейти к сообщению
Я думаю, на AVR - это довольно сложная задача для программирования. Проще взять какое-то линукс-устройство с USB. Поддержка джойстиков будет из коробки, управление моторами приложится. Я бы посоветовал Raspberry PI, но там проблемы с поставками. Ищите аналоги. Лично я делал поддержку нескольких джойстиков одним домашним роутером для клуба боевых роботов.
5. Bobrozub - 13 Марта, 2012 - 17:11:29 - перейти к сообщению
Спасибо! Посмотрю!
Но, думаю, все таки, самый дешевый и простой вариант - это купить джойстик, посмотреть каким номиналом у него внутри стоят переменные резисторы (потенциометры), которые отслеживают положение рукоятки, и подключить их напрямую к МК.
Может получится еще найти datasheet по контроллеру, который будет в самом джойстике, и уже от него тогда плясать...
Мне вот еще интересно как обстоят дела насчет поддержки usb устройств у arduino в таком случае.
6. elmot - 13 Марта, 2012 - 17:21:29 - перейти к сообщению
Боевые роботы уже проходили это. потрошили джойстики и все такое, на дуине пытались сделать. Линух лучше. По сумме величин получится быстрее и дешевле.
7. Bobrozub - 13 Марта, 2012 - 17:36:57 - перейти к сообщению
Спасибо Улыбка
Буду вкуривать линух. Хотя многофункциональности пока совсем не требуется, надо просто управлять приводом. В общем надо подумать еще, соображу Улыбка
9. Bobrozub - 13 Марта, 2012 - 18:22:29 - перейти к сообщению
Спасибо! Буду искать инфу по STM32F4-Discovery... А то посмотрел цены на ebay на остальные SBC - не дешевле 150 баксов, что неприемлемо для данной задачи.
Вообще намечал купить какую-нибудь development board на arm, может как раз и настало время)
STM32F4-Discovery можно взять для саморазвития Улыбка Придется разбираться в ARM.
Вообще, по хорошему, тут вопрос состоит в том, чтобы:
-взять одноплатный компьютер с операционкой (слишком дорого)
-взять платформу на arm (придется долго разбираться и все равно много много прогать)
-взять мегу8 и запаять в джойстик, к чему я больше всего склоняюсь Улыбка
10. Гость - 14 Марта, 2012 - 12:19:09 - перейти к сообщению
обращаю ваше внимание: для подключения джойстика или любого другого переферийного устройства необходим контроллер с USB-host-ом. это совсем не тот USB-интерфейс, которым можно подключаться к компу, это тот USB-интерфейс, который в компе.
11. elmot - 14 Марта, 2012 - 15:01:03 - перейти к сообщению
Естьь еще вариант роутер+самый дешевый мк. На роутере линукс, USB из коробки, на мк все банально. Связь между ними по UART, который присутствует на всех роутерах. Стоимость будет порядка 2 тыр.

STM32F4-Discovery оснащен USB-OTG, т.е. может быть и хостом тоже. Информация проверена, ибо сам запускал примеры. Однако не буду советовать такие вещи, потому что там будет гнусное программирование и отсутствие гибкости(а джойстики бывают ОЧЕНЬ разные). Стоимость - порядка 1-1.5 тыр (учитывая дифицитные шнурки OTG и корпусню).
12. Гость - 14 Марта, 2012 - 21:45:55 - перейти к сообщению
да, много контроллеров с USB-хостом, особенно ARMов - просто внимание на это надо заранее обратить, чтобы потом не удивлятся. и в роутерах тоже обычно ARMы стоят.

да, с чужим устройством обычно засада выходит: с драйвером-управляющей программой.
хотя если устройство на ввод работает (как джойстик например) можно его к компу подключить, натравить какой-нибудь виндрайвер, и вычислить что он в какой endpoint шлет и в каких случаях.
13. Romaaan - 14 Марта, 2012 - 22:38:22 - перейти к сообщению
Цитата:
Но такой способ варварский.. чтобы ковыряться внутри нового купленного джойстика.

а зчем тогда вообще джойстик-можно потенциометры и так купить
14. mihail - 14 Марта, 2012 - 23:33:21 - перейти к сообщению
Romaaan пишет:
а зчем тогда вообще джойстик
Эргономика Подмигивающий

Теоретически, USB HID устройство можно подключить к этому контроллеру. Утверждать не могу, т. к. не подключал. Учитывая цену, ARM может обойтись дешевле.
15. elmot - 15 Марта, 2012 - 12:43:44 - перейти к сообщению
Predator пишет:
обычно ARMы стоят.

В роутерах обычно стоят MIPSы. Но армы тоже бывают.