Cuprins:
- Provizii
- Pasul 1: Proiectare
- Pasul 2: Imprimați creația
- Pasul 3: Pregătirea prototipului tău
- Pasul 4: Opțional: Ridicați carcasa controlerului
- Pasul 5: Adunarea finală
- Pasul 6: Programați-vă Arduino
- Pasul 7: Joacă-ți jocurile
- Pasul 8: Lecții învățate
Video: Controlerul Go: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Îți place să joci jocuri pe telefonul tău inteligent? V-ați săturat de jocuri cu comenzi de pe ecran tactil? Urați să uitați să vă încărcați controlerul Bluetooth? Aveți nevoie de un cablu pe care l-ați cumpărat, dar nu îl folosiți niciodată?
De ce să nu-ți creezi propriul controler din mers?
Sunt sigur că am ajuns destul de târziu la joc (joc de cuvinte), dar am descoperit recent că vechiul meu smartphone era capabil să joace jocuri retro prin emulare. Când am crescut, am fost un mare fan al sistemelor Game Boy și am amintiri plăcute despre jocul de ore întregi și încordarea ochilor asupra plimbărilor lungi cu mașina, încercând cu disperare să găsesc un punct de salvare înainte ca bateria să moară sau soarele să fie prea departe de orizont ca să vezi ecranul meu. Acum pot să mă joc pe telefonul meu și să dau în nostalgie, dar cu un ecran frumos retroiluminat. Multumesc tehnologie!
Declinare de responsabilitate: emularea jocului este un subiect delicat și conturează linia pirateriei în unele cazuri. Vă rugăm să vă educați și să jucați responsabil!
Fundal:
Am decis să urmez acest proiect după ce am creat o tastatură rapidă. În timp ce învăț biblioteca de tastatură arduino și veneam cu comenzi rapide, am legat unele dintre butoanele de testare la WASD. A început imediat să lucreze cu jocurile mele pe PC și asta a făcut ca roțile să se întoarcă. În aceeași perioadă, am rămas fără spațiu pe telefon pentru cărți audio și am analizat cum să folosesc o unitate flash USB cu telefonul meu, deoarece modelul meu nu permite carduri microSD. Atunci am aflat despre OTG. OTG utilizează încărcarea de la bateria telefonului dvs. pentru a alimenta dispozitivul conectat la acesta. Aceasta include tastaturi, șoareci și unități flash pentru a numi câteva. Telefonul poate alimenta dispozitive de 5V și poate ghici ce necesită arduino micro pentru a funcționa? A fost un meci făcut în cer.
Provizii
Arduino Micro
Placă prototip
Butoane de 12 x 6 mm (am folosit comutatoare momentane tactile clasice pentru panouri de măsurare)
Fier de lipit și lipit
imprimantă 3d
Cablu de mers (OTG); Mi-am făcut-o pe a mea
Cablu de încărcare micro USB
Pasul 1: Proiectare
Am vrut ca controlerul meu să fie portabil și să ofere toate butoanele de care aveam nevoie pentru a juca jocuri până în era Super Nintendo. Aceasta însemna că aș avea nevoie de 12 butoane. Patru pentru pad-ul de direcție (d-pad) și opt pentru A, B, X, Y, Start, Select, Left Trigger și Right Trigger. Am avut, de asemenea, o cerință suplimentară că doresc să fie simetrică, astfel încât să o pot reda cu o singură mână folosind ambele mâini. Această cerință suplimentară ar putea părea ciudată, dar pentru a oferi un anumit context, trebuie să menționez că recent mă găsesc în mod regulat ținând un bebeluș care doarme și că folosesc doar o mână în timpul meu limitat de joc.
Cu cerințele definite, mi-am propus să proiectez controlerul în CAD. Personal folosesc OnShape, dar știu că mulți oameni au succes și cu Fusion360. Aș dori să strig rapid celorlalți oameni de pe acest site care își proiectează propriile creații. Este munca grea! Designul cu care am venit a fost foarte simplu, dar a durat încă multe ore pentru a fi mulțumit. Chiar dacă scriu acest lucru, observ multe îmbunătățiri pe care aș dori să le fac.
(Plănuiesc să fac doar fișierele.stl de pe Thingiverse când timpul îmi permite. Fișierele vor fi acolo, astfel încât să le pot actualiza fără să trebuiască să încărc constant fișiere aici.)
Pasul 2: Imprimați creația
Am o imprimantă Ender 3 pe care o am doar de câteva luni. Este o imprimantă excelentă pentru a începe dacă doriți să intrați în imprimarea 3D. Nu mi-am dat seama cât de mult a fost până nu mi-am măsurat părțile pentru acest proiect. Până la acest proiect, îl folosisem doar pentru a imprima mini-uri pentru jocuri de masă. Minisurile au ieșit grozav și nu mi-a păsat prea mult de dimensiuni. A fost nevoie de mai multe cuburi de calibrare și o nouă rolă de filament înainte să fiu mulțumit de rezultate.
Pasul 3: Pregătirea prototipului tău
Înainte de lipirea butoanelor pe o placă prototip am testat toate butoanele de pe o placă de testare și am testat codul meu arduino în același timp. Voi trece peste cod într-un pas ulterior.
Acum este cel mai bun moment pentru a vă tăia prototipul la dimensiune. Utilizați carcasa controlerului tipărit ca ghid și montați uscat butoanele pentru a vă asigura că totul se aliniază. Tocmai am luat niște tăieturi de sârmă și am tăiat excesul de placă, apoi am șlefuit marginile pătrat cu niște hârtie de șlefuit de 150 gr.
Cablarea pentru controler este foarte simplă, deoarece utilizăm rezistențele interne de tragere ale micro arduino. Toate butoanele merg la o intrare și la masă. Butoanele pe care le folosesc sunt comutatoare momentane tactile generice de 6 mm.
Lipirea butoanelor către arduino a fost un mic puzzle distractiv de rezolvat. Unele dintre butoane se aflau sub arduino și a trebuit să scot fire de sub el înainte de a lipi arduino pe placa prototip. Dacă te uiți atent la partea butonului plăcii, am ratat stânga și dreapta pentru pad-ul direcțional.
Pentru designul meu specific am lipit butoanele direcționale în sus și în jos (am ratat butoanele direcționale stânga și dreapta) pe placa prototip, împreună cu câteva fire foarte lungi, apoi am răsturnat placa și am lipit arduino. Nu am o diagramă pentru că am lipit butoanele unul câte unul la întâmplare (aș putea încărca unul dacă există suficient interes). După ce arduino este fixat, am întors placa înapoi pe partea butonului și am lipit restul butoanelor și firele lor.
Pasul 4: Opțional: Ridicați carcasa controlerului
Înainte de asamblarea finală este un moment bun pentru a șlefui, a umple golurile și a vopsi carcasa controlerului. Am ales să omit acest pas pentru prototipul meu, deoarece am vrut să am ceva de folosit imediat. Când inevitabil îmi îmbunătățesc designul cu ceva mai lustruit, îi voi oferi durerea pe care o merită.
Pasul 5: Adunarea finală
Acum este momentul să vă puneți toate butoanele și placa prototip completă în carcasă. Am folosit șuruburi # 4-24 x 1/2 din tablă pentru proiectarea mea. Ei fac treaba, dar nu se potrivesc la fel de bine cum mi-aș dori.
Pasul 6: Programați-vă Arduino
Poate doriți să faceți acest pas mai devreme atunci când proiectați în continuare placa sau după ce ați lipit totul pe placa prototip. Îmi place doar să am asta în propria secțiune.
Codul este foarte simplu în raport cu majoritatea programelor arduino pe care le-am văzut. Trebuie doar să atribuim fiecărui buton o valoare de tastatură, iar arduino va trece prin buclă pentru a verifica ce butoane sunt apăsate și pentru a trimite aceste informații către telefonul nostru.
Pentru cei interesați, folosesc aplicația retroArch pentru a juca jocurile mele retro. Tastele pe care le-am folosit sunt setate la aspectul implicit al tastaturii utilizat pentru retroArch.
#include #include "Keyboard.h" #define NUM_BUTTONS 12 const uint8_t BUTTON_PINS [NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // a = 'x' // b = 'z' // x = 's' // y = 'a' // umăr stâng = 'q' // umăr drept = 'w' // select = 'rshift '// start =' enter '// up =' key: up '// down =' key: down '// left =' key: left '// right =' key: right 'const char BUTTON_KEYS [NUM_BUTTONS] = {KEY_RETURN, KEY_DOWN_ARROW, KEY_UP_ARROW, KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_RIGHT_SHIFT, 'z', 'x', 's', 'a', 'q', 'w'}; Butoane Bounce * = Bounce nou [NUM_BUTTONS]; void setup () {for (int i = 0; i <NUM_BUTTONS; i ++) {butoane .attach (BUTTON_PINS , INPUT_PULLUP); butoane .interval (25); } // inițializați controlul asupra tastaturii: Keyboard.begin (); } void loop () {// verificați dacă valoarea s-a schimbat pentru (int i = 0; i <NUM_BUTTONS; i ++) {butoane .update (); if (butoane .fell ()) {Keyboard.press (BUTTON_KEYS ); } if (butoane .rose ()) {Keyboard.release (BUTTON_KEYS ); }}}
Pasul 7: Joacă-ți jocurile
Alternativ, acest controler poate fi utilizat cu un PC fără cablu OTG pentru a trimite apăsări de taste sau macrocomenzi. Am avut și un prieten care a spus că un controler de acest gen ar putea fi de asemenea util pentru desenarea tabletelor, deși nu m-am încurcat niciodată cu una.
Sper că ați găsit util acest instructabil. Mai jos este o secțiune de lecții învățate pentru cei curioși despre ceea ce am învățat în timpul procesului și despre ceea ce mi-aș fi dorit să fi făcut în mod diferit.
Pasul 8: Lecții învățate
CAD:
În trecut nu m-am încurcat prea mult cu software-ul CAD și a trebuit să învăț din mers cu acest design. Inițial am mers cu un design mai vertical, care s-ar potrivi în mâinile tale la fel ca un Wii Nunchuk. Cunoașterea mea limitată de proiectare cu forme organice a fost căderea mea. Poate ar trebui să iau Intructables în clasa sa de design CAD.
Butoane:
Butoanele pe care le-am folosit au fost mai puternice decât mi-aș dori (mai ales când încercați să împiedicați pe cineva să se trezească). Aș dori să găsesc niște butoane mai silențioase. Incorporarea arcurilor între butoane și capacele butoanelor ar face un drum lung pentru a face construcția să se simtă mai lustruită. Butoanele au prea multă libertate pentru gustul meu.
Lipire:
Sunt un novice la lipit și nu am mâini foarte ferme. Lipirea tuturor acestor fire minuscule peste tot a durat mult mai mult decât anticipasem. Dacă ar fi trebuit să fac totul din nou, aș hotărî cu siguranță unde se vor îndrepta firele mele înainte de a apuca fierul. Asta ar atenua erorile pe care le-am descoperit după fixarea arduino-ului pe placa prototip și mi-ar fi economisit timp.
Recomandat:
Brat robotizat imprimat 3D Moslty care simulează controlerul de marionetă: 11 pași (cu imagini)
Moslty 3D Robotic Arm That Mimics Puppet Controller: Sunt un student de inginerie mecanică din India și acesta este proiectul meu de studii universitare. gripper. Brațul robotizat este controlat cu
Cum se face controlerul automat de temperatură și umiditate Arduino: 3 pași
Cum se face controlerul automat de temperatură și umiditate Arduino: 1
Cum se face controlerul de direcție a motorului CC pentru biciclete electrice: 4 pași
Cum să faceți controlerul de direcție a motorului E-Bike DC: Acesta este un controler de direcție a motorului DC pentru E-Bike. În acest circuit am folosit podul MOSFET H cu canal N și zăvor SR. H Controlul circuitului podului Direcția debitului curent. Circuitul de blocare SR oferă un semnal pozitiv pe circuitul de pod H. Comp
Cum se folosește controlerul Wled RGB: 5 pași
Cum se folosește controlerul Wled RGB: Bună ziua tuturor, sper că toată lumea se descurcă absolut bine în condiții de siguranță în timpul Pandemiei. Îmi pare foarte rău că am rămas cu Work & Proiecte și multe editări încă de făcut În acest videoclip vă voi arăta Wled un controler RGB Pixel simplu care
Controlerul LED RGB: 4 pași
Controlerul LED RGB: Hello GuysΗere este un ghid destul de ușor, pentru rgb led, unde puteți seta culorile fără fir. Poate fi instalat în orice spațiu interior, cu excepția toaletei: PVideoclipul vă va învăța cum să realizați circuitul