Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Wii Nunchuk mit Arduino verbinden: Schritt-für-Schritt-Anleitung (I2C)

Komponenten und Zubehör

Bauteil Menge Hinweise
Nintendo Nunchuk (Original oder Replika) 1 Original: bessere Joystick-Auflösung, abgeschirmte Kabel, präziserer Beschleunigungssensor
Level Shifter (bidirektional, 3,3 V ↔ 5 V) 1 Empfohlen, da Nunchuk mit 3,3 V betrieben werden sollte
Arduino UNO (oder kompatibel) 1
Nunchuk-Adapter (optional) 1 Vermeidet Abschneiden des Steckers

Projektbeschreibung

Gamepads sind ideale Eingabegeräte für Maker-Projekte. Der Wii Nunchuk ist eine günstige Erweiterung mit I2C-Schnittstelle: 2 Membrantasten (C, Z), 2-Achsen-Joystick, 3-Achsen-Beschleunigungssensor. Dieser Guide zeigt die Hardware-Anbindung und stellt eine stabile C-Bibliothek bereit.

Original vs. Replika

Original (~10–15 € teurer): Abschirmung, bessere Joystick-Linearität, präziserer Accelerometer. Replika: Günstiger, aber Joystick reagiert nicht auf minimale Bewegungen. Die Bibliothek nutzt einen Kalman-Filter, der Unterschiede weitgehend ausgleicht. Für Langlebigkeit Original, für Experimente Replika OK.

Steckerbelegung (Nunchuk-Stecker frontal betrachtet)

Der proprietäre Stecker hat 6 Pins. Unbedingt eigenen Stecker prüfen – Kabelfarben variieren!

Pin Original Replika (Beispiel)
1 Grün → SDA Gelb → SDA
2 nc Schwarz → nc
3 Rot → 3,3 V Grün → 3,3 V
4 Weiß → GND Rot → GND
5 nc nc
6 Gelb → SCL Weiß → SCL

Ohne Adapter: Stecker öffnen, Kabel abschneiden, Belegung prüfen, direkt verdrahten. Mit Adapter: 3,3 V an Arduino A2, GND an A1, dann im Code nunchuk_init_power() aufrufen.

Verdrahtung (Fritzing)

Software: Nunchuk Library

Bibliothek (Header-only) herunterladen: GitHub. In Sketch-Ordner legen.

Minimalbeispiel

#include <Wire.h>
#include "nunchuk.h"

void setup() {
  Serial.begin(9600);
  Wire.begin();
  // nunchuk_init_power(); // Falls A1/A2 als Stromversorgung genutzt werden
  nunchuk_init();
}

void loop() {
  if (nunchuk_read()) {
    // Daten in nunchuk_data Struct verfügbar
    nunchuk_print(); // Gibt formatiert auf Serial aus
  }
  delay(10);
}

Mit beiliegender Processing-Datei kann man einen Kegel per Nunchuk balancieren (Demo).

Wichtige Funktionen

Hinweis: Pitch auf 180° begrenzt; Roll fehlerhaft bei Pitch > 180°. Berechnung annimmt nur Gravitation als Kraft (statisch/gleichförmige Bewegung).

Kalibrierung

In Library-Header Nullpositionen als Konstanten definiert. Eigene Rohwerte in Neutralstellung messen & Konstanten anpassen.

I2C-Protokoll (Details)

Adresse: 0x52. Initialisierung:

  1. Mit Verschlüsselung: START, 0x40, 0x00, STOP →每字节解密: (x ^ 0x17) + 0x17
  2. Ohne Verschlüsselung (empfohlen): START, 0xF0, 0x55, STOP dann START, 0xFB, 0x00, STOP → funktioniert auch mit Clones.

Daten lesen (6 Bytes ab Adresse 0x00): START, 0x00, STOP → READ 6 Byte

Byte-Aufbau:

  • Byte 1: Joystick X [7:0]
  • Byte 2: Joystick Y [7:0]
  • Byte 3: Accel X [9:2]
  • Byte 4: Accel Y [9:2]
  • Byte 5: Accel Z [9:2]
  • Byte 6: Az[1:0] Ay[1:0] Ax[1:0] ¬Bc ¬Bz (Tasten invertiert, LSBs der Accel-Achsen)

Kalibrierdaten (16 Bytes ab 0x20): 0G/1G-Werte für X/Y/Z, Joystick Min/Max/Center, Checksums.

Custom Parts

Fritzing-Teil für Nunchuk im GitHub-Repo enthalten.

Herstellungsprozess

  1. IR-Fernbedienungsbefehle auf Raspberry Pi ohne LIRC erfassen: Python UART-Ansatz
  2. LED-Helligkeit per PWM und Taster am Arduino Mega steuern
  3. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  4. RFID-Anwesenheitssystem mit Arduino & Python – Daten direkt in phpMyAdmin (XAMPP) speichern
  5. K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
  6. Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
  7. Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
  8. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  9. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  10. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung