Jammarduino DUE - DIY PC to Jamma Interface za arkadne ormare: 6 koraka
Jammarduino DUE - DIY PC to Jamma Interface za arkadne ormare: 6 koraka
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 originalnog arkadnog stroja s CRT -om niske razlučivosti i jamma konektorom na vaše računalo.

Glavni izlozi š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 razlučivosti od previsokih frekvencija horizontalnih signala sinkronizacije

- za "prevođenje" pritiska tipki na arkadnoj upravljačkoj ploči na nešto što računalo može podnijeti

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

Upozorenje: š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 kositra i da ih znate koristiti. Budući da je video pojačalo SMD s nagibom od 0,65 mm, predlažem vam da kupite neki fluks za lemljenje koji će pomoći u lemljenju tog mikroba. Koristio sam jeftinu "no-clean" olovku Rosing Mildly Activated (RMA) s izvrsnim rezultatima.

Sučelje se sastoji od:

- 1x ploča mikrokontrolera Arduino DUE

- 1x THS7374 video pojačalo

- 1x adapter TSSOP14 na DIP14

- 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 kabel

- 1x audio kabel

Korak 2: Sheme

Sheme
Sheme

Ovdje je obojena shema cijelog projekta. Nije tako ortodoksno, ali lakše ga je slijediti, nadam se.

Ožičenje je jednostavno koliko 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 sinkronizaciju je nekako "složenija": odvojena sinkronizacija od VGA -a čini se kompozitnom, a zatim se snižava razdjelnikom napona kako bi se poštivale specifikacije Arduino DUE (logika 3,3 V). Razdjelnik napona izračunava se pod pretpostavkom 5V sinkronizacijskog signala.

- video pojačalo (THS7374) moglo se napajati na 3.3V ili 5V; budući da napajanje na 5V omogućuje širi raspon ulaznih napona/signala i da se THS7374 može kontrolirati s 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 jamme 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 (npr. 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čunalo koje se koristi s mojim jammarduino DUE. Čak i da sam ga ranije testirao s dva različita računara, oba su koristila ATI kartice iste obitelji (ATI 9250 i 9550). Novo računalo bilo je opremljeno HD5750 s jednim DVI analognim izlazom (bez VGA). To me prisililo da koristim (pasivni) adapter DVI na VGA. Pa, nakon što sam se namučio, 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 to na umu u slučaju da iz video kartice ne vidite nikakav signal za sinkronizaciju.

Korak 3: Skica/Kod

Skica/Kod
Skica/Kod

Najprije morate instalirati Arduino IDE; morate instalirati i SAM Cortex M3 Core (po defaultu nije prisutan). 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 trebate prenijeti na svoj Arduino DUE nalazi se u privitku. Raspakirajte i učitajte "jammarduinoDUE.ino" u Arduino IDE, a zatim ga prenesite na arduino DUE putem porta za "programiranje". Nakon što je skica uspješno učitana, odspojite USB kabel s priključka za "programiranje" i spojite Arduino DUE putem priključka "Native USB", inače 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 pritiskom na određeni gumb. Uključena je i funkcija pomaka (aktivirana držanjem pritisnute tipke P1 START), poput komercijalnih sučelja.

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

Na primjer, ako želite dodijeliti tipke za kontrolu glasnoće za svoj emulator, trebate definirati te tipke (recimo tipkovnica "+" za pojačavanje glasnoće i tipkovnica "-" za smanjivanje glasnoće), prvo u izborniku emu tipki; zatim dodajte pomaknutu tipku gumbima kojima želite dodijeliti povećanje ili smanjenje glasnoće. Recimo da želim povećati glasnoću pritiskom na tipku shift i tipku Player 1 3. Promijenit ću liniju

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

do

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

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

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 glasnoću načina rada usluge, a ne opću emulaciju; to znači da ako emulirana ploča ne dopušta softversku kontrolu glasnoće, to neće utjecati na glasnoću.

Korak 4: Što je s ulaznim zaostajanjem?

Napravio sam neke testove da vidim koliko zaostatka kod može unijeti; Pa, slanjem 3 gumba istovremeno pritisnite, za izvršavanje potpune petlje potrebno je oko 4 ms, do sada manje od 33 ms okvir traje pri 30 FPS.

Korak 5: Što je s Jamma Racing ormarićima?

Što je s Jamma Racing ormarićima?
Što je s Jamma Racing ormarićima?

Kotačić potenciometra

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

Prvo, preuzmite i instalirajte Joystick knjižnicu (za današnji dan samo je verzija 1 knjižnice navodno kompatibilna s arduino DUE, ali je to još uvijek vrlo dobra knjižnica).

Zatim dodajte nekoliko redaka koji slijede na skicu u 4. koraku za jednostavno rukovanje kotačem (gdje postaviti linije prepušteno vam je kao vježba …)

#uključi

int deadZone = 0;

void setup () {

Joystick.begin ();}

void loop () {{100} {101}

int readPot = analogRead (A3);

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

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

else {Joystick.setXAxis (0);}

}

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

Ožičenje potenciometra na Arduino DUE jednostavno je: bočni pinovi potenciometra idu na +3,3 V i GND, igla 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ćim ormarićima često upravlja potenciometrom, nego su tehnički kotači i pedale isti uređaj različitog oblika? To znači da bi se ovaj kôd mogao koristiti i za kontrolu originalnih arkadnih pedala;)

Optički kotač

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, te 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 DUE ulazne pinove arduina ili ćete vjerojatno ispržiti te ulaze ili čak cijelu ploču. Upozoren si.

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

#uključi

boolean optA_state = HIGH;

int xOsaMov = 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 jednostavno 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 -i tehnički dvoosni spinner? To znači da bi se ovaj kôd mogao koristiti za kontrolu originalnih arkadnih okretača, a uz nekoliko, i lakih izmjena, također i trackball -ova;)

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 visokoj razini (kladim se, nisam profesionalac), ali 100% se ljulja u mom jamma Arkadnom ormaru!