/   /  Как сделать игровую приставку своими руками

Как сделать игровую приставку своими руками

В общем-то идея сделать такое у меня появилась довольно давно, но только сейчас программное обеспечение для подобных поделок пришло в более-менее приличное состояние.

Прежде я пробовал сделать такое из x86 неттопа, но штука выходила довольно громоздкая и капризная. Потом продал неттоп и купил б/у Android TV Box. Это куда компактнее и легче, но заставить эмулятор RetroArch корректно работать на Андроиде мне так и не удалось, там что ни сборка - сплошные баги.

Поэтому решено было собирать приставку на базе Raspberry Pi 3, благо уже есть готовые образы системы для этих целей, да и гибкость настройки просто шикарная.

Итак, нам понадобится:
- Raspberry Pi (подойдёт любая, я купил самую мощную, с запасом);
- Блок питания 5V 3A;
- Два USB джойстика;
- Корпус (можно использовать что угодно);
- Различные разъемы и крепеж (по вкусу);
- Клей (по вкусу, мне нравится двухкомпонентная эпоксидка).

Корпус я решил использовать от мертвой приставки, и на барахолке была найдена за пару баксов вот такая 16-битка, китайская копия SEGA Genesis 3.

Немало времени, усилий и изопропила ушло на то, чтобы смыть корявые надписи. Но так всяко лучше. К сожалению, на корпусе есть пару внушительных царапин, но пока оставил как есть.


3

Прикинул расположение элементов внутри корпуса. Как видите - купил блок разъёмов RCA и бесполезнейший в быту, но незаменимый для моих нужд переходник HDMI мама-папа. Он нужен, чтобы отодвинуть плату от края корпуса. А тут и приехала посылка с набором различных латунных стоек (на местном рынке они как-то нереально дорого стоят).

Срезал на пару миллиметров мягкий корпус переходника HDMI и выпилил прямоугольное отверстие в обоих половинках корпуса. Разместил стойки под плату и залил эпоксидкой, не забыв зачистить мелкой наждачкой места склейки.

Таким же манером выпилил круглые отверстия под тюльпаны и приклеил стойки. Страшновато было пилить, не так это и просто, сделать ровно.

Но всё получилось практически идеально! Я более чем доволен.

Двигаемся дальше! Вырезал кусочек макетной платы и закрепил на нём гнездо питания. Можно было бы и micro-usb вывести, но так каноничнее. Само собой, крепиться будет на такие же стойки.

Закрепил. Отлично. Куда приспособить большое круглое отверстие рядом с питанием - не придумал, изначально хотел туда вывести аналоговый сигнал, но решил, что тюльпаны универсальнее. Поэтому закрою его пластиковой заглушкой.

Подготовил плату и припаял два гнезда USB для джойстиков.

Закрепил на стойках в нужном месте корпуса. Но, само собой, разъемы по форме не совпадают с Сеговскими, и это мне очень не понравилось.

Поэтому перемычку между родными отверстиями я спилил, а внутрь вклеил выпиленную пластиковую фальшпанель. Немного не подошло по цвету, но это малозаметно.

Распаял проводами питание, USB-гнезда и аналоговые выходы. Кстати, не знаю, программная это фишка или аппаратная, но в Raspberry Pi 3 определение выхода (аналог/цифра) автоматическое, а вот в первой версии компьютера мне приходилось переключать вручную.

Время делать кнопки включения и сброса. Поскольку штатных кнопок для этих дел в Raspberry Pi не предусмотрено, а выключать, жестким образом отрубая питание, мне не хотелось, я решил подключить кнопки к контактам GPIO и прописать в автозагрузку скрипты для выключения и перезагрузки. Кнопку включения нужно вешать на строго определённые GPIO, чтобы по нажатию кнопки наша приставка не только выключалась, но и включалась.
А скрипты легко найти в Интернетах. Тут меня ждал неприятный сюрприз. Для включения/выключения нужна кнопка без фиксации, а родной выключатель в приставке был простым ползунком. Пришлось сделать возвратный механизм, а ползунок намазать силиконовой смазкой.

А вот и второй сюрприз: какой поставить выключатель? В итоге я просто вытащил из мертвого принтера переключатель с лапкой и изогнул лапку. Теперь при нажатии на ползунок лапка нажимает на переключатель. Отлично. Припаял на плату и закрепил на стойках.

Кнопочку сброса вытащил из того же принтера и закрепил на плате. Однако сама кнопка (на корпусе) упиралась в разъём кнопки питания, а он должен быть строго на 5 и 6 GPIO. Пришлось подрезать разъем. Можно было и припаять напрямую, но не хотелось.

Гнездо для картриджей закрыл сеткой, купленной на барахолке и покрашенной баллончиком в белый цвет. Пришлось изнутри подровнять корпус, но это несложно.
А тут подъехали джойстики в стиле Sega Saturn. Почему они? Потому что у них 6 кнопок и две кнопки сверху, то есть функционал без проблем покрывает NES, SNES и Sega Mega Drive. Нужно только настроить джойстик при первом включении, а потом поправить конфиги для каждого эмулятора и раскидать по папкам.

Сами джойстики по качеству на 3 из 5, сборка отличная, но невнятно нажимаются крестовины. Это я про Retrolink. Можно найти лицензионные USB джойстики Sega, но цены на них ОЧЕНЬ кусаются.

Собственно, готово! Остаётся включить, настроить джойстики и подключить Wi-Fi (понадобится клавиатура), а потом зайти через Total Commander в расшаренные папки устройства и закинуть туда любимые игры.

Вот такая картинка при подключении по RCA. Сразу напрашивается мысль сделать шрифты побольше.

А вот так вот получается, если подключить HDMI. Гораздо лучше. Но аналоговые выходы пригодятся, чтобы играть с друзьями на даче под пивко.

Оговорка: имеется небольшая задержка ввода (Input Lag), это заметил не только я, и телевизор тут ни при чем. В Интернете описаны способы снизить задержку, но это уже другая история.

И еще один неприятный минус - при подключении питания приставка включается сразу же, а не ждёт нажатия кнопки. Это я пока не придумал, как победить.
В планах еще заказать на плоттерной резке плёночные надписи на корпус. А в остальном я доволен, да и друзья тоже.



Рейтинг:

  +3

ПОХОЖИЕ ПОСТЫ

Комментариев пока нет

Добавить комментарий

  • bxbybzcacbcccd
    cecfcgchcicjck
    clcmcncocpcqcr
    csctcucvcwdadb
    dcdddedfdgdhdi
    djdkdldmetdodp
    dqdrdsdtdudvdw
    dxdydzeaebeced
    efegeheiejekel
    emeneoepeqeres
    agreealikalkalkashamangryass
    bananbananfuckbayanbdsmbeerbeheadbelay
    blinblinkbowbrakebravobroilbud
    bullycheercheesycondomcoolcowcranky
    crycryingdeaddealdegdeg_girldegny
    devildiscodisgustdividedndoffdont
    dontshootelkafaceofffearfecalfeelfekaloid
    fellowfigafightfingalflipafuckfuck3
    fuckingganjagentelgenthnygigigigoodbye
    gopnekgreenhackerhathihorrorhuy
    hzideainloveinviq0koshkakosyak
    kotkrugerkrutoktulhulalalalamolaughing
    lollovelupamadmaniacmikemoderator
    moralmurderednigernononarkoffold
    oobotsospedikipissingpizdapokepop
    popcornprayprevedsmiliepukeraprecourserepa
    requestriproflrulezruporrusdegsad
    scarysheepshitshootshum_lolsiskislava
    sleepboobssm_biggrinsmilesmokasmokerspystar
    stervastolstpsuckbananasuckssuicidesuper
    surprisetangotitstonguetoperuebanumn
    umnikupupsetvilkawassatwc-smokerwc
    whatwhywinkwinkedyadzombie