Inhoudsopgave:

Zelfgemaakte gameconsole - "NinTIMdo RP" - Ajarnpa
Zelfgemaakte gameconsole - "NinTIMdo RP" - Ajarnpa

Video: Zelfgemaakte gameconsole - "NinTIMdo RP" - Ajarnpa

Video: Zelfgemaakte gameconsole -
Video: My 2 year old nephew has his very own roller coaster 2024, November
Anonim
Image
Image
Zelfgemaakte gameconsole
Zelfgemaakte gameconsole

Link naar webpagina met uitgebreidere uitleg, onderdelenlijst en bestanden

timlindquist.me

Dit project was om een draagbaar spelsysteem te creëren dat ook dienst kon doen als draagbare computer. Het doel was om een console te creëren die zowel functioneel als esthetisch was.

Onderdelen lijst:

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

Stap 1: Case afdrukken

Geval afdrukken
Geval afdrukken
Geval afdrukken
Geval afdrukken

Om het apparaat af te drukken, downloadt u mijn 3D-modelbestanden en stuurt u ze naar uw 3D-printer. De printer die ik gebruikte was een Prusa i3 Mk2 samen met zwart plastic filament. De afdrukkwaliteit bleek het beste te zijn bij een instelling met een gemiddelde resolutie. Zorg ervoor dat u structureel materiaal onder in het apparaat toevoegt (handgrepen zien er zonder dit slecht uit). Achterstukken werden bedrukt met de achterkant gelijk met de schotel. Voorstukken werden bedrukt met de voorkant gelijk met de schotel. Als ik nog een hoesje zou printen, zou ik een nieuwe kleur willen gebruiken, zoals atomair paars om de binnenkant te laten zien. Als je net als ik bent en een 8 inch printbed hebt om mee te werken, moet je de 4-delige versie afdrukken die wordt na het afdrukken in elkaar gezet. Als uw bed echter groot genoeg is om als één stuk te gebruiken, drukt u de voor- en achterplaat als één geheel af en vermijdt u de pijn om ze aan elkaar te plakken.

Modelbestanden:

github.com/timlindquist/Nintimdo-RP_3D_mod…

Stap 2: Montage van de behuizing

Behuizing
Behuizing
Behuizing
Behuizing

Om te monteren, verbindt u eerst de stukken rechts en links vooraan door een metalen plug in de uitlijngaten te steken. Plaats vervolgens superlijm op de verbindingen en zet de helft aan elkaar vast. Herhaal het proces voor de haves rechtsonder en links. Hierna zou je een geassembleerde voor- en achterhelft moeten hebben. Nu is het tijd om de 5 metalen afstandhouders te bevestigen voor het samenvoegen van de voor- en achterplaten. De eenvoudigste manier om dit te doen is om eerst de stand-offs op de juiste lengte te krijgen. 13 mm diepte achter 5 mm diepte voor. Maak de afstandhouders dus 18 mm of iets minder. Ik deed dit door een langere afstandhouder in een bankschroef te plaatsen en een slijper te gebruiken om de maat te verkleinen. Zorg ervoor dat u slechts één kant afslijpt, omdat u de draden aan de andere kant nodig hebt. Nadat je de juiste lengte hebt gekregen, lijm je alle kanten van de molen aan de voorkant met gewone gorillalijm en laat je het drogen. Zorg ervoor dat ze allemaal rechtop staan tijdens dit proces. Eenmaal droog schraap je de uitstekende lijm die is opgeschuimd, zodat de gezichten gelijk kunnen liggen wanneer ze in elkaar worden gezet. Kijk nu of u de achterplaat op de afstandhouders kunt plaatsen om samen te komen met de voorkant. Schroef samen door de achterplaat om vast te zetten. Lijm het scherm op door het frame te bekleden met de duelbuis Gorilla Epoxy. Ik deed te veel op toen ik dit deed en het liep over op het scherm. Gelukkig valt het mee! Klem vast en laat een tijdje drogen en bekleed de achterkant met gewone Gorilla-lijm.

**Opmerking: probeer geen dunne CA-lijm (superlijm) aan de buitenkant te krijgen, omdat dit het PLA "verbrandt" en een witte kleur afgeeft.

Stap 3: Circuits

Circuits
Circuits
Circuits
Circuits
Circuits
Circuits

Knop circuits:

Het vastleggen van alle druk op de knop wordt gedaan met behulp van een Teensy ++ 2.0. Digitale pinnen op de microcontroller worden gebruikt voor binaire drukknoppen. De analoge pinnen worden gebruikt voor knoppen die meerdere statussen hebben, zoals de joysticks. Om de digitale pinnen te bedraden, sluit u de digitale pin eenvoudig aan op de schakelaar, en laat u het andere uiteinde van de schakelaar op aarde aansluiten. Wanneer de knop wordt ingedrukt, wordt de hoogspanningspen naar beneden getrokken zodat de controller deze kan detecteren. U hoeft zich geen zorgen te maken over weerstanden, want deze zijn inbegrepen op het Teensy-bord. Om de analoge pinnen te bedraden, moet je je analoge apparaat voorinstellen met een hoge en lage spanning en een spanningsniveau lezen met in dat bereik op de analoge pin. Voor de joysticks zijn er 3 ingangen voor elke as. Lever een 5V aan een van de pinnen, GND aan een andere en de spanningsleeslijn aan de laatste. Zorg ervoor dat u dit correct aansluit, anders werkt het niet (gebruik een multimeter om te zien of de uitgangsspanning op de juiste pin verandert.) In wezen is de joystick een variabele weerstand die werkt als een spanningsdeler. De uitgangsspanning op de leespin zal variëren tussen 0 en 5V, afhankelijk van de positie van de joysticks. (Meestal bevinden de bias 5V en GND zich op de buitenste invoerpinnen van de joystick en de middelste is uw leespin voor variabele spanning. Als 5V en GND anders zijn dan de mijne, worden uw bedieningselementen omgekeerd, dit kan worden opgelost in software of opnieuw bedraden).

Vermogensschakeling:

De driecellige Anker-batterij levert stroom aan het hele apparaat. Om het apparaat aan/uit te zetten, wordt de uitgang van de batterijregelaar aangesloten op een schakelaar en vervolgens op Raspberry Pi. Omdat het apparaat tot 2A kan trekken, kan een eenvoudige 250mA-tuimelschakelaar de huidige behoefte niet aan. In plaats daarvan kunt u de schakelaar gebruiken om de poortspanning op een PMOS-transistor te regelen om het doel van een schakelaar te dienen. Sluit de 5V van de batterij aan op de bron van een PMOS-transistor en de schakelaar. Het andere uiteinde van de schakelaar is aangesloten op de poort van de PMOS-transistor en op een weerstand van 10K die is aangesloten op GND (wanneer de schakelaar open is om te voorkomen dat de poort gaat zweven, wordt deze via een weerstand met GND verbonden). De afvoer is samen met de aarde aangesloten op de 5V-ingang op de Raspberry Pi. Om de batterij op te laden, hoeft u alleen maar het vrouwelijke micro-USB-breakoutboard aan te sluiten op de juiste oplaadpinnen (verlengt de invoer naar de behuizing). Deze schakelaar heb ik verborgen in de luchtinlaat aan de achterkant van het apparaat. Oorspronkelijk was ik van plan om in plaats daarvan de batterijknop het apparaat aan en uit te zetten door het een bepaalde tijd vast te houden, helaas had ik geen ruimte meer en moest ik de eenvoudige implementatie doen. Dit alternatieve ontwerp is weergegeven in het onderstaande schema.

Audioschakelingen:

Voor de audio wilde ik dat het geluid natuurlijk uit de luidsprekers zou komen (indien niet gedempt) en zou worden omgeleid naar een koptelefoon als deze is aangesloten. Gelukkig zijn veel van de vrouwelijke 3,5 mm koptelefoonaansluitingen mechanisch in staat om dit te doen. Wanneer een mannelijke stekker wordt ingestoken, buigen de luidsprekerdraden en creëren een open circuit, waardoor wordt voorkomen dat het signaal de luidsprekers bereikt. Omdat de luidsprekers een grotere belasting hebben, moet het audiosignaal worden versterkt om het te kunnen horen. Dit wordt gedaan met behulp van een stereo klasse D-versterker die ik op adafruit vond. Stel de versterker eenvoudig voor met 5V en GND. We hebben geen differentiële audio-ingangen, dus sluit de linker- en rechterluidsprekers aan op de positieve klemmen en verbind de negatieve klemmen met GND. De versterking wordt aangepast met behulp van de jumper. Ik heb de versterking op het maximum ingesteld en verander de amplitude van de uitvoeraudiosignalen via software om het volume aan te passen. Om het apparaat te dempen heb ik een NMOS-transistor die de 5V-bias regelt. Deze NMOS-transistorpoort wordt aangestuurd door de Teensy. Een probleem dat ik heb is een constant hoogfrequent geluid in de externe luidsprekers. Ik zal dit op een oscilloscoop analyseren, kan afkomstig zijn van de 5V-bias vanwege een of andere regelaar die op de batterij schakelt of de lijnen kunnen ergens RF opnemen. Zorg er ook voor dat u de rechter- en linkerlijnen verdraait om elektromagnetische interferentie (EMI) te minimaliseren.

Stap 4: Perifere circuits

Perifere schakelingen
Perifere schakelingen
Perifere schakelingen
Perifere schakelingen

Dit circuit omvat de USB-bevestigingen en LED-indicator. Bestel de print in mijn link en snijd doormidden langs de stippellijn met een lintzaag. Aan de USB-kant soldeer je alle twee vrouwelijke USB-poorten op het bord. Soldeer aan de LED-zijde de 5 LED's en 5 weerstanden in serie. 5V, GND, D+, D- kunnen worden verlengd met draden van de gedesoldeerde USB's van de Raspberry PI naar de PCB. De LED PCB kan zo geplaatst worden dat het licht door de gaatjes bovenop de kast schijnt. Sluit 5 PWM-uitgangen van de Teensy aan op de LED's samen met GND. Door de duty cycle te variëren kunt u de helderheid van de LED's wijzigen.

Koop printplaat:

Stap 5: Programmeren

Programmeren
Programmeren
Programmeren
Programmeren
Programmeren
Programmeren

tiener:

Als je het precies hetzelfde hebt aangesloten als ik, kun je gewoon de code gebruiken die ik op Github heb verstrekt. Ik zou echter aanraden om het zelf te schrijven, omdat je het systeem beter zult begrijpen en het gemakkelijk kunt manipuleren en naar wens kunt aanpassen. Programmeren is heel eenvoudig, het komt er eigenlijk op neer een heleboel if-statements te schrijven om te controleren of je knoppen zijn ingedrukt. Een handige instructieset van PJRC. U kunt de Arduino IDE gebruiken om uw code in te schrijven en te uploaden naar Teensy.

CODE:

github.com/timlindquist/Nintimdo-RP

Digitale knoppen: in dit voorbeeld moet ik controleren of digitale pin 20 is ingedrukt en vervolgens de juiste seriële joystickopdracht uitvoeren. Je kunt elke 1 tot en met 32 voor de knop kiezen, aangezien Retropie in het begin sowieso een controller-toewijzing doet. Joystick.knop (knoppen: 1-32, Ingedrukt=1 Losgelaten=0)

Analoge knoppen:

In het voorbeeld is de verticale joystick van de rechter joystick aangesloten op analoge pin 41. De functie analogRead(pin) ontvangt een spanningsniveau tussen 0 en 5V en retourneert een waarde van 0 tot 1023. Een ideale middenpositie zou overeenkomen met 2,5V of 512, dit was echter niet het geval voor mijn analoge stick, dus er moest worden afgesteld. Dit werd gedaan door middel van een hieronder getoonde remapping. Daarna moest ik controleren of de grenzen niet werden overschreden van 0 tot 1023. Ten slotte werd het analoge joystickcommando via serieel verzonden om de analoge knop Z te zijn met Joystick. Z (waarde 0 tot 1023).

Stap 6: Optioneel Dock

Optioneel Dock
Optioneel Dock
Optioneel Dock
Optioneel Dock
Optioneel Dock
Optioneel Dock

Dok:

Deze build zou niet compleet zijn zonder een dock voor opladen en eenvoudige tv-aansluiting, dus ik heb er een ontworpen in de onderstaande afbeeldingen. De 3D-modellen zijn beschikbaar met de anderen in mijn Github-pakket.

modellen:

github.com/timlindquist/Nintimdo-RP_3D_mod…

Stap 7: Resultaten

Resultaten
Resultaten
Resultaten
Resultaten
Resultaten
Resultaten
Resultaten
Resultaten

Achteraf gezien zou ik willen dat ik de HDMI-uitgang met een PCB deed in plaats van een vooraf gekochte vrouwelijke muurbevestiging. Dit zou veel ruimte hebben bespaard. In werkelijkheid moest ik de kabel in een spiraal stoppen om te voorkomen dat deze zou worden doorgesneden en de 19 draden opnieuw moesten worden gesoldeerd. Ik ben verscheurd om met een kleinere batterij te gaan omdat de celhoogte mijn beperkende factor was in de dikte van het hele apparaat. Het verminderen hiervan zou echter een negatieve invloed hebben op mijn levensduur van de batterij.

In totaal kostte dit me ongeveer $ 350 om te maken. Dit omvat niet de Raspberry Pi die ik brak toen ik probeerde de maat te verkleinen … Nog steeds blij dat ik het heb uitgeprobeerd. Het was een leuk zomerproject om te zien of ik het zo compact mogelijk kon maken en tegelijkertijd veel coole functies erin kon passen.

Aanbevolen: