Inhaltsverzeichnis:

Verwenden Sie ein Arduino mit einem N64-Controller - Gunook
Verwenden Sie ein Arduino mit einem N64-Controller - Gunook

Video: Verwenden Sie ein Arduino mit einem N64-Controller - Gunook

Video: Verwenden Sie ein Arduino mit einem N64-Controller - Gunook
Video: N64-inspired Arduino + nRF24L01 remote controller 2024, Juni
Anonim
Verwenden Sie ein Arduino mit einem N64-Controller
Verwenden Sie ein Arduino mit einem N64-Controller

Es gibt Tutorials für die Verwendung eines NES-Controllers mit einem Arduino, aber die Verwendung des komplizierteren N64-Controllers und seines analogen Joysticks hat einen definitiven Reiz. Wenn Sie ein Arduino haben und kein Adaptoid kaufen möchten, können Sie mit dieser Anleitung emulierte Spiele in Project 64 mit Ihrem Ardunio und einem N64-Controller spielen. Ist das schwer? / Wird es meine Sachen beschädigen? Dadurch wird Ihr Controller in keiner Weise verändert, und die Verkabelung ist extrem einfach. Wenn Sie also alles sorgfältig machen, sollte Ihr Controller nicht gefährdet werden, und Sie können ihn jederzeit aushängen, um ihn mit einer N64-Konsole zu verwenden. Was Sie wollen need:Arduino - $30Processing 1.0 - freeArduino Software - 3 Stück Kabel kostenlos - kostenloses (hoffe ich) USB-Kabel

Schritt 1: Verdrahten des Controllers

Verdrahten des Controllers
Verdrahten des Controllers
Verdrahten des Controllers
Verdrahten des Controllers
Verdrahten des Controllers
Verdrahten des Controllers

Das erste, was Sie tun müssen, ist, Ihren Arduino an den Controller anzuschließen. Der Controller verwendet nur drei Leitungen: +3,3 V, Signal und Masse. Bei direktem Blick auf den Stecker ist Masse ganz links, Signal in der Mitte und +3,3 V rechts. Verbinden Sie mit dem Kabel Masse und +3,3 V mit den entsprechenden Pins des Arduino und verbinden Sie das Signalkabel mit dem Digital 2-Pin des Ardunio. HINWEIS: Wenn Sie einen anderen Code auf Ihrem Arduino haben, sollten Sie den Controller trennen und hochladen den neuen Code von der nächsten Seite zum Arduino, bevor Sie ihn mit dem angeschlossenen Controller einschalten. Verbinden Sie den Arduino Verbinden Sie das USB-Kabel und der Arduino wird mit Strom versorgt.

Schritt 2: Entpacken und Ausführen des Codes

Dieser Code wurde von mir geschrieben, wobei Teile der N64_Arduino-Datei auf dem von Andrew Brown geschriebenen Assemblercode basieren. ZIP-Archive: Die beiden folgenden Zip-Dateien enthalten den Code, der benötigt wird, um das Arduino auszuführen und dann die Daten zu interpretieren, die es an den Computer sendet. Die N64_Arduino-Datei muss in der Arduino IDE kompiliert werden, und der N64_Controller läuft in Processing 1.0. N64_Arduino Diese PDE-Datei sollte auf Ihren Arduino hochgeladen und problemlos ausgeführt werden, wenn Sie alles richtig angeschlossen haben. Es fragt einfach den N64-Controller nach Daten auf den Tasten und dem Analogstick ab und sendet sie über die serielle Schnittstelle an den Computer zurück. Es ist einfach genug zu ändern, zum Beispiel können Sie die Methoden aus dieser Datei verwenden, um einen Controller abzufragen und die Daten zum Ausführen eines Arduino-Roboters zu verwenden, anstatt sie zurück an den Computer zu übertragen. N64_Controller Dies ist ein Processing 1.0-Projekt, das die vom Arduino übertragene Daten und wandelt sie in Tastatureingaben um, die Sie einem Emulator wie Project 64 zuordnen können. Möglicherweise müssen Sie die Zeile ändern String portName = Serial.list()[1]; um Ihrem Arduino zu entsprechen, sollte es entweder Serial.list () [0]; Serial.list () [1]; oder Serial.list()[2]; BEARBEITEN: Hinzufügen von "java.awt. Robot importieren;" "java.awt. AWTException importieren;" "import java.awt.event. InputEvent;"zum Code, wenn Sie Processing 1.1 verwendenN64_Controller_mouse Dies ist das gleiche wie N64_Controller, außer dass der Analogstick Ihre Maus steuert, nicht die Pfeiltasten. A und B sind Rechts- bzw. Linksklick. Um die Maus zu aktivieren, drücken Sie die Starttaste Ihres Controllers.

Schritt 3: Projekt 64 einrichten

Projekt 64 einrichten
Projekt 64 einrichten

Bevor Sie den Controller verwenden können, muss der Arduino verbunden sein und den Code ausführen, den Sie im letzten Schritt heruntergeladen haben, und Processing 1.0 muss mit dem laufenden N64_Controller-Programm geöffnet sein. Testen Sie es in Notepad, drücken Sie die A-Taste sollte ein A eingeben, B sollte ein B eingeben usw. Jetzt haben Sie also einen funktionierenden Controller (hoffentlich) und möchten einige Spiele spielen. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key MappingsStarte PJ 64 und öffne zuerst das Einstellungsmenü (Strg+T). Ändern Sie den Eingangsregler auf den direkten Eingang von N-Rage. Öffnen Sie das Menü "Controller-Plugin konfigurieren" und legen Sie die Zuordnungen mit dem Controller fest. Spielen Sie los! Sie sollten jetzt startklar sein! Laden Sie einige ROMs herunter und genießen Sie Ihren Homebrew N64-Adapter.

Schritt 4: Arduino-Code in der Tiefe

Arduino-Code im Detail
Arduino-Code im Detail

Das N64-Protokoll Die auf der One-Wire-Schnittstelle zum und vom N64-Controller gesendeten Bits werden in 4 µs breiten Pulsen codiert. Eine '0' ist 3 µs tief und 1 µs hoch. Eine '1' ist 1 µs niedrig und 3 µs hoch. Der Arduino-Code in den Methoden N64_send oder N64_receive verwendet einen sehr sorgfältig getakteten Assemblercode, der von Andrew Brown geschrieben wurde, um die Datenleitung für die Kommunikation mit dem Controller zu bit-bangen. nop-Blöcke werden verwendet, um die entsprechenden Mengen von µs abzuwarten, bevor die Sendedatenzeile abgefragt wird. Beim Start wird 0x00 an die Steuerung gesendet und danach wird als einziger Befehl 0x01 verwendet, um den Status der Steuerung abzufragen analoge Joystick-Informationen. Die Daten würden aussehen wie 44000000000000400044440044000444. Das Format der Bits ist: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 Bits analog Stockposition. Die Methode translate_raw_data() durchläuft die 32 Bits und fügt sie in die Struktur N64_status ein. Die ersten 16 Bits sind einfach 1 oder 0, aber die letzten 16 werden in eine ganze Zahl ungefähr im Bereich (-80, 80) von for (i=0; i<8; i++) { N64_status.stick_x |= N64_raw_dump[16+i] ? (0x80 >> i): 0; } Nachdem die Daten in dieser einfachen Form vorliegen, können Sie ganz einfach damit machen, was Sie wollen. In diesem Fall wird es einfach über den seriellen Port in der loop()-Methode als ein String von Binärdaten mit zwei ganzen Zahlen für die x- und y-Werte gesendet. Die über die serielle Schnittstelle gesendeten Daten könnten wie folgt aussehen: 040000000000400 63 -67, was bedeuten würde, dass zwei Tasten gedrückt wurden und der Steuerknüppel auf 63, -67 stand.

Schritt 5: Referenzen

Verweise
Verweise

Andrew Browns Projekt, einen Gamecube-zu-N64-Adapter mit dem Arduino zu erstellen, war bei der Codierung für dieses Projekt von unschätzbarem Wert:

Hilfreiche Schaltpläne finden Sie hier: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Informationen zum proprietären Protokoll der N64-Controller finden Sie hier:

Empfohlen: