Përmbajtje:

Jammarduino DUE - DIY PC në Jamma Interface për Arcade Cabinets: 6 Hapa
Jammarduino DUE - DIY PC në Jamma Interface për Arcade Cabinets: 6 Hapa

Video: Jammarduino DUE - DIY PC në Jamma Interface për Arcade Cabinets: 6 Hapa

Video: Jammarduino DUE - DIY PC në Jamma Interface për Arcade Cabinets: 6 Hapa
Video: IIT Bombay Lecture Hall | IIT Bombay Motivation | #shorts #ytshorts #iit 2024, Nëntor
Anonim
Jammarduino DUE - DIY PC në Jamma Interface për Arcade Cabinets
Jammarduino DUE - DIY PC në Jamma Interface për Arcade Cabinets

Ky udhëzues do t'ju tregojë se si të krijoni një mburojë të thjeshtë për Arduino për shkak të ndërfaqes së një makine arcade origjinale me CRT me rezolucion të ulët dhe lidhës jamma në kompjuterin tuaj.

Prurjet kryesore të mburojës janë:

- për të përforcuar sinjalin video që del nga karta video (tension shumë i ulët për një monitor të vërtetë Arcade CRT)

- për të mbrojtur monitorin tuaj CRT me rezolucion të ulët nga sinjalet e sinkronizimit horizontal me frekuencë shumë të lartë

- për të "përkthyer" butonat shtyp në panelin e kontrollit të arkadës në diçka që PC mund të trajtojë

Unë do t'ju tregoj se si të zgjeroni përdorimin e ndërfaqes për të kontrolluar rrotat dhe rrotulluesit e Arcade Racing.

Shënim: mburoja NUK e detyron sinjalin e sinkronizimit të videos në frekuenca të ulëta: ju keni nevojë për ndonjë softuer specifik për këtë. Unë ju sugjeroj të përdorni emudrivers CRT ose Soft15KHz.

Hapi 1: Pajisje kompjuterike

Unë do të supozoj se keni një stacion saldimi dhe disa kallaj me dorë dhe ju dini si t'i përdorni ato. Duke qenë se përforcuesi i videos është një SMD me lartësi 0.65 mm, unë ju sugjeroj të blini një fluks saldimi për të ndihmuar lidhjen e atij mikrobi. Kam përdorur një stilolaps të lirë "jo të pastër" Rosing Mildly Activated (RMA) me rezultate të shkëlqyera.

Ndërfaqja përbëhet nga:

- 1 herë bordin e mikrokontrolluesit Arduino DUE

- 1x amplifikues video THS7374

- 1x përshtatës TSSOP14 në DIP14

- 1x amplifikues audio

- 1x bllok gishtash jamma

- 1x 5x7 cm bord prototip, ana e dyfishtë

- 1 diodë 1N4148

- Rezistenca 7x 1Kohm

- Rezistencë 1x 820 ohm

- Rezistencë 3x 220 ohm

- 1x vijë rrip, 2.54 mm distancë

- 1x kabllo VGA

- 1x kabllo audio

Hapi 2: Skemat

Skematike
Skematike

Këtu është një skemë me ngjyra e projektit të plotë. Jo aq ortodokse, por më e lehtë për tu ndjekur, me shpresën time.

Fijet janë aq të lehta sa duken:

- linjat e ngjyrave vijnë nga lidhësi PC VGA në përforcuesin e videos; një rezistencë 1Kohm në tokë e ul rrymën në hyrjen e përforcuesit të videos. Në anën e daljes, një rezistencë serike ul rrymën në ART ARCADE.

- linja e sinkronizimit është disi më "komplekse": sinkronizimi i veçantë nga VGA bëhet i përbërë, së pari, pastaj ulet nga një ndarës i tensionit për të respektuar specifikimet Arduino DUE (logjika 3.3V). Ndarësi i tensionit llogaritet duke supozuar një sinjal sinkronizimi 5V.

- përforcuesi i videos (THS7374) mund të fuqizohet në 3.3V ose 5V; Duke qenë se fuqia në 5V lejon një gamë më të gjerë të tensioneve/sinjaleve të hyrjes dhe duke qenë se THS7374 mund të kontrollohet me 3.3V edhe nëse lëngëzohet në 5V, unë shkova në rrugën 5V.

- toka video, toka arduino DUE, toka THS7374 dhe toka lidhëse jamma janë të qarkut të shkurtër.

- Linjat Arduino DUE 5V dhe Jamma 5V NUK DUHET T BE QEVERITEN SHKURTR.

- MOS e nxirrni amplifikatorin audio nga kablloja USB: keni nevojë për një burim të jashtëm për atë për shkak të kufijve aktualë (dmth. PCU PCX ATX). Duke vepruar kështu do të dëmtoni portën tuaj USB ose edhe kompjuterin tuaj.

Lidhësi VGA: një fjalë paralajmërimi

Kohët e fundit kam pasur mundësinë të azhurnoj kompjuterin e përdorur me jammarduino time DUE. Edhe nëse e kisha testuar me dy PC të ndryshëm më parë, ata të dy përdornin kartat ATI të së njëjtës familje (ATI 9250 dhe 9550). Kompjuteri i ri ishte i pajisur me një HD5750 me një dalje të vetme analoge DVI (pa VGA). Kjo më detyroi të përdor një përshtatës (pasiv) DVI në VGA. Epo, pas disa vështirësive vura re se kablloja VGA e lidhur me përshtatësin DUHET të ketë vetëm tokën e lidhur me pin 5 të lidhësit VGA për të punuar, jo kunjat nga 6 në 10 siç raportohet në shumicën e skemave në internet. Mbani këtë në mend në rast se nuk mund të shihni ndonjë sinjal sinkronizimi nga karta juaj video.

Hapi 3: Skica/Kodi

Skica/Kodi
Skica/Kodi

Së pari duhet të instaloni Arduino IDE; ju gjithashtu duhet të instaloni SAM Cortex M3 Core (jo i pranishëm si parazgjedhje). E fundit por jo më pak e rëndësishme, instaloni drejtuesit Arduino DUE. Referojuni udhëzimit zyrtar "Fillimi me Arduino Due" për informacionin më të azhurnuar.

Skica që duhet të ngarkoni në Arduino DUE është bashkangjitur këtu. Zbërtheni dhe ngarkoni "jammarduinoDUE.ino" tek ju Arduino IDE, pastaj ngarkojeni në arduino DUE nëpërmjet portës "programuese". Pasi skica të jetë ngarkuar me sukses, shkëputeni kabllon USB nga porta e "programimit" dhe lidhni Arduino DUE nëpërmjet portës "Native USB", përndryshe pjesa hyrëse e kodit nuk do të funksionojë.

Në thelb, Arduino DUE mat frekuencën e sinkronizimit dhe çaktivizon përforcuesin e videos kur sinkronizimi është shumë i lartë për një CRT me rezolucion të ulët. Arduino DUE trajton hyrjet që vijnë nga paneli i kontrollit gjithashtu, duke dërguar çelësat e paracaktuar të MAME në shtypjen e butonave të veçantë. Një funksion ndërrimi (i aktivizuar duke mbajtur të shtypur butonin P1 START) është përfshirë gjithashtu, si ndërfaqet komerciale.

Në tabelë harta e paracaktuar e tastit. Ju mund të ndryshoni hartën e paracaktuar të çelësit ose të shtoni butona sipas dëshirës tuaj drejtpërdrejt në skicë.

Për shembull, nëse doni të caktoni çelësat e kontrollit të volumit për emulatorin tuaj, duhet t'i përcaktoni ato çelësa (le të themi tastiera "+" për rritjen e volumit dhe tastiera "-" për volumin e ulët) në menunë tuaj të tastit emu, së pari; pastaj shtoni çelësin e zhvendosur në butonat ku dëshironi të caktohet rritja ose ulja e volumit. Le të themi se dua të rris volumin duke shtypur butonin shift dhe butonin Player 1 3. Unë do të modifikoj linjën

{26, LART, 0, 180, 180}, // hapësirë - P1 B3

te

{26, LART HIGH, 0, 180, 223}, // hapësirë - P1 B3 (+)

Ky "223" është kodi i karakterit ASCII për tastierën "+".

Unë do t'ju lejoj të kuptoni se si ta caktoni funksionin "-" (ose çfarëdo që preferoni) në funksionin "zvogëlimi i vëllimit" si një ushtrim (Këshillë: Kodi ASCII 222):)

Ju lutemi mbani në mend se në MAME ju mund të caktoni vetëm volumin e mënyrës së shërbimit, jo volumin e përgjithshëm të emulimit; kjo do të thotë që nëse bordi i emuluar nuk lejon kontrollin e volumit të softuerit, vëllimi nuk do të preket.

Hapi 4: Po në lidhje me Input Lag?

Bëra disa teste për të parë se sa vonesë mund të fuste kodi; mirë, duke dërguar 3 butona shtypni në të njëjtën kohë një lak i plotë kërkon rreth 4 ms për t'u ekzekutuar, deri më tani më pak se 33 ms një kuadër zgjat në 30 FPS.

Hapi 5: Po në lidhje me kabinetet e Jamma Racing?

Po në lidhje me kabinetet Jamma Racing?
Po në lidhje me kabinetet Jamma Racing?

Rrota Potenciometër

Nëse kabineti juaj është një dollap garash, ka shumë të ngjarë që rrota të bazohet në potenciometër (mund të shihni një potenciometër 5Kohm në anën e pasme të panelit të kontrollit).

Gjëja e parë, së pari, shkarkoni dhe instaloni bibliotekën Joystick (deri më sot thuhet se vetëm versioni 1 i bibliotekës është i pajtueshëm me arduino DUE, por është akoma një bibliotekë shumë e mirë).

Pastaj, shtoni disa rreshta që vijojnë në skicën në Hapin 4 për ta trajtuar me lehtësi timonin (ku të vendosni linjat që ju janë lënë juve si një ushtrim …)

#përfshi

int deadZone = 0;

void setup () {

Joystick.begin ();}

lak void () {

int readPot = analogRead (A3);

int wheelPos = hartë (lexo Pot, 0, 1023, -127, 127);

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

tjetër {Joystick.setXAxis (0);}

}

Siç mund ta shihni, mund të vendosni një zonë vdekjeprurëse nëse është e nevojshme (në një rrotë të mirë të punës, është më mirë ta vendosni atë në zero).

Lidhja e një potenciometri në Arduino DUE është e drejtpërdrejtë: kunjat anësore të potenciometrit shkojnë në +3.3V dhe GND, kunja e fshirësit në një portë analoge arduino (shih foton për referencë). Këtu përkufizova pinin analog 3 (A3) si hyrje për fshirësin e potenciometrit të rrotave, por ju mund të vendosni kunjën analoge që i përshtatet më së miri nevojave tuaja.

PS: a e dini se pedalet në dollapët e garave shpesh kontrollohen nga një potenciometër, sesa teknikisht rrotat dhe pedalet janë e njëjta pajisje me një formë të ndryshme? Kjo do të thotë që kodi këtu mund të përdoret për të kontrolluar edhe pedalet e vërteta të arkadës;)

Rrota Optike

Nëse rrota juaj është optike, mund të trajtohet lehtësisht, përsëri, me një modifikim të vogël në skicën fillestare.

Një pinout shumë i zakonshëm për kodifikuesit optikë Arcade (rrotullues Taito, kodues të rrotave Atari dhe kështu me radhë) është:

1. OptoA JASHT

2. +5V

3. GND

4. OptoB OUT

Lidhni 2. dhe 3. me Arduino DUE 5V dhe GND, dhe 1. dhe 4. me çdo kunj dixhital që ju pëlqen duke i kushtuar vëmendje që një ndarës tensioni është i nevojshëm për të ulur daljen 5V nga koduesi optik në arduino 3.3V DUE që mund të trajtojë Me Mos i dërgoni daljet OptoA dhe/ose OptoB 5V direkt në kunjat tuaja të hyrjes në arduino DUE ose ka të ngjarë t'i skuqni ato hyrje ose edhe të gjithë tabelën. Ju jeni paralajmëruar.

Në skicën shembull këtu unë do të përdor pinin dixhital 2 dhe pinin dixhital 3 si optik jashtë A dhe atë optik B.

#përfshi

boAl optA_state = LART;

int xAxisMov = 2;

void setup () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Mouse.filloj ();

}

lak void () {

nëse (optA_state == HIGH && digitalRead (2) == LOW) {

optA_state =! optA_state;

if (digitalRead (3) == HIGH) {Mouse.move (xAxisMov, 0, 0);} tjetër {Mouse.move (-xAxisMov, 0, 0);}}} // fundi i lakut

Ky është një kodim optik me një rezolucion të ulët 1X Duke numëruar. Moreshtë më se e mjaftueshme për aplikacionet Arcade, por ju mund ta rrisni zgjidhjen me lehtësi duke shtuar një linjë kodi.

PS: a e dini se rrotat optike të arkadës dhe rrotulluesit e arkadës janë teknikisht e njëjta pajisje me një formë të ndryshme? A e dini se topat e pistës janë teknikisht një rrotullues me 2 boshte? Kjo do të thotë që kodi këtu mund të përdoret për të kontrolluar rrotulluesit e vërtetë të arkadës dhe, me pak, modifikime të lehta edhe topa;)

Hapi 6: Disa fotografi, ose nuk ndodhi

Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!
Disa fotografi, ose nuk ndodhi!

Këtu janë disa fotografi të mburojës që kam bërë. Nuk është një punë e nivelit të lartë (bast, nuk jam profesionist), por është 100% e lëkundur në kabinetin tim jamma Arcade!

Recommended: