Innehållsförteckning:

Använd en Arduino med en N64 -kontroller: 5 steg (med bilder)
Använd en Arduino med en N64 -kontroller: 5 steg (med bilder)

Video: Använd en Arduino med en N64 -kontroller: 5 steg (med bilder)

Video: Använd en Arduino med en N64 -kontroller: 5 steg (med bilder)
Video: Управляющая лампа переменного тока с реле 5 В с помощью Arduino 2024, November
Anonim
Använd en Arduino med en N64 -kontroller
Använd en Arduino med en N64 -kontroller

Det finns handledning där ute för att använda en NES -kontroller med en Arduino, men att använda den mer komplicerade N64 -kontrollen och dess analoga joystick har en bestämd överklagande. Om du har en Arduino i närheten och inte vill köpa en Adaptoid, kommer den här instruktören att göra det möjligt att spela emulerade spel i Project 64 med din Ardunio och en N64 -kontroller. Är det här svårt? / Kommer det att skada mina saker? Detta kommer inte att ändra din controller på något sätt, och kablarna är extremt enkla, så om du gör allt noggrant borde det inte vara någon risk för din controller, och du kan när som helst koppla ur den för att använda med en N64 -konsol. behöver: Arduino - $ 30 Bearbetning 1.0 - gratisArduino -programvara - gratis 3 bitar tråd - gratis (jag hoppas) USB -kabel

Steg 1: Anslutning av styrenheten

Anslutning av styrenheten
Anslutning av styrenheten
Anslutning av styrenheten
Anslutning av styrenheten
Anslutning av styrenheten
Anslutning av styrenheten

Det första du behöver göra är att ansluta din Arduino till regulatorn. Styrenheten använder bara tre ledningar: +3,3V, signal och jord. Om du tittar direkt på kontakten är marken längst till vänster, signalen är i mitten och +3.3V till höger. Använd kabeln, anslut jord och +3.3V till respektive stift på Arduino, och anslut signalkabeln till Digital 2 -stiftet på Ardunio. OBS: Om du har annan kod på din Arduino bör du koppla bort kontrollen och ladda upp den nya koden från nästa sida till Arduino innan du sätter på den med kontrollenheten ansluten. Anslut Arduino Anslut USB -kabeln och Arduino får ström.

Steg 2: Packa upp och kör koden

Denna kod skrevs av mig, med delar av N64_Arduino -filen baserad på monteringskod skriven av Andrew Brown. ZIP -arkiv: De två zip -filerna nedan innehåller den kod som behövs för att köra Arduino och sedan för att tolka data som den skickar till datorn. N64_Arduino -filen måste kompileras i Arduino IDE och N64_Controller körs i Processing 1.0. N64_Arduino Denna PDE -fil ska överföras till din Arduino och köras utan problem om du har allt korrekt anslutet. Det frågar helt enkelt N64 -styrenheten om data på knapparna och den analoga pinnen och skickar tillbaka den till datorn via den seriella porten. Det är lätt nog att modifiera, till exempel kan du använda metoderna från den här filen för att fråga en controller och använda data för att köra en Arduino -robot istället för att överföra den tillbaka till datorn. N64_Controller Detta är ett Processing 1.0 -projekt som tar data som överförs av Arduino och konverterar den till tangentbordspressar som du kan mappa till en emulator som Project 64. Du kan behöva ändra raden String portName = Serial.list () [1]; för att matcha din Arduino bör det vara antingen Serial.list () [0]; Serial.list () [1]; eller Serial.list () [2]; EDIT: Lägg till "import java.awt. Robot;" "importera java.awt. AWTException;" "importera java.awt.event. InputEvent;" till koden om du använder Processing 1.1N64_Controller_mouse Detta är samma som N64_Controller, förutom att den analoga pinnen styr din mus, inte piltangenterna. A och B är höger- och vänsterklicka. För att aktivera musen, tryck på startknappen på handkontrollen.

Steg 3: Konfigurera Project 64

Konfigurera projekt 64
Konfigurera projekt 64

Innan du kan använda handkontrollen måste Arduino vara ansluten och köra koden som du laddade ner i det sista steget, och Processing 1.0 måste vara öppen med N64_Controller -programmet igång. Testa det i Anteckningar, tryck på A -knappen för att skriva A, B ska skriva B, etc. Så nu har du en fungerande kontroller (förhoppningsvis) och du vill spela några spel. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Mappings Starta PJ 64 och öppna inställningsmenyn först (Ctrl+T). Ändra ingångskontrollen till N-Rages direkta ingång. Öppna "Configure Controller Plugin" -menyn och ställ in mappningarna med handkontrollen. Börja spela! Du borde vara redo att gå nu! Ladda ner några ROM -skivor och börja njuta av din homebrew N64 -adapter.

Steg 4: Arduino -kod i djupet

Arduino -kod i djupet
Arduino -kod i djupet

N64 -protokollet Bitarna som skickas till och från N64 -styrenheten på entrådsgränssnittet är kodade i 4 µs breda pulser. En '0' är 3 µs låg och 1 µs hög. A '1' är 1 µs låg och 3 µs hög. Arduino-koden i metoderna N64_send eller N64_receive använder mycket noggrant tidsinställd monteringskod skriven av Andrew Brown för att bit-smälla datalinjen för att kommunicera med regulatorn. nop -block används för att vänta lämpliga mängder av µs innan polling av raden för att skicka data. Vid start skickas 0x00 till handkontrollen, och därefter är det enda kommandot som används 0x01 för att söka efter kontrollerns status. analog joystickinformation. Data skulle se ut som 44000000000000400044440044000444. Bitformatet är: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bitar analog stickposition. Metoden translate_raw_data () går igenom de 32 bitarna och sätter in dem i strukturen N64_status. De första 16 bitarna är enkla 1 eller 0, men de sista 16 översätts till ett heltal ungefär i intervallet (-80, 80) med för (i = 0; i <8; i ++) {N64_status.stick_x | = N64_raw_dump [16+i]? (0x80 >> i): 0; } När uppgifterna är i denna enkla form är det enkelt att göra vad du vill med den. I det här fallet skickas det helt enkelt över serieporten i loop () -metoden som en sträng av binär data med två heltal för x- och y -värdena. Data som skickas över serieporten kan se ut: 0400000000000400 63 -67 vilket skulle innebära att två knappar trycktes in och kontrollpinnen var på 63, -67.

Steg 5: Referenser

Referenser
Referenser

Andrew Browns projekt för att skapa en gamecube till N64 -adapter med Arduino var ovärderlig under kodningen för detta projekt:

Användbara scheman hittar du här: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Information om det egna protokollet för N64 -kontroller hittar du här:

Rekommenderad: