Sadržaj:

Jammarduino DUE - DIY PC to Jamma sučelje za arkadne ormare: 6 koraka
Jammarduino DUE - DIY PC to Jamma sučelje za arkadne ormare: 6 koraka

Video: Jammarduino DUE - DIY PC to Jamma sučelje za arkadne ormare: 6 koraka

Video: Jammarduino DUE - DIY PC to Jamma sučelje za arkadne ormare: 6 koraka
Video: Полный курс React JS для начинающих - Изучи Реакт за 2 часа! +таймкоды 2024, Novembar
Anonim
Jammarduino DUE - DIY PC to Jamma Interface za arkadne ormare
Jammarduino DUE - DIY PC to Jamma Interface za arkadne ormare

Ova instrukcija će vam pokazati kako stvoriti jednostavan štit za Arduino DUE za povezivanje prave arkadne mašine sa CRT -om niske rezolucije i jamma konektorom na vašem računaru.

Glavne svrhe štita su:

- za pojačavanje video signala koji dolazi s video kartice (preniski napon za originalni Arcade CRT monitor)

- za zaštitu vašeg CRT monitora niske rezolucije od previsokih frekvencija horizontalnih signala sinhronizacije

- da "prevedete" pritisnute tipke na arkadnoj kontrolnoj ploči u nešto što računar može podnijeti

Pokazat ću vam kako proširiti upotrebu sučelja za upravljanje kotačima i spinnerima Arcade Racing.

Obratite pažnju: štit NE prisiljava signal video sinkronizacije na niske frekvencije: za to vam je potreban neki poseban softver. Predlažem vam da koristite CRT emudrivere ili Soft15KHz.

Korak 1: Hardver

Pretpostavit ću da ručno imate stanicu za lemljenje i malo lima i znate ih koristiti. S obzirom da je video pojačalo SMD sa razmakom od 0,65 mm, predlažem vam da kupite malo fluksa za lemljenje koji će pomoći u lemljenju tog mikroba. Koristio sam jeftinu "ne-čistu" Rosing blago aktiviranu (RMA) olovku s odličnim rezultatima.

Interfejs se sastoji od:

- 1x ploča mikrokontrolera Arduino DUE

- 1x THS7374 video pojačalo

- 1x TSSOP14 na DIP14 adapter

- 1x audio pojačalo

- 1x jamma fingerboard

- 1x prototipna ploča 5x7 cm, dvostrana

- 1x 1N4148 dioda

- 7x 1Kohm otpornici

- 1x 820 ohmski otpornik

- 3x 220 ohmski otpornik

- 1x linija traka, razmak 2,54 mm

- 1x VGA kabl

- 1x audio kabl

Korak 2: Sheme

Sheme
Sheme

Evo obojene sheme cjelokupnog projekta. Nije tako ortodoksno, ali je lakše pratiti, nadam se.

Ožičenje je jednostavno koliko i izgleda:

- linije u boji dolaze od PC VGA konektora do video pojačala; Otpornik od 1Kohm na masu smanjuje struju na ulaz video pojačala. Na izlaznoj strani serijski otpor smanjuje struju na arkadni CRT.

- linija za sinhronizaciju je nekako "složenija": odvojena sinhronizacija od VGA -a je prvo kompozitna, a zatim je snižena razdjelnikom napona kako bi se poštovale Arduino DUE specifikacije (3,3 V logika). Razdjelnik napona izračunava se pod pretpostavkom 5V sinhronizacijskog signala.

- video pojačalo (THS7374) se može napajati na 3.3V ili 5V; budući da napajanje na 5V dopušta širi raspon ulaznih napona/signala i da se THS7374 može kontrolirati sa 3,3 V čak i ako je istisnut na 5 V, krenuo sam putem 5 V.

- video uzemljenje, uzemljenje arduino DUE, uzemljenje THS7374 i uzemljenje konektora jamma su kratko spojeni.

- Arduino DUE 5V i Jamma 5V vodovi ne smiju biti kratki.

- NE izvlačite audio pojačalo s USB kabela: za to vam je potreban vanjski izvor zbog ograničenja struje (tj. PC ATX PSU). Time ćete oštetiti USB priključak ili čak računalo.

VGA konektor: riječ opreza

Nedavno sam imao priliku ažurirati računar koji se koristi sa mojim jammarduino DUE. Čak i da sam ga ranije testirao na dva različita računara, oba su koristila ATI kartice iste porodice (ATI 9250 i 9550). Novi računar je opremljen HD5750 sa jednim DVI analognim izlazom (bez VGA). To me prisililo da koristim (pasivni) adapter DVI na VGA. Pa, nakon malo napora, primijetio sam da VGA kabel spojen na adapter za rad MORA imati samo uzemljenje spojeno na pin 5 VGA konektora, a ne pinove od 6 do 10 kao što je prijavljeno u većini shema na webu. Imajte ovo na umu u slučaju da ne možete vidjeti nikakav signal za sinkronizaciju iz vaše video kartice.

Korak 3: Skica/Kod

Skica/Kod
Skica/Kod

Najprije morate instalirati Arduino IDE; morate instalirati i SAM Cortex M3 Core (nije podrazumevano prisutno). Na kraju, ali ne i najmanje važno, instalirajte Arduino DUE upravljačke programe. Za najnovije informacije pogledajte službeni vodič "Početak rada s Arduino Due".

Skica koju morate postaviti na svoj Arduino DUE nalazi se ovdje u prilogu. Raspakirajte i učitajte "jammarduinoDUE.ino" u Arduino IDE, a zatim otpremite u arduino DUE putem "programskog" porta. Nakon što je skica uspješno učitana, odspojite USB kabel iz "programskog" porta i povežite Arduino DUE preko "Native USB" porta ili ulazni dio koda neće raditi.

U osnovi, Arduino DUE mjeri frekvenciju sinkronizacije i onemogućuje video pojačalo kada je sinkronizacija previsoka za CRT s niskom razlučivošću. Arduino DUE upravlja i ulazima koji dolaze s upravljačke ploče, šaljući zadane MAME tipke pri određenom pritisku tipke. Uključena je i funkcija pomaka (aktivirana držanjem tipke P1 START pritisnutom), poput komercijalnih sučelja.

U tablici zadana mapa tipki. Možete jednostavno promijeniti zadanu mapu ključeva ili lako dodati gumbe izravno na skicu.

Na primjer, ako želite dodijeliti tipke za kontrolu jačine zvuka za vaš emulator, trebali biste definirati te tipke (recimo tipkovnica "+" za pojačavanje glasnoće i tipkovnica "-" za smanjenje glasnoće) u meniju emu tipki, prvo; zatim dodajte pomaknutu tipku tipkama kojima želite dodijeliti povećanje ili smanjenje glasnoće. Recimo da želim povećati glasnoću pritiskom na tipku shift i tipku Player 1. Promijenit ću liniju

{26, HIGH, 0, 180, 180}, // razmak - P1 B3

to

{26, HIGH, 0, 180, 223}, // razmak - P1 B3 (+)

To "223" je ASCII kôd znaka za tastaturu "+".

Dopustit ću vam da shvatite kako dodijeliti "-" (ili što god želite) funkciji "smanjivanja glasnoće" kao vježbu (Savjet: ASCII kod 222):)

Imajte na umu da u MAME -u možete dodijeliti samo volumen načina rada usluge, a ne opći volumen emulacije; to znači da ako emulirana ploča ne dopušta softversku kontrolu glasnoće, to neće utjecati na glasnoću.

Korak 4: Šta je sa ulaznim zaostajanjem?

Napravio sam neke testove da vidim koliko zaostatka kod može unijeti; Pa, slanjem 3 dugmeta istovremeno pritisnite kompletnu petlju potrebno je oko 4 ms da se izvrši, do sada manje od 33 ms okvir traje pri 30 FPS.

Korak 5: Šta je sa Jamma Racing ormarićima?

Šta je sa Jamma Racing ormarićima?
Šta je sa Jamma Racing ormarićima?

Potenciometar

Ako je vaš ormar trkački ormar, vrlo je vjerojatno da je kotač zasnovan na potenciometru (na stražnjoj strani upravljačke ploče možete vidjeti potenciometar od 5Kohm).

Prvo, preuzmite i instalirajte Joystick biblioteku (za današnji dan se samo verzija 1 biblioteke kaže da je kompatibilna s arduino DUE, ali je i dalje vrlo dobra biblioteka).

Zatim dodajte nekoliko redaka koji slijede skici u koraku 4 da biste lako rukovali kotačem (gdje postaviti linije, vama ostaje kao vježba …)

#include

int deadZone = 0;

void setup () {

Joystick.begin ();}

void loop () {{100} {101}

int readPot = analogRead (A3);

int wheelPos = mapa (readPot, 0, 1023, -127, 127);

if (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos);}

else {Joystick.setXAxis (0);} {101}

}

Kao što vidite, po potrebi možete postaviti mrtvu zonu (u arkadnom kotaču koji dobro radi najbolje je postaviti je na nulu).

Ožičenje potenciometra na Arduino DUE je jednostavno: bočni pinovi potenciometra idu na +3,3 V i GND, igle brisača na analogni priključak arduino DUE (pogledajte sliku za referencu). Ovdje sam definirao analogni pin 3 (A3) kao ulaz za brisač potenciometra kotača, ali možete postaviti analogni pin koji najbolje odgovara vašim potrebama.

PS: znate li da se pedalama u trkačkim ormarićima često upravlja potenciometrom, nego su tehnički točkovi i pedale isti uređaj različitog oblika? To znači da bi se kod ovdje mogao koristiti i za kontrolu originalnih arkadnih pedala;)

Optički točak

Ako je vaš kotač optički, njime se također može lako rukovati, opet, s malom izmjenom početne skice.

Vrlo uobičajen ispis za optičke arkadne kodere (Taito centrifugalice, koderi Atari kotača itd.) Je:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

Spojite 2. i 3. na Arduino DUE 5V i GND i 1. i 4. na bilo koji digitalni pin koji volite pazeći da je razdjelnik napona potreban za snižavanje 5V izlaza optičkog kodera na 3.3V arduino DUE koji može podnijeti. Ne šaljite OptoA i/ili OptoB 5V izlaze izravno na vaše arduino DUE ulaze ili ćete vjerojatno ispržiti te ulaze ili čak cijelu ploču. Upozoreni ste.

U primjeru skice ovdje ću koristiti digitalni pin 2 i digitalni pin 3 kao optički izlaz A i optički izlaz B.

#include

logički optA_state = HIGH;

int xAxisMov = 2;

void setup () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Mouse.begin ();

}

void loop () {{100} {101}

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);}}} // kraj petlje

Ovo je 1X optičko kodiranje niske rezolucije. To je više nego dovoljno za arkadne aplikacije, ali možete lako povećati rezoluciju dodavanjem neke linije koda.

PS: znate li da su optički arkadni kotači i arkadni spineri tehnički isti uređaj različitog oblika? Znate li da su trackball -ovi tehnički dvoosni spinner? To znači da bi se ovaj kôd mogao koristiti za kontrolu originalnih arkadnih okretača, a uz nekoliko lakih izmjena i za promjenu;)

Korak 6: Neka slika, ili se to nije dogodilo

Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!
Neka slika, ili se to nije dogodilo!

Evo nekoliko slika štita koji sam napravio. To nije posao na visokom nivou (kladim se, nisam profesionalac), ali 100% se ljulja u mom jamma Arkadnom ormaru!

Preporučuje se: