Indholdsfortegnelse:
- Trin 1: Tilslutning af controlleren
- Trin 2: Pak ud og kør koden
- Trin 3: Konfigurer projekt 64
- Trin 4: Arduino -kode i dybden
- Trin 5: Referencer
Video: Brug en Arduino med en N64 -controller: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:31
Der er selvstudier derude til brug af en NES -controller med en Arduino, men brug af den mere komplicerede N64 -controller og dens analoge joystick har en klar appel. Hvis du har en Arduino i nærheden og ikke vil købe en Adaptoid, vil denne instruktør gøre det muligt at spille emulerede spil i Project 64 med din Ardunio og en N64 -controller. Er det svært? / Vil det beskadige mine ting? Dette ændrer ikke din controller på nogen måde, og ledningerne er ekstremt enkle, så hvis du gør alt omhyggeligt, bør der ikke være nogen risiko for din controller, og du kan til enhver tid afmontere den til brug med en N64 -konsol. behov: Arduino - $ 30 Processing 1.0 - gratisArduino Software - gratis 3 stykker ledning - gratis (jeg håber) USB -kabel
Trin 1: Tilslutning af controlleren
Den første ting du skal gøre er at slutte din Arduino til controlleren Controlleren bruger kun tre afledninger: +3,3V, signal og jord. Ser man direkte på stikket, er jorden længst til venstre, signalet er i midten, og +3,3V er til højre. Brug ledningen, tilslut jord og +3.3V til de respektive stifter på Arduino, og tilslut signalkablet til Digital 2 -stiften på Ardunio. BEMÆRK: Hvis du har anden kode på din Arduino, skal du afbryde controlleren og uploade den nye kode fra den næste side til Arduino, før du tænder den med controlleren tilsluttet. Tilslut Arduino Tilslut USB -kablet, og Arduino får strøm.
Trin 2: Pak ud og kør koden
Denne kode blev skrevet af mig, med dele af N64_Arduino -filen baseret på forsamlingskode skrevet af Andrew Brown. ZIP -arkiver: De to zip -filer herunder indeholder den kode, der er nødvendig for at køre Arduino og derefter for at fortolke de data, den sender til computeren. N64_Arduino -filen skal kompileres i Arduino IDE, og N64_Controller kører i Processing 1.0. N64_Arduino Denne PDE -fil skal uploades til din Arduino og køre uden problemer, hvis du har alt tilsluttet korrekt. Det spørger simpelthen N64 -controlleren om data om knapperne og den analoge stick og sender dem tilbage til computeren via den serielle port. Det er let nok at ændre, for eksempel kan du bruge metoderne fra denne fil til at forespørge på en controller og bruge dataene til at køre en Arduino -robot i stedet for at sende den tilbage til computeren. N64_Controller Dette er et Processing 1.0 -projekt, der tager data transmitteret af Arduino og konverterer dem til tastaturpresser, som du kan knytte til en emulator som Project 64. Du skal muligvis ændre linjen String portName = Serial.list () [1]; for at matche din Arduino skal den enten være Serial.list () [0]; Serial.list () [1]; eller Serial.list () [2]; EDIT: Tilføj "import java.awt. Robot;" "import java.awt. AWTException;" "import java.awt.event. InputEvent;" til koden, hvis du bruger Processing 1.1N64_Controller_mouse Dette er det samme som N64_Controller, bortset fra at den analoge stick styrer din mus, ikke piletasterne. A og B er henholdsvis højre og venstre klik. For at aktivere musen skal du trykke på startknappen på din controller.
Trin 3: Konfigurer projekt 64
Inden du kan bruge controlleren, skal Arduino tilsluttes og køre den kode, du downloadede i det sidste trin, og Processing 1.0 skal være åben, mens N64_Controller -programmet kører. Test det i Notesblok, tryk på A -knappen skal skrive A, B skal skrive B, osv. Så nu har du en fungerende controller (forhåbentlig), og du vil spille nogle spil. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Mappings Start PJ 64, og åbn først indstillingsmenuen (Ctrl+T). Skift inputcontrolleren til N-Rages direkte input. Åbn menuen "Konfigurer controller -plugin", og indstil kortene ved hjælp af controlleren. Start afspilning! Du skal være klar til at gå nu! Download nogle ROM'er, og begynd at nyde din homebrew N64 -adapter.
Trin 4: Arduino -kode i dybden
N64 -protokollen Bitene, der sendes til og fra N64 -controlleren på en -tråds grænsefladen, er kodet i 4 µs brede pulser. En '0' er 3 µs lav og 1 µs høj. A '1' er 1 µs lav og 3 µs høj. Arduino-koden i metoderne N64_send eller N64_receive bruger meget omhyggeligt tidsbestemt samlingskode skrevet af Andrew Brown til at bit-bang datalinjen for at kommunikere med controlleren. nop -blokke bruges til at vente de passende mængder på µs, før de poller linjen med afsendelse af data. Ved opstart sendes 0x00 til controlleren, og derefter er den eneste kommando, der bruges, 0x01 til at spørge efter controllerens status. analoge joystick -oplysninger. Dataene ville se ud som 44000000000000400044440044000444. Bitformatet er: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits analog stick position. Metoden translate_raw_data () går gennem de 32 bits og indsætter dem i struct N64_status. De første 16 bits er simple 1 eller 0, men de sidste 16 oversættes til et helt tal cirka i området (-80, 80) med for (i = 0; i <8; i ++) {N64_status.stick_x | = N64_raw_dump [16+i]? (0x80 >> i): 0; } Når dataene er i denne enkle form, er det let at gøre, hvad du vil med det. I dette tilfælde sendes det simpelthen over den serielle port i loop () -metoden som en streng af binære data med to heltal for x- og y -værdierne. De data, der sendes over den serielle port, kan se ud: 0400000000000400 63 -67, hvilket ville betyde, at der blev trykket på to knapper, og kontrolpinden var på 63, -67.
Trin 5: Referencer
Andrew Browns projekt om at oprette en gamecube til N64 -adapter med Arduino var uvurderlig under kodning til dette projekt:
Nyttige skemaer findes her: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Information om N64 -controllers proprietære protokol findes her:
Anbefalede:
Brug af infrarød sensor med Arduino: 8 trin (med billeder)
Brug af infrarød sensor med Arduino: Hvad er en infrarød (aka IR) sensor? En IR -sensor er et elektronisk instrument, der scanner IR -signaler i specifikke frekvensområder defineret af standarder og konverterer dem til elektriske signaler på sin output pin (typisk kaldet signal pin) . IR -signalet
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
Brug Cortana og en Arduino til at styre RGB -lysdioder eller Ledstrips med din stemme !: 4 trin (med billeder)
Brug Cortana og en Arduino til at styre RGB -lysdioder eller Ledstrips med din stemme !: I denne instruktive vil jeg vise dig, hvordan du kan styre din RGB -LED eller LED -strip med din stemme. Dette gøres af CoRGB -appen, som er tilgængelig gratis i Windows App Store. Denne app er en del af mit CortanaRoom -projekt. Når du er færdig med
Endnu en vejledning til brug af DIYMall RFID-RC522 og Nokia LCD5110 med en Arduino: 8 trin (med billeder)
Endnu en vejledning til brug af DIYMall RFID-RC522 og Nokia LCD5110 med en Arduino: Hvorfor følte jeg behovet for at oprette en anden instruerbar til DIYMall RFID-RC522 og Nokia LCD5110? Tja, for at fortælle dig sandheden, arbejdede jeg på et Proof of Concept engang sidste år ved hjælp af begge disse enheder og på en eller anden måde " malplaceret "