какой usb джойстик сделать?
собрался сделать джойстик но игрового порта у меня нет и поэтому задача затруднилась-надо делать на какойто другой порт (USB) какую схему мне посоветуете желательно попроще и подешевле
чайник второго уровня
- Реклама
- Сообщения: 167
- Зарегистрирован: Ср янв 05, 2011 19:10:55
Если нет игрового порта, то проще купить... А может от сом порта? Хотя я такие не встречал.
про сом порт я не слышал .... а кто нибудь собирал MJoy16?
чайник второго уровня
есть куча вариантов купить игровой порт, или на юсб, ком порте в нете полно схем только контролеры слишком пудреные
Профессиональный барабанщик легко стряхивает градусник до -12 по Цельсию.
- Реклама
Я делал MJoy8 работает прекрасно http://www.joysticks.ru/joysticks/handmade/mjoy.shtml
Всем известно что любая микросхема работает на дыме, и если волшебный дым из неё вышел то она перестает работать.
- Сообщения: 33
- Зарегистрирован: Вт дек 05, 2006 11:49:08
Делал USB-HID джойстик. Возникла следующая проблема: с помощью HID Descriptor Tool собрать следующий дескриптор HID-а:
Если кратко, 4 аналоговых оси: элероны, руль высоты, газ, руль направления, по 1 байту на каждую ось. Собственно, при подключении устройства видны и корректно обрабатываются только газ и руль направления. Пробовал менять свойства, пределы значений, так же пробовал другие варианты осей (Dial, Slider), так же переставлял местами оси. Ничего не помогает: упорно видится только газ и руль направления. Может кто знает, что в данном дескрипторе неверно?
После того, как взял из MJoy дескриптор (обрезав его до 4х каналов):
Все 4 оси видятся, но под несколько другими именами. Собственно настроить софт на данном этапе не особая проблема, но все же может кто сталкивался, почему надо делать такой несколько замороченный дескриптор и почему не прокатил мой вариант?
Код: Выделить всё
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
После того, как взял из 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


