Аркадная машина своими руками
Аркадный автомат своими руками (ретрогейминг с динамической подсветкой)
Честно говоря, идея совсем не нова. Семь лет назад я уже рассказывал на Habr’е как сделать свой ретро-игровой центр на основе Raspberry Pi. Тогда я ограничился лишь настройкой малинки, в перспективе подумывая добавить к малинке полноценные кнопки и корпус. Но на том дело и кончилось.
На Хабре были и другие достойные публикации о создании игрового автомата:
Итак, значит интересует тема своей, «домашней» аркады многих людей. Поэтому, поделюсь и своей разработкой.
Проектирование
Для начала нужно определиться с идеей. К началу проекта я знал только два тезиса:
Сердцем автомата будет Raspberry Pi
У автомата будут полноценные аркадные кнопки, но всё-таки неплохо иметь возможность подключения геймпадов и клавиатуры с мышью.
Вооружившись этим знанием идём рисовать макет. Для отрисовки я использовал SketchUp.
Столярка
Обязательно ошкуриваем канты. Боковые канты и торец панели с кнопками закругляем.
Красим заготовки чёрной краской (в зависимости от краски в один или несколько слоёв, обязательно дожидаясь полного высыхания, чтобы не получить вздутия и трещин).
Далее красим канты краской-лаком «фуксия».
По окончанию столярных и лакокрасочных работ можно (не обязательно) высохшие панели и канты (которые не будут оклеены плёнкой) покрыть яхтным лаком для долговечности и износостойкости.
Электрика и электроника
Теперь аккуратно разбираем ноутбук.
Извлекаем оттуда матрицу, узнаём её точное название.
Заказываем LVDS-драйвер для матрицы ноутбука. Обязательно сверяемся с описанием, что LVDS-драйвер поддерживает нашу матрицу, обязательно уточняем у продавца, что это так. На Aliexpress полно разных вариаций плат, часто отличающихся набором входов\выходов. Для автомата собственно нам нужен вход HDMI, выход на LVDS интерфейс матрицы, выход на подсветку матрицы и крайне желательно выход на динамики (т.е. выход со внутреннего усилителя на два динамика). В моём случае плата содержит 4-пиновый разъём с выходом под два одноваттных динамика по 8 Ом каждый. В комплект должен идти так же блок питания на 4 ампера 12 вольт, но если нет, заказываем и его.
Заказываем кнопки. Выбор сейчас огромный, можно найти под любой дизайн и вкус. У меня например такие.
Берём два метра адресной LED-ленты SK9822 (или APA012) и адаптер питания к ней. В зависимости от плотности светодиодов выбираем блок питания от 2 до 6 ампер. Для удобства ещё возьмём уголки для соединения ленты на поворотах.
Так же берём 12-вольтовую ленту метр-два под вывеску. Я брал самую дешевую и трансформатор на 15Вт к ней (SMD3528 60 диодов\4.8вт на метр, 2м).
Ну и по мелочи закупаем:
Разъёмы быстрого соединения TP-001B вроде таких, 2шт+
Вентилятор 120х120 (корпусной, 12в) 1шт
Припой\флюс и т.п., если нужно.
В итоге наш автомат будет всегда включен в розетку, далее по ключу на фронтальной панели его можно будет «завести». От главного выключателя питание идёт на обычную 220в розетку, в которую подключены все остальные адаптеры. 12-вольтовый адаптер (15-ваттный) запитан от розетки дополнительным проводом (к клеммам).К этому адаптеру подключаем светодиодную ленту и вентилятор.
Когда придёт плата LVDS-драйвера, подключаем её к питанию и матрице (соединяем LVDS и питание подсветки), а так же подключаем HDMI к источнику изображения (той же малинке). Если всё подключено правильно, то матрица должна сразу завестись и появится изображение. Возможно, немного нужно будет откалибровать цвета и яркость. Всё делаем через пульт. Так же берём и подключаем к разъему помеченному как CN20 на плате штекер JST, не забыв припаять к нему два аудипровода, а к ним, соблюдая полярность, два динамика. В моей плате разводка такая:
[ +LEFT, GROUND, GROUND, +RIGHT ]
Для того, чтобы подключить динамическую подсветку, режем ленту SK9822 на четыре части и соединяем уголками. К разъемам питания на ленте подключаем с правильной полярностью разъем быстрого соединения (затем соединим с 5В блоком питания), а контакты на самой ленте подсоединяем к GPIO 19 и 23 пинам на малинке, не забыв обязательно еще соединить землю, чтобы избежать мерцания ленты.
Ленту закрепляем на двухсторонний скотч на обратной стороне матрицы. Скорее всего штатный липкий слой будет отваливаться, поэтому используем какую-нибудь сверхпрочную ленту (у меня на ней две кочерги висят и не отрываются), но приклеиваем ленту к матрице аккуратно, стараясь надавливанием не повредить хрупкую и нежную матрицу.
Настраиваем софт
Скачиваем образ RetroPie (под четвёртую малинку). Прошиваем нашу microsd карточку например BalenaEtcher или Win32Imager (если используем Windows, конечно). Выходим в консоль. Далее устанавливаем статический адрес для нашей малинки (чтобы было удобнее перекидывать ROM’ы):
Добавляем\правим строки на наш желаемый IP и IP наш роутер
Так же обязательно включаем SSH (для закачки ROM’ов через сеть) и SPI (для управления подсветкой):
Идём в Interfacing Options:
Включаем SSH и SPI, сохраняем и перезагружаем малинку.
Динамическая подсветка
Теперь устанавливаем Hyperion для управления подсветкой. На выбор можно поставить «старый» Hyperion или Hyperion NG.
Чтобы поставить старый достаточно использовать установочный скрипт, скачиваем его:
На Raspberry Pi 3 скрипт заведётся, а вот про четвёртую малинку скрипт уже не знает, поэтому правим его:
Делаем скрипт исполняемым:
Разницы для Hyperion между третьей и четвёртой малинкой нет, поэтому по факту мы использовали ту же сборку, что предполагается использовать на третьей. Далее останется настроить Hyperion через Hypercon (например на Хабре есть статья на эту тему).
Альтернативно, что более удобно, используем новый Hyperion NG. Но, правда, его нам придётся собрать. Для этого выполняем:
Теперь нужно прописать Hyperion NG как сервис, чтобы он загружался с нужной конфигурацией при загрузке малинки. Для этого создаём файл hyperion.service с содержимым:
И (пере)запускаем сервис:
Теперь Hyperion NG будет доступен через web-интерфейс. Идём туда, вбив в браузере:
Controller type == apa102
RGB byte order == BGR
Внимание! Захват экрана происходит только при наличии подключенного экрана. Если вы попытаетесь посмотреть лог Hyperon’a с отключенным экраном (отключенным HDMI), то увидите пачку ошибок DispmanX. Сразу после подключения всех проводов захват изображения начнёт работать, а светодиоды динамически подсвечиваться в зависимости изображения на экране.
Настройки RetroPie
В-первых, добавим музыку в меню. Для этого устанавливаем mpg123:
Добавляем старт музыки при старте оболочки:
Создаём, если их нет, два файла:
Делаем файлы исполнимыми:
Перед # RETROPIE PROFILE END добавляем:
И теперь туда можем накидать немного фоновой музыки.
И добавляем путь к видео (например /home/pi/RetroPie/screensavers/screensaver_2.mp4) в параметр video:
Ну ещё устанавливаем и настраиваем темы (ES Themes), например по цветовой гамме ко мне вписался отлично cyberpunk. Так же можно например вместо runcommand показывать изображения. И ещё. ладно, хватит! Тюним, настраиваем, сохраняем, выключаем.
Собираем воедино
Одной из визуальных доминант нашего автомата будет его визуальное оформление, а если точнее, то наклейки на корпус. Для того, чтобы всё получилось красиво, идём в графический редактор, берём изображения и подготавливаем их для макетов в масштабе 1 к 1 с размером печати. Устанавливаем профиль CMYK. В идеальном мире лучше иметь разрешение для печати 250-300 пикселей на дюйм, но, в моём случае, у исходников было разрешение только в 95 пикселей на дюйм, и, опережая события, скажу, что тоже вышло отлично и даже вблизи особого «мыла» нет.
Идём в типографию и заказываем все наклейки на самоклеящейся плёнке. Я выбрал глянцевую плёнку на бумажной основе. Обязательно с ламинацией. Причём это жизненно важно для тех поверхностей, с которыми будут контактировать руки игроков, то есть как минимум для панели с кнопками. Если есть такая возможность, то для панели с кнопками и стиками делаем напольную ламинацию. Альтернативно панель иногда закрывают оргстеклом, но для меня, для домашнего использования это излишне. Так же для вывески можно использовать так называемую транслюцентную плёнку, которая будет пропускать свет. Но, увы, почти все типографии отказались мне печатать маленький кусочек (20х50см), либо за этот маленький кусочек запросили цену, сравнимую со всей остальной печатью вместе взятой. Как показала практика, света двухметровой светодиодной ленты хватает с излишком даже при использовании обычной плёнки, наклеенной на оргстекло. Так что смысла в транслюцентной плётке нет никакого.
Когда плёнка придёт, наклеиваем плёнку не спеша на все поверхности, постепенно выгоняя оставшийся воздух мягкой тряпочкой. Излишки плёнки (по контуру) обрезаем максимально острым ножом, или, что лучше, лезвием бритвы.
И, наконец, собираем корпус. Здесь всё просто. Берём шуроповёрт, уголки, и саморезы и все смежные поверхности собираем между собой.
Матрица прикреплена к передней панели на тонких блестящих алюминиевых профилях.
В самую последнюю очередь устанавливаем стекло на витрину, предварительно спрятав под него динамики, вклеенные в нижнюю планку вывески. Динамики закрываем сеткой. Ну, вот собственно автомат и готов. Запускаем, настраиваем кнопки (если не настроили раньше) и играем.
Disclaimer: все приведённые в статье ссылки даны исключительно для ознакомления и указания тех или иных деталей, которые я использовал для сборки автомата (или их аналогов). Никакого рекламного характера они не несут и никто мне не платил за рекламу (а могли бы). И, хотя как минимум один из ритейлеров присутствует на Хабр’е, никакого я отношения к ним не имею.
Исходя из цен на момент покупки стоимость автомата без учёта работ, инструментов (пилки, свёрла), электричества, а так же матрицы ноутбука составила:
Старое железо. Моя аркадная машина.
Это история о том, как я собрал домашний аркадный автомат.
Меня всегда интересовала эстетика аркадных залов 80х
Возможность собраться вместе, поиграть и установить рекорд, сражаться с кем-то, кто все время приходит и играет в игру лучше — это всегда казалось мне неимоверно крутым.
Но В виду того, что у нас в стране это не так распространено, в детстве я мог видеть аркадные машины и аркадные залы только в кино, да и то изредка.
Компьютерные клубы, в конце девяностых конечно закрывали немного эту потребность, но это не совсем то.
Примерно в те времена у меня и зародилась смутная мечта — прикоснуться ко всему многообразию аркадных игр у себя дома.
Итогом этой мечты стал самодельный аркадный автомат, о котором я и хочу вам рассказать.
Изначально я хотел заказать себе просто аркадный джойстик вроде x-arcade, который подключается к компьютеру, затем поставить на компьютер эмулятор, накачать игр, да и остановиться на этом.
Но мой товарищ Витя. Рассказал мне, что проще и дешевле будет заказать не готовый аркадный джойстик (только доставка которого обойдется в кругленькую сумму) а купить отдельно кнопки, стики, контроллеры для джойстиков и собрать корпус самостоятельно.
А потом мы решили, что раз все равно будем делать корпус, то почему бы не сделать сразу аркадный кабинет.
Сказано — сделано, я закал все что нужно на Али Экспрессе, и пока посылка ехала ко мне из поднебесной, мы принялись за подготовительные работы.
Дальше будут старые фотографии, потому, что события, про которые я рассказываю, примерно пятилетней давности, прошу прошения за качество фото.
Первым делом нужно было собрать компьютер, на котором будут эмулироваться игры.
Мы нашли детали, которые до этого валялись без дела — престарелая материнская плата с процессором, оперативная память, жесткий диск.
Для того, чтобы игры смотрелись аутентично, было решено в качестве дисплея использовать монитор с пропорциями экрана 3 на 4, а для экономии места внутри кабинета — это должен быть жк монитор. Уже тогда такие мониторы встречались нечасто.
Наш экземпляр мы купили на по объявлению.
Собрав все запчасти вместе я подключил питание и надеялся, что смогу вдохнуть в это железо жизнь. Получилось, но далеко не с первого раза.
Вскоре пришла посылка с запчастями для джойстика.
Я проверил, что все работает и сделал картонный макет передней панели, на которой смонтировал кнопки, чтобы проверить, насколько удобно они будут нажиматься и при необходимости подкорректировать их расположение.
Сам корпус решили делать не полноразмерный, а половинчатый, который предполагает, что автомат будет стоять на столе.
Затем в мебельной мастерской мы заказали по нашим чертежам части корпуса из ДСП.
Принесли все в гараж и взялись за дело
Боковые стенки пришлось выпилить лобзиком, чтобы придать им округлые формы.
В итоге получилось как-то так.
После этого при помощи дрели и фрезы мы просверлили отверстия под кнопки и джойстики на передней панели.
Получилось тоже не с первого раза. Доска, которую мы испортили, стала креплением для монитора внутри аркадного кабинета. Отверстия оказались очень кстати для того, чтобы провести через них провода.
Когда передняя панель была готова, я смонтировал на ней кнопки и стики.
Две отдельные кнопки вывел для того, чтобы назначить на них функцию Заброса монетки.
Все пыльные работы были сделаны и автомат можно было забрать из гаража домой.
После этого у Вити не было времени заниматься этим проектом. Я решил не бросать и довести автомат до ума.
Это затянулось еще на очень долгое время.
Небольшие USB колонки я разместил в верхней части автомата, над монитором. Туда же вывел кнопку включения.
После этого автомат стоял в таком виде, и я и мои друзья в него с удовольствием играли.
2д игры шли на нем на ура, но вот трехмерные игры престарелое железо тянуло с большим трудом.
В какой-то момент мой домашний компьютер начал капризничать и я купил себе новый, а запчастями старого решил усилить автомат.
После небольшой операции по пересадке компьютерных органов аркадная машина смогла взять новые высоты эмуляции.
Помимо прочих аугментаций, автомат обзавелся видеокартой с выходом hdmi, сделав возможным захват изображения через него. И вторым жестким диском на терабайт.
Для того, чтобы автомат больше не ютился на столах и стал габаритами соответствовать своим старшим товарищам из аркадных залов 80х, я заказал для него тумбу.
Тумба как раз такой высоты, чтобы играть в автомат стоя, а внутри на полочках можно удобно разместить диски и прочие игровые штуки, что я собственно и сделал.
Вскоре руки дошли и до косметических изменений — необработанные грани боковин автомата было решено выровнять шпатлевкой и покрасить. В этом мне очень помогла моя девушка.
А для того, чтобы закрыть щели, рамку монитора и придать автомату более благородный вид, я хотел закрепить спереди лист оргстекла, подкрашенного из баллончика.
Но оргстекло оказалось найти не так просто и вместо него я использовал поликарбонат. Он прочнее оргстекла и с ним удобнее работать.
Черных шурупов для крепления поликарбоната под рукой не оказалось, поэтому я их тоже покрасил
Из таких же полосок поликарбоната сделаны и декоративные элементы передней панели. На данный момент на ней не хватает красивой непрозрачной наклейки, которая бы закрывала богатый внутренний мир верхней панели от посторонних глаз.
Вот такой получился автомат, создание которого затянулось ни на один год.
С процессом его создания у меня связано много положительных моментов, полезного опыта и самых приятных воспоминаний.
Аркадный автомат дома своими руками
Здравствуйте, хочется немного уйти от политики и коронавируса, решил немного разбавить новости и поделиться своим проектом. Автомат выполнен в виде Bartop и стойкой превращающей его в полноразмерный. Питаю отдельные чувства именно к такому «модульнуму» формату, о преимуществах которого напишу ниже.
Все начинается с выреза заранее подготовленных деталей на ЧПУ станке. Сборка готовых деталей не вызывает вопросов, лишь по своей прихоти всегда утапливаю шляпки конфирматов в детали и приходится замазывать их шпаклевкой. Замазал – зашкурил.
Настройка и монтаж комплектующих. Кнопки и стики фирмы Sanwa как безусловного лидера по качеству. Монитор на 19 дюймов с соотношением сторон 5:4 то, что доктор прописал.
Производительный и главное компактный ПК Intel NUC с 128 SSD под систему и 1Tb под медиа файлы оболочки HyperSpin. В этом месте появляется самый важный вопрос: почему не Raspberry Pi + оболочка RetroPi? Нужна была именно платформа Windows и больше «лошадей» под капотом чем у малины. Так же необходима функция быстрого снятия самого Intel Nuc с автомата и подключение его к широкоэкранному телевизору для комфортной игры с джойстиком на диване. Инструменты для обжимки проводов для платы управления всегда под рукой. Сама плата Ipac позволяющая свести Input lag к минимуму, который не заметен в 90% игр, но очень важен в файтингах и платформерах.
Смонтированные элементы на панели управления.
Сама панель управления с лицевой стороны. Стоит обратить внимание на детали из оргстекла, расположенные поверх артов, это позволяет снизить износ самих артов от постоянного контакта с руками игрока и в целом очень красивый элемент.
На фото выше хорошо видно, как расположены комплектующие.
Тут я хотел показать процесс нанесения артов на поверхности автомата, но это довольно рутинная работа. Лучше дать глазам отдохнуть и взглянуть на объективно прекрасное.
Стойка без Bartopa.
Сам Batop. Вот тут стоит вспомнить о упомянутой в первом абзаце «модульности». Так как все комплектующие находятся в самом бартопе, то вы с легкость (открутив два болта) снимаете его со стойки и идете играть к другу.
Вид автомат с обратной стороны. Видны отверстия под вентиляцию и единственная кнопка с предохранителем на задней панели для ВКЛ/ВЫКЛ автомата.
По итогу имеем автомат с огромным количеством платформ и десятки тысяч игр разных десятилетий, в которые можно поиграть путем нажатия одной кнопки. Удобно и глаз радует. Главное эмоции, сразу вспоминаются моменты игры с «профессионалом» Mortal Kombat 3 Ultimate и его недовольные, но местами справедливые замечания, что на джойстике от Sega MD2 он бы меня в два счета уделал, а на этих «Стиках и кнопках» играть невозможно! На что я начинал читать ему нотации уходя в историю, что изначально игра была выпущена на Аркадном автомате. Все заканчивалось игрой в мой любимый аркадный футбол Super Sidekicks на платформе SNK Neo Geo, но и там победитель не менялся. Всем удачи, терпения и побольше позитивных, положительных эмоции в это нелегкое время!