Innehållsförteckning:

Modulär arkadmaskin: 12 steg
Modulär arkadmaskin: 12 steg

Video: Modulär arkadmaskin: 12 steg

Video: Modulär arkadmaskin: 12 steg
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, Juli
Anonim
Modulär arkadmaskin
Modulär arkadmaskin

Mina två pojkar och jag ville bygga en arkadmaskin men vi kunde inte bestämma vilken typ vi skulle bygga mellan ett komplett stativskåp, en bar-top eller en fight-stick-konsol för att ansluta till en TV. Till slut kom det upp för oss att vi kunde bygga alla tre som en modulär lösning med moduler som kan användas individuellt eller kombineras efter önskemål.

På grund av den enkla designen och komponentvalet är detta också en ganska billig byggnad jämfört med många hemmabasade arkadmaskinprojekt och du borde kunna uppnå för under 200 €/$ i material. Jag hade redan det mesta av träbearbetningsmaterial och elektronik runt omkring så jag har hittills spenderat mindre än 100 €.

Steg 1: Design

Design
Design
Design
Design
Design
Design

Det grundläggande designkonceptet är ett arkadsystem med två spelare som består av en uppsättning oberoende moduler som var och en har en viss individuell funktion och som också kompletterar varandra när de skruvas ihop.

  • Kontrollmodulen innehåller alla kontroller och kontrollelektronik inklusive USB -kontrollerna. Denna modul kan användas som en fight stick -stilkontroll ansluten till en konsol eller Raspberry PI.
  • Displaymodulen rymmer displayen och Raspberry PI (eller ditt val av SBC) och kan användas fristående som en "allt-i-ett" -dator eller ansluten till kontrollmodulen för att bilda en bartop-arkadenhet.
  • Stativmodulen fungerar som en lagringsenhet i fristående läge och bildar i kombination med bartop en komplett stand-up arkadmaskin.

Vi försökte hålla designen så enkel och funktionell som möjligt genom att ta några designpekar från 70- och 80 -talets vintage - bordsskivor - spel och undvika icke -funktionella element som upplyst tält och T -formning som finns i många skåp. Naturligtvis kan du ändra designen för att lägga till dessa element om så önskas.

Jag bestämde mig för en ganska klassisk knapplayout som jag tycktes komma ihåg från min ungdoms arkader med ett "rakt sex" knappkluster bredvid var och en av styrspakarna (StreetFighter2 FTW). Jag placerade Start- och Select -knapparna på frontpanelen för att tillgodose konsolemulering samt myntinmatning och pliktval. Jag placerade också en knapp på varje sida för flipperspel. Naturligtvis är du fri att ändra designen efter din egen smak och önskade inmatningsmetoder t.ex. styrbollar. viktade snurrare etc.

Jag gjorde en inledande grov konceptskiss av bar -top -enheten på papper och återskapade sedan skalkorrigerade modeller i SketchUp - se de bifogade filerna för var och en av modulerna och kombinationerna.

Jag baserade måtten kring en 19 -tums widescreen -skärm som jag köpte begagnat för € 10. Detta resulterade i en total skåpbredd på 500 mm och lämnade cirka 30 mm spel om jag skulle behöva byta bildskärm.

Kontrollera SketchUp -filerna för exakta mått på alla dimensioner. När jag skar en specifik panel eller ett hål använde jag måttverktyget i SketchUp för att mäta dimensionen i modellen innan markeringarna på byggmaterialet markerades.

Steg 2: Träverktyg och material

VARNING: ANVÄND FÖRSIKTIGHET OCH LÄMPLIG SÄKERHETSUTRUSTNING NÄR Driftsverktyg används

Verktyg

  • Skruvmejsel och skruvar
  • Bords- eller cirkelsåg
  • Kontursåg
  • Borra och diverse bitar inklusive 28 mm hålsåg för knapparna
  • Sandpapper
  • Router och rundande hörnbit

Material

  • 19 mm (3/4 ") MDF -ark
  • 6 mm (3/4 ") MDF -ark
  • Vinkelfästen (jag använde några riktigt praktiska plast - se konstruktionsfoton)
  • Träfyllmedel
  • Måla (se steget "Slutför" senare för mer information)

Steg 3: Kontrollmodulkonstruktion

Kontrollmodulkonstruktion
Kontrollmodulkonstruktion
Kontrollmodulkonstruktion
Kontrollmodulkonstruktion
Kontrollmodulkonstruktion
Kontrollmodulkonstruktion
Kontrollmodulkonstruktion
Kontrollmodulkonstruktion

Jag startade kontrollmodulen genom att skära ut sidorna från 19 mm MDF baserat på måtten från SketchUp -modellen.

Därefter klippte jag fram- och bakpanelerna. Jag markerade avfasningarna på dessa paneler genom att placera dem tätt mot sidorna och markera vinkeln med en penna och sedan foga märkena på vardera sidan med en rak kant. Jag klippte den sedan genom att se i bordsågen och avslutade med sandpapper. Jag är helt säker på att det finns ett bättre sätt att göra detta med fler verktyg och/eller bättre färdigheter, men det fungerade bra för mina behov och tog inte lång tid.

Jag klippte sedan ut de främre och sidoknapphålen och kopplade ihop alla panelerna med vinkelkonsolerna och skruvarna. Jag planerade inledningsvis att använda lim men mina tester med limning på en MDF -skärkant tycktes indikera att detta inte skulle vara tillräckligt starkt. Jag hade också redan ett gäng fästen som jag återvunnet från ett gammalt projekt;).

Jag rundade också de översta framåtvända kanterna i detta skede med routern med hörnrundningsbiten. Detta ger modulen ett snyggare utseende och en bekvämare känsla och rovar hårda kanter där dina händer naturligt ligger bredvid kontrollerna.

Därefter klippte jag ut toppen och botten från 6 mm MDF. Jag fasade den övre panelen som med de främre och bakre panelerna för att säkerställa en passform och sömlös finish. Jag fasade inte nedre panelen eftersom jag inte planerar att fylla och måla den. Istället kommer jag att använda den som en åtkomstpanel för underhåll. Jag borrade och sänkte skruvhål och borrade matchande hål i hörnfästena.

Jag demonterade sedan den bakre panelen och skar ett stort hål för regelbunden åtkomst till USB -kablarna och Raspberry PI.

Slutligen klippte jag den övre panelknappen och joystickhålen och monterade ihop igen. Jag fixade inte toppanelen på plats i detta skede eftersom jag ville hålla den lös under anslutningsprocessen.

Steg 4: Elektronikverktyg och material

OBS: Den här listan är bara nödvändig om du vill bli helt nörd på elektroniken. Du kan och förmodligen borde få alla dessa saker som en del av ett plug and play -kit (som dessa) och undvika all lödning och anpassade kablar. Efter att ha gjort detta en gång "på det hårda sättet" kommer jag definitivt att gå ner på kitvägen om jag någonsin gör ett annat skåp.

Verktyg

  • Multimeter/anslutningstestare
  • Lödkolv
  • Avbitartång
  • Pressverktyg (jag använde precis trådskäraren)

Material

  • Arduino Leonardo/Pro Micro med USB HID -joystickprofil (jag använde billiga kloner)
  • USB -hubb
  • Arkad joystick och knappar.
  • Krympkontakter som matchar din valda joystick och knappar
  • 2x Mini -brödbrädor
  • Anslutningskablar (jag använde främst Dupont -bygeltrådar)
  • Elektroniklödning (hade fortfarande min ursprungliga kolofonnsrulle från college)
  • Krympslang

Steg 5: Anslutning av styrmodul

Styrmodulens ledningar
Styrmodulens ledningar
Styrmodulens ledningar
Styrmodulens ledningar
Styrmodulens ledningar
Styrmodulens ledningar

Återigen rekommenderar jag att överväga ett plug and play -kit istället för den metod som dokumenteras här. Följ bara detta tillvägagångssätt om du:

A. Vill ha full kontroll över knapphanteringskoden på låg nivå

B. Gillar verkligen lödning och anpassade ledningar (vem gör inte)

C. Har redan verktyg och delar och/eller vill spara några dollar

D. Vill du lära dig mer om det här eller bara träna

Mina personliga motiv var en blandning av ovanstående. Ok, så här gjorde jag kabeldragningen:

Först gjorde jag adapterkablar för att ansluta krympkontakterna på knapparna till Dupont -anslutningskablarna. Jag gjorde en av dessa för mikrobrytaren i var och en av knapparna och de fyra i var och en av styrspakarna. Rop ut för att förbjuda Larry för ett utgrävning på produktionslinjen för dessa.

Jag använde sedan dessa anpassade kablar för att ansluta knapparna och joystickarna till ingångsstiften på var och en av mikrokontrollerna via brödbrädorna.

OBS: I denna design finns en separat mikrokontroller och därmed USB-kabel för varje spelare. Dela joystick- och knappmikrobrytarna i enlighet därmed mellan dem och dra båda flipperspelsknapparna till samma mikrokontroller. Kolla in bilderna som visar en utveckling genom ledningsstegen om du fastnar.

Därefter behövde jag lägga till en kabel för att skicka en signal till var och en av mikrobrytarna som sedan skulle återföra signalen till mikrokontrollens ingångsstift när knappen trycktes in. Jag använde de 4 tvinnade paren i någon Cat 5e-kabel för att ge signalen till styrspakarna genom att lödda dem alla i ena änden och fästa en Dupont-anslutningskabel ansluten till signalstiftet på mikrokontrollen.

Jag gjorde en liten daisy-chain-kabel för var och en av de 6 knappklustren och slutligen använde jag mina anpassade adapterkablar på start/select och pinball-knapparna igen alla anslutna till mikrokontrollens signalstift.

Anslutning av mikrobrytarna till mikrokontrollerna var ganska enkelt på grund av användningen av mini-breadboard och Dupont-kontakter, vilket innebar att jag enkelt kunde flytta kablarna efter behov.

Steg 6: Kontrollkod

Kontrollkod
Kontrollkod
Kontrollkod
Kontrollkod
Kontrollkod
Kontrollkod

Koden är ganska grundläggande. Jag modifierade ett gamepad -exempel från det utmärkta Arduino Joystick Library

Du kan lära dig mer om hur du kommer igång med det biblioteket från denna praktiska instruerbara.

I slutet av detta steg hade vi en fungerande 2-spelare fight-stick controller så vi firade med några rundor StreetFighter2 på min bärbara dator!

Jag planerade ursprungligen att ansluta mikrokontrollerna direkt till Raspberry PI via USB men när jag testade på den bärbara datorn fann jag att det var väldigt jobbigt att ansluta och koppla bort mikro-USB-kontakterna till mikrokontrollerna via åtkomstpanelen och så småningom bröt jag av mikro-USB-kontakt från en av mikrokontrollerna.

Lösningen på detta var att inkludera en USB -hubb i kontrollmodulen. Detta innebar att bara en enda anslutning avslöjades från kontrollmodulen och den övergripande lösningen var mycket mer robust. Med ledningen komplett lade jag till försänkta skruvhål på toppanelen och skruvade den på plats.

gamepad.ino

// Enkelt gamepad -exempel som visar hur man läser fem Arduino
// digitala stift och mappa dem till Arduino Joystick -biblioteket.
//
// De digitala stiften jordas när de trycks ned.
//
// OBS: Denna skissfil är för användning med Arduino Leonardo och
// Endast Arduino Micro.
//
// Ändrad version av originalkoden av Matthew Heironimus
// 2018-08-11
//--------------------------------------------------------------------
#omfatta
Joystick_ Joystick;
voidsetup () {
// Initiera knappnålar
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);
// Initiera joystickbiblioteket
Joystick.begin ();
Joystick.setXAxisRange (-1, 1);
Joystick.setYAxisRange (-1, 1);
}
// Knapparnas sista tillstånd
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 pin -värden
för (intindex = 0; index <12; index ++)
{
int currentButtonState =! digitalRead (pins [index]);
if (currentButtonState! = lastButtonState [index])
{
switch (pins [index]) {
case2: // UPP
if (currentButtonState == 1) {
Joystick.setYAxis (-1);
} annat {
Joystick.setYAxis (0);
}
ha sönder;
case3: // HÖGER
if (currentButtonState == 1) {
Joystick.setXAxis (1);
} annat {
Joystick.setXAxis (0);
}
ha sönder;
case4: // NED
if (currentButtonState == 1) {
Joystick.setYAxis (1);
} annat {
Joystick.setYAxis (0);
}
ha sönder;
case5: // VÄNSTER
if (currentButtonState == 1) {
Joystick.setXAxis (-1);
} annat {
Joystick.setXAxis (0);
}
ha sönder;
case6:
Joystick.setButton (0, currentButtonState);
ha sönder;
case7:
Joystick.setButton (1, currentButtonState);
ha sönder;
case8:
Joystick.setButton (2, currentButtonState);
ha sönder;
case9:
Joystick.setButton (3, currentButtonState);
ha sönder;
fall10:
Joystick.setButton (4, currentButtonState);
ha sönder;
case16:
Joystick.setButton (5, currentButtonState);
ha sönder;
fall20:
Joystick.setButton (8, currentButtonState);
ha sönder;
case21: {
Joystick.setButton (9, currentButtonState);
ha sönder;
}
}
lastButtonState [index] = currentButtonState;
}
}
fördröjning (10);
}

visa rawgamepad.ino värd med ❤ av GitHub

Steg 7: Installation av hallon PI

Raspberry PI Setup
Raspberry PI Setup

Jag rekommenderar en Pi 3 för maximal spelprestanda och kompatibilitet, men om du bara är intresserad av äldre spel skulle en lägre driven enhet som Pi Zero också vara bra. Jag använder en extra Pi 2 som jag redan hade lagt.

Det finns massor av bra resurser på webben som beskriver hur du ställer in din valda Pi eller annan SBC med olika emulatorer och frontändar. Jag personligen använder och rekommenderar RetroPie och jag tyckte att dessa - utmärkta - videor från ETA Prime var ett bra sätt att komma igång snabbt.

Steg 8: Displaymodulkonstruktion

Displaymodulkonstruktion
Displaymodulkonstruktion
Displaymodulkonstruktion
Displaymodulkonstruktion
Displaymodulkonstruktion
Displaymodulkonstruktion

Jag startade Display Module -konstruktionen med sidopanelerna, markerade och klippte ut den första från dimensioner mätt från SketchUp -filen med hjälp av det virtuella måttbandet. Jag använde sedan den första panelen som en mall för att markera den andra.

Därefter klippte jag ut den nedre bakpanelen, skruvade på några vinkelfästen och skruvade sedan fast den på sidopanelerna. I detta skede verifierade jag att min bildskärm skulle passa. Det var lite trångare än jag förväntade mig men det fanns tillräckligt med utrymme.

Jag lade sedan till den nedre frontpanelen och skar hål i den för att matcha kontrollmodulen. För att markera dessa placerade jag kontrollmodulen upp mot displaymodulen och skrev runt insidan av det befintliga hålet i kontrollmodulen.

I detta skede kunde jag skruva ihop de två modulerna med hjälp av två skåpanslutningsbultar. Nu kunde jag se den slutliga formen på den kombinerade bar-top-modulen!

Nästa steg var att dra panelernas kanter. För detta demonterade jag enheten igen. Jag klippte också ut hålet för effektinloppet och omkopplaren. För detta markerade jag först hålet, borrade sedan hörn med en liten träbit och slutligen skar jag bort det återstående materialet med en spiralsåg.

Jag återmonterade sedan enheten som limde ihop varje bit den här gången. Eftersom jag också använde konsoler behövde jag inte använda klämmor för att hålla ihop bitarna.

Nu när enheten var i sin slutliga form klippte jag ut skärmpanelen och satte den på plats, arbetade med den med sandpapper tills den passade ordentligt. När jag var nöjd med passformen drog jag ut den och använde en sticksåg för att klippa ut hålet för att displayen skulle matcha det synliga skärmområdet. Detta gjorde att jag kunde testa skärmen på plats med några fästen för att hålla monitorn löst på plats.

Jag satte ihop de två modulerna för att se hur det såg ut och limde sedan fast skärmens surround på plats. För att göra detta lade jag till några extra bitar av 6 mm MDF bakom skärmens surround för att se till att det var fast och för att undvika sprickor i färgen senare.

Steg 9: Slutför

Avsluta
Avsluta
Avsluta
Avsluta
Avsluta
Avsluta
Avsluta
Avsluta

När limmet hade torkat helt på displaymodulen applicerade jag generöst träfyllmedel på alla fogar och fläckar och slipade ner det med grovt sandpapper.

Jag belagde den sedan med urvattnad PVA -bindning som ett första tätningsskikt. Därefter applicerade jag flera lager av en blandning av PVA och vit trä/stålfärg för allmänt bruk som jag hittade i garaget.

Dessa första lager applicerades alla med en vanlig 2 pensel.

När grundrockarna torkade ut gjorde jag en lätt slipning med finkornigt sandpapper. Efter det lade jag till ytterligare ett lager vit färg.

När det var torrt slipade jag lätt igen och applicerade sedan ett par lager billig sprayfärg för allmänna ändamål från burkar som jag hämtade i järnaffären.

Innan jag upprepade processen för kontrollmodulen klippte jag ut den övre bakpanelen på displaymodulen. Den här panelen har ett hål i den så att jag lättare kan bära displaymodulen. Det fungerar också tillåter ljud för de inbyggda bildskärmshögtalarna att ta sig ur fodralet.

Vid det här stadiet bestämde jag mig också för att ta bort skruvarna från kontrollpanelens toppanel och limma på plats istället. För att se till att det var säkert limmade jag i några extra stödbitar först.

När kontrollmodulen målades använde jag en Dremel för att städa upp knapphålen för att kontinuerligt testa storlek på dem med en av knapparna. Slutligen limmade jag möbelkontaktmuttern i kontrollmodulernas baksida.

Jag var någorlunda nöjd med den resulterande finishen i slutet av detta steg med tanke på hur mycket tid och ansträngning jag lagt ner. Det var inte perfekt och kunde förbättras med mer tid under detta skede. Det beror verkligen på vilken finishnivå du vill uppnå hur mycket tid detta steg kommer att ta.

Steg 10: Displaykomponenter

  • 19 "Widescreen Monitor med högtalare
  • Raspberry PI 2 Single Board Computer (SBC)
  • Raspberry PI 2 -fodral
  • 2Amp USB -strömadapter
  • Micro-usb-kabel
  • 3,5 mm ljudkabel
  • HDMI -kabel
  • Huvudchassiuttag (typ vattenkokare)
  • Elnät i vattenkokare
  • Dubbel eluttag

Steg 11: Kabeldisplaymodul

Display -modulanslutning
Display -modulanslutning
Display -modulanslutning
Display -modulanslutning
Display -modulanslutning
Display -modulanslutning
Display -modulanslutning
Display -modulanslutning

Först lade jag till en bas och en bakre panel till bildskärmsmodulskalet. Bakpanelen fästes på plats med hjälp av magnetlås så att den enkelt kan tas bort för snabb åtkomst till komponenterna.

Jag kopplade sedan upp en strömbrytare till ett dubbeluttag för att driva PI och bildskärm. Jag lödde strömkablarna till omkopplaren och hylsade kablarna med värmekrympslang. Om du inte är helt bekväm med den här delen får du hjälp av någon kvalificerad. Ta INTE några risker med nätkablar.

Efter att jag fixerat omkopplaren ordentligt till fodralet placerade jag monitorn på plats. Med tanke på den redan täta kampen var ett par extra plastfästen allt som krävdes för att säkra skärmen på plats.

Därefter kopplade jag in en USB -strömadapter för PI och en vattenkokare till bildskärmen. Det återstod bara att ansluta ljud- och videosignalerna till bildskärmen.

Eftersom monitorn inte har någon HDMI-in använde jag en HDMI till DVI-adapter. Ljud levererades till de inbyggda bildskärmshögtalarna via en 3,5 mm ljudkabel från PI. Med bakpanelen på och ljudinställningar på max är ljudvolymen okej men inte högt. Jag kan lägga till högtalare och en miniförstärkare i en framtida uppdatering.

Slutligen anslöt jag en USB -hubb till PI: n och kunde låta testet av den fullt fungerande displaymodulen börja.

Steg 12: Slutsamling och tankar

Slutsamling och tankar
Slutsamling och tankar
Slutsamling och tankar
Slutsamling och tankar
Slutsamling och tankar
Slutsamling och tankar
Slutsamling och tankar
Slutsamling och tankar

Det sista jobbet före slutmontering var omkoppling och montering av kontrollmodulen efter målning. Detta gick ganska smidigt förutom att bryta en tråd som måste lödas om.

Innan jag kombinerade kontroll- och displaymodulerna klippte jag ut ett par skivor av klar, självhäftande kontaktfilm för att undvika att möbeltapparna som sticker ut från kontrollmodulen repar displaymodulens lack.

Det var då bara en enkel uppgift att placera modulerna och skruva ihop dem. I detta skede är bar-top-enheten helt komplett och redo för handling. Det ser ut som att detta kommer att vara den föredragna konfigurationen så jag kommer inte behöva bygga stativmodulen på ett tag åtminstone. Om och när jag gör det uppdaterar jag det här inlägget. Stand -modulen i sig borde vara den enklaste av alla. Det är i grunden ett enkelt förvaringsskåp med bulthål i toppen för att ansluta till bar-top-enheten.

Jag har haft det bra att arbeta med det här projektet med mina barn. Vi lärde oss mycket och ser nu fram emot att spela massor av gamla arkad- och konsolklassiker på den nya maskinen. Tack för att du läste och låt oss veta vad du tycker om projektet i kommentarerna!

Rekommenderad: