Indholdsfortegnelse:

Modulær arkademaskine: 12 trin
Modulær arkademaskine: 12 trin

Video: Modulær arkademaskine: 12 trin

Video: Modulær arkademaskine: 12 trin
Video: Resident Evil spil | Serieudvikling | Komplet kronologi 2024, Juli
Anonim
Modulær arkademaskine
Modulær arkademaskine

Mine to drenge og jeg ville bygge en arkademaskine, men vi kunne ikke beslutte, hvilken type der skulle bygges mellem et fuldt stand-up-skab, en bar-top eller en fight-stick-konsol, der skulle tilsluttes et tv. Det faldt til sidst op for os, at vi kunne bygge alle tre som en modulær løsning med moduler, der kan bruges individuelt eller kombineres efter ønske.

På grund af det enkle design og valg af komponenter er dette også en ganske billig konstruktion sammenlignet med mange hjemmearkademaskine -projekter, og du bør kunne opnå for under 200 €/$ i materialer. Jeg havde allerede det meste af træværksmaterialer og elektronik liggende, så jeg har indtil videre brugt mindre end 100 €.

Trin 1: Design

Design
Design
Design
Design
Design
Design

Det grundlæggende designkoncept er et arkade -system med to spillere, der består af et sæt uafhængige moduler, der hver har en individuel funktion og også supplerer hinanden, når de er boltet sammen.

  • Kontrolmodulet indeholder alle betjeningselementer og kontrolelektronik inklusive USB -controllere. Dette modul kan bruges til en fight stick -controller, der er forbundet til en konsol eller Raspberry PI.
  • Displaymodulet indeholder skærmen og Raspberry PI (eller dit valg af SBC) og kan bruges som enkeltstående som en "alt-i-en" -computer eller tilsluttes kontrolmodulet for at danne en bartop-arkadeenhed.
  • Standmodulet fungerer som en opbevaringsenhed i standalone-tilstand, og når det kombineres med bartop, danner det en komplet stand-up-arkademaskine.

Vi forsøgte at holde designet så enkelt og funktionelt som muligt ved at tage nogle design -signaler fra 70'erne og 80'ernes vintage - bordplade - spil og undgå ikke -funktionelle elementer som f.eks. Lyset telt og T -støbning, der findes i mange skabe. Selvfølgelig kan du ændre designet for at tilføje disse elementer, hvis det ønskes.

Jeg besluttede mig for et ret klassisk knaplayout, som jeg syntes at huske fra min ungdoms arkader med en "straight six" -klynge ved siden af hvert joystick (StreetFighter2 FTW). Jeg placerede Start- og Select -knapperne på frontpanelet for at imødekomme konsolemulering samt møntinput og pligter til valg af spillere. Jeg placerede også en knap på hver side til flipperspil. Selvfølgelig står du frit til at ændre designet efter din egen smag og ønskede inputmetoder f.eks. trackballs. vægtede spinnere osv.

Jeg lavede en indledende grov konceptskitse af bar -top -enheden på papir og genskabte derefter skala korrekte modeller i SketchUp - se de vedhæftede filer for hver af modulerne og kombinationerne.

Jeg baserede dimensionerne omkring en 19 widescreen -skærm, som jeg købte brugt for € 10. Dette resulterede i en samlet skabbredde på 500 mm, hvilket efterlod omkring 30 mm spil, hvis jeg skulle skifte skærm.

Kontroller SketchUp -filerne for nøjagtige målinger af alle dimensioner. Når jeg skar et specifikt panel eller hul, brugte jeg målebåndsværktøjet i SketchUp til at måle dimensionen i modellen, inden markeringerne af udskæringer på byggematerialet blev markeret.

Trin 2: Træværktøj og materialer

ADVARSEL: BRUG FORSIGTIG OG TILGÆLDENDE SIKKERHEDSUDSTYR, NÅR BETJENING AF STRØMVÆRKTØJ

Værktøjer

  • Skruetrækker og skruer
  • Bordsav eller cirkelsav
  • Stiksav
  • Bor og diverse bits inklusive 28 mm hul til knapperne
  • Sandpapir
  • Router og afrundende hjørnebit

Materialer

  • 19 mm (3/4 ") MDF -folie
  • 6 mm (3/4 ") MDF -folie
  • Vinkelbeslag (jeg brugte nogle virkelig praktiske plastikstykker - se konstruktionsbillederne)
  • Træfyldstof
  • Mal (se "Afslut" trin senere for detaljer)

Trin 3: Kontrolmodulkonstruktion

Kontrolmodulkonstruktion
Kontrolmodulkonstruktion
Kontrolmodulkonstruktion
Kontrolmodulkonstruktion
Kontrolmodulkonstruktion
Kontrolmodulkonstruktion
Kontrolmodulkonstruktion
Kontrolmodulkonstruktion

Jeg startede kontrolmodulet med at skære siderne ud af 19 mm MDF baseret på dimensionerne fra SketchUp -modellen.

Derefter skærer jeg for- og bagpanelerne. Jeg markerede skråningerne på disse paneler ved at placere dem tæt op til siderne og markere vinklen med en blyant og derefter forbinde mærkerne på hver side med en lige kant. Jeg skar den derefter ved synet i bordsaven og afsluttede med sandpapir. Jeg er helt sikker på, at der er en bedre måde at gøre dette på med flere værktøjer og/eller bedre færdigheder, men det fungerede fint til mine behov og tog ikke lang tid.

Jeg skar derefter de forreste og siderede knaphuller ud og forbandt alle panelerne med vinkelbeslagene og skruerne. Jeg planlagde oprindeligt at bruge lim, men mine tests med limning til en MDF -skærkant syntes at indikere, at dette ikke ville være stærkt nok. Jeg havde også allerede en flok beslag, som jeg genbrugte fra et gammelt projekt;).

Jeg afrundede også de øverste forreste kanter på dette tidspunkt ved hjælp af routeren med hjørneafrundingsbitten. Dette giver et pænere udseende og en mere behagelig fornemmelse af modulet og roder hårde kanter, hvor dine hænder naturligt hviler ved siden af betjeningselementerne.

Dernæst skar jeg toppen og bunden af den 6 mm MDF. Jeg fasede det øverste panel som med front- og bagpanelerne for at sikre en tæt pasform og problemfri finish. Jeg fasede ikke bundpanelet, da jeg ikke har tænkt mig at fylde og male det. I stedet vil jeg bruge det som et vedligeholdelsesadgangspanel. Jeg borede og sænkede skruehuller og borede matchende huller i hjørnebeslagene.

Jeg adskilte derefter bagpanelet og skar et stort hul for regelmæssig adgang til USB -kablerne og Raspberry PI.

Til sidst skar jeg den øverste panelknap og joystickhullerne sammen og satte dem sammen igen. Jeg fikserede ikke det øverste panel på dette tidspunkt, da jeg ville holde det løst under ledningsforløbet.

Trin 4: Elektronikværktøjer og materialer

NB: Denne liste er kun nødvendig, hvis du vil gå fuld nørd på elektronikken. Du kan og skal sandsynligvis få alle disse ting som en del af et plug and play -kit (som disse) og undgå al lodning og brugerdefinerede ledninger. Efter at have gjort dette en gang "på den hårde måde" vil jeg helt sikkert gå ned ad kitruten, hvis jeg nogensinde laver et andet skab.

Værktøjer

  • Multimeter/tilslutningstester
  • Loddekolbe
  • Trådskærer
  • Krympeværktøj (jeg brugte lige trådskæreren)

Materialer

  • Arduino Leonardo/Pro Micro med USB HID joystick -profil (jeg brugte billige kloner)
  • USB -hub
  • Arcade joystick og knapper.
  • Crimp -stik, der matcher dit valgte joystick og knapper
  • 2x Mini brødbrætter
  • Forbindelsestråde (jeg brugte hovedsageligt Dupont -jumperwires)
  • Elektronik loddemetal (havde stadig min originale kolofoniumspole fra college)
  • Krympeslange

Trin 5: Kontrolmodulledninger

Kontrolmodul ledninger
Kontrolmodul ledninger
Kontrolmodul ledninger
Kontrolmodul ledninger
Kontrolmodul ledninger
Kontrolmodul ledninger

Igen anbefaler jeg at overveje et plug and play -kit i stedet for den tilgang, der er dokumenteret her. Følg kun denne fremgangsmåde, hvis du:

A. Ønsker fuld kontrol over håndteringskoden på lavt niveau

B. Nyd virkelig lodning og brugerdefinerede ledninger (hvem gør ikke)

C. Har allerede værktøjerne og delene og/eller ønsker at spare et par penge

D. Vil du lære mere om disse ting eller bare øve dig

Mine personlige motiver var en blanding af ovenstående. Ok, så her er hvordan jeg gjorde ledningerne:

Først lavede jeg adapterkabler for at forbinde krympestikkene på knapperne til Dupont -stikledningerne. Jeg lavede en af disse til mikrokontakten i hver af knapperne og de fire i hver af joystickene. Råb til Larry for at få lov til at grave ud på produktionslinjen til disse.

Jeg brugte derefter disse brugerdefinerede kabler til at forbinde knapperne og joysticks til inputstifter på hver af mikrokontrollerne via brødbrædderne.

NB: I dette design er der en separat mikro-controller og dermed USB-kabel til hver spiller. Opdel joystick- og knapmikrokontakterne i overensstemmelse hermed mellem dem, og led begge pinball-knapperne til den samme mikro-controller. Tjek billederne, der viser en fremgang gennem ledningsfaserne, hvis du sidder fast.

Derefter skulle jeg tilføje en ledning til at sende et signal til hver af mikrokontakterne, som derefter ville returnere signalet til mikrokontrollerindgangsstiften, når der blev trykket på knappen. Jeg brugte de 4 snoede par i et eller andet Cat 5e-kabel til at levere signalet til joystickene ved at lodde dem alle sammen i den ene ende og vedhæfte et Dupont-stik kabel forbundet til signalstiften på mikro-controlleren.

Jeg lavede et lille daisy-chain-kabel til hver af de 6 knapklynger og brugte til sidst mine brugerdefinerede adapterkabler på start/select- og pinball-knapperne igen alle tilsluttet mikro-controller-signalstiften.

Tilslutning af mikrokontakterne til mikrokontrollerne var ret ligetil på grund af brugen af mini-brødbrættet og Dupont-stik, hvilket betød, at jeg let kunne flytte ledningerne rundt efter behov.

Trin 6: Controller -kode

Controller -kode
Controller -kode
Controller -kode
Controller -kode
Controller -kode
Controller -kode

Koden er temmelig grundlæggende. Jeg ændrede et gamepad -eksempel fra det fremragende Arduino Joystick Library

Du kan lære mere om at komme i gang med det bibliotek fra denne praktiske instruerbare.

I slutningen af dette trin havde vi en fungerende 2-spiller fight-stick controller, så vi fejrede med et par runder StreetFighter2 på min bærbare!

Jeg planlagde oprindeligt at tilslutte mikrokontrollerne direkte til Raspberry PI via USB, men mens jeg testede på den bærbare computer fandt jeg ud af, at tilslutning og afbrydelse af mikro-USB-stik til mikrokontrollerne via adgangspanelet var meget besværlig, og jeg til sidst afbrød mikro USB-stik fra en af mikrokontrollerne.

Løsningen på dette var at inkludere en USB -hub i kontrolmodulet. Dette betød, at kun en enkelt forbindelse blev afsløret fra kontrolmodulet, og den samlede løsning var meget mere robust. Med ledningerne komplet tilføjede jeg forsænkede skruehuller til det øverste panel og skruede det på plads.

gamepad.ino

// Simpelt gamepad -eksempel, der viser, hvordan man læser fem Arduino
// digitale pins og kort dem til Arduino Joystick -biblioteket.
//
// De digitale stifter jordes, når de trykkes på.
//
// BEMÆRK: Denne skitsefil er til brug med Arduino Leonardo og
// Kun Arduino Micro.
//
// Ændret version af original kode af Matthew Heironimus
// 2018-08-11
//--------------------------------------------------------------------
#omfatte
Joystick_ Joystick;
voidsetup () {
// Initialiser knapnål
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);
// Initialiser joystick -bibliotek
Joystick.begin ();
Joystick.setXAxisRange (-1, 1);
Joystick.setYAxisRange (-1, 1);
}
// Knappernes sidste tilstand
int lastButtonState [12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int pins [12] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 20, 21};
voidloop () {
// Læs pinværdier
for (intindex = 0; indeks <12; indeks ++)
{
int currentButtonState =! digitalRead (pins [indeks]);
hvis (currentButtonState! = lastButtonState [index])
{
switch (pins [indeks]) {
case2: // UP
hvis (currentButtonState == 1) {
Joystick.setYAxis (-1);
} andet {
Joystick.setYAxis (0);
}
pause;
case3: // HØJRE
hvis (currentButtonState == 1) {
Joystick.setXAxis (1);
} andet {
Joystick.setXAxis (0);
}
pause;
case4: // NED
hvis (currentButtonState == 1) {
Joystick.setYAxis (1);
} andet {
Joystick.setYAxis (0);
}
pause;
case5: // VENSTRE
hvis (currentButtonState == 1) {
Joystick.setXAxis (-1);
} andet {
Joystick.setXAxis (0);
}
pause;
case6:
Joystick.setButton (0, currentButtonState);
pause;
case7:
Joystick.setButton (1, currentButtonState);
pause;
case8:
Joystick.setButton (2, currentButtonState);
pause;
case9:
Joystick.setButton (3, currentButtonState);
pause;
sag 10:
Joystick.setButton (4, currentButtonState);
pause;
case16:
Joystick.setButton (5, currentButtonState);
pause;
case20:
Joystick.setButton (8, currentButtonState);
pause;
case21: {
Joystick.setButton (9, currentButtonState);
pause;
}
}
lastButtonState [index] = currentButtonState;
}
}
forsinkelse (10);
}

se rawgamepad.ino hostet af ❤ af GitHub

Trin 7: Opsætning af hindbær PI

Opsætning af hindbær PI
Opsætning af hindbær PI

Jeg anbefaler en Pi 3 for maksimal spilydelse og kompatibilitet, men hvis du kun er interesseret i ældre spil, ville en lavere enhed som Pi Zero også være fin. Jeg bruger en ekstra Pi 2, som jeg allerede havde liggende.

Der er masser af store ressourcer på internettet, der beskriver, hvordan du konfigurerer din valgte Pi eller anden SBC med forskellige emulatorer og frontend. Jeg bruger og anbefaler RetroPie personligt, og jeg fandt disse - fremragende - videoer fra ETA Prime til at være en fantastisk måde at komme hurtigt i gang.

Trin 8: Displaymodulkonstruktion

Displaymodulskonstruktion
Displaymodulskonstruktion
Displaymodulskonstruktion
Displaymodulskonstruktion
Displaymodulskonstruktion
Displaymodulskonstruktion

Jeg startede Display Module -konstruktionen med sidepanelerne, markerede og skar den første ud af dimensioner målt fra SketchUp -filen ved hjælp af det virtuelle målebånd. Jeg brugte derefter det første panel som en skabelon til at markere det andet.

Derefter skar jeg det nederste bagpanel af, skruede nogle vinkelbeslag fast og skruede det derefter fast på sidepanelerne. På dette tidspunkt bekræftede jeg, at min skærm ville passe. Det var lidt strammere end jeg havde forventet, men der var tilstrækkelig plads.

Jeg tilføjede derefter det nederste frontpanel og skar huller i det for at matche kontrolmodulet. For at markere disse placerede jeg kontrolmodulet op mod displaymodulet og skrev rundt om indersiden af det eksisterende hul i kontrolmodulet.

På dette tidspunkt var jeg i stand til at bolt de to moduler sammen ved hjælp af to kabinetforbindelsesbolte. Nu kunne jeg se den endelige form af det kombinerede bar-top modul!

Næste trin var at føre kanterne af panelerne. Til dette demonterede jeg enheden igen. Jeg skar også hullet ud for strømindløbet og kontakten. Til dette markerede jeg først hullet, derefter borede hjørner med en lille træbit og til sidst skar vi det resterende materiale ud med en spiralsav.

Jeg genmonterede derefter enheden, der limede hvert stykke sammen denne gang. Da jeg også brugte beslag, behøvede jeg ikke at bruge klemmer til at holde stykkerne sammen.

Nu da enheden var i sin endelige form, skar jeg skærmpanelet ud og satte det på plads, arbejdede på det med sandpapir, indtil det passede tæt. Da jeg var tilfreds med pasformen, sprang jeg det ud og brugte et stiksav til at skære hullet ud, så displayet passede til det synlige skærmområde. Dette var gjort, jeg var i stand til at teste skærmen på plads ved hjælp af nogle beslag for at holde skærmen løst på plads.

Jeg satte de to moduler sammen for at se, hvordan det så ud og limede derefter skærmens surround på plads. For at gøre dette tilføjede jeg nogle ekstra stykker 6 mm MDF bag skærmens surround for at sikre, at den var solid og for at undgå revner i malingen senere.

Trin 9: Afslut

Afslut
Afslut
Afslut
Afslut
Afslut
Afslut
Afslut
Afslut

Når limen var tørret helt på displaymodulet, påførte jeg generøst træfyldstof på alle samlinger og pletter og slibede det ned med groft sandpapir.

Jeg belagte det derefter med udvandet PVA -binding som et første tætningslag. Dernæst påførte jeg flere lag af en blanding af PVA og hvid almindelig træ-/stålmaling, som jeg fandt i garagen.

Disse første lag blev alle påført ved hjælp af en almindelig 2 pensel.

Da bundfrakkerne tørrede ud, slibede jeg let med finkornet sandpapir. Derefter tilføjede jeg endnu et lag hvid maling.

Da det var tørt, slibede jeg let igen og påførte derefter et par lag billig spraymaling til almindelige formål fra dåser, jeg hentede i isenkræmmeren.

Inden jeg gentog processen for kontrolmodulet, skar jeg det øverste bagpanel af displaymodulet ud. Dette panel har et hul i det, så jeg lettere kan bære displaymodulet. Det virker også giver mulighed for lyd for de indbyggede skærmhøjttalere at komme ud af sagen.

På dette tidspunkt besluttede jeg også at fjerne skruerne fra kontrolpanelets øverste panel og lime det på plads i stedet. For at sikre, at den var sikker, limede jeg først nogle ekstra støttestykker i.

Da kontrolmodulet blev malet, brugte jeg en Dremel til at rydde op i knaphullerne og løbende teste dem for størrelse med en af knapperne. Til sidst limede jeg møbelforbindelsesmøtrikken ind på bagsiden af kontrolmodulerne.

Jeg var rimeligt tilfreds med den resulterende finish i slutningen af dette trin i betragtning af mængden af tid og kræfter. Det var på ingen måde perfekt og kunne forbedres givet mere tid i denne fase. Det afhænger virkelig af, hvilket finishniveau du vil opnå, hvor lang tid dette trin vil tage.

Trin 10: Vis modulkomponenter

  • 19 "Widescreen -skærm med højttalere
  • Raspberry PI 2 Single Board Computer (SBC)
  • Hindbær PI 2 etui
  • 2Amp USB -strømadapter
  • Micro-usb kabel
  • 3,5 mm lydkabel
  • HDMI -kabel
  • Chassisstikdåse (kedelledningstype)
  • El -kedel bly
  • Dobbelt stikkontakt

Trin 11: Kabelføring af displaymodul

Displaymodulskabler
Displaymodulskabler
Displaymodulskabler
Displaymodulskabler
Displaymodulskabler
Displaymodulskabler
Displaymodulskabler
Displaymodulskabler

Først tilføjede jeg en base og bagpanel til skærmmodulskallen. Bagpanelet blev fastgjort med magnetiske låser, så det let kan fjernes for hurtig adgang til komponenterne.

Jeg tilsluttede derefter en afbryder til en dobbelt stikkontakt til strømforsyning til PI og skærm. Jeg loddet strømkablerne til kontakten og slevede kablerne med varmekrympeslange. Hvis du ikke er helt fortrolig med denne del, skal du få hjælp fra en kvalificeret person. Tag IKKE nogen risiko med netledninger.

Efter at jeg havde fastgjort kontakten sikkert til etuiet, placerede jeg skærmen på plads. I betragtning af den allerede stramme kamp var et par ekstra plastikbeslag alt, hvad der var nødvendigt for at sikre skærmen på plads.

Derefter tilsluttede jeg en USB -strømadapter til PI'en og en kedelledning til skærmen. Tilbage var kun at tilslutte lyd- og videosignalerne til skærmen.

Da skærmen ikke har nogen HDMI-indgang, brugte jeg en HDMI til DVI-adapter. Lyd blev leveret til de indbyggede skærmhøjttalere via et 3,5 mm lydkabel fra PI. Med bagpanelet tændt og lydindstillinger på max er lydstyrken i orden, men ikke høj. Jeg tilføjer måske højttalere og en mini -forstærker i en fremtidig opdatering.

Endelig sluttede jeg en USB -hub til PI'en og kunne lade testen af det fuldt operationelle displaymodul begynde.

Trin 12: Endelig samling og tanker

Endelig forsamling og tanker
Endelig forsamling og tanker
Endelig forsamling og tanker
Endelig forsamling og tanker
Endelig forsamling og tanker
Endelig forsamling og tanker
Endelig forsamling og tanker
Endelig forsamling og tanker

Det sidste job før den endelige samling var omledning og montering af kontrolmodulet efter maling. Dette gik ret smidigt bortset fra at bryde den ene ledning, som skulle loddes igen.

Inden jeg kombinerede kontrol- og displaymodulerne, skar jeg et par skiver af klar klæbende kontaktfilm ud for at undgå, at møbelstikkets tønder, der stak ud af kontrolmodulet, ridsede displaymodulets lak.

Det var så bare en simpel opgave at placere modulerne og skrue dem sammen. På dette stadium er bar-top-enheden fuldstændig komplet og klar til handling. Det ser ud til, at dette vil være den foretrukne konfiguration, så jeg behøver i det mindste ikke at konstruere stativmodulet i et stykke tid. Hvis og når jeg gør det, opdaterer jeg dette indlæg. Selve stativmodulet bør være det mest enkle af alle. Det er dybest set et simpelt opbevaringsskab med bolthuller i toppen for at forbinde til bar-top-enheden.

Jeg har haft en god tid med at arbejde på dette projekt med mine børn. Vi lærte meget og glæder os nu til at spille masser af gamle arkade- og konsolklassikere på den nye maskine. Tak fordi du læste, og lad os vide, hvad du synes om projektet i kommentarerne!

Anbefalede: