Sisällysluettelo:

Jammarduino DUE - DIY PC -Jamma -liitäntä arcadekaappeihin: 6 vaihetta
Jammarduino DUE - DIY PC -Jamma -liitäntä arcadekaappeihin: 6 vaihetta

Video: Jammarduino DUE - DIY PC -Jamma -liitäntä arcadekaappeihin: 6 vaihetta

Video: Jammarduino DUE - DIY PC -Jamma -liitäntä arcadekaappeihin: 6 vaihetta
Video: Amazing arduino project 2024, Marraskuu
Anonim
Jammarduino DUE - DIY PC -Jamma -liitäntä arcadekaappeihin
Jammarduino DUE - DIY PC -Jamma -liitäntä arcadekaappeihin

Tässä ohjeessa kerrotaan, miten voit luoda yksinkertaisen suojan Arduino DUE: lle liittääksesi PC: si aito arcade -kone, jossa on matala resoluutio CRT ja jamma -liitin.

Kilven tärkeimmät vuodot ovat:

- vahvistamaan näytönohjaimesta tulevaa videosignaalia (liian matala jännite aitoon Arcade CRT -näyttöön)

- Suojaa matalatarkkuuksinen CRT -näyttösi liian korkeataajuuksisilta vaakasynkronointisignaaleilta

- "kääntää" -painikkeita arcade -ohjauspaneelista johonkin, mitä tietokone voi käsitellä

Näytän sinulle, miten käyttöliittymän käyttöä voidaan laajentaa Arcade Racing -pyörien ja spinnerien ohjaamiseen.

Huomaa: suoja ei pakota videosynkronointisignaalia matalille taajuuksille: tarvitset jotain erityistä ohjelmistoa. Suosittelen käyttämään CRT -emudrivereitä tai Soft15KHz: ää.

Vaihe 1: Laitteisto

Oletan, että sinulla on juotosasema ja tina käsin ja osaat käyttää niitä. Koska videovahvistin on SMD, jossa on 0,65 mm: n nousu, suosittelen, että ostat juotosvirtaa, joka auttaa juottamaan kyseisen mikrobin. Käytin halpaa "ei-puhdasta" Rosing Mildly Activated (RMA) -kynää erinomaisilla tuloksilla.

Käyttöliittymä koostuu seuraavista:

- 1x Arduino DUE -kortti

- 1x THS7374 -videovahvistin

- 1x TSSOP14 - DIP14 -sovitin

- 1x äänivahvistin

- 1x jamma -otelauta

- 1x 5x7 cm prototyyppilevy, kaksipuolinen

- 1x 1N4148 diodi

- 7x 1Kohm vastukset

- 1x 820 ohmin vastus

- 3x 220 ohmin vastus

- 1x nauhalinja, 2,54 mm: n etäisyys

- 1x VGA -kaapeli

- 1x audiokaapeli

Vaihe 2: Kaaviot

Kaaviot
Kaaviot

Tässä on värillinen kaava kokonaisprojektista. Ei niin ortodoksinen, mutta helpommin seurattava, toivon.

Johdotus on yhtä helppoa kuin miltä se näyttää:

- väriviivat tulevat PC VGA -liitännästä videovahvistimeen; 1Kohmin maadoitusvastus alentaa virtaa videovahvistimen tuloon. Lähtöpuolella sarjavastus alentaa virran arcade CRT: hen.

- Synkronointilinja on jotenkin "monimutkaisempi": erillinen synkronointi VGA: sta tehdään ensin komposiitiksi, sitten lasketaan jännitteenjakajalla Arduino DUE -teknologian (3,3 V logiikka) mukaisesti. Jännitteenjakaja lasketaan olettamalla 5 V: n tahdistussignaali.

- videovahvistin (THS7374) voi olla 3,3 V: n tai 5 V: n jännitteellä; Koska 5 V: n jännite mahdollistaa laajemman syöttöjännitteen/signaalivalikoiman ja että THS7374: tä voidaan ohjata 3,3 V: lla, vaikka mehu olisi 5 V, menin 5 V: n suuntaan.

- videomaa, arduino DUE -maa, THS7374 -maa ja jamma -liittimen maa on oikosulussa.

- Arduino DUE 5V- ja Jamma 5V -johtoja EI SAA LYHYT YMPÄRISTÖ.

- ÄLÄ mehuta äänivahvistinta USB -kaapelista: tarvitset siihen ulkoisen lähteen virtarajojen vuoksi (esim. PC ATX PSU). Tämä vahingoittaa USB -porttia tai jopa tietokonetta.

VGA -liitin: varoituksen sana

Minulla on äskettäin ollut mahdollisuus päivittää jammarduino DUE: n kanssa käytetty tietokone. Vaikka olisin testannut sitä kahdella eri tietokoneella ennen, he molemmat käyttivät saman perheen ATI -kortteja (ATI 9250 ja 9550). Uudessa tietokoneessa oli HD5750, jossa oli yksi analoginen DVI -lähtö (ei VGA). Tämä pakotti minut käyttämään (passiivista) DVI -VGA -sovitinta. No, muutaman kamppailun jälkeen huomasin, että sovittimeen liitetyssä VGA -kaapelissa TÄYTYY olla vain maa, joka on kytketty VGA -liittimen nastaan 5, jotta se toimisi, ei nastat 6-10, kuten on raportoitu useimmissa verkon kaavioissa. Muista tämä, jos et näe mitään synkronointisignaalia videokortistasi.

Vaihe 3: Luonnos/koodi

Luonnos/koodi
Luonnos/koodi

Sinun on ensin asennettava Arduino IDE; sinun on asennettava myös SAM Cortex M3 Core (ei oletuksena). Viimeisenä mutta ei vähäisimpänä, asenna Arduino DUE -ajurit. Katso uusimmat tiedot virallisesta "Arduino Due -palvelun käytön aloittaminen" -oppaasta.

Luonnos, joka sinun on ladattava Arduino DUE -laitteeseesi, on tässä liitteenä. Pura ja lataa "jammarduinoDUE.ino" sinulle Arduino IDE, ja lataa sitten arduino DUE -ohjelmointiportin kautta. Kun luonnos on ladattu, irrota USB -kaapeli "ohjelmointi" -portista ja liitä Arduino DUE "Native USB" -portin kautta, muuten koodin syöttöosa ei toimi.

Pohjimmiltaan Arduino DUE mittaa synkronointitaajuuden ja poistaa videovahvistimen käytöstä, kun synkronointi on liian korkea matalan resoluution CRT: lle. Arduino DUE käsittelee myös ohjauspaneelista tulevat tulot lähettämällä oletus MAME -näppäimet tietyllä painalluksella. Siirtotoiminto (aktivoituu pitämällä P1 START -painiketta painettuna) on myös mukana, kuten kaupalliset rajapinnat.

Taulukossa oletusnäppäimistö. Voit helposti muuttaa oletusavainkarttaa tai lisätä painikkeita halutessasi suoraan luonnokseen.

Jos haluat esimerkiksi määrittää äänenvoimakkuuden säätönäppäimet emulaattorillesi, määritä nämä näppäimet (sano näppäimistö "+" äänenvoimakkuuden lisäämiseksi ja näppäimistö "-" äänenvoimakkuuden vähentämiseksi) ensin emu-näppäinten valikossa; lisää sitten siirtonäppäin painikkeisiin, joille haluat määrittää äänenvoimakkuuden lisäyksen tai vähentämisen. Sanotaan, että haluan lisätä äänenvoimakkuutta painamalla Shift -näppäintä ja Player 1 -painiketta 3. Muutan linjaa

{26, KORKEA, 0, 180, 180}, // välilyönti - P1 B3

kohteeseen

{26, KORKEA, 0, 180, 223}, // välilyönti - P1 B3 (+)

Tämä "223" on näppäimistön "+" ASCII -merkkikoodi.

Annan sinun selvittää, miten voit liittää "-" (tai mitä haluat) "äänenvoimakkuuden vähennys" -toimintoon harjoituksena (Vihje: ASCII-koodi 222):)

Muista, että MAME -ohjelmassa voit määrittää vain palvelutilan äänenvoimakkuuden, ei yleistä emulointitilavuutta; tämä tarkoittaa, että jos emuloitu kortti ei salli ohjelmiston äänenvoimakkuuden säätöä, äänenvoimakkuus ei muutu.

Vaihe 4: Entä syöttöviive?

Tein joitain testejä nähdäkseni kuinka paljon viivettä koodi voisi tuoda; No, lähettämällä 3 painiketta samanaikaisesti, koko silmukan suorittaminen kestää noin 4 ms, toistaiseksi vähemmän kuin 33 ms kehys kestää 30 FPS.

Vaihe 5: Entä Jamma Racing Cabinets?

Entä Jamma Racing Cabinit?
Entä Jamma Racing Cabinit?

Potentiometrin pyörä

Jos kaappisi on kilpakaappi, on todennäköistä, että pyörä on potentiometripohjainen (näet 5Kohm -potentiometrin ohjauspaneelin takana).

Lataa ensin ja asenna Joystick -kirjasto (nykyään vain kirjaston version 1 sanotaan olevan yhteensopiva arduino DUE: n kanssa, mutta se on silti erittäin hyvä kirjasto).

Lisää sitten muutama seuraava rivi luonnokseen vaiheessa 4, jotta voit käsitellä pyörää helposti (mihin rivit sijoitetaan, jätetään sinulle harjoitukseksi …)

#sisältää

int deadZone = 0;

void setup () {

Joystick.begin ();}

void loop () {

int readPot = analoginenLue (A3);

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

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

else {Joystick.setXAxis (0);}

}

Kuten näet, voit tarvittaessa asettaa kuolleen vyöhykkeen (hyvässä toimivassa arcade -pyörässä on parasta asettaa se nollaan).

Potentiometrin kytkeminen Arduino DUE -laitteeseen on yksinkertaista: potentiometrin sivunastat menevät +3,3 V: n ja GND: n, pyyhkimen tappi arduino DUE -analogiporttiin (katso kuva viitteestä). Määritin tässä analogisen nastan 3 (A3) pyörän potentiometrin pyyhkimen tuloksi, mutta voit asettaa tarpeisiisi parhaiten sopivan analogisen tapin.

PS: tiedätkö, että kilpakaappien polkimia ohjataan usein potentiometrillä, kuin teknisesti pyörät ja polkimet ovat sama laite, jolla on eri muoto? Tämä tarkoittaa, että tässä olevaa koodia voidaan käyttää myös aitojen arcade -pedaalien ohjaamiseen;)

Optinen pyörä

Jos pyöräsi on optinen, sitä voidaan myös käsitellä helposti uudelleen muuttamalla aloitusluonnosta.

Hyvin yleinen pinout optisille Arcade -enkoodereille (Taito -spinnerit, Atari -pyörien enkooderit ja niin edelleen) on:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

Liitä 2. ja 3. Arduino DUE 5V ja GND -liitäntään ja 1. ja 4. mihin tahansa haluamaasi digitaaliseen nastaan kiinnittäen huomiota siihen, että jännitteenjakaja on tarpeen optisen kooderin 5 V: n ulostulon laskemiseksi 3,3 V: n arduino DUE -laitteeseen. Älä lähetä OptoA- ja/tai OptoB 5V -lähtöjä suoraan arduino DUE -tulonappeihisi, muuten paistat nämä tulot tai jopa koko levyn. Sinua on varoitettu.

Tässä esimerkkiluonnoksessa käytän digitaalista nasta 2 ja digitaalista nasta 3 optisena ulostulona A ja optisena ulostulona B.

#sisältää

boolen optA_state = HIGH;

int xAxisMov = 2;

void setup () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Hiiri.begin ();

}

void loop () {

jos (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);}}} // silmukan loppu

Tämä on matalan resoluution 1X Counting optinen koodaus. Se on enemmän kuin riittävä Arcade -sovelluksille, mutta voit lisätä resoluutiota helposti lisäämällä jonkin koodirivin.

PS: tiedätkö, että optiset arcade -pyörät ja arcade -spinnerit ovat teknisesti sama laite, jolla on eri muoto? Tiedätkö, että ohjauspallot ovat teknisesti 2 -akselinen kiekko? Tämä tarkoittaa sitä, että tässä olevaa koodia voitaisiin käyttää aitojen arcade -kiekkojen ohjaamiseen ja muutamalla helpolla muutoksella myös pallopalloilla;)

Vaihe 6: Jotkut kuvat tai se ei tapahtunut

Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!
Joku kuva, tai se ei tapahtunut!

Tässä muutama kuva tekemästäni kilvestä. Se ei ole korkean tason työtä (lyön vetoa, en ole ammattilainen), mutta se on 100% rokkaava Jamma Arcade Cabinetissa!

Suositeltava: