Kazalo:

Jammarduino DUE - vmesnik DIY PC to Jamma za arkadne omare: 6 korakov
Jammarduino DUE - vmesnik DIY PC to Jamma za arkadne omare: 6 korakov

Video: Jammarduino DUE - vmesnik DIY PC to Jamma za arkadne omare: 6 korakov

Video: Jammarduino DUE - vmesnik DIY PC to Jamma za arkadne omare: 6 korakov
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, November
Anonim
Jammarduino DUE - DIY PC to Jamma Interface za arkadne omare
Jammarduino DUE - DIY PC to Jamma Interface za arkadne omare

Ta navodila vam bodo pokazala, kako ustvariti preprost ščit za Arduino DUE za povezavo pravega arkadnega stroja z CRT nizko ločljivostjo in priključkom jamma v vaš računalnik.

Glavne lastnosti ščita so:

- za ojačanje video signala, ki prihaja z video kartice (prenizka napetost za originalni monitor Arcade CRT)

- za zaščito monitorja CRT z nizko ločljivostjo pred previsokofrekvenčnimi signali horizontalne sinhronizacije

- za "prevajanje" pritiskov gumbov na arkadni nadzorni plošči v nekaj, kar računalnik zmore

Pokazal vam bom, kako razširiti uporabo vmesnika za nadzor koles in spinnerjev Arcade Racing.

Opomba: ščit NE prisili signala za sinhronizacijo video na nizke frekvence: za to potrebujete posebno programsko opremo. Predlagam, da uporabite CRT emudrivers ali Soft15KHz.

1. korak: Strojna oprema

Predvidevam, da imate ročno spajkalno postajo in nekaj kositra in jih znate uporabljati. Ker je video ojačevalnik SMD z naklonom 0,65 mm, vam predlagam, da kupite nekaj spajkalnega toka za lažje spajkanje tega mikroba. Uporabil sem poceni "brez čiščenja" Rosing Mildly Activated (RMA) pero z odličnimi rezultati.

Vmesnik je sestavljen iz:

- 1x mikrokrmilna plošča Arduino DUE

- 1x video ojačevalnik THS7374

- 1x adapter TSSOP14 na DIP14

- 1x zvočni ojačevalnik

- 1 x jamma fingerboard

- 1x prototipna plošča 5x7 cm, dvostranska

- 1x 1N4148 dioda

- 7x 1Kohm upori

- 1x 820 ohmski upor

- 3x 220 ohmski upor

- 1x trak, razmik 2,54 mm

- 1x VGA kabel

- 1x avdio kabel

2. korak: Sheme

Sheme
Sheme

Tukaj je barvna shema celotnega projekta. Ni tako ortodoksno, a po mojem upanju lažje slediti.

Ožičenje je tako preprosto, kot izgleda:

- barvne črte prihajajo iz priključka PC VGA do video ojačevalnika; 1Kohm upor na maso zniža tok na vhod video ojačevalnika. Na izhodni strani zaporedni upor zniža tok na arkadni CRT.

- sinhronizacijska linija je nekako bolj "kompleksna": ločena sinhronizacija od VGA je sestavljena, najprej znižana z delilnikom napetosti, da se upoštevajo specifikacije Arduino DUE (logika 3,3 V). Delitelj napetosti se izračuna ob predpostavki 5V sinhronizacijskega signala.

- video ojačevalnik (THS7374) se lahko napaja pri 3.3V ali 5V; ker napajanje pri 5V omogoča širši razpon vhodnih napetosti/signalov in ker je THS7374 mogoče nadzorovati z 3.3V, tudi če je sok pri 5V, sem šel po poti 5V.

- video ozemljitev, ozemljitev arduino DUE, ozemljitev THS7374 in ozemljitev priključka jamma sta kratka.

- Vodi Arduino DUE 5V in Jamma 5V NE SMEJO BITI KRATKO VOŽENI.

- NE povezujte ojačevalnika zvoka s kabla USB: za to potrebujete zunanji vir zaradi omejitev toka (npr. PC ATX PSU). S tem boste poškodovali vrata USB ali celo računalnik.

Priključek VGA: beseda previdnosti

Pred kratkim sem imel priložnost posodobiti računalnik, ki se uporablja z mojim jammarduino DUE. Tudi če sem ga prej preizkusil z dvema različnima računalnikoma, sta oba uporabljala kartice ATI iste družine (ATI 9250 in 9550). Novi računalnik je bil opremljen s HD5750 z enim samim analognim izhodom DVI (brez VGA). To me je prisililo k uporabi (pasivnega) adapterja DVI v VGA. No, po nekaj težavah sem opazil, da mora kabel VGA, priključen na adapter, delovati samo ozemljitev, priključena na pin 5 priključka VGA, ne pa zatiči od 6 do 10, kot je opisano v večini shem na spletu. Upoštevajte to, če iz video kartice ne vidite nobenega signala za sinhronizacijo.

3. korak: Skica/koda

Skica/Koda
Skica/Koda

Najprej morate namestiti Arduino IDE; morate namestiti tudi SAM Cortex M3 Core (privzeto ni). Nenazadnje namestite gonilnike Arduino DUE. Za najnovejše informacije si oglejte uradno vadnico "Začetek uporabe Arduino Due".

Skica, ki jo morate naložiti v svoj Arduino DUE, je tukaj priložena. Razpakirajte in naložite "jammarduinoDUE.ino" v Arduino IDE, nato pa naložite v arduino DUE prek vrat za "programiranje". Ko je skica uspešno naložena, odklopite kabel USB iz vrat za "programiranje" in povežite Arduino DUE prek vrat "Native USB", sicer vnosni del kode ne bo deloval.

V bistvu Arduino DUE meri frekvenco sinhronizacije in onemogoči video ojačevalnik, če je sinhronizacija previsoka za CRT z nizko ločljivostjo. Arduino DUE upravlja tudi z vnosi, ki prihajajo z nadzorne plošče, in pošilja privzete tipke MAME ob določenem pritisku gumba. Vključena je tudi funkcija premika (aktivirana s pritiskom na gumb P1 START), kot so komercialni vmesniki.

V tabeli privzeti zemljevid tipk. Privzeti zemljevid ključev lahko preprosto spremenite ali po želji dodate gumbe neposredno na skico.

Če želite na primer emulatorju dodeliti tipke za nadzor glasnosti, jih morate najprej določiti v meniju tipk emu (recimo tipkovnica "+" za povečanje glasnosti in tipkovnica "-" za zmanjšanje glasnosti); nato gumbom pomaknite gumbe, ki jim želite dodeliti povečanje ali zmanjšanje glasnosti. Recimo, da želim povečati glasnost s pritiskom na tipko Shift in gumb Player 1 3. Spremenil bom vrstico

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

do

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

Ta "223" je koda znakov ASCII za tipkovnico "+".

Dovolil vam bom, da ugotovite, kako funkciji "zmanjšanje glasnosti" dodelite "-" (ali karkoli vam je ljubše) (vaja: koda ASCII 222):)

Upoštevajte, da lahko v sistemu MAME dodelite samo glasnost načina storitve, ne pa splošne emulacije; to pomeni, da če emulirana plošča ne omogoča programskega nadzora glasnosti, to ne bo vplivalo na glasnost.

4. korak: Kaj pa vhodni zaostanek?

Naredil sem nekaj testov, da vidim, koliko zamika lahko uvede koda; no, s pošiljanjem treh gumbov hkrati pritisnite celotno zanko za izvedbo približno 4 ms, doslej manj kot 33 ms okvir traja pri 30 FPS.

5. korak: Kaj pa dirkalne omare Jamma?

Kaj pa dirkalne omare Jamma?
Kaj pa dirkalne omare Jamma?

Kolo potenciometra

Če je vaša omara dirkalna omara, je zelo verjetno, da kolo temelji na potenciometru (na zadnji strani nadzorne plošče lahko vidite potenciometer 5Kohm).

Najprej prenesite in namestite knjižnico Joystick (na današnji dan naj bi bila samo različica 1 knjižnice združljiva z arduino DUE, vendar je še vedno zelo dobra knjižnica).

Nato dodajte nekaj vrstic, ki sledijo skici v 4. koraku, da zlahka ročate s kolesom (kam postaviti črte, vam ostanejo kot vaja …)

#vključi

int deadZone = 0;

void setup () {

Joystick.begin ();}

void loop () {

int readPot = analogRead (A3);

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

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

else {Joystick.setXAxis (0);}

}

Kot lahko vidite, lahko po potrebi nastavite mrtvo območje (v dobro delujočem arkadnem kolesu je najbolje, da ga nastavite na nič).

Priključitev potenciometra na Arduino DUE je enostavna: stranski zatiči potenciometra gredo na +3,3 V in GND, zatič brisalca na analogna vrata arduino DUE (glejte sliko za referenco). Tu sem definiral analogni zatič 3 (A3) kot vhod za brisalnik potenciometra kolesa, vendar lahko nastavite analogni zatič, ki najbolje ustreza vašim potrebam.

PS: ali veste, da so pedali v dirkalnih omarah pogosto krmiljeni s potenciometrom, saj so tehnično kolesa in pedala ista naprava z različno obliko? To pomeni, da bi lahko s to kodo uporabili tudi za nadzor pristnih arkadnih pedal;)

Optično kolo

Če je vaše kolo optično, ga je mogoče zlahka rokovati tudi z majhno spremembo začetne skice.

Zelo pogost izpis za optične arkadne dajalnike (Taito predilniki, dajalniki koles Atari itd.) Je:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

Priključite 2. in 3. na Arduino DUE 5V in GND ter 1. in 4. na kateri koli digitalni pin, ki vam je všeč, pri čemer bodite pozorni, da je za znižanje 5V izhoda iz optičnega kodirnika na 3.3V arduino DUE potreben delilnik napetosti.. Ne pošiljajte izhodov OptoA in/ali OptoB 5V neposredno na vhodne zatiče DUE arduino, sicer boste te vhode ali celo celo ploščo ocvrli. Bili ste opozorjeni.

V vzorčni skici bom kot optični izhod A in optični izhod B. uporabil digitalni zatič 2 in digitalni zatič 3.

#vključi

logična vrednost 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);}}} // konec zanke

To je optično kodiranje 1X z nizko ločljivostjo. Za aplikacije Arcade je več kot dovolj, vendar lahko ločljivost preprosto povečate tako, da dodate nekaj vrstice kode.

PS: ali veste, da so optična arkadna kolesa in arkadni predilniki tehnično ista naprava z drugačno obliko? Ali veste, da so sledilne krogle tehnično dvoosne? To pomeni, da bi lahko s to kodo uporabili za nadzor pristnih arkadnih spinnerjev in z nekaj preprostimi spremembami tudi sledilne kroglice;)

6. korak: Nekaj slik ali pa se ni zgodilo

Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!
Nekaj slik, ali pa se ni zgodilo!

Tukaj je nekaj slik ščita, ki sem ga naredil. To ni delo na visoki ravni (stavim, nisem profesionalec), ampak je 100% zibanje v moji jamma Arcade Cabinet!

Priporočena: