Innholdsfortegnelse:

Raspberry Pi Mobile Gaming Device: 11 trinn
Raspberry Pi Mobile Gaming Device: 11 trinn

Video: Raspberry Pi Mobile Gaming Device: 11 trinn

Video: Raspberry Pi Mobile Gaming Device: 11 trinn
Video: Установите Windows 11 на Raspberry Pi 2024, Juli
Anonim
Raspberry Pi Mobile Gaming Device
Raspberry Pi Mobile Gaming Device

Har du noen gang ønsket å spille klassiske videospill mens du er på farten, men var ikke sikker på hvor du kan få en enhet som kan kjøre gamle spill, eller var de for dyre? Lag så din egen!

Dette er en dokumentasjon om bygningen av min Raspberry Pi Mobile Gaming Device, inspirert av Nintendo Switch. Kostnaden er i underkant av $ 200, og er i stand til å kjøre mange eldre spill med bruk av RetroPie. RetroPie har over 30 emulatorer innebygd, så det er lett å kjøre eldre spill, så lenge du har ROM -ene!

Det var mange ting jeg ville ha gjort annerledes i dette prosjektet, og jeg skal prøve å dele det med deg i denne opplæringen. På den måten kan du lære av mine feil uten å måtte gjøre dem selv.

Forhåpentligvis kan du bruke instruksjonene i denne opplæringen til å lage din egen Raspberry Pi -spillenhet. Hvis du gjør det, vennligst fortell meg det ved å klikke "I Made It!" på slutten av instruksjonsboken.

Hvis du liker dette prosjektet, må du stemme på det som det er i Game Life -konkurransen. Takk!

Trinn 1: Deleliste

FERDIGHETER

Du må være praktisk med et loddejern, kunne grunnleggende Python og ha litt grep i trebearbeiding.

Evnen til å ødelegge videospill er også et must (jeg jobber fortsatt med det …)

DELER

1x Raspberry Pi 2 eller 3 - $ 35

1x Raspberry Pi Official 7 berøringsskjerm - $ 75

1x Micro SD -kort (minimum 8 GB, du vil sannsynligvis ha mer til ROM -ene dine!)

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

2x analog 2 -akset tommelfinger joystick - $ 5,95 (https://www.adafruit.com/product/512)

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

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

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

4x 3 mm lysdioder

Et utvalg av taktile trykknapper - (runde: https://www.adafruit.com/product/1009 og firkantet:

Et utvalg av ledninger, motstander og andre små komponenter

Perf brett

1/4 "tre og 1/2" tre for å bygge saken

VERKTØY

Loddejern

Nåltang

Wire Stripper

En loddestasjon/hjelpende hånd kan også være nyttig.

Drill presse

Båndsag/rullesag

Bordsag

Båndsliper

Dremel Tool

PROGRAMVARE

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

All kode og Fritzing -skjema er tilgjengelig i denne Github -filen

Du trenger også en annen datamaskin for å laste RetroPie og ROM -er på din Raspberry Pi. Denne datamaskinen trenger Etcher.io, Win32DiskImager eller et annet program som kan skrive RetroPie til et SD -kort, sammen med den nyeste Arduino IDE. Hvis du kjører Windows, må du installere PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) for å SSH i Raspberry Pi.

Trinn 2: Breadboard dine kretser

Jeg begynte med å kaste ut kretsene mine for å sikre at alt fungerte som planlagt.

Jeg har inkludert skjemaene og koden i Github -filen i begynnelsen av opplæringen; Imidlertid har jeg gjort noen mindre endringer som jeg glemte å dokumentere, så noen ting kan ha vært annerledes enn de er nå. Koden kan brukes som utgangspunkt for prosjektet ditt, men jeg anbefaler på det minste å lese gjennom den for å forstå den, og endre den for å dekke dine spesifikke behov eller gjøre det bedre.

Alle kontrollene er kablet til 3,3v. Tilkobling til 5v kan skade din Raspberry Pi

Kontroller ledninger

Det er 12 kontrollknapper totalt. 4 for A/B/X/Y, 4 for DPAD, en for hver Start og Select, og to skulderknapper. Du kan kanskje ha fire skulderknapper avhengig av plass, men de fleste RetroPie -spill som krever skulderknapper krever bare to (tror jeg …).

Knappene er koblet til den ene siden til 3,3v gjennom en 10k motstand, og på samme side er de koblet til sin respektive GPIO -pinne gjennom en 1k motstand. Den andre siden er koblet direkte til GND (jord). Hvis logikken er annerledes i kretsen din, må du kontrollere at logikken i koden gjenspeiler det! I koden jeg oppga kan det fungere begge veier, men ikke siter meg om det;)

Styrespakene er koblet til MCP3008 ADC (analog til digital omformer). Det er 8 kanaler den ene siden, og SPI -grensesnittet på den andre. Sørg for at du kobler utgangene fra styrespakene til riktig side av ADC! Styrespakene X, Y og SEL (knappvalg) er alle koblet til ADC. SEL -pinnen er ikke analog, men for å spare på GPIO -pinner koblet jeg dem til ADC. Jeg ledet en motstand fra SEL -pinnene til 3,3v, ettersom utgangen er satt til en flytende verdi når den ikke trykkes, deretter korteres til bakken når den trykkes.

ADC er koblet via Raspberry Pi via 4 pinner, men visse pinner kreves ikke (så vidt jeg vet. Pinnene i skjematikken ble testet og fungerte fint, sammen med noen andre). Som jeg sa ovenfor, sørg for at koden gjenspeiler maskinvaren din!

Strømledninger

Du må først laste opp koden for trinket fra Arduino IDE. Åpne TrinketRPi.ino -filen i Arduino IDE, velg brettet og porten fra verktøymenyen, og trykk på opplastingsknappen.

PowerBoosts 5v -utgang er koblet direkte til Raspberry Pi 5v GPIO -pinnen og berøringsskjermens 5v -pinne, og bakken fra PowerBoost er koblet til Pi og berøringsskjermens bakkepinner. Prikken er drevet av Raspberry Pi's 3.3v GPIO -pin.

Adafruit Trinket brukes til å kontrollere strømmen. Pin 0 på Trinket er koblet til GPIO 15 (ikke fysisk 15) på Raspberry Pi, og pin 2 på Trinket er koblet til EN -pin på PowerBoost. Sammen med det er en strømknapp koblet mellom BAT og EN på PowerBoost. Når denne knappen trykkes og holdes inne i omtrent 5 sekunder (tiden det tar før trinket starter), slås alt på. Når den slippes, holder Trinket pin 2 HIGH (koblet til EN -pin på PowerBoost), og holder strømmen til systemet.

Strømknappen fungerer bare som en PÅ -bryter, ettersom jeg ikke var sikker på hvordan jeg skulle lage en krets som ville la den fungere både på og av. Pi kan fortsatt enkelt slås av fra programvaren!

Når Pi starter, er pin 15 satt til HIGH (Controller.py) for å varsle Trinket om at den er på. Når Pi er slått av på en eller annen måte, går pin 15 LAV, noe som får Trinket til å holde strømmen i ~ 20 sekunder og deretter slå av strømmen helt.

Jeg beklager å si at jeg har gjort noen endringer i dette som nå er begravet i et kabinett, og jeg er ikke sikker på hva jeg gjorde da dette prosjektet ble gjort for en stund siden. Denne oppsettet bør fungere, men test den før du stapper den på et utilgjengelig sted!

PowerBoosts BAT -pinne er koblet til ADC for å lese batterinivået. En 6,8k motstand kobler BAT -pinnen til ADC -kanalen, og en annen 10k motstand kobler BAT -pinnen til GND. Dette gjør at ADC kan få batteriets utgangsspenning og tilnærme batterinivået. Når du lader, vil batteriets utgang være 5v, så det er ingen måte å vite batterinivå mens det lades med dette oppsettet.

Hvis du vil, kan du koble VBUS til PowerBoost på samme måte som BAT; Dette lar deg vite om batteriet lades.

Indikatorlysdioder

De fire indikatorlampene lar deg se ting som batterinivå, volum eller lysstyrke på skjermen. Koden er bare satt opp for batterinivå for øyeblikket.

Hver 3 mm LED er koblet fra en GPIO -pin, gjennom en 100ohm motstand, og tilbake til bakken. Mine lysdioder er grønne, sørg for å velge passende motstander for andre fargede lysdioder, siden de har forskjellige strømkrav!

Det er det for ledninger! Etter at du har testet ledningene dine på et brødbrett, kan du begynne å lage en mer permanent krets.

Trinn 3: Sett opp programvaren

Sett opp programvaren
Sett opp programvaren

For å laste RetroPie på SD -kortet trenger du et program som Etcher.io (anbefalt) eller Win32DiskImager, og RetroPie -operativsystemet fra lenken i begynnelsen.

For å bruke Etcher må du først sette inn micro SD -kortet i datamaskinen. Åpne Etcher, og klikk på "Velg bilde". Naviger til mappen der du lastet ned RetroPie, velg den og klikk "Åpne". Klikk deretter "Velg stasjon", og velg SD -kortet ditt fra listen. Sørg for at du velger riktig SD -kort, da det vil slette det! Klikk "Flash" og vent til den er ferdig. Det vil automatisk kaste ut SD -kortet når det er gjort, så det er trygt å fjerne det fra datamaskinen.

Hvis du ikke har en Raspberry Pi 3, trenger du en WiFi -dongle. En spillkontroller er nyttig på dette trinnet, men bare et tastatur er nødvendig. Sett inn SD -kortet i Raspberry Pi, koble det til en skjerm (berøringsskjermen fungerer bra) og koble til strøm. Når RetroPie er startet, må du sette opp kontrollene. Velg kontrolleren/tastaturet og følg instruksjonene. Når du er ferdig, navigerer du til WiFi -innstillinger i RetroPie -menyen og konfigurerer WiFi.

Du må også aktivere SSH. Gå tilbake til RetroPie-menyen og velg raspi-config fra listen (jeg tror det er der den er). Under grensesnitt, velg SSH. Den vil spørre om du vil aktivere SSH. Velg Ja.

Du må kanskje starte Pi på nytt nå. Når den er startet på nytt, går du tilbake til RetroPie -menyen. Jeg tror det er en IP -adresse eller et vertsnavn -alternativ som vil fortelle deg Raspberry Pi's IP -adresse. Kopier dette ned på et stykke papir eller bare la denne menyen være åpen for nå.

På datamaskinen din må du SSH inn i Raspberry Pi.

Hvis du er på Windows, kan du laste ned, installere og åpne PuTTY (lenke i deleliste) og sette "Vertsnavn (eller IP -adresse)" -boksen til Raspberry Pi -vertsnavnet ditt, og deretter klikke "Åpne" for å starte økten.

På Mac og Linux kan du bare åpne en terminal og skrive

$ ssh pi@vertsnavn

erstatte "vertsnavn" med IP -adressen du fikk på Raspberry Pi. Vær oppmerksom på at $ ikke er skrevet inn i terminalen, det betyr bare at dette er en ny terminal -melding.

Deretter skriver du inn

$ nano /home/pi/Controller.py

og lim inn innholdet i Controller.py -filen fra Github inn i den. Controller.py er python -skriptet som håndterer alle kontrollinngangene, for eksempel joysticks og knapper.

Du må endre pin -tallene for å matche tallene i maskinvaren.

Trykk CTRL-X eller CMD-X og deretter Y for å lagre filen. Deretter skriver du inn

$ sudo nano /etc/rc.local

skriv deretter inn denne linjen i filen:

sudo python3 /home/pi/Controller.py &

trykk deretter CTRL-X (Windows) eller CMD-X (Mac) og deretter Y (ingen CTRL/CMD) for å lagre. Dette setter Controller.py -skriptet til å starte ved oppstart.

Deretter kan du tilbakestille kontrolleren konfigurasjon, slik at du kan bruke knappene/joysticks i stedet for en USB spillkontroller.

$ sudo ~/RetroPie-Setup/retropie_setup.sh

og gå til Emulation Station -konfigurasjonen via

Administrer pakker -> Kjernepakker -> emuleringsstasjon -> Konfigurasjon eller konfigurasjon / verktøy -> emuleringsstasjon og velg alternativet for å slette / tilbakestille emuleringsstasjonens inngangskonfigurasjon

Neste gang du starter på nytt, vil ikke USB -kontrolleren konfigureres lenger, men du vil kunne konfigurere dine egendefinerte kontroller på det tidspunktet.

På dette tidspunktet kan du laste ROM -ene dine på Raspberry Pi. Det er mange forskjellige måter å gjøre dette på, og jeg fant disse videoene som de mest nyttige:

Gjennom nettleseren din-Dette alternativet gir deg også lettere tilgang til noen andre ting i RetroPie-installasjonen din, siden det gir en nettbasert GUI for mange av oppgavene som normalt utføres gjennom terminalen eller RetroPie tekstbaserte GUI.

Over ditt nettverk - Med dette alternativet kan du overføre ROM fra datamaskinens filleser, noe som gjør det lettere å navigere til filene dine. Den lar deg også utforske og redigere noen delte mapper på RetroPie, for eksempel BIOS, sprutskjermbilder og konfigurasjonsfiler.

Ved å bruke begge alternativene vil du få mer kontroll over RetroPie -installasjonen, men bare en er nødvendig for å overføre ROM -er. Velg den som passer deg best.

Trinn 4: Forbered Raspberry Pi og berøringsskjerm

For dette prosjektet skulle det være minimalt med plass, så jeg begynte med å fjerne unødvendige komponenter fra Raspberry Pi.

Først var USB- og Ethernet -portene. Loddetinnet på disse kan være vanskelig å fjerne, da det har en høy smeltetemperatur. Jeg kuttet av det meste av hver port med en tinnklips, og deretter loddet de resterende delene av. Vær forsiktig når du fjerner disse portene, da noen mindre komponenter lett kan slås av Raspberry Pi (snakker av erfaring).

En enkelt USB -port er kablet (ikke direkte) til Raspberry Pi's nylig avslørte USB -loddestifter. Dette gjør at den kan kobles til siden av saken.

USB -strømuttaket ble fjernet fra berøringsskjermen på samme måte.

Deretter loddet jeg GPIO -pinnene. Jeg fant den enkleste måten å gjøre dette på ved å først kutte av den svarte plastdelen rundt bunnen av GPIO -pinnene. Dette lar deg løsne hver pinne separat. Jeg klarte ikke å lodde noen av jordpinnene på grunn av høyere smeltepunktslodde, men de kan kuttes kortere senere.

Trinn 5: Lag kretser for kontroller

Lag kretser for kontroller
Lag kretser for kontroller
Lag kretser for kontroller
Lag kretser for kontroller

For dette trinnet trenger du deler av perf -bord for å lodde knappene til. Jeg har funnet ut at perfbrett med kobberspor i linjer mellom noen av hullene kan fungere bedre enn perfbrett med alle hullene atskilt. Det er opp til deg hva du bruker;)

Det vil være to sett med 4 knapper i en diamantform for DPAD og for A/B/X/Y. Jeg glemte å ta bilder av meg mens jeg satte det sammen, men det burde ikke være veldig vanskelig å finne ut oppsettet. Knappene mine var omtrent ved å berøre to av hjørnene hver. Start/Velg -knappene kan loddes til individuelle perf -bord, eller du kan kanskje koble en til A/B/X/Y -knappens perf -bord. Skulderknappene må også loddes til sine egne individuelle perfbrett.

Styrespakene i mitt tilfelle måtte loddes til de inkluderte brettene. Du har sikkert allerede gjort dette hvis det var tilfellet ditt også:)

Lysdiodene ble loddet til en enkelt stripe perf -bord, og det samme var ADC.

Sørg for å teste ledninger med en voltmåler, fordi testing etter å ha installert alt i etuiet kan være vanskelig!

Det kan være lurt å vente før du lodder noen ledninger til Raspberry Pi eller mellom perfboard -seksjoner til du kjenner kabinettoppsettet. Jeg gjorde ikke det, og det gjorde det vanskelig å passe alt senere (oops).

Trinn 6: Opprette saken

Opprette saken
Opprette saken
Opprette saken
Opprette saken
Opprette saken
Opprette saken
Opprette saken
Opprette saken

Saken er sannsynligvis det som tok lengst tid på dette prosjektet. Saken du lager vil mest sannsynlig avvike fra min, så jeg kommer ikke til å gi eksakte dimensjoner på noe (pluss at jeg mistet oppsettet for saken).

Fronten, toppen og baksiden er laget av 1/4 "tre (hvis jeg husker riktig), og sidene og bunnen er laget av 1/2" tre.

Begynn med å måle avstanden mellom midten av knappene dine, sammen med diameteren på hver på den bredeste delen av knappen. Merk disse målingene på innsiden av saken der du skal plassere dem. Du vil (nesten) alltid bore fra innsiden av saken til utsiden, ettersom bunnen av et boret hull vil se penere ut. Det hjelper å plassere et skrapebrett bak hullet ditt mens du borer, slik at det ikke river brettet.

Joystick -hullene ble først boret til omtrentlig størrelse, og deretter slipt og brukt Dremel -verktøyet på innsiden for å avrunde dem slik at joystickene passet bedre.

Det store hullet for berøringsskjermen ble målt fra metalldelen på baksiden av berøringsskjermen. Jeg begynte med å bore et hull nær den ene kanten av hvor skjermen skulle gå, fjernet den ene enden av rullesagen, satte den gjennom hullet og festet den på nytt slik at jeg kunne kutte hullet. En liten overskred ble laget i det rektangulære hullet for at båndkabelen på baksiden av skjermen skulle passere gjennom (bildet ovenfor). Jeg brukte Dremel -verktøyet til å barbere en seksjon ned på siden av dette hullet, slik at berøringsskjermen ville ligge i flukt mot saken.

Toppen av saken ble boret på omtrent samme måte, med rektangulære hull for HDMI, A/V -kontakt, USB -port og ladeport. Raspberry Pi sitter rett ved siden av toppen av saken, slik at det ikke er behov for HDMI- og A/V -ledninger. Jeg burde nok ha brukt forlengere, da det passet litt.

Baksiden av saken har seks hull for ventilasjonsformål. Disse har ingen spesifikk størrelse eller oppsett, så du kan lage et kult mønster med dem! Jeg glemte å bore et hull bak PowerBoosts ladeindikatorlamper, så jeg må holde enheten akkurat slik at jeg kan se dem gjennom ventilasjonshullene. Det kan være lurt å bore et lite hull på baksiden av saken slik at du kan se dem!

Sidene og bunnen av saken er hakket langs kantene slik at de spoler sammen, og skaper en lomme for forsiden og baksiden å sitte i.

Når du har boret/kuttet alle hullene, kan du montere saken. I min ble alt bortsett fra baksiden limt sammen, med baksiden skrudd på for å gi enkel tilgang til komponentene.

Trinn 7: Fullfør elektronikken og testmonteringen

Fullfør elektronikken og testmontering
Fullfør elektronikken og testmontering
Fullfør elektronikken og testmontering
Fullfør elektronikken og testmontering

På dette tidspunktet bør du fullføre elektronikken ved å lodde de gjenværende ledningene mellom perfboard -seksjonene. Sørg for at ledningene har riktig lengde for å komme dit de trenger. Gå alltid litt for lenge, siden du kan bøye ledningene litt, men du kan ikke strekke dem!

Ledninger kan loddes direkte til Raspberry Pi, bare sørg for å dobbeltsjekke plasseringen før du gjør noe permanent!

Jeg fant ut at det var nyttig å lage en perf board strip som hadde jord og spenning på den, slik at hver perf board seksjon kunne koble til den i stedet for forskjellige pins på Raspberry Pi eller andre seksjoner.

Test hull og mellomrom for å sikre at oppsettet fungerer!

Trinn 8: Maling

For å male saken min valgte jeg en halvblank svart maling som passet veldig godt til berøringsskjermen. Jeg teipet av innsiden av hullene slik at jeg ikke skulle få maling i områdene som ville ha knapper limt på dem. Innsiden trenger ikke og bør ikke males, men ikke bekymre deg hvis det kommer litt inn.

Trinn 9: Installere komponenter

Installere komponenter
Installere komponenter
Installere komponenter
Installere komponenter

For å installere knappene, kuttet jeg små biter av 1/4 tre som ble limt til perfbrettdelene. Disse ble deretter limt på innsiden av saken på sine respektive flekker med superlim, ettersom trelim gjør det vanskelig å holde på plass mens den tørker.

For joystickene lagde jeg små "standoffs" ved hjelp av plugger og små trebiter, som deretter ble skrudd og/eller limt til monteringshullene i breakout -brettene. Jeg brukte Gorilla superlim, da det binder seg raskt og er enkelt å feste tre og perfbrett. Ett styrespak for styrespaken måtte trimmes ned på den ene siden med en beltemaskin for å få den til å passe bedre.

Raspberry Pi ble installert på lignende måte som joystickene, med avstandsstykker i tre festet til noen av monteringshullene.

PowerBoost hadde en liten treblokk limt til bunnen, som deretter ble limt til siden av saken.

Lysdiodene ble ganske enkelt limt direkte på saken. Jeg fant ut at superlimet "brant" malingen hvis den kom på utsiden når du installerte lysdiodene, så du vil være forsiktig når du gjør det.

Etter tilkobling av batteriet ble det tapet til bunnen av saken med dobbeltsidig skumtape, som ser ut til å holde godt.

Etter det kan du teste at den slår seg på og fortsette til det siste trinnet.

Trinn 10: Fullfør

Ferdig
Ferdig

Nå som maskinvaren er ferdig, kan du fullføre konfigurasjonen av kontrollene i RetroPie. Koble først til en 5v 2,5A strømadapter eller en hvilken som helst offisiell Raspberry Pi -strømadapter, ettersom batteriet ditt kanskje ikke er ladet ennå. Sørg for at du har minst 2,5A hvis Pi er på mens du lader den, ettersom strømmen er delt mellom PowerBoost -ladekretsen og Raspberry Pi. Hvis du lader den mens Pi er slått av, bør enhver lader fungere. Start Raspberry Pi ved å holde strømknappen nede i omtrent 5 sekunder. Jeg fant ut at min ikke startet mens den var plugget inn av en eller annen grunn, så det kan hende du må lade batteriet til den grønne indikatorlampen på PowerBoost lyser (batteriet er ladet), og deretter koble det fra. Når RetroPie starter, må du sette opp kontrolleren igjen, bare denne gangen vil det være Python -kontrolleren. Når du har konfigurert kontrollene dine, må du kontrollere at alt fungerer ved å starte favorittspillet ditt og teste det!

Trinn 11: Avsluttende ord og studiepoeng

Gratulerer! Du har fullført din egen Raspberry Pi Mobile Gaming Device! Ha det gøy å spille spill mens du er på farten, og vis det frem for vennene dine!

Noen få ting jeg ville gjort annerledes er:

- Bruke en Arduino for kontroller i stedet for å koble direkte til Raspberry Pi. Det var noen ganger jeg brente ut en GPIO -pinne, og (jeg tror) Arduino har mer pinnebeskyttelse enn Pi.

- 3D -utskrift ville vært fint for en sak, men dessverre har jeg ikke en (ennå)

- Planla ledningene bedre. Jeg skyndte meg rett inn i dette prosjektet, så fant jeg ut litt sent at jeg burde ha planlagt litt mer:)

- Hull for ladestatus -lysdioder. Ladeindikatorlampene på PowerBoost forteller om batteriet er ladet eller ikke, og jeg glemte å bore et hull slik at de kan sees. Et godt sted vil trolig være baksiden av saken bak PowerBoost, eller på toppen over lysdiodene.

- Hull for fjerning av bakpanel. Bakpanelet på min har en tett passform, så noen hull som lar deg trekke den ut med fingeren kan være en god idé.

Heldigvis var jeg i stand til å fullføre dette prosjektet, og jeg håper du har eller vil kunne også og lære noe om trebearbeiding, programmering eller lodding.

Jeg vil takke Mr. Fields for at han hjalp meg i dette prosjektet. Han ga vennlig tid, verksted og tre til dette prosjektet. Han hjalp meg med å lære mer om trebearbeiding, og var i stand til å veilede meg gjennom prosessen med å lage saken.

Takk for at du leser denne Instructable!

Anbefalt: