Sommario:

Console di gioco fatta in casa - "NinTIMdo RP": 7 passaggi (con immagini)
Console di gioco fatta in casa - "NinTIMdo RP": 7 passaggi (con immagini)

Video: Console di gioco fatta in casa - "NinTIMdo RP": 7 passaggi (con immagini)

Video: Console di gioco fatta in casa -
Video: Ecco alcuni dei miei giochi 🥰 #simonepedersoli #playstation #ps4 #giochi #game 2024, Novembre
Anonim
Image
Image
Console di gioco fatta in casa
Console di gioco fatta in casa

Collegamento alla pagina Web con spiegazioni più approfondite, elenco delle parti e file

timlindquist.me

Questo progetto consisteva nel creare un sistema di gioco portatile che potesse fungere anche da computer portatile. L'obiettivo era creare una console che fosse funzionale oltre che esteticamente gradevole.

Elenco delle parti:

docs.google.com/spreadsheets/d/1Ay6-aW4nAt…

Passaggio 1: stampa caso

Stampa caso
Stampa caso
Stampa caso
Stampa caso

Per stampare il dispositivo scarica i file del mio modello 3D e inviali alla tua stampante 3D. La stampante che ho usato era una Prusa i3 Mk2 insieme a un filamento di plastica nera. La qualità di stampa è risultata migliore con un'impostazione di risoluzione media. Assicurati di aggiungere del materiale strutturale al di sotto del dispositivo (le prese a mano sembreranno scadenti senza di esso). I pezzi posteriori sono stati stampati con il retro a filo con il piatto. I pezzi anteriori sono stati stampati con la faccia anteriore a filo con il piatto. Se dovessi stampare un altro caso, vorrei usare un nuovo colore come il viola atomico per mostrare gli interni. Se sei come me e hai un piano di stampa da 8 pollici con cui lavorare, dovrai stampare la versione in 4 pezzi che sarà assemblato dopo la stampa. Tuttavia, se il tuo letto è abbastanza grande da poter essere lavorato come un unico pezzo, stampa la piastra anteriore e posteriore come un'unica unità ed evita il dolore di metterli insieme.

File di modello:

github.com/timlindquist/Nintimdo-RP_3D_mod…

Passaggio 2: assemblaggio della custodia

Assemblaggio della cassa
Assemblaggio della cassa
Assemblaggio della cassa
Assemblaggio della cassa

Per assemblare prima unire i pezzi anteriori destro e sinistro inserendo un tassello metallico nei fori di allineamento. Quindi posiziona la super colla sulle giunture e fissa la metà insieme. Ripeti il processo per gli ha in basso a destra e a sinistra. Dopo questo dovresti essere lasciato con una metà anteriore e posteriore assemblate. Ora è il momento di attaccare i 5 distanziatori in metallo per unire le piastre anteriore e posteriore. Il modo più semplice per farlo è prima ottenere i distanziatori alla lunghezza corretta. Profondità 13 mm dietro Profondità 5 mm davanti. Quindi fai i distanziatori di 18 mm o leggermente meno. L'ho fatto inserendo un distanziatore più lungo in una morsa e usando una smerigliatrice per ridurre le dimensioni. Assicurati di levigare solo un lato perché avrai bisogno dei fili sull'altro. Dopo aver ottenuto la lunghezza corretta, incollare tutti i lati della smerigliatrice sulla faccia anteriore usando la normale colla per gorilla e lasciarla asciugare. Assicurati che stiano tutti in piedi durante questo processo. Una volta asciutto, raschiare l'ottima colla che si è schiumata in modo che le facce possano essere a filo una volta unite. Ora vedi se riesci a inserire la piastra posteriore sui distanziatori per unirla con la parte anteriore. Avvitare insieme attraverso la piastra posteriore per fissarlo. Incolla lo schermo rivestendo il telaio con il tubo duello Gorilla Epoxy. Ho messo troppo quando l'ho fatto ed è traboccato sullo schermo. Per fortuna si stacca! Fissare e lasciare asciugare per un po', quindi rivestire il retro con la normale colla Gorilla.

**Nota: cerca di non applicare una sottile colla CA (super colla) all'esterno poiché "brucerà" il PLA e macchierà di bianco.

Passaggio 3: circuiti

circuiti
circuiti
circuiti
circuiti
circuiti
circuiti

Circuito dei pulsanti:

L'acquisizione di tutte le pressioni dei pulsanti viene eseguita utilizzando un Teensy ++ 2.0. I pin digitali sul microcontrollore vengono utilizzati per qualsiasi pulsante binario. I pin analogici vengono utilizzati per i pulsanti che hanno più stati come i joystick. Per collegare i pin digitali è sufficiente collegare il pin digitale all'interruttore, collegare l'altra estremità dell'interruttore a terra. Quando il pulsante viene premuto, abbasserà il pin dell'alta tensione affinché il controller lo rilevi. Non devi preoccuparti dei resistori poiché sono inclusi nella scheda Teensy. Per cablare i pin analogici dovrai polarizzare il tuo dispositivo analogico con una tensione alta e bassa e leggere un livello di tensione con in quell'intervallo sul pin analogico. Per i joystick ci sono 3 ingressi per ogni asse. Fornire un 5V a uno dei pin, GND a un altro e la linea di lettura della tensione all'ultimo. Assicurati di collegarlo correttamente o non funzionerà (usa un multimetro per vedere se la tensione di uscita cambia sul pin corretto). Essenzialmente il joystick è un resistore variabile che funziona come un partitore di tensione. La tensione di uscita sul pin di lettura varierà tra 0 e 5V a seconda della posizione del joystick. (Di solito il bias 5V e GND si trovano sui pin di ingresso esterni del joystick e quello centrale sarà il pin di lettura della tensione variabile. Se 5V e GND sono diversi dai miei i tuoi controlli verranno invertiti, questo può essere risolto nel software o ricablando).

Circuito di alimentazione:

La batteria Anker a tre celle alimenta l'intero dispositivo. Per accendere/spegnere il dispositivo, l'uscita del regolatore della batteria è cablata a un interruttore e poi a Raspberry Pi. Poiché il dispositivo può assorbire fino a 2 A, un semplice interruttore a levetta da 250 mA non è in grado di gestire il fabbisogno di corrente. Invece puoi usare l'interruttore per controllare la tensione di gate su un transistor PMOS per servire allo scopo di un interruttore. Collegare i 5V della batteria alla sorgente di un transistor PMOS e all'interruttore. L'altra estremità dell'interruttore è collegata al gate del transistor PMOS e a un resistore da 10K collegato a GND (quando l'interruttore è aperto per evitare che il gate galleggi, lo collega a GND tramite il resistore). Il Drain è collegato all'ingresso 5V sul Raspberry Pi insieme alla terra. Per caricare la batteria è sufficiente collegare la scheda breakout femmina micro USB ai pin di ricarica corretti (estende l'ingresso al case). Ho nascosto questo interruttore nella presa d'aria sul retro del dispositivo. Inizialmente pensavo invece di far accendere e spegnere il dispositivo dal pulsante della batteria tenendolo premuto per una certa durata, purtroppo ho finito lo spazio e ho dovuto fare la semplice implementazione. Questo progetto alternativo è mostrato nello schema seguente.

Circuito audio:

Per l'audio volevo che il suono venisse riprodotto naturalmente dagli altoparlanti (se non disattivato) e reindirizzato alle cuffie se sono collegate. Fortunatamente, molti dei jack per cuffie da 3,5 mm femminili sono meccanicamente in grado di farlo. Quando viene inserita una spina maschio, i cavi degli altoparlanti si piegano e creano un circuito aperto, impedendo così al segnale di raggiungere gli altoparlanti. Poiché gli altoparlanti sono un carico maggiore, il segnale audio deve essere amplificato per poterlo ascoltare. Questo viene fatto usando un amplificatore stereo di classe D che ho trovato su adafruit. Basta polarizzare l'amplificatore con 5V e GND. Non abbiamo ingressi audio differenziali, quindi collega gli altoparlanti sinistro e destro ai terminali positivi e collega i terminali negativi a GND. Il guadagno viene regolato utilizzando il ponticello. Ho impostato il guadagno al massimo e sto modificando l'ampiezza dei segnali audio in uscita tramite software per regolare il volume. Per silenziare il dispositivo ho un transistor NMOS che controlla il bias 5V. Questo gate di transistor NMOS è controllato dal Teensy. Un problema che ho è un rumore ad alta frequenza costante è presente negli altoparlanti esterni. Lo analizzerò su un oscilloscopio, potrebbe provenire dal bias di 5 V a causa di alcuni cambiamenti del regolatore sulla batteria o le linee potrebbero raccogliere RF da qualche parte. Inoltre, assicurati di attorcigliare le linee destra e sinistra per ridurre al minimo le interferenze elettromagnetiche (EMI).

Passaggio 4: Circuiti periferici

Circuiti periferici
Circuiti periferici
Circuiti periferici
Circuiti periferici

Questo circuito include i supporti USB e l'indicatore LED. Ordina il PCB nel mio link e taglialo a metà lungo la linea tratteggiata usando una sega a nastro. Sul lato USB, saldare tutte le due porte USB femminili sulla scheda. Sul lato LED saldare in serie i 5 LED e le 5 resistenze. 5V, GND, D+, D-possono essere estesi utilizzando i cavi dalle USB dissaldate del Raspberry PI al PCB. Il PCB LED può essere posizionato in modo che la luce brilli attraverso i fori sulla parte superiore del case. Collega 5 uscite PWM del Teensy ai LED insieme a GND. Variando il duty cycle è possibile alterare la luminosità dei LED.

Acquista PCB:

Passaggio 5: programmazione

Programmazione
Programmazione
Programmazione
Programmazione
Programmazione
Programmazione

Adolescente:

Se lo hai cablato esattamente come me, puoi semplicemente usare il codice che ho fornito su Github. Tuttavia, ti consiglio di scriverlo tu stesso in quanto capirai meglio il sistema e sarai in grado di manipolarlo e personalizzarlo facilmente a tuo piacimento. La programmazione è molto semplice, si tratta davvero di scrivere una serie di istruzioni if per verificare se i pulsanti sono stati premuti. Un utile set di istruzioni da PJRC. Puoi usare l'IDE Arduino per scrivere il tuo codice e caricarlo su Teensy.

CODICE:

github.com/timlindquist/Nintimdo-RP

Pulsanti digitali: questo esempio mi mostra il controllo per vedere se il pin digitale 20 è stato premuto e quindi l'emissione del comando del joystick seriale corretto. Puoi scegliere da 1 a 32 per il pulsante poiché Retropie esegue comunque una configurazione di mappatura del controller all'inizio. Joystick.button(pulsanti: 1-32, Premuto=1 Rilasciato=0)

Pulsanti analogici:

Nell'esempio, il joystick destro verticale è collegato al pin analogico 41. La funzione analogRead(pin) riceve un livello di tensione compreso tra 0 e 5V e restituisce un valore compreso tra 0 e 1023. Una posizione centrale ideale corrisponderebbe a 2,5V o 512, tuttavia questo non era il caso della mia levetta analogica, quindi era necessario effettuare la regolazione. Questo è stato fatto attraverso una rimappatura mostrata di seguito. Successivamente ho dovuto verificare se i limiti non sono stati superati da 0 a 1023. Infine, il comando del joystick analogico è stato inviato tramite seriale per essere il pulsante analogico Z utilizzando Joystick. Z (valore da 0 a 1023).

Passaggio 6: Dock opzionale

Dock opzionale
Dock opzionale
Dock opzionale
Dock opzionale
Dock opzionale
Dock opzionale

Bacino:

Questa build non sarebbe completa senza un dock per la ricarica e un facile collegamento alla TV, quindi ne ho progettato uno nelle immagini qui sotto. I modelli 3D sono disponibili con gli altri nel mio pacchetto Github.

Modelli:

github.com/timlindquist/Nintimdo-RP_3D_mod…

Passaggio 7: risultati

Risultati
Risultati
Risultati
Risultati
Risultati
Risultati
Risultati
Risultati

Col senno di poi, vorrei fare la porta di uscita HDMI con un PCB invece di un supporto da parete femmina pre-acquistato. Questo avrebbe risparmiato molto spazio in realtà ho dovuto infilare il cavo in una spirale per evitare di tagliarlo e risaldare i 19 fili. Sono combattuto sull'uso di una batteria più piccola perché l'altezza della cella era il mio fattore limitante nello spessore dell'intero dispositivo. Tuttavia, la riduzione di questo avrebbe un impatto negativo sulla durata della batteria.

In totale questo mi è costato circa $ 350 da realizzare. Questo non include il lampone pi che ho rotto cercando di ridurre le dimensioni … Sono ancora felice di averlo provato. È stato un divertente progetto estivo per vedere se potevo renderlo il più compatto possibile, inserendo allo stesso tempo molte caratteristiche interessanti all'interno.

Consigliato: