Sommario:

Usa un Arduino con un controller N64: 5 passaggi (con immagini)
Usa un Arduino con un controller N64: 5 passaggi (con immagini)

Video: Usa un Arduino con un controller N64: 5 passaggi (con immagini)

Video: Usa un Arduino con un controller N64: 5 passaggi (con immagini)
Video: Ucraino continua a divertirsi in spiaggia nonostante le bombe russe a Berdyansk 2024, Dicembre
Anonim
Usa un Arduino con un controller N64
Usa un Arduino con un controller N64

Ci sono tutorial là fuori per usare un controller NES con un Arduino, ma usare il controller N64 più complicato e il suo joystick analogico ha un certo fascino. Se hai un Arduino in giro e non vuoi acquistare un Adaptoid, questo istruibile ti consentirà di giocare a giochi emulati in Project 64 con il tuo Ardunio e un controller N64. È difficile? / Danneggerà le mie cose? Questo non modificherà in alcun modo il tuo controller e il cablaggio è estremamente semplice, quindi se fai tutto con attenzione non ci dovrebbero essere rischi per il tuo controller e puoi sganciarlo in qualsiasi momento per usarlo con una console N64. bisogno: Arduino - $ 30 Processing 1.0 - Software Arduino gratuito - 3 pezzi di filo gratuiti - Cavo USB gratuito (spero)

Passaggio 1: cablaggio del controller

Cablaggio del controller
Cablaggio del controller
Cablaggio del controller
Cablaggio del controller
Cablaggio del controller
Cablaggio del controller

La prima cosa che devi fare è collegare il tuo Arduino al controller Il controller utilizza solo tre cavi: +3,3 V, segnale e massa. Guardando direttamente la spina, la terra è più a sinistra, il segnale è al centro e +3,3 V è a destra. Usando il cavo, collega la massa e +3,3 V ai rispettivi pin sull'Ardunio e collega il cavo del segnale al pin Digital 2 sull'Ardunio. NOTA: se hai altro codice sul tuo Arduino, dovresti scollegare il controller e caricare il nuovo codice dalla pagina successiva all'Arduino prima di accenderlo con il controller collegato. Collegare l'Arduino Collegare il cavo USB e l'Arduino sarà alimentato.

Passaggio 2: scompattare ed eseguire il codice

Questo codice è stato scritto da me, con parti del file N64_Arduino basato sul codice assembly scritto da Andrew Brown. Archivi ZIP: I due file Zip sottostanti contengono il codice necessario per eseguire Arduino e quindi interpretare i dati che invia al computer. Il file N64_Arduino deve essere compilato nell'IDE Arduino e N64_Controller viene eseguito in Processing 1.0. N64_Arduino Questo file PDE dovrebbe essere caricato sul tuo Arduino ed eseguito senza intoppi se tutto è collegato correttamente. Richiede semplicemente al controller N64 i dati sui pulsanti e sullo stick analogico e li invia al computer tramite la porta seriale. È abbastanza facile da modificare, ad esempio, è possibile utilizzare i metodi di questo file per interrogare un controller e utilizzare i dati per eseguire un robot Arduino invece di ritrasmetterli al computer. N64_Controller Questo è un progetto di Processing 1.0 che prende il dati trasmessi da Arduino e li converte in tastiere che è possibile mappare su un emulatore come Project 64. Potrebbe essere necessario modificare la riga String portName = Serial.list()[1]; per abbinare il tuo Arduino, dovrebbe essere Serial.list()[0]; Serial.list()[1]; o Serial.list()[2]; EDIT: aggiungi "import java.awt. Robot;" "import java.awt. AWTException;" "import java.awt.event. InputEvent;"nel codice se stai usando Processing 1.1N64_Controller_mouse Questo è lo stesso di N64_Controller, tranne per il fatto che lo stick analogico controlla il tuo mouse, non i tasti freccia. A e B sono rispettivamente clic destro e sinistro. Per attivare il mouse, premi il pulsante di avvio sul controller.

Passaggio 3: impostare il progetto 64

Imposta progetto 64
Imposta progetto 64

Prima di poter utilizzare il controller, Arduino deve essere connesso ed eseguire il codice scaricato nell'ultimo passaggio e Processing 1.0 deve essere aperto con il programma N64_Controller in esecuzione. Provalo nel Blocco note, premendo il pulsante A dovrebbe digitare una A, B dovrebbe digitare una B, ecc. Quindi ora hai un controller funzionante (si spera) e vuoi giocare ad alcuni giochi. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key MappingsAvvia PJ 64 e apri prima il menu delle impostazioni (Ctrl+T). Cambia il controller di input sull'input diretto di N-Rage. Apri il menu "Configura controller plug-in" e imposta le mappature utilizzando il controller. Inizia a giocare! Dovresti essere pronto per partire ora! Scarica alcune ROM e inizia a goderti il tuo adattatore N64 homebrew.

Passaggio 4: codice Arduino in profondità

Codice Arduino in profondità
Codice Arduino in profondità

Il protocollo N64 I bit inviati da e verso il controller N64 sull'interfaccia a un filo sono codificati in impulsi larghi 4 µs. Uno '0' è 3 µs basso e 1 µs alto. Un '1' è 1 µs basso e 3 µs alto. Il codice Arduino nei metodi N64_send o N64_receive utilizza un codice assembly temporizzato con molta attenzione scritto da Andrew Brown per eseguire il bit-bang della linea dati per comunicare con il controller. I blocchi nop vengono utilizzati per attendere la quantità appropriata di µs prima di interrogare la linea di invio dei dati. All'avvio, viene inviato 0x00 al controller, quindi l'unico comando utilizzato è 0x01 per richiedere lo stato del controller. Codifica dati Quando i dati vengono ricevuti dopo 0x01, arrivano come 16 bit di informazioni sui pulsanti e 16 bit informazioni sul joystick analogico. I dati dovrebbero essere 44000000000000400044440044000444. Il formato dei bit è: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bit di analogico posizione del bastone. Il metodo translate_raw_data() passa attraverso i 32 bit, inserendoli nella struttura N64_status. I primi 16 bit sono semplici 1 o 0, ma gli ultimi 16 sono tradotti in un numero intero approssimativamente nell'intervallo (-80, 80) di for (i=0; i<8; i++) { N64_status.stick_x |= N64_raw_dump[16+i] ? (0x80 >> i): 0; } Dopo che i dati sono in questa forma semplice, è facile farci quello che vuoi. In questo caso, viene semplicemente inviato sulla porta seriale nel metodo loop() come una stringa di dati binari con due interi per i valori x e y. I dati inviati tramite la porta seriale potrebbero essere: 0400000000000400 63 -67 il che significherebbe che sono stati premuti due pulsanti e lo stick di controllo era a 63, -67.

Passaggio 5: riferimenti

Riferimenti
Riferimenti

Il progetto di Andrew Brown per creare un adattatore da gamecube a N64 con Arduino è stato prezioso durante la codifica per questo progetto:

Schemi utili possono essere trovati qui: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Le informazioni sul protocollo proprietario dei controller N64 possono essere trovate qui:

Consigliato: