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

DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau

Komponenten & Zubehör

Bauteil Menge
Arduino UNO (R3, ATmega16U2) 1
Drehpotentiometer 10 kΩ (Lenkwinkel) 1
Steckbrett & Kabel 1 Satz

Benötigte Werkzeuge

Software

Projektidee

Ein selbstgebautes Lenkrad, das vom PC als USB-Gamepad (Joystick) erkannt wird – kompatibel mit Steam, Assetto Corsa, Euro Truck Simulator etc. Der Arduino UNO wird dazu in den DFU-Modus versetzt und mit der UnoJoy-Firmware geflasht. Danach meldet er sich als HID-Joystick mit 6 Achsen und 13 Buttons.

Schritte zum USB-HID-Umbau

  1. UnoJoy herunterladen, Treiber installieren (InstallUnoJoyDrivers.bat).
  2. ATmel FLIP installieren.
  3. Arduino in DFU-Modus versetzen: Kurzschluss der beiden Pins neben dem USB-Port (ICSP-Header, Reset & GND).
  4. TurnIntoAJoystick.bat ausführen → Arduino wird als Joystick erkannt.
  5. Zum Rückflashen: Gleicher Vorgang mit TurnIntoAnArduino.bat.

Hardware-Aufbau (Lenkrad)

Ein 10-kΩ-Poti an A0 (Mitte an A0, Außen an 5 V & GND) dient als Lenkwinkelsensor. Der mechanische Aufbau erfolgt per Lasercut (DXF/DWG-Dateien im Projekt) oder 3D-Druck. Das Poti wird mit der Lenkwelle verbunden (z. B. über Zahnstange oder direkten Wellenanschluss).

DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau

Arduino-Sketch (UnoJoy-Beispiel)

/* Arduino USB Joystick HID demo - angepasst für Lenkrad */
#undef DEBUG
#define NUM_BUTTONS 40
#define NUM_AXES 8

typedef struct joyReport_t {
  int16_t axis[NUM_AXES];
  uint8_t button[(NUM_BUTTONS + 7) / 8];
} joyReport_t;

joyReport_t joyReport;
uint8_t btn[12];
int fulloff = 0;

void setup() {
  for (int portId = 2; portId < 13; portId++) pinMode(portId, INPUT_PULLUP);
  Serial.begin(115200);
  delay(200);
  for (uint8_t i = 0; i < 8; i++) joyReport.axis[i] = i * 1000;
  for (uint8_t i = 0; i < sizeof(joyReport.button); i++) joyReport.button[i] = 0;
}

void sendJoyReport(joyReport_t *report) {
#ifndef DEBUG
  Serial.write((uint8_t *)report, sizeof(joyReport_t));
#else
  // Debug-Ausgabe
#endif
}

void setButton(joyReport_t *joy, uint8_t button) {
  joy->button[button / 8] |= 1 << (button % 8);
}
void clearButton(joyReport_t *joy, uint8_t button) {
  joy->button[button / 8] &= ~(1 << (button % 8));
}

void loop() {
  // Buttons D2-D13 einlesen
  for (int bt = 1; bt < 13; bt++) btn[bt] = digitalRead(bt + 1);
  for (int on = 1; on < 13; on++) {
    if (btn[on] == LOW) setButton(&joyReport, on + 16);
    else clearButton(&joyReport, on + 16);
  }

  // Achse 0 (X) = Lenkrad an A0
  joyReport.axis[0] = map(analogRead(0), 350, 700, -32768, 32767);
  // Nicht genutzte Achsen auf 0
  for (uint8_t a = 1; a < 8; a++) joyReport.axis[a] = 0;

  sendJoyReport(&joyReport);
  delay(35);
}

Einbindung in Steam / Spiele

  1. x360ce (32/64 Bit passend zum Spiel) in den Spielordner kopieren.
  2. x360ce.exe starten – erkennt den UnoJoy-Joystick.
  3. Achsen & Buttons mappen (X-Achse = Lenken, Buttons = Gas/Bremse/Handbremse etc.).
  4. Spiel starten – Lenkrad wird als Xbox-360-Controller erkannt.

Fazit

Mit minimaler Hardware (Arduino UNO + 1 Potentiometer) entsteht ein vollwertiges USB-Lenkrad. Der UnoJoy-Umbau ist reversibel und sicher. Für Pedale können weitere Potis an A1, A2 angebunden werden. Die DXF/DWG-Dateien für das Gehäuse liegen bei.

Herstellungsprozess

  1. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  2. Altes RC-Auto per Xbox-Controller & Arduino zum Joystick-Fahrzeug umbauen
  3. Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
  4. Interaktives Joystick-Spiel mit Arduino & LED-Feedback
  5. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  6. Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung
  7. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
  8. Berührungsloses Temperatur-Überwachungstor für schnelles Screening
  9. NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen
  10. Leistungsstarker FM-Radio-Empfänger mit Arduino & TEA5767