MJoy
USB-контроллер джойстика на основе микроконтроллера AVR ATMega8
Mindaugas Milasauskas
Основан на проекте контроллера "USB в RS232" от Igor Cesko
Введение
Я начал разрабатывать этот контроллер джойстика, вдохновленный необходимостью в простом самодельном джойстике, который мог бы преодолеть ограничения гейм-порта и предоставить бОльшую точность и гибкость для всевозможных проектов. Я реализовал потребность в таком устройстве, поскольку я люблю играть в игру Ил-2 Штурмовик. Для этой игры очевидна необходимость иметь высококачественный джойстик, если Вас не радует быть «мясом». Наиболее массово представленные на рынке джойстики имеют массу недостатков. И есть много парней, которые делают джойстики по своим собственным проектам. Многие эти проекты значительно лучше, чем те, что производятся массово. Для большинства этих проектов необходим контроллер. Использование гейм-порта разрушает все достоинства высокоточной и прецизионной механики. Все это обсуждается во многих форумах по игре Ил-2. Очевидное требование для контроллера джойстика – подключение по шине USB, так что я начал работать в этом направлении. И теперь это здесь…
Исследования
Наиболее хорошо выглядел следующий путь – найти подходящий USB-контроллер и добавить к нему необходимые функции. Но после изучения различных устройств и их возможностей стало очевидным, что разработать такое устройство за разумное время и при разумных затратах простому любителю-самодельщику не так уж просто. Другая возможность была - взять более общий микроконтроллер и встроить в него протокол шины USB, как процедуру прикладного уровня. Поиски в интернете привели меня на страницу Igor Cesko
http://www.cesko.host.sk
Igor провел хорошее исследование и проделал большую работу по встраиванию протокола USB в микроконтроллер. Итак, Я решил взять его проект за основу и осуществить все, что необходимо для топ-джойстика. Я выбрал контроллер ATMega8, так как он дешев и легкодоступен. Браво, Igor!
Затем настало время для исследования реализации микропрограмм HID (Human Interface Device – Устройство Взаимодействия с Человеком). После этого понадобилось также поглубже копать в спецификациях USB – так как реализация прерываний USB не была включена устройство Игоря. После интенсивной ежевечерней работы в течение пары недель мне удалось заставить работать этот контроллер