Оглавление:
- Шаг 1. Аппаратное обеспечение
- Шаг 2: схемы
- Шаг 3: набросок / код
- Шаг 4: А как насчет задержки ввода?
- Шаг 5: Что насчет кабинетов Jamma Racing?
- Шаг 6: Немного фото, или этого не случилось
Видео: Jammarduino DUE - интерфейс DIY PC и Jamma для игровых шкафов: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Это руководство покажет вам, как создать простой экран для Arduino DUE, чтобы подключить к вашему ПК настоящий аркадный автомат с ЭЛТ низкого разрешения и разъемом помех.
Основными преимуществами щита являются:
- для усиления видеосигнала, исходящего от видеокарты (слишком низкое напряжение для настоящего монитора Arcade CRT)
- для защиты ЭЛТ-монитора с низким разрешением от слишком высокочастотных сигналов строчной синхронизации
- «переводить» нажатия кнопок на панели управления аркадой во что-то, с чем может справиться ПК
Я покажу вам, как расширить возможности интерфейса для управления колесами и спиннерами Arcade Racing.
Примечание: экран НЕ ПРИСОЕДИНЯЕТСЯ к низкочастотному сигналу видеосинхронизации: для этого вам необходимо какое-то специальное программное обеспечение. Предлагаю вам использовать эмуляторы CRT или Soft15KHz.
Шаг 1. Аппаратное обеспечение
Я предполагаю, что у вас есть паяльная станция и немного олова вручную, и вы знаете, как ими пользоваться. Поскольку видеоусилитель представляет собой SMD с шагом 0,65 мм, я предлагаю вам приобрести флюс для пайки, чтобы припаять этот микроб. Я использовал дешевую ручку Rosing Mildly Activated (ROSING Mildly Activated, ROSing Mildly Activated), не требующую очистки, и получил отличные результаты.
Интерфейс состоит из:
- 1x плата микроконтроллера Arduino DUE
- 1x видеоусилитель THS7374
- 1x переходник с TSSOP14 на DIP14
- 1x аудиоусилитель
- 1 гриф для джаммы
- 1 макетная плата 5x7 см, двусторонняя
- 1х диод 1N4148
- 7 резисторов по 1 кОм
- 1x резистор 820 Ом
- 3 резистора 220 Ом
- 1x полосовая линия, интервал 2,54 мм
- 1x кабель VGA
- 1x аудиокабель
Шаг 2: схемы
Вот цветная схема всего проекта. Не так ортодоксально, но, надеюсь, легче уследить.
Разводка так же проста, как и выглядит:
- цветные линии идут от разъема VGA ПК к видеоусилителю; резистор 1 кОм, соединенный с землей, снижает ток на входе видеоусилителя. На выходе последовательное сопротивление понижает ток на ЭЛТ аркады.
- Линия синхронизации как-то более "сложная": отдельная синхронизация от VGA сначала делается составной, а затем понижается делителем напряжения в соответствии со спецификациями Arduino DUE (логика 3,3 В). Делитель напряжения рассчитывается исходя из синхросигнала 5 В.
- видеоусилитель (THS7374) может питаться от 3,3 В или 5 В; Поскольку питание от 5 В позволяет использовать более широкий диапазон входных напряжений / сигналов и что THS7374 может управляться с помощью 3,3 В, даже если выжимается с напряжением 5 В, я пошел по пути 5 В.
- заземление видеосигнала, заземление Arduino DUE, заземление THS7374 и заземление разъема Jamma имеют короткое замыкание.
- Линии Arduino DUE 5V и Jamma 5V НЕ ДОЛЖНЫ БЫТЬ ЗАКРЫТЫМ ЗАМЫКАНИЕМ.
- НЕ подключайте аудиоусилитель к USB-кабелю: для этого вам понадобится внешний источник из-за ограничений по току (например, блок питания PC ATX). Поступив так, вы повредите свой USB-порт или даже компьютер.
Разъем VGA: предостережение
Недавно у меня была возможность обновить компьютер, на котором установлен мой jammarduino DUE. Даже если я раньше тестировал его на двух разных ПК, они оба использовали карты ATI одного и того же семейства (ATI 9250 и 9550). Новый ПК был оснащен HD5750 с одним аналоговым выходом DVI (без VGA). Это заставило меня использовать (пассивный) переходник с DVI на VGA. Что ж, после некоторой борьбы я заметил, что кабель VGA, подключенный к адаптеру, ДОЛЖЕН иметь только заземление, подключенное к контакту 5 разъема VGA для работы, а не контакты с 6 по 10, как указано на большинстве схем в Интернете. Имейте это в виду, если вы не видите никакого сигнала синхронизации с вашей видеокарты.
Шаг 3: набросок / код
Сначала вы должны установить Arduino IDE; вы также должны установить SAM Cortex M3 Core (по умолчанию отсутствует). И последнее, но не менее важное: установите драйверы Arduino DUE. Обратитесь к официальному руководству «Начало работы с Arduino Due» для получения самой последней информации.
Скетч, который нужно загрузить в Arduino DUE, прилагается. Разархивируйте и загрузите "jammarduinoDUE.ino" в Arduino IDE, затем загрузите в Arduino DUE через порт "программирования". После успешной загрузки скетча отсоедините USB-кабель от порта «программирования» и подключите Arduino DUE через порт «Native USB», иначе входная часть кода не будет работать.
По сути, Arduino DUE измеряет частоту синхронизации и отключает видеоусилитель, когда синхронизация слишком высока для ЭЛТ с низким разрешением. Arduino DUE также обрабатывает входные данные, поступающие с панели управления, отправляя ключи MAME по умолчанию при нажатии определенной кнопки. Функция переключения (активируется удерживанием нажатой кнопки P1 START) также включена, как и коммерческие интерфейсы.
В таблице раскладка по умолчанию. Вы можете легко изменить карту клавиш по умолчанию или добавить кнопки по своему желанию прямо на эскизе.
Например, если вы хотите назначить клавиши управления громкостью для своего эмулятора, вы должны сначала определить эти клавиши (скажем, клавиатура «+» для увеличения громкости и клавиатура «-» для уменьшения громкости) в меню клавиш эмулятора; затем добавьте сдвинутую клавишу к кнопкам, которым вы хотите назначить увеличение или уменьшение громкости. Скажем, я хочу увеличить громкость, нажав клавишу Shift и кнопку Player 1 3. Я изменю строку.
{26, HIGH, 0, 180, 180}, // пробел - P1 B3
к
{26, HIGH, 0, 180, 223}, // пробел - P1 B3 (+)
Это «223» - это код символа ASCII для клавиатуры «+».
Я позволю вам выяснить, как назначить «-» (или что вы предпочитаете) функции «уменьшения громкости» в качестве упражнения (подсказка: код ASCII 222):)
Имейте в виду, что в MAME вы можете назначать только громкость сервисного режима, но не общую громкость эмуляции; это означает, что если эмулируемая плата не поддерживает программное управление громкостью, это не повлияет на громкость.
Шаг 4: А как насчет задержки ввода?
Я провел несколько тестов, чтобы увидеть, насколько сильно может запаздывать код; Что ж, при одновременном нажатии 3 кнопок полный цикл занимает около 4 мс для выполнения, что намного меньше, чем 33 мс, которые длится кадр при 30 кадрах в секунду.
Шаг 5: Что насчет кабинетов Jamma Racing?
Колесо потенциометра
Если ваш шкаф представляет собой гоночный шкаф, очень вероятно, что колесо построено на потенциометре (вы можете увидеть потенциометр 5 кОм на задней стороне панели управления).
Первым делом загрузите и установите библиотеку Joystick (на сегодняшний день только версия 1 библиотеки считается совместимой с arduino DUE, но это все еще очень хорошая библиотека).
Затем добавьте несколько линий, которые следуют за эскизом на шаге 4, чтобы легко управлять колесом (где разместить линии, оставлено вам в качестве упражнения …)
#включают
int deadZone = 0;
void setup () {
Joystick.begin ();}
void loop () {
int readPot = аналоговое чтение (A3);
int wheelPos = карта (readPot, 0, 1023, -127, 127);
if (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos);}
else {Joystick.setXAxis (0);}
}
Как видите, при необходимости можно установить мертвую зону (в хорошем рабочем аркадном руле лучше всего установить ее на ноль).
Подключить потенциометр к Arduino DUE просто: боковые контакты потенциометра подключены к + 3,3 В и GND, контакт стеклоочистителя - к аналоговому порту Arduino DUE (см. Рис. Для справки). Я определил здесь аналоговый вывод 3 (A3) как вход для дворника потенциометра колеса, но вы можете установить аналоговый вывод, который лучше всего соответствует вашим потребностям.
PS: знаете ли вы, что педали в гоночных шкафах часто управляются потенциометром, чем технически колеса и педали представляют собой одно и то же устройство с другой формой? Это означает, что приведенный здесь код можно использовать и для управления настоящими аркадными педалями;)
Оптическое колесо
Если у вас оптическое колесо, то с ним тоже можно легко обращаться, немного изменив начальный эскиз.
Очень распространенная распиновка для оптических кодировщиков Arcade (спиннеры Taito, кодеры колес Atari и т. Д.):
1. OptoA OUT
2. + 5В
3. GND
4. OptoB OUT
Подключите 2. и 3. к Arduino DUE 5V и GND, а 1. и 4. к любому цифровому контакту, который вам нравится, обратите внимание, что делитель напряжения необходим для понижения выходного сигнала 5 В от оптического кодировщика до 3,3 В, с которым может справиться Arduino DUE.. Не отправляйте выходы OptoA и / или OptoB 5V напрямую на входные контакты Arduino DUE, иначе вы, скорее всего, сожжете эти входы или даже всю плату. Вы были предупреждены.
В приведенном здесь примере скетча я буду использовать цифровой контакт 2 и цифровой контакт 3 как оптический выход A и оптический выход B.
#включают
логическое optA_state = HIGH;
int xAxisMov = 2;
void setup () {
pinMode (2, INPUT_PULLUP); // OptA
pinMode (3, INPUT_PULLUP); // OptB
Mouse.begin ();
}
void loop () {
if (optA_state == HIGH && digitalRead (2) == LOW) {
optA_state =! optA_state;
if (digitalRead (3) == HIGH) {Mouse.move (xAxisMov, 0, 0);} else {Mouse.move (-xAxisMov, 0, 0);}}} // конец цикла
Это оптическое кодирование с 1-кратным подсчетом с низким разрешением. Этого более чем достаточно для приложений Arcade, но вы можете легко повысить разрешение, добавив несколько строк кода.
PS: знаете ли вы, что оптические аркадные колеса и аркадные спиннеры технически представляют собой одно и то же устройство с разной формой? Знаете ли вы, что трекболы технически представляют собой двухкоординатный спиннер? Это означает, что приведенный здесь код можно использовать для управления настоящими аркадными спиннерами и, с небольшими изменениями, трекболом;)
Шаг 6: Немного фото, или этого не случилось
Вот несколько изображений щита, который я сделал. Это не высокоуровневая работа (держу пари, я не профессионал), но она на 100% качает в моем аркадном кабинете jamma!
Рекомендуемые:
Подставка для игровых наушников DIY ARGB из акрила: 14 шагов (с изображениями)
Подставка для игровых наушников DIY ARGB с использованием акрила: Привет всем, в этом руководстве я покажу вам, как сделать настраиваемую подставку для наушников с адресуемой RGB-подсветкой для ваших игровых наушников с использованием светодиодов WS2812b (также известных как Neopixels). Для этого также можно использовать полосы RGB. проект. Это описание не соответствует действительности
Подушечки для игр, чувствительные к давлению (для цифровых игровых площадок и не только): 11 шагов (с изображениями)
Игровые подушечки, чувствительные к давлению (для цифровых игровых площадок и др.): Это руководство, которое покажет вам, как сделать подушечки, чувствительные к давлению, которые можно использовать для создания цифровых игрушек или игр. Его можно использовать как крупномасштабный резистор, чувствительный к силе, и, хотя он и забавен, его можно использовать для более серьезных проектов
Симулятор игры для смартфона - играйте в игры для Windows, используя IMU для управления жестами, акселерометр, гироскоп, магнитометр: 5 шагов
SmartPhone Game Simulator - играйте в игры для Windows, используя IMU управления жестами, акселерометр, гироскоп, магнитометр: поддержите этот проект: https://www.paypal.me/vslcreations, сделав пожертвование на программы с открытым исходным кодом & поддержка дальнейшего развития
Подставка для ноутбука на 3 и 3 ступени (с очками для чтения и лотком для ручек): 5 ступеней
Подставка для ноутбука с 3-мя и 3-мя ступенями (с очками для чтения и лотком для ручек). 3 ступеньки подставки для ноутбука можно сделать за 5 минут. Он очень прочный, легкий и его можно сложить, чтобы взять с собой куда угодно
Кронштейн для 3,5-дюймового жесткого диска для отсека для дисковода 5,25 дюйма: 3 шага
Кронштейн для 3,5-дюймового жесткого диска для отсека для дисковода 5,25 дюйма: у большинства из нас все еще есть старые CD / DVD-диски, которые вам уже не нужны, но вам жаль выбрасывать. Это инструкция, как дать вашим старым CD / DVD-ROMам вторую жизнь