Innholdsfortegnelse:

Modulær arkademaskin: 12 trinn
Modulær arkademaskin: 12 trinn

Video: Modulær arkademaskin: 12 trinn

Video: Modulær arkademaskin: 12 trinn
Video: Resident Evil spil | Serieudvikling | Komplet kronologi 2024, November
Anonim
Modulær arkademaskin
Modulær arkademaskin

Mine to gutter og jeg ønsket å bygge en arkademaskin, men vi kunne ikke bestemme hvilken type vi skulle bygge mellom et komplett ståskap, en bar-topp eller en fight-stick-konsoll for å koble til en TV. Det falt til slutt opp for oss at vi kunne bygge alle tre som en modulær løsning med moduler som kan brukes individuelt eller kombineres etter ønske.

På grunn av den enkle designen og valg av komponenter er dette også en ganske rimelig konstruksjon sammenlignet med mange hjemmearkademaskinprosjekter, og du bør kunne oppnå for under 200 €/$ i materialer. Jeg hadde allerede det meste av trematerialer og elektronikk liggende, så jeg har så langt brukt mindre enn 100 €.

Trinn 1: Design

Design
Design
Design
Design
Design
Design

Det grunnleggende designkonseptet er et arkadesystem for to spillere som består av et sett med uavhengige moduler som hver har en individuell funksjon og som også utfyller hverandre når de er boltet sammen.

  • Kontrollmodulen inneholder alle kontrollene og kontrollelektronikken inkludert USB -kontrollerne. Denne modulen kan brukes en fight stick -stilkontroller koblet til en konsoll eller Raspberry PI.
  • Skjermmodulen inneholder skjermen og Raspberry PI (eller ditt valg av SBC) og kan brukes frittstående som en "alt-i-ett" datamaskin eller koblet til kontrollmodulen for å danne en bartop-arkadeenhet.
  • Stativmodulen fungerer som en lagringsenhet i frittstående modus og danner i kombinasjon med bartoppen en komplett stå-opp-arkademaskin.

Vi prøvde å holde designet så enkelt og funksjonelt som mulig ved å ta noen designtegn fra 70- og 80 -talls vintage - bordplater - spill og unngå ikke -funksjonelle elementer som opplyst telt og T -støping som finnes i mange skap. Selvfølgelig kan du endre designet for å legge til disse elementene hvis du ønsker det.

Jeg bestemte meg for et ganske klassisk knappelayout som jeg syntes å huske fra ungdommens arkader med en "rett seks" knappeklynge ved siden av hver av joystickene (StreetFighter2 FTW). Jeg plasserte Start- og Select -knappene på frontpanelet for å imøtekomme konsollemulering, samt myntinngang og spillervalg. Jeg plasserte også en knapp på hver side for flipperspill. Selvfølgelig står du fritt til å endre designet etter din egen smak og ønskede inndatametoder f.eks. styrekuler. vektede spinnere etc.

Jeg laget en innledende grov konseptskisse av bar -top -enheten på papir og gjenskaper deretter målrettede modeller i SketchUp - se de vedlagte filene for hver av modulene og kombinasjonene.

Jeg baserte dimensjonene rundt en 19 widescreen -skjerm som jeg kjøpte brukt for € 10. Dette resulterte i en total skapbredde på 500 mm og etterlot omtrent 30 mm avspilling i tilfelle jeg må bytte skjerm.

Sjekk SketchUp -filene for nøyaktige målinger på alle dimensjonene. Ved kutting av et bestemt panel eller hull brukte jeg målebåndverktøyet i SketchUp for å måle dimensjonen i modellen før jeg merket ut kuttene på konstruksjonsmaterialet.

Trinn 2: Verktøy og materialer for treverk

ADVARSEL: BRUK FORSIKTIGHET OG PASSENDE SIKKERHETSUTSTYR NÅR DU BRUKER KRAFTVERKTØY

Verktøy

  • Skrutrekker og skruer
  • Bordsag eller sirkelsag
  • Stikksag
  • Bor og diverse biter inkludert 28 mm hullsag for knappene
  • Sandpapir
  • Router og avrundende hjørnebit

Materialer

  • 19 mm (3/4 ") MDF -ark
  • 6 mm (3/4 ") MDF -ark
  • Vinkelbeslag (jeg brukte noen veldig hendige plastik - se konstruksjonsbildene)
  • Trefyll
  • Mal (se trinnene "Fullfør" senere for detaljer)

Trinn 3: Konstruksjon av kontrollmodul

Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon
Kontrollmodulkonstruksjon

Jeg startet kontrollmodulen ved å kutte ut sidene fra 19 mm MDF basert på dimensjonene fra SketchUp -modellen.

Deretter kutter jeg front- og bakpanelene. Jeg merket skråkantene på disse panelene ved å plassere dem tett opp mot sidene og markere vinkelen med en blyant og deretter føye merkene på hver side med en rett kant. Jeg skar den deretter til syne i bordsagen og avsluttet med sandpapir. Jeg er ganske sikker på at det er en bedre måte å gjøre dette med flere verktøy og/eller bedre ferdigheter, men dette fungerte bra for mine behov og tok ikke lang tid.

Jeg skar deretter ut knapphullene foran og på siden og koblet sammen alle panelene med vinkelbrakettene og skruene. Jeg planla først å bruke lim, men testene mine med liming til en MDF -skjærkant syntes å indikere at dette ikke ville være sterkt nok. Også jeg hadde allerede en haug med braketter som jeg resirkulerte fra et gammelt prosjekt;).

Jeg rundet også de øverste frontvendte kantene på dette stadiet ved å bruke ruteren med hjørneavrundingsbiten. Dette gir modulen et hyggeligere utseende og en mer behagelig følelse, og har skarpe kanter der hendene dine naturlig hviler ved siden av kontrollene.

Deretter kuttet jeg ut toppen og bunnen fra 6 mm MDF. Jeg faset det øverste panelet som med front- og bakpanelene for å sikre en tettsittende passform og sømløs finish. Jeg faset ikke det nedre panelet da jeg ikke har tenkt å fylle og male det. I stedet vil jeg bruke det som et vedlikeholdspanel. Jeg boret og sank ned skruehull og boret matchende hull i hjørnebrakettene.

Jeg demonterte deretter bakpanelet og skar et stort hull for vanlig tilgang til USB -kablene og Raspberry PI.

Til slutt kuttet jeg knappen på toppanelet og joystickhullene og satte dem sammen igjen. Jeg fikset ikke toppanelet på plass på dette stadiet, da jeg ønsket å holde det løst under ledningsprosessen.

Trinn 4: Elektronikkverktøy og materialer

NB: Denne listen er bare nødvendig hvis du vil gå fullstendig nerd på elektronikken. Du kan og bør sannsynligvis få alt dette som en del av et plug and play -sett (som disse) og unngå all lodding og tilpassede ledninger. Etter å ha gjort dette en gang "på den harde måten", vil jeg definitivt gå nedover kitruten hvis jeg noen gang lager et annet skap.

Verktøy

  • Multimeter/tilkoblingstester
  • Loddejern
  • Wire cutter
  • Krympeverktøy (jeg brukte nettopp wire cutter)

Materialer

  • Arduino Leonardo/Pro Micro med USB HID joystick -profil (jeg brukte billige kloner)
  • USB -hub
  • Arcade -joystick og knapper.
  • Krympekontakter for å matche den valgte joysticken og knappene
  • 2x Mini brødbrett
  • Koble til ledninger (jeg brukte hovedsakelig Dupont -jumperledninger)
  • Elektronikklodde (hadde fremdeles min originale kolofoniumkjernehjul fra college)
  • Krympeslange

Trinn 5: Kontrollmodulledninger

Kontrollmodul ledninger
Kontrollmodul ledninger
Kontrollmodul ledninger
Kontrollmodul ledninger
Kontrollmodul ledninger
Kontrollmodul ledninger

Igjen, jeg anbefaler å vurdere et plug and play -sett i stedet for tilnærmingen som er dokumentert her. Følg denne tilnærmingen bare hvis du:

A. Ønsker full kontroll over håndteringskoden for knappene på lavt nivå

B. Liker virkelig lodding og tilpassede ledninger (hvem gjør det ikke)

C. Har allerede verktøy og deler og/eller vil spare noen få kroner

D. Vil du lære mer om dette eller bare øve

Mine personlige motivasjoner var en blanding av det ovennevnte. Ok, så her gjorde jeg ledningene:

Først lagde jeg adapterkabler for å feste krympekontaktene på knappene til Dupont -kontaktledningene. Jeg lagde en av disse for mikrobryteren i hver av knappene og de fire i hver av styrespakene. Rop ut for å forbanne Larry for å grave ut på produksjonslinjen for disse.

Jeg brukte deretter disse egendefinerte kablene til å koble knappene og styrespakene til inngangspinnene på hver av mikrokontrollerne via brødbrettene.

NB: I denne designen er det en egen mikrokontroller og dermed USB-kabel for hver spiller. Del styrespaken og knappens mikrobrytere deretter mellom dem og led begge flippeknappene til den samme mikrokontrolleren. Sjekk bildene som viser en progresjon gjennom ledningsfasene hvis du blir sittende fast.

Deretter trengte jeg å legge til en ledning for å sende et signal til hver av mikrobryterne som deretter ville returnere signalet til mikrokontrollerinngangspinnen når knappen ble trykket. Jeg brukte de fire vridde parene i noen Cat 5e-kabel for å gi signalet til styrespakene ved å lodde dem alle sammen i den ene enden og feste en Dupont-kontaktkabel som er koblet til signalpinnen på mikrokontrolleren.

Jeg lagde en liten daisy-chain-kabel for hver av de seks knappeklyngene, og til slutt brukte jeg de tilpassede adapterkablene på start/select og pinball-knappene igjen, alle sammen til mikrokontrolleren.

Kabling av mikrobryterne til mikrokontrollerne var ganske grei på grunn av bruken av mini-brødbrettet og Dupont-kontakter, noe som betydde at jeg enkelt kunne flytte ledningene rundt etter behov.

Trinn 6: Kontrollerkode

Kontrollerkode
Kontrollerkode
Kontrollerkode
Kontrollerkode
Kontrollerkode
Kontrollerkode

Koden er ganske grunnleggende. Jeg modifiserte et gamepad -eksempel fra det utmerkede Arduino Joystick Library

Du kan lære mer om hvordan du kommer i gang med det biblioteket fra denne praktiske instruksen.

På slutten av dette trinnet hadde vi en fungerende 2-spiller fight-stick-kontroller, så vi feiret med noen runder med StreetFighter2 på min bærbare!

Jeg planla opprinnelig å koble mikrokontrollerne direkte til Raspberry PI via USB, men mens jeg testet på den bærbare datamaskinen fant jeg ut at det var veldig vanskelig å koble til og fra mikro-USB-kontaktene til mikrokontrollerne via tilgangspanelet, og til slutt brøt jeg av mikro-USB-kontakt fra en av mikrokontrollerne.

Løsningen på dette var å inkludere en USB -hub i kontrollmodulen. Dette betydde at bare en enkelt forbindelse ble avslørt fra kontrollmodulen, og den samlede løsningen var mye mer robust. Da ledningen var fullført, la jeg til forsenkede skruehull på toppanelet og skrudde det på plass.

gamepad.ino

// Enkelt gamepad -eksempel som viser hvordan du leser fem Arduino
// digitale pins og kartlegg dem til Arduino Joystick -biblioteket.
//
// De digitale pinnene er jordet når de trykkes.
//
// MERK: Denne skissefilen er til bruk med Arduino Leonardo og
// Bare Arduino Micro.
//
// Endret versjon av original kode av Matthew Heironimus
// 2018-08-11
//--------------------------------------------------------------------
#inkludere
Joystick_ Joystick;
voidsetup () {
// Initialize Button Pins
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 joystickbiblioteket
Joystick.begin ();
Joystick.setXAxisRange (-1, 1);
Joystick.setYAxisRange (-1, 1);
}
// Siste status for knappene
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 () {
// Les pin -verdier
for (intindex = 0; indeks <12; indeks ++)
{
int currentButtonState =! digitalRead (pins [indeks]);
if (currentButtonState! = lastButtonState [index])
{
switch (pins [indeks]) {
case2: // UP
hvis (currentButtonState == 1) {
Joystick.setYAxis (-1);
} annet {
Joystick.setYAxis (0);
}
gå i stykker;
case3: // HØYRE
hvis (currentButtonState == 1) {
Joystick.setXAxis (1);
} annet {
Joystick.setXAxis (0);
}
gå i stykker;
case4: // NED
hvis (currentButtonState == 1) {
Joystick.setYAxis (1);
} annet {
Joystick.setYAxis (0);
}
gå i stykker;
case5: // VENSTRE
hvis (currentButtonState == 1) {
Joystick.setXAxis (-1);
} annet {
Joystick.setXAxis (0);
}
gå i stykker;
case6:
Joystick.setButton (0, currentButtonState);
gå i stykker;
case7:
Joystick.setButton (1, currentButtonState);
gå i stykker;
case8:
Joystick.setButton (2, currentButtonState);
gå i stykker;
case9:
Joystick.setButton (3, currentButtonState);
gå i stykker;
case10:
Joystick.setButton (4, currentButtonState);
gå i stykker;
case16:
Joystick.setButton (5, currentButtonState);
gå i stykker;
case20:
Joystick.setButton (8, currentButtonState);
gå i stykker;
case21: {
Joystick.setButton (9, currentButtonState);
gå i stykker;
}
}
lastButtonState [index] = currentButtonState;
}
}
forsinkelse (10);
}

se rawgamepad.ino hostet av ❤ av GitHub

Trinn 7: Oppsett av bringebær PI

Oppsett av bringebær PI
Oppsett av bringebær PI

Jeg anbefaler en Pi 3 for maksimal spillytelse og kompatibilitet, men hvis du bare er interessert i eldre spill, vil en lavere enhet som Pi Zero også være bra. Jeg bruker en ekstra Pi 2 som jeg allerede hadde liggende.

Det er mange ressurser på nettet som beskriver hvordan du konfigurerer den valgte Pi eller annen SBC med forskjellige emulatorer og frontender. Jeg personlig bruker og anbefaler RetroPie, og jeg syntes disse - utmerkede - videoene fra ETA Prime var en fin måte å komme raskt i gang.

Trinn 8: Skjermmodulkonstruksjon

Skjermmodulkonstruksjon
Skjermmodulkonstruksjon
Skjermmodulkonstruksjon
Skjermmodulkonstruksjon
Skjermmodulkonstruksjon
Skjermmodulkonstruksjon

Jeg startet Display Module -konstruksjonen med sidepanelene, merket og kuttet ut den første fra dimensjoner målt fra SketchUp -filen ved hjelp av det virtuelle målebåndet. Jeg brukte deretter det første panelet som en mal for å markere det andre.

Deretter kuttet jeg ut det nedre ryggpanelet, skrudde på noen vinkelbraketter og skrudde det deretter til sidepanelene. På dette stadiet bekreftet jeg at skjermen min ville passe. Det var litt strammere enn jeg forventet, men det var nok plass.

Jeg la deretter til det nedre frontpanelet og skar hull i det for å matche kontrollmodulen. For å markere disse plasserte jeg kontrollmodulen opp mot displaymodulen og skrev rundt innsiden av det eksisterende hullet i kontrollmodulen.

På dette stadiet kunne jeg skru sammen de to modulene ved hjelp av to kabinettskruer. Nå kunne jeg se den endelige formen på den kombinerte bar-top-modulen!

Neste trinn var ruting av kantene på panelene. For dette demonterte jeg enheten igjen. Jeg kuttet også ut hullet for strøminntaket og bryteren. For dette merket jeg først hullet, boret deretter hjørner med en liten trebit og til slutt skar jeg ut det gjenværende materialet ved hjelp av en spiralsag.

Jeg monterte deretter enheten igjen og limte hvert stykke sammen denne gangen. Siden jeg også brukte braketter, trengte jeg ikke å bruke klemmer for å holde brikkene sammen.

Nå som enheten var i sin endelige form, klippet jeg ut skjermpanelet og satte det på plass, og arbeidet med sandpapir til det passet godt. Da jeg var fornøyd med passformen sprang jeg den ut og brukte et stikksag til å skjære ut hullet for at skjermen skulle passe til det synlige skjermområdet. Dette gjorde jeg i stand til å teste skjermen på plass ved hjelp av noen braketter for å holde skjermen løst på plass.

Jeg satte de to modulene sammen for å se hvordan det så ut og limte deretter skjermrammen på plass. For å gjøre dette la jeg til noen ekstra biter av 6 mm MDF bak skjermens surround for å sikre at den var solid og for å unngå sprekker i malingen senere.

Trinn 9: Fullfør

Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig

Når limet hadde tørket helt på displaymodulen, påførte jeg sjenerøst trefyll på alle ledd og flekker og pusset det ned med grovt sandpapir.

Jeg belegget den deretter med avvannet PVA -binding som et første tetningslag. Deretter påførte jeg flere strøk av en blanding av PVA og hvit tre/stålmaling som jeg fant i garasjen.

Disse første strøkene ble påført med en vanlig 2 pensel.

Når grunnstrøkene tørket ut, pusset jeg lett med finkornet sandpapir. Etter det la jeg til et nytt strøk hvit maling.

Da det var tørt, pusset jeg lett igjen og påførte deretter et par strøk billig spraymaling fra bokser jeg hentet i jernvarehandelen.

Før jeg gjentok prosessen for kontrollmodulen, kuttet jeg ut det øvre bakpanelet på displaymodulen. Dette panelet har et hull i det slik at jeg lettere kan bære skjermmodulen. Den fungerer også slik at de innebygde skjermhøyttalerne kan komme ut av saken.

På dette stadiet bestemte jeg meg også for å fjerne skruene fra toppanelet på kontrollmodulen og lime den på plass i stedet. For å være sikker på at jeg limte inn noen ekstra støttestykker først.

Når kontrollmodulen ble malt, brukte jeg en Dremel til å rydde opp i knapphullene og teste dem kontinuerlig for størrelse med en av knappene. Til slutt limte jeg møbelkontaktmutteren inn på baksiden av kontrollmodulene.

Jeg var rimelig fornøyd med den resulterende finishen på slutten av dette trinnet gitt mengden tid og krefter jeg brukte. Det var på ingen måte perfekt og kunne forbedres gitt mer tid i denne fasen. Det avhenger virkelig av hvilket finishnivå du vil oppnå hvor mye tid dette trinnet vil ta.

Trinn 10: Skjermmodulkomponenter

  • 19 "widescreen -skjerm med høyttalere
  • Raspberry PI 2 Single Board Computer (SBC)
  • Bringebær PI 2 -etui
  • 2Amp USB -strømadapter
  • Micro-usb-kabel
  • 3,5 mm lydkabel
  • HDMI -kabel
  • Nettstikkontakt (vannkoker)
  • Strømkoker
  • Dobbel stikkontakt

Trinn 11: Kabling av skjermmodul

Skjermmodulledninger
Skjermmodulledninger
Skjermmodulledninger
Skjermmodulledninger
Skjermmodulledninger
Skjermmodulledninger
Skjermmodulledninger
Skjermmodulledninger

Først la jeg til en base og bakpanel til skjermmodulskallet. Bakpanelet ble festet på plass ved hjelp av magnetiske låser, slik at det enkelt kan fjernes for rask tilgang til komponentene.

Jeg koblet deretter til en strømbryter til en dobbel stikkontakt for å drive PI og skjerm. Jeg loddet strømledningene til bryteren og slev kablene med varmekrympende rør. Hvis du ikke er helt komfortabel med denne delen, får du hjelp fra noen kvalifiserte. Ikke ta noen risiko med strømledninger.

Etter at jeg festet bryteren sikkert til saken, plasserte jeg skjermen på plass. Gitt den allerede tette kampen, var et par ekstra plastbraketter alt som var nødvendig for å sikre skjermen på plass.

Deretter koblet jeg til en USB -strømadapter for PI og en vannkoker til skjermen. Det gjensto bare å koble til lyd- og videosignalene til skjermen.

Siden skjermen ikke har noen HDMI-in, brukte jeg en HDMI til DVI-adapter. Lyd ble levert til de innebygde skjermhøyttalerne via en 3,5 mm lydkabel fra PI. Med bakpanelet på og lydinnstillinger på maks er lydvolumet greit, men ikke høyt. Jeg kan legge til høyttalere og en miniforsterker i en fremtidig oppdatering.

Til slutt koblet jeg en USB -hub til PI og kunne la testen av den fullt operative skjermmodulen begynne.

Trinn 12: Sluttmontering 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

Den siste jobben før sluttmontering var å koble til igjen og montere kontrollmodulen etter maling. Dette gikk ganske greit bortsett fra å bryte en ledning som måtte loddes på nytt.

Før jeg kombinerte kontroll- og displaymodulene, kuttet jeg ut et par skiver med klar, selvklebende kontaktfilm for å unngå at møbelkontaktfatene som stakk ut fra kontrollmodulen riper på displaymodulens lakk.

Det var da bare en enkel oppgave å plassere modulene og skru dem sammen. På dette stadiet er bar-top-enheten fullstendig komplett og klar til handling. Det ser ut til at dette vil være den foretrukne konfigurasjonen, så jeg trenger ikke å konstruere stativmodulen på en stund i det minste. Hvis og når jeg gjør det, oppdaterer jeg dette innlegget. Selve stativmodulen skal være den enkleste av alle. Det er i utgangspunktet et enkelt oppbevaringsskap med bolthull i toppen for å koble til bar-top-enheten.

Jeg har hatt det veldig bra med å jobbe med dette prosjektet med barna mine. Vi lærte mye og gleder oss nå til å spille mange gamle arkade- og konsollklassikere på den nye maskinen. Takk for at du leser og gi oss beskjed om hva du synes om prosjektet i kommentarene!

Anbefalt: