dux-project-soft-dlya-pk

Вот, наконец, и дошли руки написать последнюю статью о проекте DUX :)   В предыдущих статьях я описал изготовление самого устройства, а также процесс написания прошивки для контроллера. Сегодня мы рассмотрим последнюю тему – написание программы-обработчика для компьютера.

Читать пост до конца »

Ну наконец-то :)Ну наконец-то :) emoticon
dux-project-apparatnaya-chast

Раз уж мы решили подключать джойстик по USB, то нам нужен некий девайс, который будет реализовывать протокол на аппаратном уровне, верно? Отличная новость: для этой цели подойдёт практически любой 8-битный контроллер AVR, который может завестись от кварца 12 МГц. Это сатло возможным благодаря программной реализации USB от http://obdev.at. Конечно, возможностей полномасштабного контроллера с аппаратной поддержкой USB тут ожидать не приходится, но нам и надо-то совсем немного :)   Реализация довольно компактная и занимает примерно 1,5 килобайта памяти. При этом мы можем создавать Custom Class, HID и Custom HID девайсы. Конечно, HID, не требующий драйвера и программы-обработчика на компьютере, выглядит очень заманчиво, но мне, если честно, было лень с ним разбираться :)   Поэтому я решил особо не мудрить и сделать Custom Class device, требующий присутствия на компьютере драйвера libusb-win32.

Читать пост до конца »

 emoticon
dux-project-izgotovlenie-pechatnoj-platy

Итак, после фиаско с переходником, я решил сделать для джойстика новую плату. Причин тому было несколько:

  1. Нет нужды разбираться в чужих протоколах
  2. Не нужно использовать никаких переходников, кабель USB будет припаян непосредственно к плате
  3. Не нужно использовать костыли на компьютере: стандартный драйвер + небольшая программка, преобразующая нажатия кнопок джойстка в нажатия клавиш клавиатуры.

Читать пост до конца »

Собираюсь в отпуск :)Собираюсь в отпуск :) emoticon
dux-project-intro

У каждой эпохи есть свои символы – вещи, с которыми ассоциируется данный отрезок времени. Вряд ли я сильно ошибусь, если скажу, что одним из таких символов для детей, выраставших в середине 90-х, стала всемирно известная приставка от Nindendo. 8-битный процессор, 2 килобайта оперативной и 48 килобайт памяти на картридже – вот те нехитрые комлектующие, которые и составляли ту самую Dendy, приводившую в восторг каждого ребёнка. Конечно, сейчас с высоты четырёхядерных монстров и терабайтных винчестеров такая конфигурация выглядела бы смешной. Выглядела бы, если бы старые игры, выжимающие всё возможное и невозможное из Ricoh 6502, не захватывали дух даже сейчас, по прошествие стольких лет. Ну что может противопоставить Crysis с его motion blur, нанокостюмом и реалистичной физикой старым добрым «Черепашкам Ниндзя»? Или «Супер Марио»? Сейчас просто не умеют писать игр, берущих от железа всё. «А вот мы щас присобачим двадцать потоков на обработку ввода с клавиатуры и ещё пятнадцать на мышь. Картинка тормозит? Ага, зачёркиваем GeForce 7900, пишем GeForce 9800. Опять не хватает? Не беда – напишем в пресс-релизе о революционных технологиях, опережающих своё время». А вы попробуйте уложиться в 64 спрайта и палитру в 48 цветов.

К чему я всё это пишу. Не так давно, разбирая в комнате, я наткнулся на ту самую приставку, которую мне подарили году эдак в 95. Сама приставка уже не работала, да и картриджи я кому-то успел подарить… Но желание вспомнить детство оказалось сильнее обстоятельств :)   Погуглив минут пять, я нашёл множество разных эмуляторов, равно как и кучу ROM’ов. Будучи восьмилетним пацаном, я мог только мечтать о таком богатстве :)   Однако поиграв некоторое время, я понял, что чего-то не хватает. Эмулятор воспроизводит картинку в точности, как на телевизоре; звук шипит и хрипит так, будто вместо пятиканальной Revolution я воткнул колонки в умирающий спикер… Клавиатура, вот что. Никакая клавиатура никогда не заменит старого доброго джойстика :)   Погуглив ещё некоторое время, я нашёл несколько способов подключения джойстка к компьютеру. Вариант с подключением в LPT через диоды был сразу с негодованием отвергнут. Не потому, что я весь такой аццкий электронщик (данное утверждение весьма далеко от истины ;) ), а потому что инженеры Asus’а решили не перегружать мою материнскую плату LPT-портом. Следующим вариантом был переходник от джойстка на USB, собираемый на МК ATMega8. Вот его я и решил спаять. Однако меня ждало жестокое разочарование: то ли русские пираты были настолько суровы, что не соблюдали цветовую маркировку при разводке джойстика, то ли вообще протокол поменяли – в общем, переходник не работал. Казалось бы, вариантов больше нет. Ан нет. К тому моменту я уже твёрдо решил, что, во что бы то ни стало, хочу поиграть в денди со своим старым джойстиком, без вариантов :)

Немного пораскинув мозгами, я решил подойти к проблеме радикально. Раскрутил джойстик, вытащил из него плату, тщательно измерил положение всех контактных площадок, и… Забросил её обратно на антресоль. Ибо новый проект под кодовым именем «DUX» подразумевал создание всей начинки джойстика с нуля.

Долго ли, коротко ли, проект был завершён, джойстик собран, софт написан… А результат можно лицезреть на видео в начале поста. В следующей паре постов я постараюсь более подробно описать сам процесс разработки и сборки. А пока, с чувством выполненного долга от пройденных «Чипа и Дейла», отправляюсь спать :)

RockingRocking emoticon