Elektroda.de
Elektroda.de
X
This content has been translated flag-pl » flag-de View the original version here.
  • Adapter Gameport - Pegasus
    Vor ein paar Tagen hat mich jemand gebeten, ihren Joystick für Pegasus im Stil eines Sticks zu "zaubern". Solche Controller waren zum Beispiel bei Atari- oder Commodore-Konsolen beliebt, während meine Augen bei Pegasus so etwas noch nie gesehen hatten.
    Adapter Gameport - Pegasus Adapter Gameport - Pegasus

    Es war also notwendig, einen vorgefertigten Joystick zu finden und seine Kommunikationsschnittstelle an die Konsole anzupassen. Die Joypads aus den obigen Fotos haben den einzigen Vorteil - sie sind in der Kommunikation trivial: Im Inneren haben wir nur Kontaktfelder für jede der Richtungen und Tasten, und die Signale für sie werden in separaten Drähten herausgeführt, die beim Drücken jeweils an Masse angeschlossen sind.
    Die Kehrseite ist die eher dürftige Bedienungsgenauigkeit (nach dem Neigen des Hebels über einen bestimmten Winkel hinaus wird das Kontaktfeld kurzgeschlossen) und, trotz des Anscheins, der Preis. Ich denke, die Leute assoziieren sie mit den Konsolen der alten Zeit, weil ich nichts zu einem vernünftigen Preis gefunden habe. Und nur eine Taste, und der Pegasus benötigt vier (A, B, Select, Start).

    Eine andere Idee war, ein modernes USB-Joypad zu kaufen. Der Nachteil wäre hier jedoch die Schwierigkeit, mit ihm zu kommunizieren (die Notwendigkeit einer USB-Host-Unterstützung). Es wäre möglich, irgendwie mit der Platine im Inneren zu verbinden, aber es würde eine eingehende Analyse des Inneren erfordern, die ich vermeiden wollte.

    Als goldener Mittelweg erwies sich der Kauf eines Controllers für den alten Gameport (DB15-Pin), der einmal mit Soundkarten verbunden war. Das Kommunikationsprotokoll ist sehr einfach und die Popularität und die niedrigen Preise auf dem Sekundärmarkt (5-11 €) haben dazu geführt, dass ich es, zwei solcher Joypads an einem Tag geschafft habe.
    Adapter Gameport - Pegasus

    Die GamePort-Spezifikation ermöglicht es Ihnen, digitale Informationen über den Zustand von vier Tasten und analoge Informationen über den Zustand von vier Schiebereglern (d. h. X1, Y1, X2, Y2) zu senden. Die Norm legt fest, dass die Auslenkung des Schiebers einer linearen Widerstandsänderung von 0-100 kΩ entspricht.
    Adapter Gameport - Pegasus

    Erinnern Sie sich noch, wie Sie zu Zeiten von Windows 95 einen solchen Joystick in der Systemsteuerung kalibriert haben? Es ging einfach darum, dass das System weiß, welcher Widerstand der neutralen Position des Hebels (in der Mitte) entspricht und wie groß der Änderungsbereich für die extremen Auslenkungen ist.
    Adapter Gameport - Pegasus

    Adapterdesign
    Einen solchen Joystick mit dem Pegasus unmittelbar zu verbinden ist unmöglich. In Pegasus ist der Zustand jeder Taste erstens digital und zweitens seriell gesendet. Im Gamepad haben wir digital + analog und parallel.
    Also dachte ich mir, dass ich einen passenden Adapter auf Basis des beliebten Atmega 88 Mikrocontrollers erstellen würde (ich habe ein bisschen davon, man musste kleine Vorräte machen, weil die Preise der Chips auf aliexpres fingen an verrückt zu werden).

    Der Atmega 88 ist dem Atmega 8 sehr ähnlich, hat sogar etwas mehr Funktionen (z.B. Unterbrechungen an jedem der Pins) und war bei den östlichen Brüdern günstiger als die acht. Wie Sie sehen, reguliert das Angebot die Nachfrage.
    Adapter Gameport - Pegasus

    Widerstand kann auf verschiedene Weise abgelesen werden. Im PC lädt dieser Widerstand einen Kondensator (auf der Soundkarte), der mit dem Flip-Flop verbunden ist. Die Software misst die Zeit von der vollständigen Entladung bis zur Änderung des Zustands des Flip-Flops und nähert sich basierend darauf der Auslenkung an.

    In meinem Fall war es einfacher, der Masse einen Widerstand 100 kΩ hinzuzufügen, indem ein Teiler erstellt wurde, und der Spannungswert (2,5 V - 5 V) wurde mit dem ADC-Wandler gelesen. Auch eine Taste und ein Display sind im Adapter praktisch (dazu gleich mehr). Und natürlich Anschlüsse zum Anschluss an die Konsole und das Joypad. Ich habe mich entschieden, das Ganze in Form von zwei mit Klebeband verbundenen Platinen umzusetzen, mit nur der DB15-Buchse auf der kleineren)
    Adapter Gameport - Pegasus Adapter Gameport - Pegasus Adapter Gameport - Pegasus Adapter Gameport - Pegasus

    Kalibrierung
    Natürlich ist es notwendig, den Joystick zu kalibrieren, oder genauer gesagt, den Bereich zu bestimmen, ab dem die Auslenkung des Hebels als "Drücken" der Richtung zu betrachten ist. Es ist auch nützlich, einzustellen, welche der Joypad-Tasten den Pegasus-Tasten A / B / Select / Start entspricht. Der obige Konfigurationsmodus wird durch Drücken der Taste CONF aktiviert. Auf dem Display erscheinen folgende Aufschriften:
    o LE - den Hebel nach LINKS in die gewünschte Position neigen und, während man ihn gedrückt hält, die Taste CONF drücken
    o PR, GO, DO - dasselbe, nur mit dem Hebel nach rechts / oben / unten
    o B / A / SE / ST - die Taste auf dem Joypad drücken, die von Pegasus entsprechend interpretiert wird

    Alle diese Informationen werden im EPROM-Speicher von Atmega gespeichert, sodass nach dem Aus- / Einschalten keine Neukalibrierung erforderlich ist, es sei denn, Sie möchten die Tastenbelegung ändern oder einen anderen Joystick anschließen).

    Nun, möchte ich nur hinzufügen, dass das Spielen mit einem solchen Joystick (zumindest in Plattformspielen) eine Qual ist, vielleicht für einige Schießereien oder Kämpfe geeignet. Nun, über Geschmäcker wird nicht gesprochen.



    Cool? DIY-Rangliste
    Über den Autor
    phanick
    Niveau 28  
    Offline 
    phanick hat 2655 Beiträge geschrieben mit der Bewertung 2614, und dabei 61 Mal geholfen. Wohnt in der Stadt Warszawa. Er ist seit 2007 bei uns.
  • #2
    pixel7
    Niveau 23  
    Interessantes Projekt - ich erinnere mich an angeschlossene Potentiometer an den PC.
    Sie können der Software eine Art "Autofire" hinzufügen, mit der maximalen Auslenkung des Sticks schnelles Drücken in eine bestimmte Richtung (Unterbrecher), oder allgemein andere "Combos" hinzufügen.
  • #3
    unicompjp
    Niveau 9  
    phanick hat geschrieben:
    Nun, möchte ich nur hinzufügen, dass das Spielen mit einem solchen Joystick (zumindest in Plattformspielen) eine Qual ist, vielleicht für einige Schießereien oder Kämpfe geeignet.


    Auf Pegasus / NES werden die meisten Spiele mit einem solchen Joystick schlechter gespielt, da diese Konsolen ab Werk mit Gamepads ausgestattet wurden und die Spiele-Entwickler für diese Konsole die Steuerung dafür optimiert haben, die Gamepads jedoch sind etwas schneller als der klassische Joystick.
    Ich entwerfe einen neuen Joystick, der mit vielen Retro-Computern und -Konsolen (und deren USB-Emulatoren) kompatibel ist, aber deshalb habe ich diese Plattform aufgegeben.
    Adapter Gameport - Pegasus
    Solche Joy's eignen sich am besten für Atari-, Amiga- oder Commodore-C64-Spiele. Nein, es gibt nichts Besseres, um einen Super Frog oder Giana Sisters zu spielen.
  • #4
    mdziewie
    Niveau 19  
    Und wenn man bedenkt, dass so ein Adapter mehr Rechenleistung hat als dieser Pegasus😉
    Gut gemacht. Ich mag solche Projekte: nicht trivial, aber sinnlos😜
    Kollege erwähnte, dass die Kommunikation mit dem Pad in Pegasus seriell erfolgt - kann man nach Einzelheiten fragen?
    Die Herstellung kindergesicherter Pads geht mir durch den Kopf.
  • #6
    ismailmvg
    Niveau 1  
    Das ist richtig. Das ist ein 15-Pin-Gameport-Anschluss, der ursprünglich für Joysticks und dann für https://xender.vip/ ll Arten von Gaming-Controllern verwendet wurde, bevor er durch USB ersetzt wurde. https://omegle.onl/
    [F]