Innehållsförteckning:

Raspberry Pi Mobile Gaming Device: 11 steg
Raspberry Pi Mobile Gaming Device: 11 steg

Video: Raspberry Pi Mobile Gaming Device: 11 steg

Video: Raspberry Pi Mobile Gaming Device: 11 steg
Video: Android 11 On The Pi400 & Pi4 Is Great! 2024, Juli
Anonim
Raspberry Pi Mobile Gaming Device
Raspberry Pi Mobile Gaming Device

Har du någonsin velat kunna spela klassiska videospel på språng, men var inte säker på var du kan få en enhet som kan köra gamla spel, eller var de bara för dyra? Gör sedan din egen!

Detta är en dokumentation om byggandet av min Raspberry Pi Mobile Gaming Device, inspirerad av Nintendo Switch. Kostnaden är knappt $ 200 och kan köra många äldre spel med hjälp av RetroPie. RetroPie har över 30 inbyggda emulatorer, så att köra äldre spel är en vind, så länge du har ROM -skivorna!

Det var många saker jag skulle ha gjort annorlunda i det här projektet, och jag kommer att försöka dela det med dig i den här självstudien. På så sätt kan du lära av mina misstag utan att behöva göra dem själv.

Förhoppningsvis kan du använda instruktionerna i den här självstudien för att skapa din egen Raspberry Pi -spelenhet. Berätta för mig om du gör det genom att klicka på "I Made It!" i slutet av instruktionsboken.

Om du gillar det här projektet kan du också rösta på det som det är i Game Life -tävlingen. Tack!

Steg 1: Dellista

KOMPETENS

Du måste vara behändig med ett lödkolv, känna till grundläggande Python och ha lite grepp om träbearbetning.

Möjligheten att förstöra tv -spel är också ett måste (jag arbetar fortfarande med det dock …)

DELAR

1x Raspberry Pi 2 eller 3 - $ 35

1x Raspberry Pi Official 7 pekskärm - $ 75

1x Micro SD -kort (minst 8 GB, du kommer förmodligen att vilja ha mer för dina ROM -skivor!)

1x litiumjonbatteri - 3,7V 4400mAh - $ 19,95 (https://www.adafruit.com/product/354)

2x Analog 2 -axlig tum joystick - $ 5,95 (https://www.adafruit.com/product/512)

1x PowerBoost 1000 -laddare - $ 19,95 (https://www.adafruit.com/product/2465)

1x MCP3008 - 8 -kanals 10 -bitars ADC - $ 3,75 (https://www.adafruit.com/product/856)

1x Adafruit Trinket - $ 6,95 (https://www.adafruit.com/product/1500)

4x 3 mm lysdioder

Ett sortiment av taktila tryckknappar - (runda: https://www.adafruit.com/product/1009 och fyrkantiga:

Ett sortiment av ledningar, motstånd och andra små komponenter

Perf styrelse

1/4 "trä och 1/2" trä för att bygga fodralet

VERKTYG

Lödkolv

Nåltång

Wire Stripper

En lödstation/hjälpande hand kan också vara användbar.

Drill Press

Bandsåg/rullsåg

Bordsåg

Bandslipmaskin

Dremel Tool

PROGRAMVARA

RetroPie (https://retropie.org.uk)

All kod och Fritzing -scheman är tillgängliga i denna Github -fil

Du behöver också en annan dator för att ladda RetroPie och ROM på din Raspberry Pi. Den här datorn behöver Etcher.io, Win32DiskImager eller ett annat program som kan skriva RetroPie till ett SD -kort, tillsammans med den senaste Arduino IDE. Om du kör Windows måste du installera PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) för att kunna ansluta till din Raspberry Pi.

Steg 2: Breadboard dina kretsar

Jag började med att bräda mina kretsar för att se till att allt fungerade som planerat.

Jag har inkluderat schemat och koden i Github -filen i början av självstudien; dock har jag gjort några mindre ändringar som jag glömde dokumentera, så vissa saker kan ha varit annorlunda än de är nu. Koden kan användas som utgångspunkt för ditt projekt, men jag rekommenderar starkt att åtminstone läsa igenom den för att förstå den och ändra den för att möta dina specifika behov eller göra det bättre.

Alla kontroller är anslutna till 3,3v, anslutning till 5v kan skada din Raspberry Pi

Anslutning av styrenhet

Det finns totalt 12 kontrollknappar. 4 för A/B/X/Y, 4 för DPAD, en för varje Start och Select och två axelknappar. Du kanske kan ha fyra axelknappar beroende på utrymme, men de flesta RetroPie -spel som kräver axelknappar kräver bara två (tror jag …).

Knapparna är anslutna på ena sidan till 3,3v genom ett 10k -motstånd, och på samma sida är anslutna till deras respektive GPIO -stift via ett 1k -motstånd. Den andra sidan är direkt ansluten till GND (jord). Om logiken är annorlunda i din krets, se till att logiken i din kod återspeglar det! I koden jag angav kan det fungera åt båda hållen, men citera mig inte på det;)

Styrspakarna är anslutna till MCP3008 ADC (Analog to Digital Converter). Det finns 8 kanaler ena sidan, och SPI -gränssnittet på den andra. Se till att du ansluter utgångarna från joystickarna till rätt sida av ADC! Styrspakarnas X, Y och SEL (knappval) är alla anslutna till ADC. SEL -stiftet är inte analogt, men för att spara på GPIO -stift kopplade jag dem till ADC. Jag gjorde ett motstånd från SEL -stiften till 3,3v, eftersom utgången är inställd på ett flytande värde när den inte trycks, sedan kortsluten till marken när den trycks.

ADC är ansluten via 4 stift till Raspberry Pi, men vissa stift krävs inte (så vitt jag vet. Stiften i schemat har testats och fungerat bra, tillsammans med några andra). Som jag sa ovan, se till att koden speglar din hårdvara!

Strömkablar

Du måste först ladda upp koden för prylen från Arduino IDE. Öppna filen TrinketRPi.ino i Arduino IDE, välj ditt kort och port från verktygsmenyn och tryck på uppladdningsknappen.

PowerBoosts 5v -utgång är direkt ansluten till Raspberry Pi 5v GPIO -stiftet och pekskärmens 5v -stift, och marken från PowerBoost är ansluten till Pi och pekskärmens jordstift. Pynten drivs från Raspberry Pi: s 3.3v GPIO -stift.

Adafruit Trinket används för att styra kraften. Pin 0 på Trinket är ansluten till GPIO 15 (inte fysisk 15) på Raspberry Pi, och pin 2 på Trinket är ansluten till EN -stiftet på PowerBoost. Tillsammans med det är en strömknapp ansluten mellan BAT och EN på PowerBoost. När den här knappen hålls intryckt i cirka 5 sekunder (den tid det tar innan trinket startar), slås allt på. När den släpps håller spindeln stift 2 HÖG (ansluten till EN -stiftet på PowerBoost), vilket håller strömmen till systemet.

Strömknappen fungerar bara som en ON -omkopplare, eftersom jag inte var säker på hur jag skulle göra en krets som skulle låta den fungera som både på och av. Pi kan dock fortfarande stängas av från programvaran!

När Pi startar är stift 15 inställt på HIGH (Controller.py) för att meddela trinket att den är på. När Pi stängs av på något sätt går stift 15 LÅGT, vilket får Trinket att hålla strömmen i ~ 20 sekunder och sedan stänga av strömmen helt.

Jag är ledsen att säga att jag har gjort några ändringar i detta som nu ligger begravda i ett hölje, och jag är inte säker på vad jag gjorde eftersom det här projektet gjordes för ett tag sedan. Denna layout borde fungera, men testa den innan du trycker ihop den på ett otillgängligt ställe!

PowerBoosts BAT -stift är anslutet till ADC för att läsa av batterinivån. Ett 6,8k -motstånd ansluter BAT -stiftet till ADC -kanalen och ett annat 10k -motstånd ansluter BAT -stiftet till GND. Detta gör att ADC kan få batteriets utgångsspänning och approximera batterinivån. Vid laddning kommer batteriets uteffekt att vara 5v, så det finns inget sätt att veta batterinivå när den laddas med den här inställningen.

Om du vill kan du ansluta VBUS på PowerBoost på samma sätt som BAT; detta låter dig veta om batteriet laddas.

Indikatorlampor

De fyra indikatorlamporna låter dig se saker som batterinivå, volym eller skärmens ljusstyrka. Koden är bara inställd för batterinivå för tillfället.

Varje 3 mm LED är ansluten från en GPIO -stift, genom ett 100ohm -motstånd och tillbaka till marken. Mina lysdioder är gröna, se till att välja lämpliga motstånd för andra färgade lysdioder, eftersom de har olika effektkrav!

Det är det för kabeldragning! När du har testat dina kablar på en brödbräda kan du börja göra en mer permanent krets.

Steg 3: Konfigurera programvaran

Konfigurera programvaran
Konfigurera programvaran

För att ladda RetroPie på SD -kortet behöver du ett program som Etcher.io (rekommenderas) eller Win32DiskImager och RetroPie -operativsystemet från länken i början.

För att använda Etcher, sätt först in ditt micro SD -kort i din dator. Öppna Etcher och klicka på "Välj bild". Navigera till mappen där du laddade ner RetroPie, välj den och klicka på "Öppna". Klicka sedan på "Välj enhet" och välj ditt SD -kort från listan. Se till att du väljer rätt SD -kort, eftersom det raderar det! Klicka på "Flash" och vänta tills den är klar. Det kommer automatiskt att mata ut SD -kortet när det är gjort, så det är säkert att ta bort det från din dator.

Om du inte har en Raspberry Pi 3 behöver du en WiFi -dongel. En spelkontroll är användbar i detta steg, men bara ett tangentbord krävs. Sätt in ditt SD -kort i din Raspberry Pi, anslut det till en bildskärm (pekskärmen fungerar bra) och anslut ström. När RetroPie startar måste du konfigurera kontrollerna. Välj din handkontroll/tangentbord och följ instruktionerna. När du är klar navigerar du till WiFi -inställningarna i RetroPie -menyn och konfigurerar din WiFi.

Du måste också aktivera SSH. Gå tillbaka till RetroPie-menyn och välj raspi-config från listan (jag tror att det är där det är). Under gränssnitt väljer du SSH. Den kommer att fråga om du vill aktivera SSH. Välj Ja.

Du kan behöva starta om din Pi nu. När den har startats om går du tillbaka till RetroPie -menyn. Jag tror att det finns en IP -adress eller ett värdnamnalternativ som berättar för Raspberry Pi: s IP -adress. Kopiera ner detta på ett papper eller låt den här menyn vara öppen för tillfället.

På din dator måste du SSH in i din Raspberry Pi.

Om du använder Windows, ladda ner, installera och öppna PuTTY (länk i listan med delar) och ställ in rutan "Värdnamn (eller IP -adress)" på din Raspberry Pi -värdnamn, klicka sedan på "Öppna" för att starta sessionen.

På Mac och Linux kan du helt enkelt öppna en terminal och skriva

$ ssh pi@värdnamn

ersätta "värdnamn" med IP -adressen du fick på Raspberry Pi. Observera att $ inte skrivs in i terminalen, det betyder bara att detta är en ny terminalprompt.

Ange sedan

$ nano /home/pi/Controller.py

och klistra in innehållet i Controller.py -filen från Github i den. Controller.py är python -skriptet som hanterar alla kontrollingångar, till exempel joysticks och knappar.

Du måste ändra stiftnumren för att matcha dem i din maskinvara.

Tryck CTRL-X eller CMD-X och sedan Y för att spara filen. Ange sedan

$ sudo nano /etc/rc.local

ange sedan den här raden i filen:

sudo python3 /home/pi/Controller.py &

tryck sedan på CTRL-X (Windows) eller CMD-X (Mac) och sedan Y (ingen CTRL/CMD) för att spara. Detta gör att Controller.py -skriptet startas vid start.

Därefter kan du återställa din controller -konfiguration, så att du kan använda dina knappar/joysticks istället för en USB -spelkontroller.

$ sudo ~/RetroPie-Setup/retropie_setup.sh

och gå till Emulation Station -konfigurationen via

Hantera paket -> Kärnpaket -> emuleringsstation -> Konfiguration eller konfiguration / verktyg -> emuleringsstation och välj alternativet att rensa / återställa emuleringsstationens ingångskonfiguration

Nästa gång du startar om kommer din USB -kontroller inte att konfigureras längre, men du kommer att kunna konfigurera dina anpassade kontroller vid den tidpunkten.

Vid denna tidpunkt kan du ladda dina ROM -skivor på Raspberry Pi. Det finns många olika sätt att göra detta, och jag tyckte att dessa videor var de mest användbara:

Genom din webbläsare-Det här alternativet ger dig också enklare åtkomst till några andra saker i din RetroPie-installation, eftersom det ger ett webbaserat GUI för många av de uppgifter som normalt utförs via terminalen eller RetroPie textbaserade GUI.

Över ditt nätverk - Med det här alternativet kan du överföra ROM -skivor från datorns filbläddrare, vilket gör det lättare att navigera till dina filer. Det låter dig också utforska och redigera några delade mappar på RetroPie, till exempel BIOS, stänkskärmar och konfigurationsfiler.

Om du använder båda alternativen kommer du att få mer kontroll över din RetroPie -installation, men bara en behövs för att överföra ROM -skivor. Välj den som passar dig bäst.

Steg 4: Förbered Raspberry Pi och pekskärm

För det här projektet skulle utrymmet vara minimalt, så jag började med att ta bort onödiga komponenter från Raspberry Pi.

Först ut var USB- och Ethernet -portarna. Lödet på dessa kan vara svårt att ta bort, eftersom det har en hög smälttemperatur. Jag klippte bort det mesta av varje port med en plåtskärare och löste sedan av de kvarvarande delarna. Var försiktig när du tar bort dessa portar, eftersom vissa mindre komponenter lätt kan slås av Raspberry Pi (talar av erfarenhet).

En enda USB -port är ansluten (inte direkt) till Raspberry Pi: s nyligen exponerade USB -lödstift. Detta gör att den kan anslutas till fodralets sida.

USB -strömporten togs bort från pekskärmen på samma sätt.

Därefter avlödde jag GPIO -stiften. Jag hittade det enklaste sättet att göra detta genom att först klippa av den svarta plastdelen runt botten av GPIO -stiften. Detta gör att du kan avlasta varje stift separat. Jag kunde inte avlasta någon av markpinnarna på grund av högre smältpunktslödning, men de kan skäras kortare senare.

Steg 5: Skapa kretsar för kontroller

Skapa kretsar för kontroller
Skapa kretsar för kontroller
Skapa kretsar för kontroller
Skapa kretsar för kontroller

För det här steget behöver du delar av perf -kortet för att löda knapparna. Jag har funnit att perfbräda med kopparspår i linjer mellan några av hålen kan fungera bättre än perfbräda med alla hål separerade. Det är dock upp till dig vad du använder;)

Det kommer att finnas två uppsättningar med 4 knappar i diamantform för DPAD och för A/B/X/Y. Jag glömde att ta bilder av mina medan jag satte ihop det, men det borde inte vara särskilt svårt att räkna ut layouten. Mina knappar höll på att röra vid två hörn var. Start/Välj -knapparna kan lödas till individuella perf -kort, eller så kan du ansluta en till A/B/X/Y -knappens perf -kort. Axelknapparna måste båda vara lödda på sina egna individuella perf boards också.

Joystickarna i mitt fall behövde lödas till de medföljande brytbrädorna. Du har säkert redan gjort det här om det också var ditt fall:)

Lysdioderna löddes till en enda remsa av perf kartong, och det var även ADC.

Var noga med att testa kablar med en voltmätare, eftersom testning efter installation av allt i fodralet kan vara svårt!

Du kanske vill vänta innan du lödar några kablar till Raspberry Pi eller mellan perf board -sektioner tills du känner till din höljeslayout. Jag gjorde inte det och det gjorde det svårt att passa allt senare (oj).

Steg 6: Skapa fallet

Skapar fallet
Skapar fallet
Skapar fallet
Skapar fallet
Skapar fallet
Skapar fallet
Skapar fallet
Skapar fallet

Fallet är förmodligen det som tog längst tid på detta projekt. Fallet du gör kommer sannolikt att skilja sig från mitt, så jag kommer inte att ge exakta mått på någonting (plus att jag tappade layouten för fallet).

Framsidan, toppen och baksidan är gjorda av 1/4 "trä (om jag minns rätt), och sidorna och botten är gjorda av 1/2" trä.

Börja med att mäta avståndet mellan mitten av dina knappar, tillsammans med diametern på varje vid den bredaste delen av knappen. Markera dessa mått på insidan av fodralet där du ska placera dem. Du vill (nästan) alltid borra från insidan av fodralet till utsidan, eftersom botten av ett borrat hål kommer att se snyggare ut. Det hjälper till att placera ett skrotbräda bakom ditt hål under borrningen, så att det inte riv brädan.

Joystickshålen borrades först till ungefärlig storlek och slipades sedan och använde Dremel -verktyget på insidan för att runda ut dem så att joystickarna skulle passa bättre.

Det stora hålet för pekskärmen mättes från metallsektionen på pekskärmens baksida. Jag började med att borra ett hål nära ena kanten på var skärmen skulle gå, tog bort ena änden av rullremsan, satte den genom hålet och fäst den igen så att jag kunde klippa hålet. En liten outdone gjordes i det rektangulära hålet för att bandkabeln på baksidan av skärmen skulle passera igenom (bilden ovan). Jag använde Dremel -verktyget för att raka en sektion på sidan av detta hål, så att pekskärmen skulle ligga jämnt mot fodralet.

Överst på höljet borrades på ungefär samma sätt, med rektangulära hål för HDMI, A/V -uttag, USB -port och laddningsport. Raspberry Pi sitter alldeles intill toppen av fodralet, så att HDMI- och A/V -sladdar inte behövs. Jag borde nog ha använt förlängare, eftersom det passade lite.

Baksidan av fodralet har sex hål för ventilation. Dessa har ingen specifik storlek eller layout, så du kan göra ett coolt mönster med dem! Jag glömde att borra ett hål bakom PowerBoosts laddningsindikatorlampor, så jag måste hålla enheten precis så att jag kan se dem genom ventilationshålen. Du kanske vill borra ett litet hål på baksidan av fodralet så att du kan se dem!

Sidorna och botten av fodralet är hackade längs kanterna så att de går ihop och skapar en ficka för fram och baksida att sitta i.

När du har borrat/kapat alla hål kan du montera höljet. I min var allt utom baksidan limmade ihop, med baksidan skruvad på för att möjliggöra enkel åtkomst till komponenterna.

Steg 7: Avsluta elektroniken och testmontering

Avsluta elektroniken och testmontering
Avsluta elektroniken och testmontering
Avsluta elektroniken och testmontera
Avsluta elektroniken och testmontera

Vid denna tidpunkt bör du avsluta elektroniken genom att löda de återstående ledningarna mellan perfboard -sektionerna. Se till att dina ledningar har rätt längd för att komma dit de behöver gå. Gå alltid lite för länge, eftersom du kan böja trådarna något, men du kan inte sträcka dem!

Ledningar kan lödas direkt till Raspberry Pi, se bara till att du dubbelkollar placeringen innan du gör något permanent!

Jag fann att det var till hjälp att skapa en perf board -remsa som hade jord och spänning på den, så att varje perf board -sektion kunde ansluta till den istället för olika stift på Raspberry Pi eller andra sektioner.

Testa passformshål och avstånd för att se till att din layout fungerar!

Steg 8: Måla

För att måla mitt fodral valde jag en halvblank svart färg som matchade pekskärmen mycket bra. Jag tejpade av hålens insida så att jag inte skulle få färg i de områden där knapparna skulle klistras fast. Insidan behöver inte och ska inte målas, men oroa dig inte om lite kommer in.

Steg 9: Installera komponenter

Installera komponenter
Installera komponenter
Installera komponenter
Installera komponenter

För att installera knapparna skär jag små bitar av 1/4 trä som limmades på perfbrädesdelarna. Dessa limmades sedan på insidan av fodralet på sina respektive fläckar med superlim, eftersom trälim gör det svårt att hålla på plats medan den torkar.

För joystickarna gjorde jag små "avstängningar" med hjälp av pluggar och små träbitar, som sedan skruvades och/eller limmades på monteringshålen i brytbrädorna. Jag använde Gorilla superlim, eftersom det bindes snabbt och kan enkelt fästas i trä och perfbräda. En styrspakbräda fick klippas ner på ena sidan med en bandslipare för att den skulle passa bättre.

Raspberry Pi installerades på samma sätt som joystickarna, med träavstängningar fästa vid några av monteringshålen.

PowerBoost hade ett litet träblock klistrat på botten, som sedan limmades på sidan av fodralet.

Lysdioderna limmades helt enkelt direkt på fodralet. Jag fick reda på att superlimet "brände" färgen om den kom på utsidan när du installerade lysdioderna, så du kommer att vilja vara försiktig när du gör det.

Efter anslutning av batteriet tejpades det till botten av fodralet med dubbelsidig skumtejp, som verkar hålla bra.

Efter det kan du testa att den startar och fortsätta till det sista steget.

Steg 10: Avsluta

Slutför
Slutför

Nu när hårdvaran är klar kan du avsluta installationen av kontrollerna i RetroPie. Anslut först en 5v 2,5A nätadapter eller någon officiell Raspberry Pi strömadapter, eftersom ditt batteri kanske inte laddas ännu. Se till att du har minst 2,5A om din Pi är på medan du laddar den, eftersom strömmen är uppdelad mellan PowerBoost -laddningskretsen och Raspberry Pi. Om du laddar den medan Pi är avstängd, bör vilken laddare som helst fungera. Starta din Raspberry Pi genom att hålla strömbrytaren intryckt i cirka 5 sekunder. Jag fann att min inte startade när den var inkopplad av någon anledning, så du kan behöva ladda batteriet tills den gröna indikatorlampan på PowerBoost tänds (batteriet är laddat) och dra sedan ur kontakten. När RetroPie startar måste du konfigurera kontrollen igen, bara den här gången är det Python -kontrollen. När du har konfigurerat dina kontroller, se till att allt fungerar genom att starta ditt favoritspel och testa det!

Steg 11: Slutord och meriter

Grattis! Du har slutfört din alldeles egna Raspberry Pi Mobile Gaming Device! Ha kul att spela spel på språng och visa upp det för dina vänner!

Några saker jag skulle ha gjort annorlunda är:

- Använda en Arduino för kontroller istället för att koppla direkt till Raspberry Pi. Det var några gånger jag brände ut en GPIO -pin, och (jag tror) Arduino har mer stiftskydd än Pi.

- 3D -utskrift hade varit bra för ett fodral, men tyvärr har jag inte en (ännu)

- Planerade ledningarna bättre. Jag skyndade mig rätt in i det här projektet, sedan kom jag på lite sent att jag borde ha planerat lite mer:)

- Hål för laddningsstatus -lysdioder. Laddningsindikatorlamporna på PowerBoost berättar om batteriet är laddat eller inte, och jag glömde att borra ett hål så att de syns. En bra plats skulle förmodligen vara baksidan av fodralet bakom PowerBoost, eller ovanpå lysdioderna.

- Borttagningshål på baksidan. Baksidan på min sitter ganska tätt, så några hål som gör att du kan dra ut det med fingret kan vara en bra idé.

Tack och lov kunde jag avsluta det här projektet, och jag hoppas att du har eller kommer att kunna och också lära dig något om träbearbetning, programmering eller lödning.

Jag vill tacka Mr Fields för att han hjälpte mig i detta projekt. Han donerade vänligen sin tid, verkstad och trä till detta projekt. Han hjälpte mig att lära mig mer om träbearbetning och kunde vägleda mig genom processen.

Tack för att du läser denna instruerbara!

Rekommenderad: