Оглавление:

Модульный аркадный автомат: 12 шагов
Модульный аркадный автомат: 12 шагов

Видео: Модульный аркадный автомат: 12 шагов

Видео: Модульный аркадный автомат: 12 шагов
Видео: ИГРОВОЙ QIWI ТЕРМИНАЛ / Сделал аркадный автомат в гараж / Часть 3 2024, Июль
Anonim
Модульный аркадный автомат
Модульный аркадный автомат

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

Из-за простой конструкции и выбора компонентов это также довольно недорогая сборка по сравнению со многими проектами домашних игровых автоматов, и вы сможете получить материалы менее чем за 200 € / $. У меня уже была большая часть деревянных материалов и электроники, так что я потратил меньше 100 евро.

Шаг 1. Дизайн

Дизайн
Дизайн
Дизайн
Дизайн
Дизайн
Дизайн

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

  • Модуль управления содержит все элементы управления и управляющую электронику, включая контроллеры USB. Этот модуль может использоваться как контроллер в стиле боевого стика, подключенный к консоли или Raspberry PI.
  • Модуль дисплея содержит дисплей и Raspberry PI (или SBC по вашему выбору) и может использоваться автономно как компьютер «все-в-одном» или подключаться к модулю управления для формирования аркадного блока с барной стойкой.
  • Модуль подставки действует как блок для хранения в автономном режиме, а в сочетании с барной стойкой образует полноценный аркадный автомат.

Мы постарались сохранить дизайн как можно более простым и функциональным, взяв некоторые дизайнерские реплики из винтажных вещей 70-х и 80-х годов - столешницы - игры и избегая нефункциональных элементов, таких как подсветка шатра и Т-образный молдинг, которые можно найти во многих шкафах. Конечно, вы можете изменить дизайн, добавив при желании эти элементы.

Я выбрал довольно классическую раскладку кнопок, которую я, кажется, вспомнил из игровых автоматов моей юности, с группой кнопок «шесть рядов» рядом с каждым из джойстиков (StreetFighter2 FTW). Я разместил кнопки «Пуск» и «Выбор» на передней панели для эмуляции консоли, а также для ввода монет и выбора игроков. Я также разместил кнопки с каждой стороны для игр в пинбол. Конечно, вы можете изменить дизайн по своему вкусу и желаемым методам ввода, например. трекболы. блесны с весами и т. д.

Я сделал первоначальный набросок концептуальной панели на бумаге, а затем воссоздал модели с правильным масштабом в SketchUp - см. Прикрепленные файлы для каждого из модулей и комбинаций.

Я основывал размеры на 19-дюймовом широкоэкранном мониторе, который я купил подержанным за 10 евро. В результате общая ширина корпуса составила 500 мм, оставив около 30 мм люфта на случай замены монитора.

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

Шаг 2: Инструменты и материалы для деревообработки

ВНИМАНИЕ: ПРИ РАБОТЕ С СИЛОВЫМИ ИНСТРУМЕНТАМИ ИСПОЛЬЗУЙТЕ ОСТОРОЖНО И СООТВЕТСТВУЮЩЕЕ ОБОРУДОВАНИЕ ДЛЯ БЕЗОПАСНОСТИ.

Инструменты

  • Отвертка и винты
  • Настольная пила или циркулярная пила
  • Головоломка
  • Сверла и другие насадки, включая кольцевую пилу 28 мм для пуговиц
  • Наждачная бумага
  • Фрезерный станок и угловая фреза для скругления

Материалы

  • Лист МДФ 19 мм (3/4 дюйма)
  • Лист МДФ 6 мм (3/4 дюйма)
  • Угловые кронштейны (я использовал очень удобные пластиковые - см. Фото конструкции)
  • Наполнитель для дерева
  • Раскрасьте (подробности см. Далее в разделе «Готово»)

Шаг 3: Конструкция модуля управления

Конструкция модуля управления
Конструкция модуля управления
Конструкция модуля управления
Конструкция модуля управления
Конструкция модуля управления
Конструкция модуля управления
Конструкция модуля управления
Конструкция модуля управления

Я начал модуль управления с вырезания сторон из 19-мм МДФ на основе размеров модели SketchUp.

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

Затем я вырезал передние и боковые отверстия для кнопок и соединил все панели с помощью угловых скоб и винтов. Изначально я планировал использовать клей, но мои тесты с приклеиванием к обрезной кромке МДФ показали, что этого недостаточно. Также у меня уже была куча скобок, которые я переработал из старого проекта;).

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

Затем я вырезал верх и низ из МДФ толщиной 6 мм. Я скосил верхнюю панель, как и переднюю и заднюю панели, чтобы обеспечить плотное прилегание и бесшовную отделку. Я не скосил нижнюю панель, так как не планирую заливать и красить ее. Вместо этого я буду использовать его как панель доступа для обслуживания. Я просверлил и закрутил отверстия под винты и просверлил соответствующие отверстия в угловых кронштейнах.

Затем я разобрал заднюю панель и вырезал большое отверстие для постоянного доступа к кабелям USB и Raspberry PI.

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

Шаг 4. Электронные инструменты и материалы

NB: Этот список необходим только в том случае, если вы хотите полностью разбираться в электронике. Вы можете и, вероятно, должны получить все это как часть комплекта Plug and Play (например, эти) и избежать пайки и нестандартной проводки. Сделав это один раз «по трудному пути», я обязательно пойду по пути набора, если когда-нибудь сделаю еще один шкаф.

Инструменты

  • Мультиметр / тестер подключения
  • Паяльник
  • Кусачки
  • Инструмент для обжима (я только что использовал кусачки)

Материалы

  • Arduino Leonardo / Pro Micro с профилем джойстика USB HID (я использовал дешевые клоны)
  • USB-концентратор
  • Аркадный джойстик и кнопки.
  • Обжимайте разъемы, чтобы они соответствовали выбранному джойстику и кнопкам
  • 2x мини-макета
  • Соединительные провода (в основном использовал перемычки Dupont)
  • Припой для электроники (все еще была моя оригинальная катушка с канифольным сердечником из колледжа)
  • Термоусадочные трубки

Шаг 5: Подключение модуля управления

Электропроводка модуля управления
Электропроводка модуля управления
Электропроводка модуля управления
Электропроводка модуля управления
Электропроводка модуля управления
Электропроводка модуля управления

Опять же, я рекомендую использовать комплект plug and play вместо описанного здесь подхода. Следуйте этому подходу, только если вы:

A. Хотите полный контроль над кодом обработки кнопок низкого уровня

Б. Очень нравится пайка и нестандартная проводка (кому не нравится)

C. У вас уже есть инструменты и детали и / или вы хотите сэкономить несколько долларов.

D. Хотите узнать больше об этом или просто потренируйтесь.

Мои личные мотивы были смесью вышеперечисленного. Хорошо, вот как я проводил:

Сначала я сделал переходные кабели, чтобы соединить обжимные разъемы на кнопках с проводами разъема Dupont. Я сделал по одному микропереключателю на каждой кнопке и по четыре на каждом джойстике. Приветствуйте Ларри вне закона, чтобы тот раскопал их на производственной линии.

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

NB: В этой конструкции есть отдельный микроконтроллер и, следовательно, USB-кабель для каждого плеера. Разделите джойстик и микропереключатели между ними соответствующим образом и подключите обе кнопки пинбола к одному и тому же микроконтроллеру. Посмотрите фотографии, на которых показано, как проходят этапы подключения, если вы застряли.

Затем мне нужно было добавить провод для отправки сигнала на каждый из микропереключателей, который затем возвращал бы сигнал на входной контакт микроконтроллера при нажатии кнопки. Я использовал 4 витые пары в каком-то кабеле Cat 5e, чтобы передать сигнал на джойстики, спаяв их все вместе на одном конце и подключив соединительный кабель Dupont, подключенный к сигнальному контакту на микроконтроллере.

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

Подключение микропереключателей к микроконтроллерам было довольно простым из-за использования мини-макета и разъемов Dupont, что означало, что я мог легко перемещать провода по мере необходимости.

Шаг 6: Код контроллера

Код контроллера
Код контроллера
Код контроллера
Код контроллера
Код контроллера
Код контроллера

Код довольно простой. Я модифицировал пример геймпада из превосходной библиотеки джойстиков Arduino.

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

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

Первоначально я планировал подключить микроконтроллеры напрямую к Raspberry PI через USB, но во время тестирования на ноутбуке я обнаружил, что подключение и отключение разъемов micro USB к микроконтроллерам через панель доступа было очень неудобным, и в конце концов я сломал разъем micro USB от одного из микроконтроллеров.

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

gamepad.ino

// Простой пример геймпада, демонстрирующий, как читать пять Arduino
// цифровые контакты и сопоставляем их с библиотекой джойстика Arduino.
//
// Цифровые контакты заземляются при нажатии.
//
// ПРИМЕЧАНИЕ. Этот файл эскиза предназначен для использования с Arduino Leonardo и
// Только Arduino Micro.
//
// Модифицированная версия оригинального кода Мэтью Хейронимуса
// 2018-08-11
//--------------------------------------------------------------------
#включают
Джойстик_ Джойстик;
voidsetup () {
// Инициализируем выводы кнопок
pinMode (2, INPUT_PULLUP);
pinMode (3, INPUT_PULLUP);
pinMode (4, INPUT_PULLUP);
pinMode (5, INPUT_PULLUP);
pinMode (6, INPUT_PULLUP);
pinMode (7, INPUT_PULLUP);
pinMode (8, INPUT_PULLUP);
pinMode (9, INPUT_PULLUP);
pinMode (10, INPUT_PULLUP);
pinMode (16, INPUT_PULLUP);
pinMode (20, INPUT_PULLUP);
pinMode (21, INPUT_PULLUP);
// Инициализировать библиотеку джойстика
Joystick.begin ();
Joystick.setXAxisRange (-1, 1);
Joystick.setYAxisRange (-1, 1);
}
// Последнее состояние кнопок
int lastButtonState [12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int pins [12] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 20, 21};
voidloop () {
// Считываем значения контактов
for (intindex = 0; индекс <12; индекс ++)
{
int currentButtonState =! digitalRead (контакты [индекс]);
если (currentButtonState! = lastButtonState [индекс])
{
switch (pins [index]) {
case2: // ВВЕРХ
if (currentButtonState == 1) {
Joystick.setYAxis (-1);
} еще {
Joystick.setYAxis (0);
}
перерыв;
case3: // ВПРАВО
if (currentButtonState == 1) {
Joystick.setXAxis (1);
} еще {
Joystick.setXAxis (0);
}
перерыв;
case4: // ВНИЗ
if (currentButtonState == 1) {
Joystick.setYAxis (1);
} еще {
Joystick.setYAxis (0);
}
перерыв;
case5: // ВЛЕВО
if (currentButtonState == 1) {
Joystick.setXAxis (-1);
} еще {
Joystick.setXAxis (0);
}
перерыв;
case6:
Joystick.setButton (0, currentButtonState);
перерыв;
case7:
Joystick.setButton (1, currentButtonState);
перерыв;
case8:
Joystick.setButton (2, currentButtonState);
перерыв;
case9:
Joystick.setButton (3, currentButtonState);
перерыв;
case10:
Joystick.setButton (4, currentButtonState);
перерыв;
case16:
Joystick.setButton (5, currentButtonState);
перерыв;
case20:
Joystick.setButton (8, currentButtonState);
перерыв;
case21: {
Joystick.setButton (9, currentButtonState);
перерыв;
}
}
lastButtonState [индекс] = currentButtonState;
}
}
задержка (10);
}

просмотреть rawgamepad.ino, размещенный на ❤ на GitHub

Шаг 7: Настройка Raspberry PI

Настройка Raspberry PI
Настройка Raspberry PI

Я рекомендую Pi 3 для максимальной игровой производительности и совместимости, но если вас интересуют только старые игры, подойдет и устройство с меньшей мощностью, такое как Pi Zero. Я использую запасной Pi 2, который у меня уже был.

В Интернете есть масса отличных ресурсов, описывающих, как настроить выбранный вами Pi или другой SBC с различными эмуляторами и интерфейсами. Я лично использую и рекомендую RetroPie, и я обнаружил, что эти - отличные - видео с ETA Prime - отличный способ быстро начать работу.

Шаг 8: Конструкция модуля дисплея

Конструкция дисплейного модуля
Конструкция дисплейного модуля
Конструкция дисплейного модуля
Конструкция дисплейного модуля
Конструкция дисплейного модуля
Конструкция дисплейного модуля

Я начал создание модуля дисплея с боковых панелей, пометив и вырезав первую из размеров, измеренных из файла SketchUp, с помощью виртуальной рулетки. Затем я использовал первую панель в качестве шаблона, чтобы выделить вторую.

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

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

На этом этапе я смог соединить два модуля с помощью двух болтов соединителя шкафа. Теперь я мог видеть окончательную форму комбинированного модуля барной стойки!

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

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

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

Я соединил два модуля, чтобы посмотреть, как они выглядят, а затем закончил приклеивать обрамление экрана на место. Для этого я добавил несколько дополнительных кусков 6-миллиметрового МДФ за рамкой экрана, чтобы убедиться, что он прочный, и чтобы в дальнейшем избежать трещин на краске.

Шаг 9: Готово

Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать

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

Затем я покрыл его разбавленным клеем ПВА в качестве первого герметизирующего слоя. Затем я нанес несколько слоев смеси ПВА и белой универсальной краски для дерева / стали, которую нашел в гараже.

Все эти начальные слои были нанесены с помощью обычной 2-дюймовой малярной кисти.

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

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

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

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

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

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

Шаг 10: Компоненты модуля дисплея

  • 19-дюймовый широкоформатный монитор с динамиками
  • Одноплатный компьютер (SBC) Raspberry PI 2
  • Кейс Raspberry PI 2
  • Адаптер питания USB 2 А
  • Кабель micro-usb
  • Аудиокабель 3,5 мм
  • Кабель HDMI
  • Розетка на шасси (тип со шнуром для чайника)
  • Сетевой шнур чайника
  • Двойная сетевая розетка

Шаг 11: Подключение модуля дисплея

Подключение модуля дисплея
Подключение модуля дисплея
Подключение модуля дисплея
Подключение модуля дисплея
Подключение модуля дисплея
Подключение модуля дисплея
Подключение модуля дисплея
Подключение модуля дисплея

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

Затем я подключил выключатель питания к двойной розетке для питания PI и монитора. Я припаял провода питания к переключателю и обмотал кабели термоусадочными трубками. Если вы не совсем уверены в этой части, обратитесь за помощью к квалифицированному специалисту. НЕ рискуйте с сетевым подключением.

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

Затем я подключил адаптер питания USB для PI и чайник для монитора. Оставалось только подключить к монитору аудио- и видеосигналы.

Поскольку у монитора нет HDMI-входа, я использовал переходник HDMI-DVI. Звук подавался на встроенные динамики монитора через аудиокабель 3,5 мм от PI. При включенной задней панели и максимальных настройках звука громкость звука нормальная, но не громкая. Я мог бы добавить динамики и мини-усилитель в будущем обновлении.

Наконец, я подключил USB-концентратор к PI и смог начать тестирование полностью работоспособного модуля дисплея.

Шаг 12: Заключительная сборка и мысли

Окончательная сборка и мысли
Окончательная сборка и мысли
Окончательная сборка и мысли
Окончательная сборка и мысли
Окончательная сборка и мысли
Окончательная сборка и мысли
Окончательная сборка и мысли
Окончательная сборка и мысли

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

Перед объединением модулей управления и дисплея я вырезал пару дисков из прозрачной клейкой контактной пленки, чтобы не поцарапать лакокрасочное покрытие модуля дисплея выступающими корпусами мебельных разъемов из модуля управления.

Тогда это была простая задача - разместить модули и скрутить их вместе. На этом этапе барная стойка полностью укомплектована и готова к работе. Похоже, это будет предпочтительная конфигурация, поэтому мне не нужно будет строить модуль подставки, по крайней мере, какое-то время. Если и когда я это сделаю, я обновлю этот пост. Сам модуль подставки должен быть самым простым из всех. По сути, это простой шкаф для хранения вещей с отверстиями для болтов в верхней части для подключения к стойке.

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

Рекомендуемые: