INHOUDSOPGAWE:

Jammarduino DUE - DIY -rekenaar na Jamma -koppelvlak vir arcade -kaste: 6 stappe
Jammarduino DUE - DIY -rekenaar na Jamma -koppelvlak vir arcade -kaste: 6 stappe

Video: Jammarduino DUE - DIY -rekenaar na Jamma -koppelvlak vir arcade -kaste: 6 stappe

Video: Jammarduino DUE - DIY -rekenaar na Jamma -koppelvlak vir arcade -kaste: 6 stappe
Video: (Русские субтитры) Путешествие на пароме с ночевкой в ​​Японии для индивидуальных путешественников! 2024, Julie
Anonim
Jammarduino DUE - DIY -rekenaar na Jamma -koppelvlak vir arcade -kaste
Jammarduino DUE - DIY -rekenaar na Jamma -koppelvlak vir arcade -kaste

Hierdie instruksies sal u wys hoe u 'n eenvoudige skild vir Arduino DUE kan skep om 'n regte arcade -masjien met 'n lae resolusie CRT en jamma -aansluiting op u rekenaar te koppel.

Die hoofpype van die skild is:

- om die videosignaal van die videokaart af te versterk (te laag in spanning vir 'n egte Arcade CRT -monitor)

- om u lae resolusie CRT -monitor te beskerm teen te hoë frekwensie horisontale sinchronisasie seine

- om die knoppie op die bedieningspaneel te "vertaal" na iets wat die rekenaar kan hanteer

Ek sal jou wys hoe om die koppelvlakgebruik uit te brei om Arcade Racing -wiele en draaiers te beheer.

Let op: die skild dwing NIE die videosinkroniseringssein na lae frekwensies nie; u benodig spesifieke sagteware daarvoor. Ek stel voor dat u CRT -emudrivers of Soft15KHz gebruik.

Stap 1: Hardeware

Ek neem aan dat u 'n soldeerstasie en 'n blikkie met die hand het, en u weet hoe u dit moet gebruik. Aangesien die videoversterker 'n SMD met 'n toonhoogte van 0,65 mm is, stel ek voor dat u 'n soldeervloei koop om die mikrobe te help soldeer. Ek het 'n goedkoop "nie-skoon" Rosing Mildly Activated (RMA) pen gebruik met uitstekende resultate.

Die koppelvlak bestaan uit:

- 1x Arduino DUE mikrokontrollerbord

- 1x THS7374 video versterker

- 1x TSSOP14 tot DIP14 adapter

- 1x klankversterker

- 1x jamma -vingerbord

- 1x 5x7 cm prototipe bord, dubbelkant

- 1x 1N4148 diode

- 7x 1Kohm weerstande

- 1x 820 ohm weerstand

- 3x 220 ohm weerstand

- 1x strooklyn, afstand van 2,54 mm

- 1x VGA -kabel

- 1x klank kabel

Stap 2: Skema's

Skemas
Skemas

Hier is 'n kleurskema van die geheelprojek. Nie so ortodoks nie, maar makliker om te volg, in my hoop.

Bedrading is so maklik soos dit lyk:

- kleurlyne kom van die PC VGA -aansluiting na die videoversterker; 'n 1Kohm -weerstand teen die grond verlaag die stroom na die video -versterker -invoer. Aan die uitsetkant verlaag 'n reeksweerstand die stroom na die arcade CRT.

- die sinchronisasielyn is op een of ander manier meer "kompleks": afsonderlike sinchronisasie van die VGA word eers saamgestel, eers verlaag deur 'n spanningsverdeler om die Arduino DUE -spesifikasies te respekteer (3.3V logika). Die spanningsverdeler word bereken met 'n sinchronisasiesein van 5V.

- video -versterker (THS7374) kan op 3,3V of 5V aangedryf word; Aangesien die krag op 5V 'n wyer reeks ingangsspannings/seine moontlik maak, en dat THS7374 met 3,3V beheer kan word, selfs al word dit op 5V gesap, het ek die 5V -weg gevolg.

- video -grond, arduino DUE -grond, THS7374 -grond en jamma -aansluitingsgrond is kortsluit.

- Arduino DUE 5V- en Jamma 5V -lyne MOET NIE KORT GESNEID WORD NIE.

- Moenie die klankversterker uit die USB -kabel haal nie: u benodig 'n eksterne bron hiervoor as gevolg van huidige perke (dws die PC ATX PSU). As u dit doen, kan u u USB -poort of selfs u rekenaar beskadig.

VGA -aansluiting: 'n woord van versigtigheid

Ek het onlangs die geleentheid gehad om die rekenaar wat met my jammarduino DUE gebruik is, op te dateer. Selfs as ek dit al voorheen met twee verskillende rekenaars getoets het, het hulle albei ATI -kaarte van dieselfde familie gebruik (ATI 9250 en 9550). Die nuwe rekenaar is toegerus met 'n HD5750 met 'n enkele analoog DVI -uitgang (geen VGA). Dit het my gedwing om 'n (passiewe) DVI na VGA -adapter te gebruik. Na 'n bietjie gesukkel, het ek opgemerk dat die VGA -kabel wat aan die adapter gekoppel is, slegs die grond op pin 5 van die VGA -aansluiting moet laat werk, nie penne van 6 tot 10 nie, soos in die meeste skemas op die internet gerapporteer. Hou dit in gedagte as u geen sinchronisasiesein uit u videokaart kan sien nie.

Stap 3: Skets/kode

Skets/kode
Skets/kode

U moet eers Arduino IDE installeer; u moet ook die SAM Cortex M3 Core installeer (nie standaard nie). Laastens, maar nie die minste nie, installeer Arduino DUE -bestuurders. Raadpleeg die amptelike handleiding "Aan die slag met Arduino Due" vir die nuutste inligting.

Die skets wat u na u Arduino DUE moet oplaai, is hierby aangeheg. Pak die "jammarduinoDUE.ino" uit en laai dit na u Arduino IDE, en laai dit dan op na arduino DUE via die "programmering" -poort. Nadat die skets suksesvol opgelaai is, ontkoppel die USB -kabel van die "programmeer" -poort en verbind Arduino DUE via die "Native USB" -poort, anders werk die ingang van die kode nie.

Basies meet Arduino DUE die sinkronisasiefrekwensie en deaktiveer die videoversterker as die sinkronisering te hoog is vir 'n lae resolusie CRT. Arduino DUE hanteer ook die insette wat vanaf die bedieningspaneel kom, en stuur standaard MAME -sleutels met 'n spesifieke druk op die knoppie. 'N Skuiffunksie (geaktiveer deur die P1 START -knoppie ingedruk te hou) is ook ingesluit, soos kommersiële koppelvlakke.

Die standaard sleutelbord in die tabel. U kan die standaard sleutelkaart eenvoudig verander of knoppies na u wil direk op die skets byvoeg.

As u byvoorbeeld die volumebeheersleutels vir u emulator wil toewys, moet u eers die sleutels definieer (laat ons sê: "+" vir volume omhoog en klavier "-" vir volume verlaag); voeg dan die verskuifde sleutel by die knoppies waaraan u die volume verhoog of verlaag wil toewys. Gestel ek wil die volume verhoog deur op die shift -knoppie en Player 1 -knoppie 3 te druk. Ek sal die reël verander

{26, HOOG, 0, 180, 180}, // spasie - P1 B3

aan

{26, HOOG, 0, 180, 223}, // spasie - P1 B3 (+)

Die "223" is die ASCII -karakterkode vir die toetsbord "+".

Ek sal u toelaat om uit te vind hoe u die '-' (of wat u ook al verkies) aan die funksie 'volume af' as 'n oefening kan toewys (Wenk: ASCII-kode 222):)

Hou in gedagte dat u in MAME slegs die diensmodusvolume kan toewys, nie die algemene emulasievolume nie; dit beteken dat as die geëmuleerde bord nie sagtewarevolume -beheer moontlik maak nie, die volume nie geraak word nie.

Stap 4: Wat van insetvertraging?

Ek het 'n paar toetse gedoen om te sien hoeveel vertraging die kode kan veroorsaak; deur drie knoppies terselfdertyd te stuur, neem 'n volledige lus ongeveer 4 ms om uit te voer, tot dusver minder as die 33 ms wat 'n raam by 30 FPS duur.

Stap 5: Wat van Jamma Racing -kaste?

Wat van Jamma Racing -kaste?
Wat van Jamma Racing -kaste?

Potensiometer wiel

As u kabinet 'n wedrenkas is, is dit baie waarskynlik dat die wiel op 'n potensiometer gebaseer is (u kan 'n 5Kohm potensiometer aan die agterkant van die bedieningspaneel sien).

Eerstens, laai en installeer die Joystick -biblioteek (op die datum van vandag word slegs weergawe 1 van die biblioteek verenigbaar met arduino DUE, maar dit is steeds 'n baie goeie biblioteek).

Voeg dan die paar lyne wat volg by die skets in stap 4 om die wiel maklik te hanteer (waar u die lyne moet plaas as 'n oefening …)

#insluit

int deadZone = 0;

ongeldige opstelling () {

Joystick.begin ();}

leemte -lus () {

int readPot = analogRead (A3);

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

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

anders {Joystick.setXAxis (0);}

}

Soos u kan sien, kan u 'n deadzone stel indien nodig (in 'n goed werkende arcade -wiel is dit die beste om dit op nul te stel).

Die aansluiting van 'n potensiometer na Arduino DUE is eenvoudig: sypenne van die potensiometer gaan na +3.3V en GND, veerpen na 'n analoge poort van Arduino DUE (sien die prent vir verwysing). Ek het die analoog pen 3 (A3) hier gedefinieer as die ingang vir die wisser van die wielpotensiometer, maar u kan die analoog pen stel wat die beste by u behoeftes pas.

PS: weet u dat pedale in renkaste gereeld deur 'n potensiometer beheer word, as dat tegnies dieselfde wiel en pedale dieselfde toestel is met 'n ander vorm? Dit beteken dat die kode hier ook gebruik kan word om egte arkadepedale te beheer;)

Optiese wiel

As u wiel opties is, kan dit ook maklik weer hanteer word, met 'n klein verandering aan die beginskets.

'N Baie algemene pinout vir optiese Arcade -encoders (Taito -draaiers, Atari -wiele -encoders en so meer) is:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

Koppel 2. en 3. aan Arduino DUE 5V en GND, en 1. en 4. aan enige digitale pen waarvan u hou, let op dat 'n spanningsverdeler nodig is om die 5V -uitset van die optiese encoder te verlaag na die 3.3V arduino DUE kan hanteer. Moenie OptoA- en/of OptoB 5V -uitsette direk na u Arduino DUE -invoerpenne stuur nie, anders braai u die insette of selfs die hele bord. Jy is gewaarsku.

In die voorbeeldskets hier gebruik ek digitale pen 2 en digitale pen 3 as optiese uit A en optiese uit B.

#insluit

boolean optA_state = HOOG;

int xAxisMov = 2;

ongeldige opstelling () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Muis.begin ();

}

leemte -lus () {

if (optA_state == HIGH && digitalRead (2) == LOW) {

optA_state =! optA_state;

if (digitalRead (3) == HOOG) {Mouse.move (xAxisMov, 0, 0);} else {Mouse.move (-xAxisMov, 0, 0);}}} // loop end

Dit is 'n optiese kodering van 1X met 'n lae resolusie. Dit is meer as voldoende vir Arcade -toepassings, maar u kan die resolusie maklik verhoog deur 'n reël kode by te voeg.

PS: weet u dat optiese arcade wiele en arcade spinners tegnies dieselfde toestel met 'n ander vorm is? Weet u dat baanballe tegnies 'n 2 -as -draaier is? Dit beteken dat die kode hier gebruik kan word om egte arcade -draaiers te beheer en, met min, maklike wysigings ook trackballs;)

Stap 6: 'n Foto, of dit het nie gebeur nie

'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!
'N Foto, of dit het nie gebeur nie!

Hier is 'n paar foto's van die skild wat ek gemaak het. Dit is nie 'n hoë werk nie (wed, ek is nie 'n pro nie), maar dit is 100% in my jamma Arcade -kabinet!

Aanbeveel: