Projekt PS2 Funkfernsteuerung

  • Wie gewünscht ein kleiner einblick in mein aktuelles Projekt:
    der Umrüstung eines PS2 Controllers zur DSM2/DSMX Funke.

    Da ich aktuell nicht viel Freizeit habe wird sich das Projekt sicher etwas ziehen ;)

    Google-Drive


    Ziel: Der PS2 Controller soll äusserlich nur um die Antenne erweitert werden.
    Die Reichweite soll etwa 100m betragen (einsatz nur für kleinere Multicopter, Schaukampfroboter, etc.)
    Laden/Programmieren von aussen per USB-Anschluss

    Hardware:
    beliebiger PS2 Controller / Nachbau
    Arduino Nano V3 (Microcontroller müssten auch Funktionieren)
    2 Lipo 390mAH
    Micro-USB Adapterboard
    OrangeTX DSMX-module DIY-Ausführung
    (alternativ DSM2 Modul aus meiner alten Dx5e)
    2 Schieberegister CD4021
    Diverse elektronik, Taster LED, spannungswandler, Laderegler
    (wird sich zeigen...)

    Ausführung:

    Mechanisch:
    Der Controller wird von allem unnötigen befreit => Platine wird bis auf das Terminal für Taster abgetrennt,
    Kunststoffstützen und Vibrationsmotoren werden entfernt.

    Elektronisch:
    Tasterterminal werden angezapft und entweder über Schieberegister (Nur Digital) oder direkt zur Arduino verdrahtet.
    An Stelle der Vibrationsmotoren wird je eine 390mAH Lipo-Zelle eingebaut.

    Programmierung:
    Signale vom Register und den Eingängen werden abgerufen, verarbeitet, in PPM umgewandelt und in die Funkmodule gedrückt.
    (Soweit der Plan, ein konkretes Programm dazu muss ich mir noch aus den Fingern saugen)

    Ab 24. habe ich Urlaub, dann kann ich falls interesse besteht das ganze etwas ausführlicher beschreiben, schaltpläne und scetche hochladen etc.

    Bis dahin wünsche ich schonmal jedem Fröhlich/Stressige Vorweihnachtstage :D

  • Servus,

    Vielen Dank für die ausführlichere Beschreibung. Was mich vor allem interessieren würde: Was für ein OrangeTX Sendemodul verwendest du genau?

  • Das ist dieses Modul

    Ja, die Module sind für gewöhnlich auch dafür ausgelegt, normalerweise zapft man dann aber die PPM Trainer Leitung an anstatt direkt die Taster zu verkabeln.

    Ursprünglich hatte ich auch mal vor das Signal direkt aus dem Controller abzufangen.

    Allerdings hat das Protokoll für die Arduino nicht gepasst und so hab ich nun auch mehr Platz.

    Zitat

    Original von finger.im.ohr
    Im Grunde genommen das Gleiche, was Krümmel mit einer alten Fernsteuerung gemacht hat.

    gibts dazu noch scetch/libraries für die Arduino?
    Wäre höchsterfreut über ein paar Beispielcodes :D

    Einmal editiert, zuletzt von Terminx (20. Dezember 2015 um 20:14)

    • Offizieller Beitrag

    http://1drv.ms/1YpLzWx

    Hier hab ich noch was gefunden. Erste Version stammt von Krümmel. In einigen Versionen habe ich Sachen verändert. Da wir beide wenig Ahnung vom Programmieren haben könnten Fehler drin sein. Vor allem aber ist der Quelltext schlecht kommentiert und unübersichtlich (habe ich immer wieder festgestellt wenn ich mal was ändern wollte).

    Vielleicht kannst Du ja optimieren.

  • super, Danke
    genau der Teil hat mir bisher gefehlt,
    Ich werd die Tage mal drüberschauen und später auf jeden fall meine angepasste Version hochladen

  • Interessantes Projekt. Jetzt verstehe ich die Hardware-Liste. Das ware etwas f:ur unsere Mecha Knights :)

    Ich habe folgendes gefunden:
    Open source RC transmitter software for the Arduino: http://www.reseau.org/arduinorc/index.php?n=Main.HomePage
    Hat warscheinlich den Code und Libraries.

    generate-ppm-signal: https://code.google.com/archive/p/generate-ppm-signal/
    This Arduino code will generate a fully customizable (channel number, polarity, ppm frame length, pulse length) ppm signal without using delays.

    DIY PWM to PPM Converter for 2.4GHz Receiver using Arduino: http://blog.oscarliang.net/build-pwm-ppm-…-4ghz-receiver/
    Inklusiv Code.

    Marien

    Scraptosaur, Midnight Oil, Lt Lee, Mecha Knights, Rockey, Race Robots, Artbots, Linefollowers.

    • Offizieller Beitrag
    Zitat

    Original von Marien
    Interessantes Projekt. Jetzt verstehe ich die Hardware-Liste. Das ware etwas f:ur unsere Mecha Knights :)

    Dieses "Do-it-yourself"-Modul von Orange habe ich auch schon verbaut und bin voll zufrieden damit. (In einem anderen Thread habe ich auch den Umbau von einer Futaba F14 mit diesem Modul dokumentiert. ;) )

    Von Orange werden mittlerweile auch 12-Kanal-Empfänger angeboten (leider gerade nichts lieferbar). Im Prinzip müssten auch 12 Kanäle bei diesem Modul einzuspeisen sein? (Geht zwar dann nicht mehr mit der üblichen Formel auf, dass ein zyklisches Versenden des kompletten Signals alle 20 Millisekunden erfolgt ( Je Kanal: 2 ms ; Pause zwischen zwei Signalen: 4ms), aber irgendwie müssen die Orange-Empfänger ja angesteuert werden können.

  • Terminx: Das Protokoll hat aber nichts mit dem PPM zu tuhen. PPM ist das Puls-Pausen-Verhältnis. Das was du gepostet hast sind die Digitalen Signale die aus einem Satteliten rauskommen.

    Teoretisch kann man mit PPM auch 100 Kanäle pro Frame übertragen. Aber das würde etwas lange dauern :)

    finger.im.ohr: Willst du mir etwa eine schlechte Programmkommentierung unterstellen :P


    Das sind alle meine Versionen die ich noch habe. Eagle Schaltpläne müsste ich auch noch irgendwo haben.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

  • Zitat

    Original von Krümmel
    Terminx: Das Protokoll hat aber nichts mit dem PPM zu tuhen. PPM ist das Puls-Pausen-Verhältnis. Das was du gepostet hast sind die Digitalen Signale die aus einem Satteliten rauskommen.

    Teoretisch kann man mit PPM auch 100 Kanäle pro Frame übertragen. Aber das würde etwas lange dauern :)

    Jo eben gesehen, heute morgen nur grob drübergelesen :D

    Ich dachte beim PPM kommt es auf die Framelänge an?
    Oder hab ich da in deinem Code einen Sync Puls übersehen :o

    Edit:
    Denkfeheler erkannt :D
    Du hast den Delay bereits durch geschicktes Maping von den 2ms abgezogen, dadurch ergibt sich min. 6,5sec für die Synchro

    Einmal editiert, zuletzt von Terminx (21. Dezember 2015 um 21:23)

  • Kleines Update:
    Einlesen der Analogen Kanäle funktioniert
    Einlesen der Digitaleingänge über Register funktioniert
    USB-Ladegerät für 1S Lipo funktioniert und hat Platz
    Booster für die Spannungsversorgung funktioniert
    Code für das TX-modul ist soweit fertig, muss noch getestet werden.

    In der Mitte werden die Knöpfe entfernt und ein OLED Display mit microSD Cardreader eingebaut.

    Pins & Platz reicht aus, mit Programmspeicher wirds knapp (aktuell bereits 9% verbraucht)
    Der Controller sollte dann den gleichen Funktionsumfang wie meine DX7s haben :D

    => Speicher für Modelle mit allen I/O funktionen wie Logarithmus, offset, min/max, Inverter und Mischer

    Beispielvideo Menüführung OLED Display

    Hat jemand erfahrung mit USB Strombegrenzung?
    Sind die Ports an einem Laptop/PC damit versehen?
    Das Ladegerät zieht aktuell max. 1A
    Ich kann den Ladestrom durch ändern eines Widerstandes verringern
    allerdings möchte ich bei 4 Akkus a 390mAh nicht unbedingt fix am Gerät reduzieren,
    wenn ich auch 1A via Ladegerät reinpumpen könnte...

    Einmal editiert, zuletzt von Terminx (29. Dezember 2015 um 20:11)

    • Offizieller Beitrag
    Zitat

    Hat jemand erfahrung mit USB Strombegrenzung?
    Sind die Ports an einem Laptop/PC damit versehen?
    Das Ladegerät zieht aktuell max. 1A
    Ich kann den Ladestrom durch ändern eines Widerstandes verringern
    allerdings möchte ich bei 4 Akkus a 390mAh nicht unbedingt fix am Gerät reduzieren,
    wenn ich auch 1A via Ladegerät reinpumpen könnte...

    "Erfahrung" ist etwas übertrieben. Aber ich weis anhand von meinem USB-Konvertermodul, dass standardmäßig vom USB-Port nur 100mA gezogen werden können. Wenn der Port umgeschaltet wird (keine Ahnung wie die Sequenz dazu ist und wie man den Treiber dazu "kitzelt") kann man dann maximal 500mA herausholen.
    Damit sollte man aber vorsichtig sein. Hatte mal bei der Konverterschaltung einen Tantal-Elko falsch eingelötet. Zuerst gab Windows eine Systemeldung aus, dass ein USB-Port zuviel Strom ausgibt. Dann hatte der glühende Tantal-Elko aber schon ein Loch in die Couch gebrannt.... Anschließend war der Portausgang vom PC-Mainboard tot.