Joystick-Umschaltung 8 auf 4 Richtungen

  • Hallo!


    Zu meinem Gehäuse habe ich auch zwei Joysticks dazu bekommen. Diese kann man von
    8 auf 4 Richtungen "umbauen", aber mal schnell während dem Spiel geht das nicht.


    Deswegen hab ich mir zuerst eine TTL-Schaltung überlegt, die die
    Joystick-Signale "filtert" und je nach Betriebsmodus (8 oder 4 Richtungen, über
    Taster umschaltbar) entweder alles 1:1 (8 Richtungen) an das I-PAC weitergibt
    oder nur jeweils 1 Signal (das Neuere).
    Drückt man z.B. nach oben und dann nach rechts, sind ja beide Schalter betätig.
    Im 4-Richtungs-Modus würde das "oben"-Signal solange durchgegeben, bis das
    "rechts"-Signal kommt.
    In der Simulation hat das auch alles schön geklappt, allerdings hätte ich ein
    TTL-Grab (ca. 15-20 Bausteine) aufbauen müssen.


    Deswegen will ich es jetzt mit einem Mikrocontroller (ATmega8) probieren. Die Schaltung
    wird viel einfacher und von der Geschwindigkeit müsste es auch locker reichen.
    Der Prozessor wird mit 8 MHz getaktet und kann einen Befehl pro Takt abarbeiten
    (das entspricht 8 Millionen Befehlen pro Sekunde!). Damit liegt man deutlich unter
    der Prellzeit der Kontakte und das Programm besteht auch nur aus einige Zeilen
    (in C).


    Als "Extra" hab ich eine Ansteuerung für superhelle weisse LEDs eingebaut. Sobald einer der
    Buttons (rot, blau, grün, gelb) gedrückt wird, leuchtet er auf. :D


    Wäre das auch für jemanden von euch interessant? Dann würde ich nämlich eine
    sauberes Leiterplattenlayout entwerfen, damit der Nachbau einfach ist.
    Für mich würde sonst auch ein Aufbau auf Lochraster reichen.




    Gruß,
    Matthias

  • Hört sich fett an, da habe ich auf jedenfall Interesse.


    Wie wird die 4-8 Umschaltung erledigt? Mittel eines Kippschalters, der dann umgelegt werden kann?


    Gruß Kai

  • KoolKolo


    Ich glaube das hat er schon geschrieben:


    Zitat

    Original von seppl


    Deswegen hab ich mir zuerst eine TTL-Schaltung überlegt, die die
    Joystick-Signale "filtert" und je nach Betriebsmodus (8 oder 4 Richtungen, über
    Taster umschaltbar)
    entweder alles 1:1 (8 Richtungen) an das I-PAC weitergibt
    oder nur jeweils 1 Signal (das Neuere).

  • Schönes Unterfangen - ließe sich auch unter MAME simulieren mit z.B.:


    TAB/Steuerung (oder wie das heißt)
    Links = LINKS oder OBEN/LINKS
    Rechts=RECHTS oder OBEN/RECHTS usw.


    Es GIBT Joysticks, die man von oben (Griff ziehen und drehen) auf 4/8-Wege umstellen kann, und zwar nicht ganz billig von http://www.ultimarc.com unter Controls.


    Ich persönlich finde bei einem 4-Wege Joystick auch das Gefühl wichtig, daß man nicht in die Ecken kommt!


    Bis denne
    Carsten

    Optionen die du nicht benutzt sind die Optionen die du nicht besitzt...

  • Hallo!


    Carsten:
    Bei meinen Joysticks (relativ kleine aus Kunstoff, ich glaube Euro-Irgendwas werden die bei Ultimarc genannt) kann ich keinen Unterschied zwischen 4 und 8 Richtungen fühlen.
    Liegt wohl aber eher daran, daß ich noch nicht viel damit gespielt habe


    Eigentlich wollte ich mir ja erst die von oben umschaltbaren kaufen, aber einem geschenkten Gaul usw. :-)


    Standardmässig sind 8 Richtungen aktiv. Als Taster kann ein ganz normaler "Button" wie auch zum Spielen verwendet werden. Bei der Betätigung wird auf 4 Richtungen umgeschaltet, eine Kontroll-LED geht an (auch weiß, superhell, kann in den Taster eingebaut werden). Nochmaliges betätigen und es sind wieder 8 Richtungen möglich, LED ist aus.


    Das Leiterplattenlayout ist schon recht weit, eine halbe Europaplatine reicht.


    Hoffentlich funktioniert das auch alles so, wie ich mir das vorstelle ... aber ich bin zuversichtlich :-)




    Gruß,
    Matthias

  • hallo seppl,


    der knackpunkt ist die länge der verzögerung... wie lange wird ein signal gehalten bis klar ist, dass kein anderes dazukommt (welches dann als endgültige richtung gewertet wird)?


    bzw


    wann wird das zweite genommen wenn schon zwei switches betätigt sind?


    ...


    könnte zu "indirekter" steuerung führen.

  • Hallo Tobu!


    Genau da bin ich mir noch nicht genau sicher.


    In TTL war/ist es so:
    Beim Drücken des Tasters (also Bewegen des Joysticks) wird ein Flipflop gesetzt, das beim Lösen des Tasters wieder zurückgesetzt wird. Dies ist für jeden Taster extra.
    Bei 4 Richtungen setzt der zuletzt betätigte Taster die Flipflops aller anderen drei Taster zurück. In der Simulation mit Multisim funktionierte das sehr gut.


    Beim Mikrocontroller wird in einer Endlosschleife der Zustand der vier Joystickkontakte abgefragt, und je nach dem der entsprechende Eingang am I-PAC auf Masse geschalten.
    Wenn dann alle 4 Kontakte abgefragt sind, wird wieder beim Ersten angefangen und geschaut, ob er sich geändert hat. Falls nicht, bleibt der I-PAC Eingang auf Masse, ansonsten wird er auf 5V geschalten.


    Das I-PAC bzw. eine Tastatur hat die Tastenentprellung ja schon integriert. Deswegen hoffe ich, daß es damit auch keine Probleme gibt.
    Bauteile werden heute Abend bestellt :-)



    Gruß,
    Matthias

  • wollte das nur anmerken weil ich genau sowas schon programmiert hatte... habs aber verworfen wiel es entweder nutzlos (mit zu gringer "wartezeit") oder aber zu indirekt (bei zu langer "wartezeit") war... kompromiss hab ich keinen vernünftigen gefunden.


    ich löse das problem irgendwann als "hardware" sprich "restrictor plate"


    bin aber gespannt auf deine lösung