15 November 2019

«Портативная» ретро-консоль своими руками

Development for Raspberry PiGadgetsDIYGames and game consoles
Пятничный привет, Хабр!

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

В результате мы окунемся в период, когда слова Dendy и Sega вызывали трепет, и получим вот такую «карманную» консоль:


Под катом много картинок и краткое видео для тех кто любит смотреть, а не читать

Предисловие


К сборке данного проекта меня подтолкнула целая череда событий. Дело в том, что я очень много времени провожу в дороге по пути на работу. Как правило время приходится коротать за прослушиванием книг или казуальными игрушками в телефоне. Ну или как сейчас — делать черновики для статьи на хабр. И вот так, в дороге, когда все эти казуалки сильно приелись, я начал вспоминать, что раньше трава была зеленее, а игры осмысленнее. Вспомнил как в детстве, днями напролет, играл в dendy, и решил, что на китайских площадках наверняка есть карманные приставки, которые скрасят долгую дорогу.

Ну и заказал себе одну такую приставку. Продавец обещал аж 168 игр из детства. Дни шли… Доставка заказа затягивалась.

Время шло, я в предвкушении решил еще раз пробежаться по списку игр, которые должны были быть на приставке. Пока читал список — освежил в памяти игры в которые проводил целые дни, и с досадой обнаружил, что многих из них нет в обещаемом наборе. Кроме того, плитой воспоминаний легла приставка Sega mega drive, с её Comix zone, Rock'n'Roll Racing и Earthworm Jim… Время шло, а моя «нинтендовая» приставка нет. Написав продавцу, я получил ответ, что он просто забыл ее отправить, а трек который он дал — недействительный. Деньги я за нее вернул, но детство мне не вернули.

Плюнув в сердцах на совесть этого нехорошего человека, я задумался, что поиграть в денди можно и на эмуляторе в телефоне. Но как оказалось — ощущения совсем не те. Нет тактильных кнопок, а вместе с тем и комфорта игры. Тем более, что старые игры гораздо сложнее современных и промазать по кнопке прыжка зачастую может означать старт уровня с начала.
И решил — почему бы не собрать свою приставку, с Cannon fodder и кнопками?.. И я собрал. Допустил кучу ошибок, где-то по неопытности, где по криворукости. И поделиться с вами хочу именно опытом с ошибками, потому что умный человек учится на чужих ошибках, а на Хабре собираются только умные люди :)

Видео, с процессами сборки:


Выбор платформы


У меня завалялась raspberry pi 2, и недорогой 3,5 дюймовый дисплей к ней. С поиска решений для нее я и решил начать. И как оказалось — не зря. Для Raspberry уже имеется операционная система RetroPie, которая и превращает ее в полноценный эмулятор самых разных консолей. (подробнее по ссылке).

Кроме того, в интернете полно инструкций как подключить к ней джойстики и сунуть в корпус от старой приставки.

Но это не наш путь, мы же собираем «карманную» консоль. Значит джойстик нужен встроенный.

Ошибка 1: Лучше использовать raspberry pi 3 или 4 модели из-за наличия wi-fi и bluetooth. Это сильно упростит настройку уже собранной консоли в дальнейшем. Так же можно использовать Orange pi, решение получится ничуть не хуже.

Проектируем джойстик


За основу джойстика я решил взять 6 кнопочный контроллер от sega-mega-drive. В первую очередь из-за того что, 6 кнопок позволять играть в сегавские игры и не будут мешать дендевским.

Дальше, у Adafruit нашлась библиотека, которая может эмулировать клавиатуру, считывая сигналы с ножек gpio самой raspberry. И пользоваться ей очень просто. Её нужно скопировать в уже установленную RetroPie и подключить кнопки к пинам. Кнопки, при нажатии должны замыкаться на землю (любой GND пин).

Для начала были собраны все кнопки на макетной плате и проверены на работоспособность.



Схему подключения использовал следующую:



Т.к. проект собирался под Sega'вский джойстик — то и обозначения соответствующие. Вообще в RetroPie принято использовать «TL» и «TR» вместо «C» и «Z», видимо используемые в джойстиках от PlayStation. На самом же деле кнопки всегда можно переназначить, в том числе, для каждой конкретной игры.


Кнопки собраны, теперь нужно подумать над корпусом для карманной приставки. И вот тут я получил как положительный, так и отрицательный опыт:



Собираем корпус


В одном из своих постов я уже упоминал, что создание корпуса это прям головная боль для некоммерческой сборки гаджетов, если у вас нет 3д принтера. Можно поискать либо готовые боксы и плясать от их размеров, либо что-то собирать самому. Я решил опробовать новый для себя способ — склеивание акрила. Тем более, что хабравчанин millercutter предлагал свою помощь в нарезке акрила к одному из прошлых постов. За что ему отдельная и большая благодарность!

Прикинув размеры начинки — был сделан чертеж и отдан на резку. Изначально идея была в следующем: скруглить наждачкой «острые» края в собранном корпусе и покрыть его жидкой резиной из баллончика. В воображении вырисовывалось soft-touch покрытие и дизайн Porsche.
Склеивать акрил рекомендуют дихлорэтанолом. Его я в строительном магазине не нашел, поэтому взял первый попавшийся клей для пластика Bison. Прошу не считать это рекламой, но склеился корпус очень хорошо. Взгляните какой красивый прозрачный корпус получился:


Акрил легко и надежно клеится, хорошо выглядит и вообще приятный материал.

Корпус собран, кнопки впаяны в макетные платы, готовимся красить…



После высыхания клея я прошёлся наждачной бумагой по углам, а так же по всему корпусу, чтобы «краска лучше легла». Так как дома красить негде — я вышел на покраску на улицу. И вот тут я получил свою вторую ошибку:

Красить нужно в сухом и теплом помещении, а не в мокром и холодном Петербурге.

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

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



Сборка консоли


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

Все места соединений и пайки я промазывал термоклеем. Да, это некрасиво, но зато верный способ закрепить навесной монтаж.

Ошибка 3: навесной монтаж это в любом случае ненадежно и некрасиво, поэтому если у вас есть возможность заказать или заЛУТить печатную плату — у вас получится надежнее и компактнее



Собираем звук


Сборка звука это одна большая ошибка номер 4:
Я решил, что для воспроизведения звука идеально подойдет динамик от телефона. Тот, что воспроизводит мелодию звонка. Но по ошибке приобрел голосовой динамик (тот что к уху прикладывается) Ну и после подключения его к микросхеме усилителя — динамик просто не справился с громкостью. Пришлось усилитель изъять.

Честно говоря, до сих пор не знаю что сделать со звуком. использовал микросхему усилителя MC34119L. Может быть в подключении была проблема. Если кто-то знает какой динамик будет подходящим и какой простейший усилитель для него подойдет — пожалуйста подскажите. Желательно без дополнительных обвесов типа конденсаторов.

Собираем питание


Тут все довольно просто. Нужно собрать powerbank. У меня имеется запас аккумуляторов 18650 и разные готовые платы для их зарядки.

Ошибка 5: Сначала я использовал безымянную с Китая на 3 Ампера с круглым гнездом питания. У нее не оказалось стабилизатора на 5В поэтому дополнительно пришлось припаять DC-DC преобразователь. Чуть позже переделал на уже готовый модуль сразу со стабилизатором и индикатором заряженности батарей, но из-за уже готового отверстия в корпусе — круглое гнездо осталось. Сейчас же понимаю, что следовало делать для microUSB. Пары аккумуляторов на 2300mAh хватает на несколько дней безудержной игры. Так же, сразу не пришла в голову возможность поставить кнопку с фиксацией для включения устройства. Можно оправдывать большой тумблер, единственный оказавшийся под рукой, но… Нет ему оправдания, кнопка была бы лучше. Кроме того, аккумуляторы 18650 довольно громоздкие, можно подумать над использованием плоских литиевых аккумуляторов.


Окончательно собранное устройство

Заключение


В целом консоль получилась приятная. Окунуться в старые игрушки это прям как пережить второе рождение. Консоль в карман все-таки не помещается (разве что в пуховик), но в рюкзаке легко переносить.

На просторах интернета можно найти целые коллекции игр на 30 Гигабайт. На данном сайте можно легально скачать бесплатные игры для данной консоли.

Для тех же, кто решит повторить данный проект — смею дать несколько советов:

  • Лучше не используйте термоклей.
  • Если есть возможность — закажите или сделайте печатную плату, консоль получится аккуратнее и компактнее
  • Прежде чем начать красить корпус — следует потренироваться на кошках на похожем материале
  • Используйте Raspberry Pi с WiFi. Это лучше чем постоянно вскрывать корпус и доставать малинку для загрузки игр или перенастройки.
  • Еще лучше использовать Raspberry Pi Zero или Orange Pi. Они компактнее
  • Не лучшая идея давать консоль ребенку — потом сложно забрать

Ну и закончить статью хотелось бы словами Александра Сергеевича:
«О сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.»

Tags:raspberry piretropiediy или сделай самгик-устройствагиктаймс
Hubs: Development for Raspberry Pi Gadgets DIY Games and game consoles
+65
18.9k 116
Comments 59
Top of the last 24 hours