Kazalo:

Modularni arkadni stroj: 12 korakov
Modularni arkadni stroj: 12 korakov

Video: Modularni arkadni stroj: 12 korakov

Video: Modularni arkadni stroj: 12 korakov
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Julij
Anonim
Modularni arkadni stroj
Modularni arkadni stroj

Z dvema fantoma sva želela zgraditi arkadni stroj, vendar se nisva mogla odločiti, katero vrsto zgraditi med polno stoječo omarico, stolpcem ali konzolo v stilu palice za boj proti televizorju. Sčasoma se nam je zdelo, da lahko vse tri sestavimo kot modularno rešitev z moduli, ki jih lahko uporabimo posamično ali kombiniramo po želji.

Zaradi preproste zasnove in izbire sestavnih delov je to tudi precej poceni izdelava v primerjavi z mnogimi projekti domačih arkadnih strojev, materialov pa bi morali doseči za manj kot 200 €/$. Večino lesenih materialov in elektronike sem že imel naokoli, tako da sem doslej porabil manj kot 100 €.

1. korak: Oblikovanje

Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje

Osnovni koncept zasnove je arkadni sistem za dva igralca, sestavljen iz niza neodvisnih modulov, ki imajo vsak svojo individualno funkcijo in se med seboj dopolnjujejo.

  • Nadzorni modul vsebuje vse krmilne elemente in krmilno elektroniko, vključno s krmilniki USB. Ta modul se lahko uporablja kot krmilnik v stilu borbene palice, priključen na konzolo ali Raspberry PI.
  • Zaslonski modul vsebuje zaslon in Raspberry PI (ali vašo izbiro SBC) in se lahko uporablja samostojno kot računalnik "vse v enem" ali pa je povezan s krmilnim modulom, da tvori arkadno enoto bartop.
  • Modul stojala deluje kot enota za shranjevanje v samostojnem načinu in v kombinaciji s ploščo tvori popoln stojni arkadni stroj.

Obliko smo poskušali ohraniti čim bolj preprosto in funkcionalno, pri čemer smo upoštevali nekaj oblikovalskih namigov iz vintage namiznih iger 70 -ih in 80 -ih ter se izognili nefunkcionalnim elementom, kot sta lučka za osvetlitev in T -oblikovanje, ki jih najdemo v številnih omarah. Seveda lahko obliko spremenite tako, da po želji dodate te elemente.

Odločil sem se za precej klasično postavitev gumbov, ki se mi je zdelo, da se je spomnim iz arkad moje mladosti s skupino gumbov "naravnost šest" poleg vsake igralne palice (StreetFighter2 FTW). Na sprednjo ploščo sem postavil gumbe Start in Select, da poskrbim za emulacijo konzole, pa tudi za vnos kovancev in izbiro igralca. Prav tako sem na vsaki strani postavil gumb za fliper. Seveda lahko prosto obliko spremenite po svojem okusu in želenih načinih vnosa, npr. kroglice za sledenje. uteženi predilniki itd.

Naredil sem začetno grobo skico enote vrha na papirju in nato v SketchUpu ponovno ustvaril ustrezne modele v lestvici - oglejte si priložene datoteke za vsakega od modulov in kombinacij.

Na podlagi dimenzij sem zasnoval 19 -palčni monitor s širokim zaslonom, ki sem ga kupil iz druge roke za 10 €. To je povzročilo skupno širino omare 500 mm, kar je pustilo približno 30 mm prostora v primeru, da moram zamenjati monitor.

Preverite datoteke SketchUp za natančne meritve vseh dimenzij. Pri rezanju določene plošče ali luknje sem uporabil orodje za merjenje traku v programu SketchUp, da izmerim dimenzijo modela, preden označim reze na gradbenem materialu.

2. korak: Orodja in materiali za lesarstvo

OPOZORILO: PRI PREVIDNOSTI IN PRIMERNI VARNOSTNI OPREMI PRI DELOVANJU MOČNIH ORODIJ

Orodja

  • Izvijač in vijaki
  • Namizna ali krožna žaga
  • Sestavljanka
  • Vrtalni in različni nastavki, vključno z žago za luknje 28 mm za gumbe
  • Brusni papir
  • Usmerjevalnik in zaokroževalni kot

Materiali

  • 19 mm (3/4 ") MDF pločevina
  • 6 mm (3/4 ") MDF pločevina
  • Kotni nosilci (uporabil sem nekaj zelo priročnih plastičnih - glej fotografije konstrukcije)
  • Polnilo za les
  • Barvanje (za podrobnosti glejte korake "Dokončaj" pozneje)

3. korak: Konstrukcija nadzornega modula

Konstrukcija krmilnega modula
Konstrukcija krmilnega modula
Konstrukcija krmilnega modula
Konstrukcija krmilnega modula
Konstrukcija krmilnega modula
Konstrukcija krmilnega modula
Konstrukcija krmilnega modula
Konstrukcija krmilnega modula

Nadzorni modul sem začel tako, da sem izrezal stranice iz 19 mm MDF na podlagi dimenzij iz modela SketchUp.

Nato sem odrezal sprednjo in zadnjo ploščo. Kose na teh ploščah sem označil tako, da sem jih postavil tesno ob straneh in označil kot s svinčnikom, nato pa oznake na obeh straneh združil z ravnim robom. Nato sem ga razrezal na pogled v namizni žagi in končal z brusnim papirjem. Prepričan sem, da obstaja boljši način za to z več orodji in/ali boljšimi veščinami, vendar se je za moje potrebe dobro izšlo in ni trajalo dolgo.

Nato sem izrezal sprednje in stranske luknje za gumbe ter vse plošče povezal s kotnimi nosilci in vijaki. Sprva sem nameraval uporabiti lepilo, toda moji testi z lepljenjem na rob MDF so pokazali, da to ne bo dovolj močno. Tudi jaz sem že imel kup nosilcev, ki sem jih recikliral iz starega projekta;).

Na tej stopnji sem z usmerjevalnikom z vogalom za zaokroževanje zaokrožil tudi zgornje sprednje robove. To daje modulu lepši videz in udobnejši občutek ter se razteza po ostrih robovih, kjer vaše roke počivajo poleg kontrolnih elementov.

Nato sem izrezal zgornji in spodnji del 6 mm MDF. Zgornjo ploščo sem poševil tako kot sprednjo in zadnjo ploščo, da zagotovim tesno prileganje in brezhibno končno obdelavo. Spodnje plošče nisem poševil, ker je ne nameravam napolniti in pobarvati. Namesto tega ga bom uporabil kot dostopno ploščo za vzdrževanje. V vogalnih nosilcih sem izvrtal in izvrtal luknje za vijake ter izvrtal ustrezne luknje.

Nato sem razstavil zadnjo ploščo in izrezal veliko luknjo za redni dostop do kablov USB in Raspberry PI.

Na koncu sem izrezal gumbe na zgornji plošči in igralno palico ter jih znova sestavil. Na tej stopnji nisem pritrdil zgornje plošče, ker sem jo med postopkom ožičenja želel ohraniti.

4. korak: Orodja in materiali za elektroniko

Opomba: Ta seznam je potreben le, če želite biti popolnoma nergani glede elektronike. Vse te stvari lahko in verjetno bi morali dobiti kot del kompleta plug and play (kot so ti) in se izogniti vsem spajkanjem in ožičenju po meri. Ko sem to enkrat naredil na "težji način", bom vsekakor šel po poti kompleta, če bom kdaj naredil še kakšno omarico.

Orodja

  • Multimeter/povezovalni tester
  • Spajkalnik
  • Rezalnik žice
  • Orodje za stiskanje (pravkar sem uporabil rezalnik žice)

Materiali

  • Arduino Leonardo/Pro Micro s profilom krmilne palice USB HID (uporabljal sem poceni klonove)
  • USB zvezdišče
  • Arkadna krmilna palica in gumbi.
  • Priključke stisnite, da se ujemajo z izbrano krmilno palčko in gumbi
  • 2x mini ploščice
  • Priključne žice (večinoma sem uporabljal mostične žice Dupont)
  • Spajkalnik za elektroniko (še vedno je bil moj prvotni kolut iz kolofonije s fakultete)
  • Termoskrčljive cevi

5. korak: Ožičenje krmilnega modula

Ožičenje krmilnega modula
Ožičenje krmilnega modula
Ožičenje krmilnega modula
Ožičenje krmilnega modula
Ožičenje krmilnega modula
Ožičenje krmilnega modula

Še enkrat priporočam, da namesto pristopa, ki je tukaj dokumentiran, razmislite o kompletu plug and play. Ta pristop upoštevajte le, če:

A. Želite popoln nadzor nad kodo za upravljanje gumbov na nizki ravni

B. Res uživajte v spajkanju in ožičenju po meri (kdo ne)

C. Že imate orodja in dele in/ali želite prihraniti nekaj dolarjev

D. Želite izvedeti več o teh stvareh ali samo vaditi

Moje osebne motivacije so bile mešanica zgoraj navedenega. V redu, tako sem izvedel ožičenje:

Najprej sem naredil adapterske kable, ki povezujejo stisnjene konektorje na gumbih z žicami priključkov Dupont. Naredil sem enega od teh za mikro stikalo v vsakem od gumbov in štiri v vsakem od igralnih palic. Pokličite Larryja proti zakonu, da poišče proizvodno linijo za te izdelke.

Nato sem s temi kabli po meri povezal gumbe in igralne palice za vnos zatičev na vsakem mikrokrmilniku prek plošč.

Opomba: V tej zasnovi je ločen mikrokrmilnik in s tem kabel USB za vsakega igralca. Mikro stikala krmilne palice in gumbov ustrezno razdelite med njimi in oba gumba za fliper povežite z istim mikrokrmilnikom. Če se zataknete, si oglejte fotografije, ki kažejo napredovanje po fazah ožičenja.

Nato sem moral dodati žico za pošiljanje signala vsakemu od mikro stikal, ki bi nato ob pritisku na gumb vrnila signal na vhodni zatič mikrokrmilnika. Uporabil sem 4 zvite pare v nekem kablu Cat 5e za zagotavljanje signala igralnim palicam, tako da sem jih vse skupaj spajal na enem koncu in pritrdil priključni kabel Dupont, priključen na signalni zatič na mikrokrmilniku.

Naredil sem majhen kabel iz marjetice za vsako od šestih gumbov in nazadnje uporabil prilagojene kable adapterja na gumbih za zagon/izbiro in fliper, ki so spet povezani na signalni zatič mikrokrmilnika.

Ožičenje mikro stikal do mikrokontrolerjev je bilo precej preprosto zaradi uporabe mini ploščic in priključkov Dupont, kar je pomenilo, da sem lahko po potrebi enostavno premikal žice.

6. korak: Koda krmilnika

Koda krmilnika
Koda krmilnika
Koda krmilnika
Koda krmilnika
Koda krmilnika
Koda krmilnika

Koda je precej osnovna. Spremenil sem primer igralne plošče iz odlične knjižnice igralnih palic Arduino

Več o začetku te knjižnice lahko izveste iz te priročne navodila.

Na koncu tega koraka smo imeli delujoč krmilnik za 2 igralca, zato smo slavili z nekaj krogi StreetFighter2 na mojem prenosnem računalniku!

Prvotno sem nameraval mikrokontrolerje priključiti neposredno na Raspberry PI prek USB-ja, toda med preizkušanjem na prenosnem računalniku sem ugotovil, da je bilo povezovanje in odklop mikro-USB priključkov na mikro-krmilnike prek dostopne plošče zelo zapleteno in sem sčasoma prekinil priključek mikro USB iz enega od mikro krmilnikov.

Rešitev tega je bila vključitev zvezdišča USB v krmilni modul. To je pomenilo, da je bila iz nadzornega modula izpostavljena samo ena povezava, celotna rešitev pa je bila veliko bolj robustna. Ko je ožičenje končano, sem na zgornjo ploščo dodal luknje za vijake in jih privil na svoje mesto.

gamepad.ino

// Preprost primer igralne plošče, ki prikazuje branje petih Arduino
// digitalne zatiče in jih preslikamo v knjižnico Arduino Joystick.
//
// Digitalni zatiči so ob pritisku ozemljeni.
//
// OPOMBA: Ta skica je namenjena uporabi z Arduino Leonardo in
// Samo Arduino Micro.
//
// Spremenjena različica izvirne kode Matthewa Heironimusa
// 2018-08-11
//--------------------------------------------------------------------
#vključi
Joystick_ Joystick;
voidsetup () {
// Inicializirajte zatiče gumbov
pinMode (2, INPUT_PULLUP);
pinMode (3, INPUT_PULLUP);
pinMode (4, INPUT_PULLUP);
pinMode (5, INPUT_PULLUP);
pinMode (6, INPUT_PULLUP);
pinMode (7, INPUT_PULLUP);
pinMode (8, INPUT_PULLUP);
pinMode (9, INPUT_PULLUP);
pinMode (10, INPUT_PULLUP);
pinMode (16, INPUT_PULLUP);
pinMode (20, INPUT_PULLUP);
pinMode (21, INPUT_PULLUP);
// Inicializiraj knjižnico igralnih palic
Joystick.begin ();
Joystick.setXAxisRange (-1, 1);
Joystick.setYAxisRange (-1, 1);
}
// Zadnje stanje gumbov
int lastButtonState [12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int zatiči [12] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 20, 21};
voidloop () {
// Branje pin vrednosti
za (intindex = 0; indeks <12; indeks ++)
{
int currentButtonState =! digitalRead (zatiči [indeks]);
if (currentButtonState! = lastButtonState [indeks])
{
stikalo (zatiči [indeks]) {
primer2: // GOR
if (currentButtonState == 1) {
Joystick.setYAxis (-1);
} drugo {
Joystick.setYAxis (0);
}
zlom;
case3: // DESNO
if (currentButtonState == 1) {
Joystick.setXAxis (1);
} drugo {
Joystick.setXAxis (0);
}
zlom;
case4: // DOL
if (currentButtonState == 1) {
Joystick.setYAxis (1);
} drugo {
Joystick.setYAxis (0);
}
zlom;
case5: // LEVO
if (currentButtonState == 1) {
Joystick.setXAxis (-1);
} drugo {
Joystick.setXAxis (0);
}
zlom;
primer 6:
Joystick.setButton (0, currentButtonState);
zlom;
primer 7:
Joystick.setButton (1, currentButtonState);
zlom;
primer 8:
Joystick.setButton (2, currentButtonState);
zlom;
primer 9:
Joystick.setButton (3, currentButtonState);
zlom;
primer10:
Joystick.setButton (4, currentButtonState);
zlom;
primer16:
Joystick.setButton (5, currentButtonState);
zlom;
primer20:
Joystick.setButton (8, currentButtonState);
zlom;
case21: {
Joystick.setButton (9, currentButtonState);
zlom;
}
}
lastButtonState [index] = currentButtonState;
}
}
zamuda (10);
}

oglejte si rawgamepad.ino, ki ga gosti ❤ GitHub

7. korak: Nastavitev Raspberry PI

Nastavitev Raspberry PI
Nastavitev Raspberry PI

Priporočam Pi 3 za največjo zmogljivost igre in združljivost, če pa vas zanimajo le starejše igre, bi bila v redu tudi naprava z manjšo porabo energije, kot je Pi Zero. Uporabljam rezervni Pi 2, ki sem ga že imel naokoli.

Na spletu je ogromno virov, ki opisujejo, kako nastaviti izbrani Pi ali drug SBC z različnimi emulatorji in sprednjimi deli. Osebno uporabljam in priporočam RetroPie in zdelo se mi je, da so ti - odlični - video posnetki z ETA Prime odličen način za hiter zagon.

8. korak: Konstrukcija modula zaslona

Konstrukcija modula zaslona
Konstrukcija modula zaslona
Konstrukcija modula zaslona
Konstrukcija modula zaslona
Konstrukcija modula zaslona
Konstrukcija modula zaslona

Konstrukcijo modula zaslona sem začel s stranskimi ploščami, prvo sem označil in izrezal iz dimenzij, izmerjenih iz datoteke SketchUp z uporabo navidezne merilne trakove. Nato sem prvo ploščo uporabil kot predlogo za označevanje druge.

Nato sem izrezal spodnjo zadnjo ploščo, privijal nekaj kotnih nosilcev in jo nato privil na stranske plošče. Na tej stopnji sem preveril, ali moj monitor ustreza. Bilo je nekoliko tesneje, kot sem pričakoval, vendar je bilo dovolj prostora.

Nato sem dodal spodnjo sprednjo ploščo in vanjo izrezal luknje, ki ustrezajo krmilnemu modulu. Da bi jih označil, sem krmilni modul postavil ob prikazovalni modul in ga zapisal po notranjosti obstoječe luknje v krmilnem modulu.

Na tej stopnji sem lahko priklopila dva modula z dvema vijakoma za omarico. Zdaj sem lahko videl končno obliko kombiniranega modula z vrhom!

Naslednji korak je bil usmerjanje robov plošč. Zaradi tega sem enoto ponovno razstavil. Izrezal sem tudi luknjo za dovod napajanja in stikalo. Za to sem najprej označil luknjo, nato sem z majhnim lesnim kosom izvrtal vogale in na koncu z spiralno žago izrezal preostali material.

Nato sem znova sestavil enoto, ki je tokrat zlepila vsak kos skupaj. Ker sem uporabljal tudi nosilce, mi ni bilo treba uporabljati objemk za držanje kosov skupaj.

Zdaj, ko je bila enota v svoji končni obliki, sem izrezala ploščo zaslona in jo namestila na svoje mesto ter jo obdelovala z brusnim papirjem, da se tesno prilega. Ko sem bil zadovoljen s prileganjem, sem ga izstrelil in z vbodno žago izrezal luknjo za zaslon, ki se ujema z vidno površino zaslona. To sem naredil, tako da sem lahko z nekaj oklepaji preizkusil zaslon na mestu, da monitor ohlapno držim.

Dva modula sem sestavila, da vidim, kako je videti, in nato zaključila lepljenje okvirja zaslona. V ta namen sem za okvir zaslona dodal nekaj dodatnih kosov 6 mm MDF, da se prepričam, da je trden, in da se kasneje izognemo razpokam v barvi.

9. korak: Dokončaj

Končaj
Končaj
Končaj
Končaj
Končaj
Končaj
Končaj
Končaj

Ko se je lepilo popolnoma posušilo na prikazovalnem modulu, sem na vse spoje in madeže izdatno nanesel leseno polnilo ter ga obrusil z grobim brusnim papirjem.

Nato sem ga premazal z razvodnjenim PVA lepljenjem kot prvo tesnilno plastjo. Nato sem nanesel več slojev mešanice PVA in bele barve za les/jeklo za splošno uporabo, ki sem jo našel v garaži.

Vsi ti začetni nanosi so bili naneseni z običajno 2 -palčno čopičem.

Ko so se osnovni premazi posušili, sem rahlo brusila z drobnozrnatim brusnim papirjem. Po tem sem dodal še en sloj bele barve.

Ko se je posušilo, sem ponovno rahlo brusila in nato nanesla nekaj slojev poceni splošne brizgalne barve iz pločevink, ki sem jih vzela v trgovini s strojno opremo.

Preden ponovim postopek za krmilni modul, sem izrezal zgornjo zadnjo ploščo modula zaslona. Ta plošča ima luknjo, da lahko lažje nosim zaslonni modul. Deluje tudi tako, da zvočniki vgrajenih zvočnikov monitorja pridejo iz ohišja.

Na tej stopnji sem se tudi odločil odstraniti vijake z zgornje plošče krmilnega modula in jih namesto tega prilepiti. Da bi se prepričal, sem najprej prilepil nekaj dodatnih podpornih kosov.

Ko je bil krmilni modul pobarvan, sem z Dremelom očistil luknje za gumbe in jih z enim od gumbov nenehno preverjal glede velikosti. Nazadnje sem pritrdila pohištveno matico na zadnjo stran krmilnih modulov.

Glede na količino porabljenega časa in truda sem bil na koncu tega koraka razmeroma zadovoljen s končnim rezultatom. Nikakor ni bil popoln in bi ga bilo mogoče na tej stopnji izboljšati, če bi imeli več časa. Res je odvisno od tega, kakšno stopnjo zaključka želite doseči, koliko časa bo ta korak trajal.

10. korak: Komponente modula zaslona

  • 19 -palčni širokozaslonski monitor z zvočniki
  • Enosmerni računalnik Raspberry PI 2 (SBC)
  • Malina PI 2 etui
  • 2Amp napajalnik USB
  • Micro-usb kabel
  • 3,5 mm avdio kabel
  • HDMI kabel
  • Vtičnica na ohišju (kotnik)
  • Kabel za električni grelnik vode
  • Dvojna vtičnica

11. korak: Ožičenje modula zaslona

Ožičenje modula zaslona
Ožičenje modula zaslona
Ožičenje modula zaslona
Ožičenje modula zaslona
Ožičenje modula zaslona
Ožičenje modula zaslona
Ožičenje modula zaslona
Ožičenje modula zaslona

Najprej sem lupini modula zaslona dodal osnovo in zadnjo ploščo.

Nato sem priključil stikalo za vklop v dvojno vtičnico za napajanje PI in monitorja. Napajalne žice sem spajkal na stikalo in kable obložil s toplotno skrčljivo cevjo. Če vam ta del ni povsem všeč, poiščite pomoč nekoga, ki je usposobljen. Z električnim ožičenjem NE tvegajte.

Ko sem stikalo varno pritrdila na ohišje, sem monitor postavila v položaj. Glede na že tako tesen boj je bilo za pritrditev zaslona potrebno le nekaj dodatnih plastičnih nosilcev.

Nato sem priključil napajalnik USB za PI in kabel za monitor za monitor. Ostalo je le priključiti avdio in video signale na monitor.

Ker monitor nima vhoda HDMI, sem uporabil adapter HDMI na DVI. Zvok je bil vgrajen v zvočnike monitorja preko 3,5-milimetrskega avdio kabla iz PI. Z vklopljeno zadnjo ploščo in nastavitvami zvoka je glasnost zvoka v redu, vendar ne glasna. V prihodnji posodobitvi bi lahko dodal zvočnike in mini ojačevalnik.

Nazadnje sem v PI priključil zvezdišče USB in pustil, da se je začelo testiranje popolnoma delujočega zaslona.

12. korak: Končna montaža in misli

Končna sestava in misli
Končna sestava in misli
Končna sestava in misli
Končna sestava in misli
Končna sestava in misli
Končna sestava in misli
Končna sestava in misli
Končna sestava in misli

Zadnje delo pred končno montažo je bilo ponovno ožičenje in sestavljanje krmilnega modula po barvanju. To je potekalo precej gladko, razen prekinitve ene žice, ki jo je bilo treba ponovno spajkati.

Preden združim krmilne in prikazovalne module, sem izrezal nekaj diskov prozorne lepilne kontaktne folije, da preprečim, da bi pokrovi priključkov pohištva štrleli iz krmilnega modula, da ne bi opraskali barve na modulu zaslona.

Potem je bilo preprosto postaviti module in jih priviti skupaj. Na tej stopnji je zgornja enota popolnoma dokončana in pripravljena za ukrepanje. Zdi se, da bo to najprimernejša konfiguracija, zato mi vsaj nekaj časa ne bo treba graditi stoječega modula. Če in ko bom, bom to objavo posodobil. Modul stojala bi moral biti najbolj preprost od vseh. To je v bistvu preprosta omara za shranjevanje z luknjami za vijake na vrhu za povezavo z enoto na vrhu palice.

S svojimi otroki sem se zelo zabaval pri tem projektu. Veliko smo se naučili in se zdaj veselimo igranja veliko starih arkadnih in konzolnih klasik na novem računalniku. Hvala za branje in nam v komentarjih sporočite, kaj menite o projektu!

Priporočena: