Inhoudsopgave:

Gebruik een Arduino met een N64-controller: 5 stappen (met afbeeldingen)
Gebruik een Arduino met een N64-controller: 5 stappen (met afbeeldingen)

Video: Gebruik een Arduino met een N64-controller: 5 stappen (met afbeeldingen)

Video: Gebruik een Arduino met een N64-controller: 5 stappen (met afbeeldingen)
Video: How to Control A Robot with An N64 Controller 2024, November
Anonim
Gebruik een Arduino met een N64-controller
Gebruik een Arduino met een N64-controller

Er zijn tutorials voor het gebruik van een NES-controller met een Arduino, maar het gebruik van de meer gecompliceerde N64-controller en de analoge joystick heeft een duidelijke aantrekkingskracht. Als je een Arduino in de buurt hebt en geen Adaptoid wilt kopen, maakt deze instructable het mogelijk om geëmuleerde games in Project 64 te spelen met je Ardunio en een N64-controller. Is dit moeilijk? / Zal het mijn spullen beschadigen? Dit zal uw controller op geen enkele manier wijzigen en de bedrading is uiterst eenvoudig, dus als u alles zorgvuldig doet, zou er geen risico voor uw controller moeten zijn, en u kunt hem op elk moment loskoppelen om te gebruiken met een N64-console. nodig: Arduino - $ 30 Processing 1.0 - gratis Arduino-software - gratis 3 stukjes draad - gratis (hoop ik) USB-kabel

Stap 1: Bedrading van de controller

Bedrading van de controller
Bedrading van de controller
Bedrading van de controller
Bedrading van de controller
Bedrading van de controller
Bedrading van de controller

Het eerste dat u hoeft te doen, is uw Arduino op de controller aansluiten. De controller gebruikt slechts drie kabels: +3,3 V, signaal en aarde. Als je rechtstreeks naar de stekker kijkt, is de aarde het meest links, het signaal in het midden en +3,3V rechts. Gebruik de draad om aarde en +3,3 V aan te sluiten op de respectieve pinnen op de Arduino en sluit de signaalkabel aan op de digitale 2-pin op de Ardunio. OPMERKING: als u een andere code op uw Arduino heeft, moet u de controller loskoppelen en uploaden de nieuwe code van de volgende pagina naar de Arduino voordat u hem opstart met de aangesloten controller. Sluit de Arduino aan Sluit de USB-kabel aan en de Arduino krijgt stroom.

Stap 2: Pak de code uit en voer de code uit

Deze code is door mij geschreven, met delen van het N64_Arduino-bestand gebaseerd op assembly-code geschreven door Andrew Brown. ZIP-archieven: De twee zip-bestanden hieronder bevatten de code die nodig is om de Arduino te laten werken en vervolgens om de gegevens te interpreteren die het naar de computer stuurt. Het N64_Arduino-bestand moet worden gecompileerd in de Arduino IDE, en de N64_Controller draait in Processing 1.0. N64_Arduino. Dit PDE-bestand zou naar je Arduino moeten uploaden en probleemloos moeten werken als je alles goed hebt aangesloten. Het vraagt eenvoudigweg de N64-controller om gegevens over de knoppen en analoge stick en stuurt deze terug naar de computer via de seriële poort. Het is eenvoudig genoeg om te wijzigen, u kunt bijvoorbeeld de methoden uit dit bestand gebruiken om een controller te bevragen en de gegevens te gebruiken om een Arduino-robot te laten werken in plaats van deze terug te sturen naar de computer. N64_Controller Dit is een Processing 1.0-project dat de gegevens die door de Arduino worden verzonden en converteren naar toetsenborddrukken die u kunt toewijzen aan een emulator zoals Project 64. Mogelijk moet u de regel String portName = Serial.list()[1]; om overeen te komen met uw Arduino, moet het ofwel Serial.list()[0] zijn; Serieel.lijst()[1]; of Serial.list()[2]; BEWERKEN: "import java.awt. Robot;" toevoegen "import java.awt. AWTException;" "import java.awt.event. InputEvent;"naar de code als je Processing 1.1N64_Controller_mouse gebruikt Dit is hetzelfde als N64_Controller, behalve dat de analoge stick je muis bestuurt, niet de pijltjestoetsen. A en B zijn respectievelijk rechts en links klikken. Om de muis te activeren, drukt u op de startknop op uw controller.

Stap 3: Stel project 64 in

Project opzetten 64
Project opzetten 64

Voordat u de controller kunt gebruiken, moet de Arduino zijn aangesloten en moet de code worden uitgevoerd die u in de laatste stap hebt gedownload, en moet Processing 1.0 geopend zijn terwijl het N64_Controller-programma draait. Test het uit in Kladblok, druk op de A-knop moet een A typen, B moet een B typen, enz. Dus nu heb je een werkende controller (hopelijk) en je wilt wat games spelen. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key MappingsStart PJ 64 en open eerst het instellingenmenu (Ctrl+T). Verander de ingangscontroller naar de directe ingang van N-Rage. Open het menu "Configure Controller Plugin" en stel de toewijzingen in met de controller. Begin met spelen! Je zou nu helemaal klaar moeten zijn! Download enkele ROM's en begin te genieten van je zelfgemaakte N64-adapter.

Stap 4: Arduino-code in diepte

Arduino-code in diepte
Arduino-code in diepte

Het N64-protocol De bits die van en naar de N64-controller op de eendraadsinterface worden verzonden, worden gecodeerd in pulsen van 4 µs breed. Een '0' is 3 µs laag en 1 µs hoog. Een '1' is 1 µs laag en 3 µs hoog. De Arduino-code in de methoden N64_send of N64_receive gebruikt zeer zorgvuldig getimede assemblagecode geschreven door Andrew Brown om de datalijn te bit-bangen om met de controller te communiceren. nop-blokken worden gebruikt om de juiste hoeveelheden µs te wachten voordat de regel voor het verzenden van gegevens wordt gepold. Bij het opstarten wordt 0x00 naar de controller gestuurd en daarna is het enige commando dat wordt gebruikt 0x01 om de status van de controller op te vragen. analoge joystickinformatie. De gegevens zien eruit als 44000000000000400044440044000444. Het formaat van de bits is: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits analoog stok positie. De methode translate_raw_data() doorloopt de 32 bits en voegt ze in de struct N64_status in. De eerste 16 bits zijn eenvoudig 1 of 0, maar de laatste 16 worden vertaald in een geheel getal ongeveer in het bereik (-80, 80) door for (i=0; i<8; i++) { N64_status.stick_x |= N64_raw_dump[16+i] ? (0x80 >> i): 0; } Nadat de gegevens in deze eenvoudige vorm zijn, is het gemakkelijk om ermee te doen wat je wilt. In dit geval wordt het eenvoudig via de seriële poort in de loop()-methode verzonden als een reeks binaire gegevens met twee gehele getallen voor de x- en y-waarden. De gegevens die via de seriële poort worden verzonden, kunnen er als volgt uitzien: 0400000000000400 63 -67, wat zou betekenen dat er twee knoppen werden ingedrukt en de stuurknuppel op 63, -67 stond.

Stap 5: Referenties

Referenties
Referenties

Het project van Andrew Brown om een gamecube naar N64-adapter te maken met de Arduino was van onschatbare waarde tijdens het coderen voor dit project:

Handige schema's zijn hier te vinden: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Informatie over het eigen protocol van de N64-controllers is hier te vinden:

Aanbevolen: