Indholdsfortegnelse:

Brug en Arduino med en N64 -controller: 5 trin (med billeder)
Brug en Arduino med en N64 -controller: 5 trin (med billeder)

Video: Brug en Arduino med en N64 -controller: 5 trin (med billeder)

Video: Brug en Arduino med en N64 -controller: 5 trin (med billeder)
Video: 8 Cool Arduino Science Projects 2024, November
Anonim
Brug en Arduino med en N64 -controller
Brug en Arduino med en N64 -controller

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

Tilslutning af controlleren
Tilslutning af controlleren
Tilslutning af controlleren
Tilslutning af controlleren
Tilslutning af controlleren
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

Opsætning af projekt 64
Opsætning af 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

Arduino -kode i dybden
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

Referencer
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: