Hallo Besucher, der Thread wurde 11k mal aufgerufen und enthält 23 Antworten

letzter Beitrag von Speedball_71 am

Projekt Bluetooth Joystick

  • Hallo,
    Ich wollte Schurlose Joysticks haben, leider habe ich nichts Funktionierendes bekommen, also Selber Basteln.
    Ziele: Einfach zu bauen, kein SMD gelöte, Einfach zu Beschaffende Bauteile, Günstig., Kein Programmer notwendig
    Swap Funktion für Joystick 1<-->2


    Man benötigt:
    2x Arduino Nano, ca.5€ Stück
    2x Bluetooth Modul HC-05 ca. 6€ Stück


    Der Musteraufbau Funktioniert Stabil die latenzzeit ist wieder erwarten Akzeptabel.
    max 2 ms Verarbeitungszeit Sender,
    max 16ms Strecke via Bluetooth
    max 1,1ms Verarbeitungszeit Empfänger
    ----------------------------------------------------
    Max 19,1ms
    Typisch 12ms


    Stromverbrauch Sender ohne Optimierungen ca. 48mA
    Lebensdauer 9V Block Alkaline ca 10 Stunden




    To Do:
    Zu Klären Leiterplattendesign für 20 Poligen Pfostenverbinder für einbau in C64 oder aussen an Joystickbuchsen
    Leiterplatten in Eagle erstellen
    Auto Script für erstmalige Bluetooth Paarung erstellen


    Aufbau an Tasterturport:



    Sendeplatine für Joysticks:


  • Interessantes Projekt! Aber sehe ich das richtig, dass du einen Sender hast, der mot Anschlüssen für beide Joysticks bestückt ist?


    Wenn schon drahtlos, dann würde ich die sender direkt in den Joystickgehäusen haben wollen. So wäre man ja zusammengekettet...

  • Hier der Schaltplan des Testaufbaues.
    Sender und Empfänger sind gleich aufgebaut.


    Was noch fehlt: Switch für Joystick Swap



    @1st1
    Anpassung an Amiga und Atari ST sollte machbar sein, ob die Perfomance für die Rechtecksignale der Mäuse reicht müsste man ausprobieren.


    Aktuell werden 10 Kanäle übertragen, 14 Sollte die Hardware ohne Probleme mitmachen.
    Also Platz für Joystick Knopf 2 etc ist da. Die Software ist ggf dafür schnell angepasst.

  • Genial wäre eine kleine Platine die in den CP Pro z.b. eingebaut würde oder vorne wo das Kabel rauskommt angeschraubt wird.
    Und am 64er eine kleine Kiste die an die Joystick Ports kommt.
    Am genialsten wäre es wenn das ganze dann auch an anderen Geräten funktionieren würde wie Amiga Atari etc.
    Ich glaube so ein Kit ließe sich oft verkaufen.


    Dazu noch einen Taster für Portwechsel oder so.... :whistling:
    EDIT...grade gesehen ist schon vorgesehen.
    Blöd ist das der Sender auch diesen riesige n 9v Block braucht.
    Toll wäre wenn es einen kleineren Akku gäbe und man könnte es fest im Stick verbauen.
    Evtl.mit Mini USB Anschluss damit man ein Handyladegerät benutzen kann....


    Und die Stromversorgung für den Empfänger über ein Netzteil oder Anschluss am Userport oder .....

  • Feines Projekt. Habe es grad mal überflogen.
    Vom Prinzip würde dir ein HC-05 am Rechner und ein HC-06 am Joystick reichen. Ist dann noch etwas günstiger.
    Ich meine mich auch erinnern zu können, dass der HC-05 multislave-fähig ist. Edit: Wohl doch nicht

    Wandelst du die Pegel vom Arduino zum Bluetooth-Modul nicht?


    Vielleicht ist dieser Thread noch interessant für dich. Dort wird kein Arduino eingesetzt, aber die Idee ist ähnlich. Dort werden zudem Lipos genutzt und eine Ladefunktion per USB ist vorhanden: http://circuit-board.de/forum/…f%C3%BCr-SNES-Saturn-etc/

  • Eine Verorgung über eine andere SPannungsquelle ist ja recht Problemlos drin. Da sollten ja 5 Volt genügen.
    Wobei sich mir da die Frage stellt, ob man es viel kleiner hin bekommt, wenn man noch eine anständige Akkulaufzeit haben möchte? Das ganze sollte ja durchaus dann mal nen Daddelabend von mehreren Stunden aushalten.


    Andere Frage: Ist es möglich, den Empfängerseitigen Arduino mit 2 solchen Bluetooth Modulen auszustatten, um dann 2 getrennte Sender betreiben zu können? Das würde die Kosten für so eine Version klar fast ins Doppelte treiben, wäre aber in meinen Augen immer noch überschaubar.


    Ich persönlich bin übrigens ein Freund vom "Beltpack" als sender. So muss man den Stick nicht umbasteln.


    Wenn man den Empfänger in ein externes Gehäuse mit 2 9 Pin Steckern packt, sollte das ganze ja an allen Rechnern/Konsolen laufen, die die gleichen 9 Pin Sticks verwenden, oder?


    Gruß C-Man

  • Die Empfängerseite kann sich den Strom aus den C64 Joystickbuchsen Ziehen.
    Energieversorgung Sender:
    So knapp 48mA Brauche ich zur Zeit, das Meiste frisst der Arduino, ich denke unter 30 vieleich 20mA sollten mit dem Sleppmode möglich sein.
    Dann würde 2x 2032 Knopfzelle für 8 Stunden spielen Durchhalten.
    Beltpack, ja so ähnlich hatte ich auch gedacht.


    Atari: es sind noch freie Pins Frei ein angepasstes Layout für Atari und es läuft.


    Zwei Sender, Zwei Empfänger.
    Ich arbeite im Moment mit einem Software Serial, die Verwendung von zwei stück würde die Latenzzeiten deutlich Steigern, wäre aber möglich. Die Hardware Serial Packe ich dafür ungern an, auch wegen sperren der Debug möglichkeit.

  • Eine Verorgung über eine andere SPannungsquelle ist ja recht Problemlos drin. Da sollten ja 5 Volt genügen.

    Jain, das geht nur "Sicher", wenn Du den USB-Port als Eingang nutzt. Der V-In braucht etwa 7 Volt und vernichtet dann
    den Rest über den Festspannungsregler. Vom Einspeisen in den "5V" Pin wird ausdrücklich abgeraten.
    Ich nutze zum Beispiel einen Step-Up, mit dem ich an die Kontakte des USB gehe. Der Arduino + BT-Modul
    braucht nicht viel Strom.

    Andere Frage: Ist es möglich, den Empfängerseitigen Arduino mit 2 solchen Bluetooth Modulen auszustatten, um dann 2 getrennte Sender betreiben zu können?

    Auch hier "Jain" - Du benutzt Pin 0 und 1 fürden ersten BT. Mit einer zus. Library kannst du noch 2 weitere Pinne Seriell nutzen. Sagen wir
    2 und 3. Dannhast Du noch 10 Pin s frei zur "Datenverarbeitung". das reicht gerade mal für 2x (4 Richtungen + 1 Feuerknopf) Ein zweiter Feuerknopf
    geht also nicht mehr.
    (Achtung: Nur für Arduino Uno -> nano weiß ich nicht genau):
    Beim Sender müsste aber PIN 13 dann "Eingang" sein. Der hat aber eine LED fest eingebaut, die am "Ausgang" parallel liegt.


    Wenn man den Empfänger in ein externes Gehäuse mit 2 9 Pin Steckern packt, sollte das ganze ja an allen Rechnern/Konsolen laufen, die die gleichen 9 Pin Sticks verwenden, oder?
    Gruß C-Man

    Uneingeschränkt JA. Das funktioniert. (Beim Schneider CPC ist das was anderes)


    Stefan

  • Ich bin nicht sicher, ob mein Lösungsweg etwas schneller ist (ich bin recht neu im Thema und hab mir von nem IT-Kumpel helfen lassen.)
    wenn es hilft, wäre es nett, wenn ich ne Rückmeldung bekomme. Vieleicht kannst Du die Latenz verringern - und dann nen zweiten BT nutzen?

  • Die Meiste Latenzzeit frisst die Zeit Zwischen Serial gesendet und bis es aus dem 2. Bluetooth modul rausfällt.


    Die Soft Serial Sperrt IRQ´s und andere Tasks, wenn Daten rein oder rausgehen.
    Mehrfacher betrieb führt schnell zum Timing Chaos.


    Eine Leiterplatte die Wendefähig bestückt als Sender oder Empfänger laufen kann ist soweit Ätzbar.


    Als Empfänger wird sie einfach an den C64 angesteckt wie der Donald Joystick Swapper.


    Als Sender werden die SUB-D Stecker von der anderen Leiterplattenseite bestückt und mit einer 7V up Batterie versorgt. und kann am Spieler getragen werden.
    Im Joystick ist sicher Möglich, aber wird Frickellei.

  • Ich hab mir heute den Competition Pro noch mal angeschaut.
    Im Stick ist ja wenig Platz.
    Dann hatte ich die Idee man könnte zwischen Ober nd Unterteil noch ein Mittelteil bauen um etwas mehr Platz zu bekommen.
    Z.B.aus nem 3D Drucker.
    Oder etwas was man vorn an den CP Pro setzt wo das kabel rauskommt.