Cuprins:

Utilizați un Arduino cu un controler N64: 5 pași (cu imagini)
Utilizați un Arduino cu un controler N64: 5 pași (cu imagini)

Video: Utilizați un Arduino cu un controler N64: 5 pași (cu imagini)

Video: Utilizați un Arduino cu un controler N64: 5 pași (cu imagini)
Video: BTT Octopus - Heat bed configuration 2024, Iunie
Anonim
Folosiți un Arduino cu un controler N64
Folosiți un Arduino cu un controler N64

Există tutoriale pentru utilizarea unui controler NES cu un Arduino, dar utilizarea controlerului N64 mai complicat și a joystick-ului său analogic au un apel clar. Dacă aveți un Arduino în jur și nu doriți să cumpărați un Adaptoid, acest instructable vă va permite să jucați jocuri emulate în Project 64 cu Ardunio și un controler N64. Este greu? / Îmi va deteriora lucrurile? Acest lucru nu vă va modifica controlerul în niciun fel, iar cablarea este extrem de simplă, deci dacă faceți totul cu atenție, nu ar trebui să existe niciun risc pentru controlerul dvs. și îl puteți deconecta în orice moment pentru al utiliza cu o consolă N64. nevoie: Arduino - 30 $ Procesare 1.0 - gratuit Software Arduino - gratuit 3 bucăți de sârmă - gratuit (sper) cablu USB

Pasul 1: Cablarea controlerului

Cablarea controlerului
Cablarea controlerului
Cablarea controlerului
Cablarea controlerului
Cablarea controlerului
Cablarea controlerului

Primul lucru pe care trebuie să-l faceți este să vă conectați Arduino la controler Controlerul utilizează doar trei cabluri: + 3,3 V, semnal și masă. Privind direct la priză, solul este cel mai îndepărtat la stânga, semnalul este la mijloc și + 3,3V este la dreapta. Utilizând firul, conectați masa și + 3,3 V la pinii respectivi de pe Arduino și conectați cablul de semnal la pinul digital 2 de pe Ardunio. NOTĂ: Dacă aveți alt cod pe Arduino, ar trebui să deconectați controlerul și să încărcați noul cod de pe pagina următoare la Arduino înainte de al alimenta cu controlerul atașat. Conectați Arduino Conectați cablul USB și Arduino va avea putere.

Pasul 2: despachetați și rulați codul

Acest cod a fost scris de mine, cu părți din fișierul N64_Arduino bazat pe codul de asamblare scris de Andrew Brown. Arhive ZIP: Cele două fișiere Zip de mai jos conțin codul necesar pentru a rula Arduino și apoi pentru a interpreta datele pe care le trimite computerului. Fișierul N64_Arduino trebuie să fie compilat în IDE Arduino, iar N64_Controller rulează în Procesare 1.0. N64_Arduino Acest fișier PDE ar trebui să se încarce pe Arduino și să ruleze fără probleme dacă aveți totul conectat corect. Pur și simplu interogă controlerul N64 pentru date de pe butoane și stick analogic și îl trimite înapoi la computer prin portul serial. Este suficient de ușor de modificat, de exemplu, puteți utiliza metodele din acest fișier pentru a interoga un controler și a utiliza datele pentru a rula un robot Arduino în loc să îl transmiteți înapoi la computer. N64_Controller Acesta este un proiect Processing 1.0 care ia datele transmise de Arduino și le convertesc în apăsări de tastatură pe care le puteți mapa la un emulator precum Project 64. Este posibil să fie necesar să schimbați linia String portName = Serial.list () [1]; pentru a se potrivi cu Arduino, ar trebui să fie Serial.list () [0]; Serial.list () [1]; sau Serial.list () [2]; EDIT: Adăugați „import java.awt. Robot;” "import java.awt. AWTException;" „import java.awt.event. InputEvent;” în cod dacă utilizați Processing 1.1N64_Controller_mouse Acesta este același lucru cu N64_Controller, cu excepția faptului că stick-ul analogic controlează mouse-ul, nu tastele săgeți. A și B sunt clic dreapta și respectiv stânga. Pentru a activa mouse-ul, apăsați butonul Start de pe controler.

Pasul 3: Configurați proiectul 64

Configurați proiectul 64
Configurați proiectul 64

Înainte de a putea utiliza controlerul, Arduino trebuie să fie conectat și să ruleze codul pe care l-ați descărcat în ultimul pas, iar Procesarea 1.0 trebuie să fie deschisă cu programul N64_Controller rulat. Testați-l în Notepad, apăsând butonul A ar trebui să tastați A, B ar trebui să tastați B, etc. Așa că acum aveți un controler funcțional (sperăm) și doriți să jucați câteva jocuri. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Mappings Porniți PJ 64 și deschideți mai întâi meniul de setări (Ctrl + T). Schimbați controlerul de intrare la intrarea directă a lui N-Rage. Deschideți meniul „Configurați pluginul controlerului” și setați mapările folosind controlerul. Începeți să jucați! Ar trebui să fiți gata să mergeți acum! Descărcați câteva ROM-uri și începeți să vă bucurați de adaptorul homebrew N64.

Pasul 4: Cod Arduino în adâncime

Cod Arduino în adâncime
Cod Arduino în adâncime

Protocolul N64 Biții trimiși către și de la controlerul N64 de pe interfața cu un singur fir sunt codificați în impulsuri late de 4 µs. Un '0' este 3 µs scăzut și 1 µs înalt. Un '1' este 1 µs scăzut și 3 µs înalt. Codul Arduino din metodele N64_send sau N64_receive utilizează un cod de asamblare temporizat foarte atent, scris de Andrew Brown pentru a bloca linia de date pentru a comunica cu controlerul. blocurile nop sunt utilizate pentru a aștepta cantitățile adecvate de µs înainte de a interoga linia de trimitere a datelor. La pornire, 0x00 este trimis către controler, iar după aceea singura comandă utilizată este 0x01 pentru interogarea stării controlerului. Codificare date Când datele sunt primite după un 0x01, ajung ca 16 biți de informații buton și 16 biți de informații joystick analogice. Datele ar arăta ca 4400000000000000400044440044000444. Formatul biților este: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 biți de analog poziția bățului. Metoda translate_raw_data () trece prin cei 32 de biți, inserându-i în struct N64_status. Primii 16 biți sunt simpli 1 sau 0, dar ultimii 16 sunt traduși într-un număr întreg aproximativ în intervalul (-80, 80) prin for (i = 0; i <8; i ++) {N64_status.stick_x | = N64_raw_dump [16 + i]? (0x80 >> i): 0; } După ce datele sunt în această formă simplă, este ușor să faceți orice doriți cu ele. În acest caz, este pur și simplu trimis prin portul serial în metoda loop () ca un șir de date binare cu două numere întregi pentru valorile x și y. Datele trimise prin portul serial ar putea arăta astfel: 0400000000000400 63 -67 ceea ce ar însemna că s-au apăsat două butoane și butonul de control a fost la 63, -67.

Pasul 5: Referințe

Referințe
Referințe

Proiectul lui Andrew Brown de a crea un adaptor de gamecube la N64 cu Arduino a fost de neprețuit în timp ce codifica acest proiect:

Scheme utile pot fi găsite aici: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Informații despre protocolul proprietar al controlerelor N64 pot fi găsite aici:

Recomandat: