usb hid Джойстик на atmega16
Задумал я сварганить пульт для симулятора полётов X-plane. Нужно сделать джойстик с 16 осями и кнопками. Для реализации этого есть atmega16 и мультиплексор. Начал рыскать по инету, нашёл проект Mjoy16, но вот исходников нет. Вообщем нужна помощь в написании кода.
Последний раз редактировалось romazan Чт окт 28, 2010 10:18:52, всего редактировалось 1 раз.
- Реклама
Ищите исходники MJoy8, по ним можно свою прогу составить. Исходники на ассемблере.
Вообщем разобрался немного с библиотекой V-USB, создал дескриптор устройства, понял как отправлять данные, НО в каком виде незнаю, тут получалось поуправлять осями Х и У, но мне надо Throttle
Посмотри файло в аттаче, мб поможет. Разбирался два года назад: переделывал прошивку из статьи Сергея Рюмика про то как подключить старые джойстики Sega по USB.
В прошивке были ось X и Y, но работали как кнопки. я сделал их пропорциональными, добавил ещё ось Z, потом добавил ещё оси Rx и Ry итого 5 степеней свободы. Осилил только 8 кнопок, хотя планировал больше, но почему-то не вышло
Честно говоря даже не помню как разобрался так что даже врятли смогу помочь, хорошо что хотябы исходники нашел
Схемы нету, но из прошивки думаю станет ясно, что там нужно поменять, чтобы сделать свои изменения
Фотки: http://img808.imageshack.us/gal.php?g=73445649.jpg
В прошивке были ось X и Y, но работали как кнопки. я сделал их пропорциональными, добавил ещё ось Z, потом добавил ещё оси Rx и Ry итого 5 степеней свободы. Осилил только 8 кнопок, хотя планировал больше, но почему-то не вышло
Честно говоря даже не помню как разобрался так что даже врятли смогу помочь, хорошо что хотябы исходники нашел
Схемы нету, но из прошивки думаю станет ясно, что там нужно поменять, чтобы сделать свои изменения
Фотки: http://img808.imageshack.us/gal.php?g=73445649.jpg
- Вложения
-
- ATmega32-joystick.rar
- V-USB ATmega32 Joystick
Source code for WinAVR - (91.63 КБ) 236 скачиваний
- Реклама
- Сообщения: 532
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Исходники asm для меги8 есть.GRAF писал(а):Ищите исходники MJoy8, по ним можно свою прогу составить. Исходники на ассемблере.
я видимо не так понял, я думал именно с исходниками трабл - не получилось степени свободы добавить.romazan писал(а):Да в том-то и прикол, что как управлять основными осями понятно, но есть такая ось Trothle, вот как ей. ума не приложу
Трофл - сцепление, тут значения от нуля до предела, а не с центром как у оси X например
То же самое с газом и тормозом. просто используйте другие оси: X,Y,Z,Rx,Ry,Rz - это уже 6ть, остальные не знаю, нужно искать.
Кстати можно также сделать два логических джойстика в одном девайсе и это даст уже 12 степеней
Сделать что-бы от 0-до-255 не так сложно, наизусть не помню - но тип передаваемых данных и макс/мин значения - всё задаётся в дескрипторе..
Попробуйте просто поменять :
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
0x15, 0x81, // LOGICAL_MINIMUM (-127)
# На
# 0x25, 0x7f, // LOGICAL_MAXIMUM (127)
# 0x15, 0x00, // LOGICAL_MINIMUM (0)
Поглядел и подумал, не надо, исправьте то что вы передаёте - не 0, а -127... А это уже не в дескрипторе..
Хотя нашел вариант:
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
Попробуйте просто поменять :
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
0x15, 0x81, // LOGICAL_MINIMUM (-127)
# На
# 0x25, 0x7f, // LOGICAL_MAXIMUM (127)
# 0x15, 0x00, // LOGICAL_MINIMUM (0)
Поглядел и подумал, не надо, исправьте то что вы передаёте - не 0, а -127... А это уже не в дескрипторе..
Хотя нашел вариант:
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
Делал несколько чтук на V-USB. Впринципе работает, но не особо стабильно. И с прерываниями надо быть очень осторожно.romazan писал(а):Вообщем разобрался немного с библиотекой V-USB
Ну а главное, смысл какой ? сейчас at90usb162 стоит почти как атмега16. Памяти поменьше, но для джойстика должно хватить.
Зато аппаратный и беспроблемный USB контроллер. Под at90usb* есть отличная библиотека УСБ + куча примерров, включая джойстики - LUFA.
Короче просто создам стандартные оси и не буду больше "парить" мозг. Щас занят поиском 16 штук переменных одинаковых резисторов и черчу конструкцию рычагов газа.
Я тоже общал внимание на этот проц, но есть одно НО: мне чтобы его купить надо пилить 100км до москвы или недели 3 ждать по почте, так что пока использую то что естьSatyr писал(а): Делал несколько чтук на V-USB. Впринципе работает, но не особо стабильно. И с прерываниями надо быть очень осторожно.
Ну а главное, смысл какой ? сейчас at90usb162 стоит почти как атмега16. Памяти поменьше, но для джойстика должно хватить.
Зато аппаратный и беспроблемный USB контроллер. Под at90usb* есть отличная библиотека УСБ + куча примерров, включая джойстики - LUFA.
Тогда лишь посоветую не наступать на мои грабли - кроилово с керамическим резанатором вместо кварца приводит V-USB девайс в части работоспособности в лоттерею -)))



