Verwenden Sie einen Arduino mit einem N64-Controller (4 / 5 schritt)

Schritt 4: Arduino Code in die Tiefe


N64-Protokoll
Die Bits an und aus dem N64-Controller auf einem Draht-Schnittstelle sind in 4 µs breiten Impulsen kodiert. Eine '0' ist 3 µs, niedrige und hohe 1 µs. Eine "1" ist 1 µs, niedrige und hohe 3 µs.

Der Arduino Code in den Methoden N64_send oder N64_receive geschrieben von Andrew Brown sehr sorgfältig zeitgesteuerten Assembler-Code verwenden, um Bit-Datenleitung Knall mit dem Controller kommunizieren. NOP-Blöcke werden verwendet, um die entsprechenden Beträge von µs warten, bevor die Linie des Sendens von Daten abrufen.

Beim Start 0 x 00 ist an den Controller gesendet, und dann danach ist des einzige Befehls 0 x 01, für die Controller-Status abzufragen.

Daten-Codierung
Wenn die Daten nach einer 0 x 01 eingeht, kommt es als 16 Bits der Schaltfläche Informationen und 16 Bit analog-Joystick-Informationen. Die Daten würde 44000000000000400044440044000444 aussehen.

Das Format der Bits ist: A, B, Z, Start, Dup, denn, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Spalt, Cright + 16 Bits analog-Stick-Position.

Die Methode translate_raw_data() durchläuft die 32 Bits, Einfügen in die Struct N64_status. Die ersten 16 Bits sind einfach 1 oder 0, aber die letzten 16 sind durch eine ganze Zahl, etwa im Bereich (-80, 80) übersetzt

für (ich = 0; ich < 8; i ++) {}
N64_status.stick_x | = N64_raw_dump [16 + ich]? (0 x 80 >> ich): 0;
}

Nachdem die Daten in dieser einfachen Form ist, ist es einfach zu tun, was Sie wollen. In diesem Fall ist es einfach über die serielle Schnittstelle in der loop()-Methode als eine Zeichenfolge von Binärdaten mit zwei Ganzzahlen X und y Werte gesendet.

Über die serielle Schnittstelle gesendeten Daten aussehen könnte: 0400000000000400 63-67 was bedeuten würde, dass zwei Tasten gedrückt wurden und den Control Stick auf 63 war-67.

In Verbindung stehende Artikel

Gewusst wie: verwenden Sie einen Joystick mit einem FPGA

Gewusst wie: verwenden Sie einen Joystick mit einem FPGA

Diese instructable ist noch eine weitere Station auf meiner Reise, die Klaue Spiel, angetrieben von einem FPGA zu bauen. Früher schrieb ich einen Schrittmotor mit einem FPGA zu steuern. Nun musste ich einen Joystick zu steuern, so dass ich schließlic
Zum Hochladen von Skizzen auf einen Arduino mit einem defekten USB-Port / Chip

Zum Hochladen von Skizzen auf einen Arduino mit einem defekten USB-Port / Chip

Herzlich Willkommen auf meinen allerersten instructable :)Vor einiger Zeit hatte ich einen Sensor an meinem Arduino Nano angeschlossen aber der Sensor hat nicht funktioniert, also entschied ich mein Multimeter mich, die Verbindungen zu überprüfen. Ic
Programmieren Sie einen Arduino mit BeagleBone, ohne USB-

Programmieren Sie einen Arduino mit BeagleBone, ohne USB-

wenn du gesehen mein BeagleBone/Arduino Serienkommunikation Führer, Sie können gewartet haben diesein!  Wenn Sie es noch nicht gesehen haben, gehen Sie zuerst lesen, weil wir 100 % aufbauend auf diesem Rahmen sind.  Ich werde nicht wiederholen, diese
Programmieren Sie Ihre Arduino mit einem Android-Gerät!

Programmieren Sie Ihre Arduino mit einem Android-Gerät!

Halloin dieser Instructable möchte ich Ihnen zeigen, können wie Sie Ihre Arduino mit Ihrem Android-Gerät programmieren. Es ist sehr einfach und billig. Es erlaubt uns, unsere Arduino zu programmieren, wo immer wir wollen, auch dies ist nützlich für f
Machen Sie einen Stock mit einem eingebauten "Weenie" Stick

Machen Sie einen Stock mit einem eingebauten "Weenie" Stick

ich bin ein Alter Mann und einen Stock benutzen, wenn ich gehe. Ich mag auch Braten, Würstchen im Park. Ich gehe mein kleiner Hund im Park, zu, und manchmal gibt es einige junge harte Jungs es mit ihre Pitbulls, die mein kleiner Hund und ich, gut, An
Teilen Sie einen Apfel mit einem Finger!

Teilen Sie einen Apfel mit einem Finger!

Wollten Sie schon immer einen Apfel mit jemandem, sondern wollte, es zu tun auf beeindruckende Weise aufgeteilt? Wahrscheinlich nicht, aber dies ist immer noch eine ziemlich coole Art, einen Apfel geteilt. Stellen Sie sicher, dass Sie eine große Gesc
Machen Sie einen Igel mit einem Buch

Machen Sie einen Igel mit einem Buch

für Ihre Kinder, ich schlage Ihnen einen Igel mit einem Buch, die Klinge von Gräsern und Blumen zu machen.Meine Tochter macht es ein ich will seine DIY Igel zeigen.Für jede Seite des Buches Falten sie wie Bilder.Falten Sie nach allen Seiten können Si
Steuern Sie einen Motor mit einem Tablet und ein Arduino Uno

Steuern Sie einen Motor mit einem Tablet und ein Arduino Uno

Kontrollieren Sie Ihre Erfindungen mit Android-Tablets! Dieses Tutorial geht durch eine Demo des Erhaltens ein Android-Tablet, serielle Befehle an ein Arduino Board schicken und mit dem Board einen Motor drehen, ein- und ausschalten.Schritt 1: Dinge,
Gewusst wie: verwenden Sie einen Taster mit Arduino

Gewusst wie: verwenden Sie einen Taster mit Arduino

Dies ist ein Instructable, die Ihnen sagt, wie ein 4-Pin-Taster mit dem Arduino zu verbinden.Die Apparat ermöglicht eine LED eingeschaltet werden, wenn der Taster gedrückt wird.Schritt 1: Was Sie brauchen: Sie benötigen:Ein Druckknopf-SchalterArduino
Führen Sie einen Schrittmotor mit einem Arduino

Führen Sie einen Schrittmotor mit einem Arduino

Hallo Jungs,Dieser Artikel ungefähr wie ein Stepper Motor mit einem Arduino ausgeführt. Diese Tage Schrittmotor verwendet in vielen Gerät der Unterhaltungselektronik wie Kamera Autofokus-System, CD-ROM für Linsenbewegung, 3D-Drucker und CNC Schrittmo
Steuern Sie einen Arduino mit ein Armbanduhr (TI eZ430 Chronos)

Steuern Sie einen Arduino mit ein Armbanduhr (TI eZ430 Chronos)

die UhrTexas Instruments eZ430 Chronos ist ein cooles Gadget. Es verfügt über bidirektionale Funkverbindung und einer ganzen Reihe von Sensoren: Temperatur, Druck, Beschleunigung.In der Tat ist es ein Development-Kit für die MSP 430 (ein Niederleistu
Steuern Sie einen Roboter mit einem Fernsteuersender & Empfänger

Steuern Sie einen Roboter mit einem Fernsteuersender & Empfänger

In diesem instructable wir durch, wie man ein traditionelles Hobby RC Sender und Empfänger mit einem RoboClaw motor Controller so einrichten, dass einen Roboter herum (z. B. ServoCity.com der Zwerg Rovers) fahren gehen.Schritt 1: Verkabeln.Motoren:We
Steuern Sie Ihren Computer mit einem PS3 Controller mit Rumble - SixAxis oder DualShock

Steuern Sie Ihren Computer mit einem PS3 Controller mit Rumble - SixAxis oder DualShock

der Titel ist ziemlich selbsterklärend. Sie wollen einen PS3-Controller auf Ihrem Computer installieren und verwenden Sie es sogar, sie zu kontrollieren. Ich habe dies mit beiden Arten von Controllern getestet. Es funktioniert.Bevor Sie beginnen, wir
Steuern Sie einen Arduino mit PHP

Steuern Sie einen Arduino mit PHP

hier ist, wie Ihre Arduino Dinge aus über das Internet ohne eine Ethernet oder Wifi Schild zu machen. Dies ist eine einfache Möglichkeit, Ihr Projekt steuerbar von überall in der Welt machen!Schritt 1: Plattform-KompatibilitätDiese Methode funktionie