amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

[Login] [Registrieren] [Passwort vergessen?]

< Nächste MeldungVorige Meldung >
09.Mär.2019



Bauanleitung: Amiga-Joysticks per USB am PC anschliessen
Der niederländische Amiga-Fan Martijn hat mit Hilfe einer Arduino-Platine vom Typ Pro Micro einen Adapter konstruiert, um zwei Atari-/Commodore-Joysticks per USB an moderne Rechner anschließen zu können. Seine Lösung emuliert einen USB-Joystick, sollte also ohne weitere Treiber-Installationen mit allen modernen Systemen funktionieren.

Da das Microcontroller-Board bereits über einen USB-Anschluss und ausreichend digitale Ein-/Ausgänge verfügt, beschränken sich die Lötarbeiten auf das Verbinden einiger Anschlüsse auf dem Controller mit den Joystick-Ports. Ein fertiges Steuerungsprogramm, das mit Hilfe der Arduino IDE compiliert und auf den Adapter übertragen wird, liefert der Bastler gleich mit. Das erste Bild zeigt seinen Adapter in Aktion:


Martijn hat einen alten 25-poligen Sub-D-Stecker benutzt, um seinen Adapter unterzubringen - die mittleren, nicht benötigten Pins wurden schlicht entfernt. Auf diese Weise lies sich die komplette Schaltung im Stecker unterbringen, alternativ können natürlich auch zwei 9-polige Sub-D-Stecker verwendet werden:


Auf dem nächsten Bild ist die interne Verkabelung zu erkennen. Wer den Adapter nachbauen will, muss die benötigten Pins am Joystick-Anschluss mit beliebigen digitalen Ein-Ausgängen auf dem Arduino verbinden.


Zum Abschluss noch das von Martijn entwickelte Steuerungsprogramm, dass die Joystickbewegungen auswertet und entsprechende Joystick-Ereignisse per USB an den Computer schickt. Wichtig ist, dass die Abfragen der digitalen Eingänge - "digitalread(n)", wobei "n" die Nummer des abgefragten Eingangs ist - mit der vorher ausgeknobelten Verkabelung übereinstimmt. Ggfs. müssen die entsprechenden Abfragen im Steuerprogramm noch angepasst werden.

Das Programm wird per Arduino IDE auf das Microcontroller Board übertragen. Zur Compilierung wird die Arduino Joystick Library benötigt.

#include <Joystick2.h>

void setup() {
  for (int i = 5; i<=9; i++) {
    pinMode(i, INPUT_PULLUP);
  }
  pinMode(10, INPUT_PULLUP);
  pinMode(16, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
  pinMode(15, INPUT_PULLUP);
  pinMode(18, INPUT_PULLUP);
  Joystick[0].begin(true);
  Joystick[1].begin(true);
}

void loop() {
  // joystick 1 as HID joystick

  if (digitalRead(6) == 0) {
    // up
    Joystick[0].setYAxis(-127);
  } else if (digitalRead(7) == 0) {
    // down
    Joystick[0].setYAxis(127);
  } else {
    Joystick[0].setYAxis(0);
  }
  
  if (digitalRead(8) == 0) {
    // left
    Joystick[0].setXAxis(-127);
  } else if (digitalRead(9) == 0) {
    // right
    Joystick[0].setXAxis(127);
  } else {
    Joystick[0].setXAxis(0);
  }
  
  if (digitalRead(5) == 0) {
    Joystick[0].pressButton(0);
  } else {
    Joystick[0].releaseButton(0);
  }


  // joystick 2 as HID joystick
  if (digitalRead(14) == 0) {
    // up
    Joystick[1].setYAxis(-127);
  } else if (digitalRead(16) == 0) {
    // down
    Joystick[1].setYAxis(127);
  } else {
    Joystick[1].setYAxis(0);
  }
  
  if (digitalRead(15) == 0) {
    // left
    Joystick[1].setXAxis(-127);
  } else if (digitalRead(18) == 0) {
    // right
    Joystick[1].setXAxis(127);
  } else {
    Joystick[1].setXAxis(0);
  }
  
  if (digitalRead(10) == 0) {
    Joystick[1].pressButton(0);
  } else {
    Joystick[1].releaseButton(0);
  }
}
(cg)

[Meldung: 09. Mär. 2019, 02:03] [Kommentare: 0]
[Per E-Mail versenden]  [Druck-Version]  [ASCII-Version]
< Nächste MeldungVorige Meldung >

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.