Innehållsförteckning:
- Steg 1: Anslutning av styrenheten
- Steg 2: Packa upp och kör koden
- Steg 3: Konfigurera Project 64
- Steg 4: Arduino -kod i djupet
- Steg 5: Referenser
Video: Använd en Arduino med en N64 -kontroller: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:48
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
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
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
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
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:
I2C / IIC LCD -skärm - Använd en SPI LCD till I2C LCD -skärmen Använd SPI till IIC -modulen med Arduino: 5 steg
I2C / IIC LCD -skärm | Använd en SPI LCD till I2C LCD -skärmen Använda SPI till IIC -modulen med Arduino: Hej killar eftersom en vanlig SPI LCD 1602 har för många trådar att ansluta så det är mycket svårt att ansluta den till arduino men det finns en modul på marknaden som kan konvertera SPI -display till IIC -display så då behöver du bara ansluta 4 ledningar
Använd Arduino för att visa motorvarvtal: 10 steg (med bilder)
Använd Arduino för att visa motorvarvtal: Denna guide beskriver hur jag använde en Arduino UNO R3, en 16x2 LCD -skärm med I2C och en LED -remsa som ska användas som motorvarvtalsmätare och växelljus i min Acura Integra -spårbil. Det är skrivet i termer av någon med viss erfarenhet eller exponering
Använd Cortana och en Arduino för att styra RGB -lysdioder eller Ledstrips med din röst !: 4 steg (med bilder)
Använd Cortana och en Arduino för att styra RGB -lysdioder eller Ledstrips med din röst !: I den här instruerbara filmen visar jag dig hur du kan styra din RGB -LED eller LED -remsa med din röst. Detta görs av CoRGB -appen som är tillgänglig gratis i Windows App Store. Denna app är en del av mitt CortanaRoom -projekt. När du är klar med
Använd HC-05 Bluetooth-modul för att inse mikro: bitkommunikation med mobiltelefon: 9 steg (med bilder)
Använd HC-05 Bluetooth-modul för att realisera mikro: bitkommunikation med mobiltelefon: I kapitlet Använd HC-06 Bluetooth-modul för att förverkliga mikro: bitkommunikation med mobiltelefon har vi pratat om hur man använder HC-06 för att förverkliga kommunikation mellan mikro: bit och mobiltelefon. Förutom HC-06 finns det en annan vanlig Bluetooth-modul
Använd HC-06 Bluetooth-modul för att inse mikro: bitkommunikation med mobiltelefon: 8 steg (med bilder)
Använd HC-06 Bluetooth-modul för att inse Micro: bitskommunikation med mobiltelefon: Många vänner runt mig som spelar micro: bit säger till mig att Bluetooth-anslutningen till micro: bit inte är stabil. Det är lätt att koppla bort. Om vi använder mikropyton kan Bluetooth inte ens tas i bruk. Innan detta problem är löst av micro: bit offic