Sisukord:

Jammarduino DUE - isetehtud arvuti ja Jamma liides arkaadkappide jaoks: 6 sammu
Jammarduino DUE - isetehtud arvuti ja Jamma liides arkaadkappide jaoks: 6 sammu

Video: Jammarduino DUE - isetehtud arvuti ja Jamma liides arkaadkappide jaoks: 6 sammu

Video: Jammarduino DUE - isetehtud arvuti ja Jamma liides arkaadkappide jaoks: 6 sammu
Video: CS50 2014 - Week 7 2024, Juuli
Anonim
Jammarduino DUE - isetehtud arvuti ja Jamma liides arkaadkappide jaoks
Jammarduino DUE - isetehtud arvuti ja Jamma liides arkaadkappide jaoks

See juhend annab teile teada, kuidas luua Arduino DUE jaoks lihtne kilp, et ühendada oma arvutiga ehtne arkaadmasin, millel on madala eraldusvõimega kineskoop- ja jamma -pistik.

Kilbi peamised valamised on:

- videokaardilt tuleva videosignaali võimendamiseks (liiga madal pinge ehtsa Arcade CRT monitori jaoks)

- kaitsta oma madala eraldusvõimega kineskoopmonitori liiga kõrge sagedusega horisontaalsete sünkroonimissignaalide eest

- nuppude "tõlkimiseks" arkaadjuhtimispaneelil millekski, millega arvuti hakkama saab

Näitan teile, kuidas laiendada liidese kasutamist Arcade Racing rataste ja ketruste juhtimiseks.

Märkus: kilp EI SUNDI video sünkroonimissignaali madalatele sagedustele: teil on selleks vaja spetsiaalset tarkvara. Soovitan teil kasutada CRT -emudrivereid või Soft15KHz.

Samm: riistvara

Eeldan, et teil on jootmisjaam ja mõni tina käsitsi ning teate, kuidas neid kasutada. Kuna videovõimendi on 0,65 mm sammuga SMD, soovitan teil osta jootmisvoogu, mis aitab seda mikroobi jootma hakata. Kasutasin odavat "puhastamata" Rosing Mildly Activated (RMA) pliiatsit suurepäraste tulemustega.

Liides koosneb:

- 1x Arduino DUE mikrokontrolleri plaat

- 1x THS7374 videovõimendi

- 1x TSSOP14 kuni DIP14 adapter

- 1x helivõimendi

- 1x jamma sõrmelaud

- 1x 5x7 cm prototüüp, kahepoolne

- 1x 1N4148 diood

- 7x 1Kohm takistid

- 1x 820 oomi takisti

- 3x 220 oomi takisti

- 1x ribarida, vahe 2,54 mm

- 1x VGA -kaabel

- 1x helikaabel

2. samm: skeemid

Skeemid
Skeemid

Siin on kogu projekti värviline skeem. Mitte nii õigeusklik, kuid minu lootuses lihtsam järgida.

Juhtmed on nii lihtsad kui nad välja näevad:

- värvijooned tulevad arvuti VGA -pistikust videovõimendisse; 1Kohm takisti maandamiseks vähendab voolu videovõimendi sisendisse. Väljundi poolel alandab jadatakistus voolu arkaadreaktorile.

- sünkroonimisliin on kuidagi "keerulisem": eraldi sünkroonimine VGA -st muudetakse kõigepealt komposiitmaterjaliks, seejärel alandatakse seda pingejaguriga, et järgida Arduino DUE spetsifikatsioone (3,3 V loogika). Pingejagur arvutatakse 5 V sünkroniseerimissignaali alusel.

- videovõimendi (THS7374) toiteallikaks võib olla 3,3 V või 5 V; Kuna 5 V toiteallikas võimaldab laiemat sisendpingete/signaalide valikut ja THS7374 saab juhtida 3,3 V abil, isegi kui see on 5 V juures, siis läksin 5 V teed.

- video maandus, arduino DUE maandus, THS7374 maandus ja jamma pistiku maandus on lühises.

- Arduino DUE 5V ja Jamma 5V liinid EI TOHI olla lühikesed.

- ÄRGE mahlake helivõimendit USB -kaablist: voolupiirangute tõttu vajate selleks välist allikat (nt PC ATX PSU). Seda tehes kahjustate oma USB -porti või isegi arvutit.

VGA -pistik: ettevaatlik sõna

Mul on hiljuti olnud võimalus värskendada oma jammarduino DUE -ga kasutatavat arvutit. Isegi kui olin seda varem testinud kahe erineva arvutiga, kasutasid mõlemad sama perekonna ATI -kaarte (ATI 9250 ja 9550). Uus arvuti oli varustatud HD5750 -ga, millel oli üks DVI analoogväljund (ilma VGA -ta). See sundis mind kasutama (passiivset) DVI -VGA -adapterit. Noh, pärast mõningast rabelemist märkasin, et adapteriga ühendatud VGA -kaablil PEAB toimima ainult maandus, mis on ühendatud VGA -pistiku viienda kontaktiga, mitte nööpnõelad 6–10, nagu on kirjeldatud enamikus veebiskeemides. Pidage seda meeles, kui te ei näe videokaardilt sünkroonisignaali.

3. samm: visand/kood

Sketš/kood
Sketš/kood

Esmalt peate installima Arduino IDE; peate installima ka SAM Cortex M3 Core (vaikimisi pole). Lõpuks installige Arduino DUE draiverid. Enamiku ajakohast teavet leiate ametlikust juhendist "Alustamine Arduino Duega".

Visand, mille peate oma Arduino DUE -sse üles laadima, on siin lisatud. Pakkige lahti ja laadige "jammarduinoDUE.ino" teile Arduino IDE, seejärel laadige programmipordi kaudu üles arduino DUE -sse. Pärast visandi edukat üleslaadimist ühendage USB -kaabel programmeerimispordist lahti ja ühendage Arduino DUE „Native USB” pordi kaudu, vastasel juhul ei tööta koodi sisendosa.

Põhimõtteliselt mõõdab Arduino DUE sünkroonimissagedust ja keelab videovõimendi, kui sünkroonimine on madala eraldusvõimega kineskoopi jaoks liiga kõrge. Arduino DUE tegeleb ka juhtpaneelilt saabuvate sisenditega, saates vaikimisi MAME -klahvid teatud nupuvajutusel. Komplekti kuulub ka käiguvahetusfunktsioon (aktiveeritud, hoides all nuppu P1 START), nagu kaubanduslikud liidesed.

Tabelis vaikimisi klahvikaart. Saate muuta vaikevõtmekaarti või lisada nuppe oma äranägemise järgi lihtsalt visandile.

Näiteks kui soovite oma emulaatorile helitugevuse reguleerimise klahve määrata, peaksite need klahvid kõigepealt määratlema (ütleme näiteks klahvistiku "+" helitugevuse suurendamiseks ja klahvistiku "-" helitugevuse vähendamiseks); seejärel lisage nihutatud klahv nuppudele, millele soovite helitugevuse suurendamise või vähendamise määrata. Oletame, et tahan helitugevust suurendada, vajutades tõstuklahvi ja mängija 1 nuppu 3. Ma muudan rida

{26, KÕRGE, 0, 180, 180}, // tühik - P1 B3

et

{26, KÕRGE, 0, 180, 223}, // tühik - P1 B3 (+)

See "223" on klaviatuuri "+" ASCII märgikood.

Ma lasen teil välja mõelda, kuidas määrata harjutusena funktsioon "" "(või mis iganes soovite) helitugevuse vähendamise funktsioonile (vihje: ASCII kood 222):)

Pidage meeles, et MAME -s saate määrata ainult teenindusrežiimi helitugevuse, mitte üldise emuleerimise helitugevuse; see tähendab, et kui emuleeritud plaat ei võimalda tarkvara helitugevuse reguleerimist, ei mõjuta see helitugevust.

Samm 4: Kuidas on lood sisendviivitusega?

Tegin mõned testid, et näha, kui palju viivitust kood võib kehtestada; Noh, saates korraga 3 nuppu, kulub täielik tsükkel umbes 4 ms, seni vähem kui 33 ms kaadrit 30 FPS.

Samm 5: Aga Jamma Racing Cabins?

Aga Jamma võidusõidukapid?
Aga Jamma võidusõidukapid?

Potentsiomeetri ratas

Kui teie kapp on võidusõidukapp, on väga tõenäoline, et ratas on potentsiomeetril (näete 5Kohm potentsiomeetrit juhtpaneeli tagaküljel).

Kõigepealt laadige alla ja installige juhtkangi kogu (tänapäeval väidetakse, et ainult teegi 1. versioon ühildub arduino DUE -ga, kuid see on siiski väga hea raamatukogu).

Seejärel lisage ratta hõlpsaks käsitsemiseks mõned jooned, mis järgnevad 4. etapi visandile (kuhu read paigutada, jäetakse teile harjutuseks …)

#kaasake

int deadZone = 0;

tühine seadistus () {

Joystick.begin ();}

void loop () {

int readPot = analogRead (A3);

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

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

else {Joystick.setXAxis (0);}

}

Nagu näete, saate vajadusel määrata surnud tsooni (heas töökorras arkaadratta puhul on kõige parem see nulli seada).

Potentsiomeetri ühendamine Arduino DUE -ga on lihtne: potentsiomeetri külgmised tihvtid lähevad +3,3 V ja GND, klaasipuhasti tihvt arduino DUE analoogpordi külge (vt viiteid pildilt). Määrasin siin ratta potentsiomeetri klaasipuhasti sisendiks analoogpoldi 3 (A3), kuid saate määrata oma vajadustele kõige paremini vastava analoogtihvti.

PS: kas teate, et võidusõidukappide pedaale juhitakse sageli potentsiomeetriga, kui tehniliselt on rattad ja pedaalid sama erineva kujuga seade? See tähendab, et siin olevat koodi saab kasutada ka ehtsate arkaadipedaalide juhtimiseks;)

Optiline ratas

Kui teie ratas on optiline, saab seda ka hõlpsasti käsitseda, muutes esialgset visandit.

Väga levinud optiliste kaarkooderite (Taito spinnerid, Atari rataste kodeerijad jne) pistikupesa on järgmine:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

Ühendage 2. ja 3. Arduino DUE 5V ja GND -ga ning 1. ja 4. mis tahes teile meeldiva digitaalse tihvtiga, pöörates tähelepanu sellele, et optilise kodeerija 5V väljundi langetamiseks 3,3 V arduino DUE -le saab hakkama pingejaguriga. Ärge saatke OptoA ja/või OptoB 5V väljundeid otse oma arduino DUE sisendpistikutele, vastasel juhul praadite need sisendid või isegi kogu plaadi. Sind on hoiatatud.

Siinse visandi näites kasutan optilise väljundina A ja optilise väljundina B. digitaalset tihvti 2 ja digitaalset tihvti 3.

#kaasake

boolean optA_state = HIGH;

int xAxisMov = 2;

tühine seadistus () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Hiir.algus ();

}

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);}}} // silmuse lõpp

See on madala eraldusvõimega 1X Counting optiline kodeering. See on Arcade'i rakenduste jaoks enam kui piisav, kuid saate eraldusvõimet hõlpsalt tõsta, lisades mõne koodirida.

PS: kas teate, et optilised arcade rattad ja arcade spinnerid on tehniliselt üks ja sama kujuga seade? Kas teate, et juhtkuulid on tehniliselt kaheteljeline spinner? See tähendab, et siin olevat koodi saab kasutada ehtsate arkaadkeerutajate ja väheste lihtsate muudatustega juhtpallide juhtimiseks;)

6. samm: mõni pilt või seda ei juhtunud

Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!
Mingi pilt või seda ei juhtunud!

Siin on mõned pildid minu tehtud kilbist. See ei ole kõrgetasemeline töö (panustan, ma ei ole proff), kuid see on 100% rokkimine minu jamma Arcade Cabinetis!

Soovitan: