Cuprins:

Controlerul Go: 8 pași
Controlerul Go: 8 pași

Video: Controlerul Go: 8 pași

Video: Controlerul Go: 8 pași
Video: Cum scrii când începi un caiet nou 2024, Noiembrie
Anonim
În controlerul Go
În controlerul Go
În controlerul Go
În controlerul Go
În controlerul Go
În controlerul Go

Îț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

Proiecta
Proiecta
Proiecta
Proiecta
Proiecta
Proiecta

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

Tipărește-ți creația!
Tipărește-ț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

Pregătirea prototipului tău
Pregătirea prototipului tău
Pregătirea prototipului tău
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ă

Asamblarea finala
Asamblarea finala

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

Joacă-ți jocurile!
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: