какой usb джойстик сделать?

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Пт янв 21, 2011 01:16:38
Откуда: Узбекистан Ташкент

Сообщение 95Виталь »

собрался сделать джойстик но игрового порта у меня нет и поэтому задача затруднилась-надо делать на какойто другой порт (USB) какую схему мне посоветуете желательно попроще и подешевле
чайник второго уровня
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 927
Зарегистрирован: Пт ноя 20, 2009 14:32:31
Откуда: Минск

Сообщение oleg235 »

Без микроконтроллера все равно не сделаешь. Оно тебе вообще надо?
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 167
Зарегистрирован: Ср янв 05, 2011 19:10:55

Сообщение kotofeev »

Если нет игрового порта, то проще купить... А может от сом порта? Хотя я такие не встречал.
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Пт янв 21, 2011 01:16:38
Откуда: Узбекистан Ташкент

Сообщение 95Виталь »

про сом порт я не слышал .... а кто нибудь собирал MJoy16?
чайник второго уровня
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 225
Зарегистрирован: Пн авг 29, 2011 22:08:13
Откуда: запорожье

Сообщение virf »

есть куча вариантов купить игровой порт, или на юсб, ком порте в нете полно схем только контролеры слишком пудреные
Профессиональный барабанщик легко стряхивает градусник до -12 по Цельсию.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Пн мар 16, 2009 23:35:42
Откуда: Украина Новоднестровск

Сообщение nibiluk »

Я делал MJoy8 работает прекрасно http://www.joysticks.ru/joysticks/handmade/mjoy.shtml
Всем известно что любая микросхема работает на дыме, и если волшебный дым из неё вышел то она перестает работать.
Реклама
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Вт дек 05, 2006 11:49:08

Сообщение igorkov »

Делал USB-HID джойстик. Возникла следующая проблема: с помощью HID Descriptor Tool собрать следующий дескриптор HID-а:

Код: Выделить всё

    0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x09, 0x04,                    // USAGE (Joystick)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x05, 0x02,                    //   USAGE_PAGE (Simulation Controls)

    0x09, 0xb0,                    //   USAGE (Aileron)
    0x15, 0x81,                    //   LOGICAL_MINIMUM (-127)
    0x25, 0x7f,                    //   LOGICAL_MAXIMUM (127)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
	
    0x09, 0xb8,                    //   USAGE (Elevator)
    0x15, 0x81,                    //   LOGICAL_MINIMUM (-127)
    0x25, 0x7f,                    //   LOGICAL_MAXIMUM (127)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
	
    0x09, 0xbb,                    //   USAGE (Throttle)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)

    0x09, 0xba,                    //   USAGE (Rudder)
    0x15, 0x81,                    //   LOGICAL_MINIMUM (-127)
    0x25, 0x7f,                    //   LOGICAL_MAXIMUM (127)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)

    0xc0                           // END_COLLECTION
Если кратко, 4 аналоговых оси: элероны, руль высоты, газ, руль направления, по 1 байту на каждую ось. Собственно, при подключении устройства видны и корректно обрабатываются только газ и руль направления. Пробовал менять свойства, пределы значений, так же пробовал другие варианты осей (Dial, Slider), так же переставлял местами оси. Ничего не помогает: упорно видится только газ и руль направления. Может кто знает, что в данном дескрипторе неверно?

После того, как взял из MJoy дескриптор (обрезав его до 4х каналов):

Код: Выделить всё

    0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x15, 0x00,                    // LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00,            // LOGICAL_MAXIMUM (255)
    0x75, 0x08,                    // REPORT_SIZE (8)
    0x09, 0x04,                    // USAGE (Joystick)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x09, 0x01,                    //   USAGE (Pointer)
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x09, 0x30,                    //     USAGE (X)
    0x09, 0x31,                    //     USAGE (Y)
    0x95, 0x02,                    //     REPORT_COUNT (2)
    0x81, 0x82,                    //     INPUT (Data,Var,Abs,Vol)
    0xc0,                             //   END_COLLECTION
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x09, 0x32,                    //     USAGE (Z)
    0x09, 0x33,                    //     USAGE (Rx)
    0x95, 0x02,                    //     REPORT_COUNT (2)
    0x81, 0x82,                    //     INPUT (Data,Var,Abs,Vol)
    0xc0,                             //   END_COLLECTION
    0xc0                              // END_COLLECTION
Все 4 оси видятся, но под несколько другими именами. Собственно настроить софт на данном этапе не особая проблема, но все же может кто сталкивался, почему надо делать такой несколько замороченный дескриптор и почему не прокатил мой вариант?
Контактная информация:
Ответить

Вернуться в «Интеграция с ПК»