L298N Motortreiber mit RC Fernsteuerempfänger verbinden

Der Servoausgang  eine RC Empfängers stellt zwar alle Informationen bereit, die zur Steuerung eines L298N Motortreibers benötigt werden, aber das Signal muss in geeigneter Weise ausgewertet und neu kodiert werden, da die Ansteuerungslogik des Motortreibers grundsätzlich anders ist als die eines RC Servos.

Diese Aufgabe kann der RCRX2Bridge Baustein übernehmen. Es handelt sich dabei um eine Ein-Chip-Lösung, die jeweils einen Kanal auswertet und damit einen Motor der L296 Brücke ansteuert. Die Schaltung ist sehr einfach und der Baustein mit dem Breakout-Board schnell aufzubauen.

RCRX2Bridge Breakout Board
RCRX2Bridge Breakout Board

 

RCRX2Bridge unterstützt die zwei gängigen, aber unterschiedlichen Ansteuerungen von L298N Brücken: Modelle mit 2/4 Phasen und Modelle mit zwei Logik- und einen Speed-Eingang.

Ansteuerung von Brücken mit zwei Eingängen

Typischer L298N Motortreiber mit zwei Eingängen je Motor
Typischer L298N Motortreiber mit zwei Eingängen je Motor

 

Der RCRX2Bridge Baustein wird eingangsseitig, wie im Beitragsbild dargestellt, mit dem Empfänger verbunden. Die Eingangspins des Motortreibers IN1 und IN2 werden wie im Beitragsbild gezeigt, mit den Ausgangspins des Breakout-Boards verbunden. Soll noch ein zweiter Motor angesteuert werden, dann ist dazu ein zweites RCRX2Bridge -Modul erforderlich.

Ansteuerung von Brücken mit drei Eingängen

Typischer L298N Motortreiber mit drei Eingängen
Typischer L298N Motortreiber mit drei Eingängen

 

Konfiguration des RCRX2Bridge für Motortreiber mit drei Eingängen
Konfiguration des RCRX2Bridge für Motortreiber mit drei Eingängen

Für diesen Anwendungsfall wird der RCRX2Bridge Baustein durch eine Lötbrücke bei “MODE” für die geänderte Logik konfiguriert und dann auch in diesem Fall eingangsseitig, wie im Beitragsbild dargestellt, mit dem Empfänger verbunden.

Die Eingangspins des Motortreibers ENA, IN1 und IN2 werden wie im Bild gezeigt, mit den Ausgangspins des Breakout-Boards verbunden. Soll noch ein zweiter Motor angesteuert werden, dann ist dazu auch hier ein zweites RCRX2Bridge -Modul erforderlich.

 

Der Bausatz für das Breakout-Board mit dem RCRX2Bridge Controller ist im Shop erhältlich.

 

Fernsteuerung mit Gamepad oder Joystick

Überblick

Bereits im vorherigen Beitrag wurde die Möglichkeit vorgestellt, mit einem Joystick oder Gamepad, einem PC und einem PiKoder/SSC bis zu acht Servos über eine USB-Schnittstelle zu steuern. Hier wird nun beschrieben, wie eine drahtlose Modellfernsteuerung mit einem PiKoder – Empfänger, dem PiKoder/SSC RX, realisert werden kann.  Zur Signalübertragung kommt Bluetooth zum Einsatz.

Aufbau

Zunächst ist der PiKoder/SSC RX auf der Ebene des Betriebssystems mit dem PC zu verbinden. Hierzu sucht man zunächst in der Gerätesteuerung nach neuen Bluetoothgeräten.

Nach kurzer Zeit sollte das Bluetooth-Modul des Empfängers angeboten werden. Der PIN lautet “1234”.

Mit der Auswahl “Verbinden” erfolgt die Kopplung (Pairing) auf Systemebene.

Wie die folgende Ansicht aus dem Geräte-Manager zeigt, werden mit der Kopplung systemseitig auch zwei virtuelle serielle Schnittstellen angelegt auf die wir später im Programm zum Verbindungsaufbau zugreifen. 

Damit ist die Einrichtung abgeschlossen und das Programm JoystickRC kann jetzt wie im vorherigen Beitrag beschrieben gestartet werden. 

Servos mit Gamepad oder Joystick steuern

Überblick

Im Bereich der Robotik ergibt sich häufiger die Notwendigkeit mehrere Servos drahtgebunden anzusteuern, z.B. bei der Realisierung eines Roboterarms oder eines Underwater ROV. Hierbei bietet sich die Bedienung mit einem Gamepad oder Joystick an, weil die Vielzahl der Achsen / Freiheitsgrade die effiziente Kontrolle vieler Kanäle ermöglicht.

Dieser Blog beschreibt den Aufbau, um mit der kostenlosen Windows APP JoystickRC acht Servos drahtgebunden zu kontrollieren.

Die Abbildung der Achsen und Schalter auf die Servokanäle erfolgt flexibel in der Software. Die eigentliche Impulserzeugung für die Servos übernimmt ein PiKoder Serial Servo Controller (PiKoder/SSCng), der über seine USB-Schnittstelle mit dem PC verbunden ist. 

Aufbau

Der Aufbau erfolgt idealerweise mit Hilfe eines PiKoder/SSCng –Entwicklungsboards und mit einem Standard USB-Kabel. Die Spannungsversorgung des PiKoder erfolgt über den USB Port. Da die USB-Schnittstelle nicht genügend Leistung zum Betrieb der Servos liefern kann, sind diese mit einer unabhängigen Spannungsquelle über die Anschlussleiste zu versorgen. Um Ausgleichströme zu verhindern, die den PC beschädigen könnten, darf der Jumper auf der PiKoder-Leiterplatte auf keinen Fall gesteckt sein. Nähere Informationen finden Sie im User Manual der PiKoder.

Software

Das Programm JoystickRC ist kostenlos im Microsoft Store erhältlich. Weitere Hinweise zur Bedienung finden Sie auf der Webseite des Programms.

 

Mehrere Joysticks mit Joystick Gremlin zu einem PPM – Signal mischen

Manchmal reicht nur ein Joystick oder ein Gamepad für einen Use Case nicht aus sondern es sollen weitere USB-Geräte wie Ruderpedale und ein Headtracker in das PPM-Signal gemischt werden. 

Wenn die Geräte als Windows Joysticks/Gamepads erkannt werden, dann bietet der Joystick Gremlin in Verbindung mit vJoy die Möglichkeit, Devices zu einem oder mehreren neuen virtuellen Geräten zu kombinieren.

Die Joystick2PPM – Applikationen Joystick2PPM, Joystick2PPM4Arduino, USBtoPPMforCompuFly und JoystickRC4Diddyborg bieten alle verbundenen (auch virtuellen) Joysticks dann beim Programmstart als Eingabegerät an und ermöglichen durch die Virtualisierung die Zuordnung der Achsen der verschiedenen USB-Geräte zu den PPM-Kanälen.

Die Installation von Joystick Gremlin ist im Manual beschrieben und war bei mir problemlos möglich. Danach konfiguriert man virtuelle Devices mit der gewünschten Zuordnung der Achsen und Tasten.

Findet eine der Joystick2PPM-Apps beim Start mehr als ein Device (egal ob physisch oder virtuell), dann wird dem User beim Programmstart eine Auswahl mit allen gefundenen Devices angeboten. 

Wird durch den Benutzer keine Auswahl getroffen, dann wird automatisch der erste Joystick in der Liste verwendet.

 

 

DiddyBorg mit QGroundControl – Joystick fernsteuern

In diesem Blog beschreibe ich, wie ich die Joystick- / Gamepad-Fernsteuerung meines RPI-gesteuerten DiddyBorg zu QGroundControl und MAVLink als Kommunikationsprotokoll weiter entwickelt habe. 

Damit habe ich die Basis geschaffen, um zukünftig in einer Standardumgebung weitere Sensoren zu verarbeiten und Missionen für den DiddyBorg zu planen und durchzuführen.

Softwareinstallation auf dem Raspberry Pi (RPi)

Auf dem RPi installieren Sie zunächst pymavlink, die Python-Version der MAVLink-Libraries. Am einfachsten geht dies mit PIP:

pip install pymavlink

Danach müssen Sie das Modul mavutil.py ersetzen, weil ansonsten aufgrund eines pymavlink-Issues keine Verbindung zwischen dem RPi und QGroundControl zustande kommt. Hierzu suchen Sie den Installationsort der pymavlink-Library mit:

pip list -v  

 

Dann ersetzen Sie das mavutil.py – Modul mit der Version im github-Repository zu diesem Blog. Die neue Version ist rückwärtskompatibel.

Schließlich erstellen Sie ein Verzeichnis, z.B. diddy2QGC in das Sie die Python-Module diddy2QGroundControl.py und ThunderBorg3.py kopieren. In diesem Verzeichnis starten Sie dann später das Python-Skript mit:

 python diddy2QGroundControl.py

 

Softwareinstallation auf dem Desktop

Installieren Sie QGroundControl auf Ihrem Desktop.

Starten der Anwendungen

Stellen Sie sicher, dass sich der RPi und Ihr Desktop im gleichen Netzwerk befinden und starten Sie QGroundControl (QGC) und das Python-Skript (die Reihenfolge ist ohne Bedeutung). 

Der DiddyBorg meldet sich bei der QGC an und Sie finden dann in den Vehicle-Einstellungen die Möglichkeit, Ihren Joystick einzulernen. Bitte beachten Sie dabei, dass diddy2QGroundControl.py im Mode 2 den Roll-Kanal für die Rechts/Links-Steuerung und den invertierten Wert des Pitch-Kanals für die Motorsteuerung verwendet.

 

 

Modernisierte Bedieneroberfläche für CompuFly von Flytron

In diesem Blog stelle ich meine Windows-App USB2PPM4CompuFly für den CompuFly USBtoPPM Converter V2.0 von Flytron vor. Diese Software ersetzt das auf der Flytron Produktseite bereit gestellte CompuFly – Programm.

Die USBtoPPMforCompuFly-App behält die bewährte Bedienung des  CompuFly-Programms weitgehend bei, präsentiert sich aber als komplett neu entwickelte Windows 10/11 App mit einer neueren Oberfläche und neuen Features.

Nach dem Start verbindet sich die App automatisch mit dem Converter und dem ersten angeschlossenen DirectX-fähigen Joystick oder Gamepad. Die verwendete Konfiguration wird bei Beendigung des Programms gespeichert und beim Neustart wieder geladen.

Die Bedieneroberfläche ist intuitiv und selbsterklärend: den Channel Outputs werden Joystick-Achsen bzw. Slider oder Buttons zugeordnet. Achsen und Slider-Kanäle können “getrimmt” werden und zur Anpassung an spezifische Anwendungsfälle steht zusätzlich EPA (Einstellung des Servoweges) zur Verfügung.

Über den Umfang des Open Source Programms Compufly.zip version 1.35 hinaus bietet USBtoPPMforCompuFly eine Schalterfunktion für die Joystick-Buttons an. Hierzu ist ein Button als Eingang für einen Servokanal auszuwählen und die Checkbox “sw” zu aktivieren.

Die USBtoPPMforCompuFly-App beziehen Sie im Microsoft App Store.

 

Open Source Android App zur Modellfernsteuerung mit Bluetooth

Übersicht

Mit der “picCAR” App wird ein Android-Tablet oder Smartphone mit Bluetooth zum Fernsteuersender.

Die App basiert ursprünglich auf dem Cxem Car 1 Open Source Projekt. Es wurden verschiedene Anpassungen der Benutzeroberfläche vorgenommen und die Steuerbefehle auf den PiKoder/SSC RX Empfänger umgestellt.

Die App ist “Open Source” und wird über Github bereit gestellt.

Bedieneroberfläche

Bedieneroberfläche picCAR

Die Bedieneroberfläche ist intuitiv und einfach verständlich. Es stehen vier verschiedene Modi zur Verfügung: über Tasten (“Button Control”), virtuellen Joystick, Beschleunigungsmesser und eine Kombination aus Beschleunigungsmesser mit logischem Schieberegler. Die Verbindung zum Empfänger wird aufgebaut, sobald der Bedienmodus ausgewählt wurde.

Der Aufbau des Empfängers ist auf der PiKoder/SSC RX Seite beschrieben. Die App wird von allen PiKoder/SSC Firmwareversionen unterstützt. Soll die Time-out-Funktion der App genutzt werden, dann ist mindestens Release 1.03 zu verwenden.

picCAR User’s Guide (.pdf File, DE)

Der picCAR User’s Guide beschreibt die Funktionen der picCAR APP im Detail.

 

Arduino Fernsteuersender mit iRangeX Multiprotokollmodul

Der vorherige Blog beschreibt den Arduino-PPM-Encoder. Zusammen mit einem Multiprotokollmodul können Sie mit geringem Zusatzaufwand einen vollständigen Fernsteuersender aufbauen.

Dazu adaptieren Sie das Modul über ein Arduino-Prototyp-Shield. Es sind allerdings nicht alle Shields gleich geeignet. Einige Shields haben im unteren rechten Bereich kein Lochraster sondern ein spezifisches Layout wie die rote Leiterplatte im Bild. Sie benötigen aber ein Prototyp-Board mit vollständigem Lochraster wie die blaue Leiterplatte.

Arduino Prototyp Sields

Die elektrische Verbindung zwischen dem Arduino und dem Modul stellen Sie mit einer fünfpoligen Stiftleiste mit extra-langen Stiften her. Stecken Sie die Stiftleiste in die Buchsenleiste auf der Rückseite des Moduls ein. Positionieren Sie das Modul dann auf dem Prototyp-Shield und finden so die korrekte Position für das Modul und die Lötpunkte, die Sie verwenden müssen. 

Um einen sicheren Halt zu gewährleisten, habe ich noch zusätzlich Klettband vorgesehen. Da sich durch diese zusätzliche Zwischenlage die Höhe der Lötstifte nochmal verändert, können Sie die Stifte erst jetzt einlöten.

Die Verdrahtung zur Spannungsversorgung und für das PPM Signal entnehmen Sie dem Bild. Mit dem Aufstecken des Moduls ist der Aufbau abgeschlossen.

 

 

 

 

 

 

 

 

USB2PPM by Arduino

Meine bisherigen Blogs zur Verbindung eines Joysticks mit einer Modellfernsteuerung über USB haben immer einen meiner PiKoder verwendet. Aber natürlich kann auch ein Arduino die PPM-Signalerzeugung übernehmen. 

Zur Umsetzung dieser Idee habe ich einen Arduino Sketch USB2PPM_by_Arduino (Open Source) erstellt, den Sie auf Github finden. Das Programm implementiert einen PPM-Encoder, dessen Parameter und Kanalwerte über serielle Kommandos gesetzt werden.

So können Sie u.a. die Polarität des Ausgangssignals umschalten und die Zahl der PPM-Kanäle im Bereich von eins bis acht wählen, um den Encoder auf Ihren Sender anzupassen.  

Das PPM Signal finden Sie am Pin D8. Zur Verbindung mit dem Schülereingang Ihrer Modellfernsteuerung benötigen Sie dann noch ein entsprechendes Kabel. Möglicherweise ist es auch sinnvoll, ein Arduino – Prototyp – Shield zu verwenden, das eine geeignete Buchse aufnimmt, um eine stabile Verbindung sicher zu stellen. 

Für die Integration der PPM-Encoders in Ihre Anwendung entnehmen Sie die Definition der Kommandos und Nachrichten dem Headerfile protocol.h.  

Außerdem finden Sie im Microsoft Store die Joystick2PPM4Arduino App mit der Sie einen Joystick oder Gamepad (DirectX-fähig) verwenden, um den Arduino-PPM-Encoder anzusteuern. Die App arbeitet mit dem Arduino Uno, Nano und Micro Pro. 

Joystick Modellfernsteuerung mit iRangeX Multiprotokoll – Modul und Android Smart Device – noch kompakter!

Der vorherige Blog hat beschrieben, wie der ursprünglich verwendete Fernsteuersender durch ein iRangeX Multiprotokoll-Modul ersetzt und der gesamte Aufbau vereinfacht werden kann.

In diesem Blog wird nun ein noch kompakterer Aufbau beschrieben, bei dem der USB Hub, der USB2PPM PiKoder und das Multiprotokoll-Modul mechanisch zu einer Einheit zusammengefasst werden, die dann nur noch mit dem Smart Device und dem Joystick verbunden werden muss.

Zur Realisierung sind folgende Schritte erforderlich:

    1. Kabel USB – Hub verlängern
    2. USB2PPM PiKoder mit USB-Stecker modifizieren
    3. Baugruppenträger realisieren
    4. Module montieren und verdrahten

Kabel USB – Hub verlängern

Die gängigen USB OTG Hubs (on the go) haben in der Regel ein sehr kurzes Anschlusskabel (0,1 – 0,15 m). Im praktischen Einsatz ergeben sich hierdurch Einschränkungen, da der Hub so immer in der Nähe des Smart Devices sein muss und möglicherweise neben dem Halter in der Luft hängt und so eine „starre Verbindung“ mit dem PiKoder nicht möglich ist.

Die Verlängerung des Anschlusskabels stellt kein Problem dar. Es ist lediglich zu beachten, dass als Stecker weiterhin ein OTG-Stecker mit entsprechender Kodierung (s. Bild) zum Einsatz kommt, weil der Hub ansonsten nicht erkannt und mit Spannung versorgt wird.

Die Verlängerung lässt sich am einfachsten realisieren, indem ein Stück USB-Kabel der gewünschten Länge an die Hub-Platine angelötet wird und am anderen Ende der vorhandene Stecker mit dem kurzen Kabelende angebracht und mit Schrumpfschlauch fixiert wird.          

USB2PPM PiKoder mit USB-Stecker modifizieren

Für die direkte Verbindung zwischen USB Hub und PiKoder benötigt der USB2PPM einen USB Stecker (s. Bild rechts) anstelle der normalen USB Micro-Buchse. Damit der Stecker montiert werden kann, sägen Sie die Leiterplatte ein um dann die Befestigungslaschen durchstecken zu können. Zusätzlich ist eine Bohrung erforderlich, um die Anschlusskabel des Steckers verdrahten zu können (s. Bild unten).

Danach kleben Sie den Stecker mit Zweikomponentenkleber auf die Leiterplatte und bestücken die Leiterplatte mit den übrigen Bauteilen (s. Bilder unten). Hinweis: im weiteren Verlauf des Projektes habe ich den dreipoligen Header durch einen Molex-Verbinder ersetzt. 

 

Zum Schluss verbinden Sie nun noch die Pins des USB Steckers mit den entsprechenden PiKoder Pins; hierzu wird ein dünner, isolierter Draht verwendet. Das folgenden Bilder zeigen die schematische Verbindung und danach sehen Sie die konkrete Ausführung auf der Platinenunterseite.

 

Baugruppenträger realisieren

Der Baugruppenträger besteht aus einer einfachen gewinkelten Holzkonstruktion. Die quadratische Grundplatte von 85 mm Seitenlänge nimmt den Hub und den USB2PPM Pikoder auf. Das Multiprotokollmodul wird in der senkrechten Gabel eingeklemmt. Zur optischen Verbesserung der Kabelführung habe ich einen entsprechenden Kanal gebohrt.

Module montieren und verdrahten

Auf den folgenden Bildern sehen Sie den kompletten Aufbau. Der Hub wird mit doppelseitigem Klebeband fixiert, der USB2PPM PiKoder eingesteckt und mit Schrauben durch die beiden vorderen Befestigungslöcher fixiert. Hierbei verwenden Sie am besten einige Unterlagscheiben als Abstandhalter, damit sich die Leiterplatte nicht verbiegt.

Mit dem Micro USB Stecker ist der “Kompakt-Sender” zunächst für den Anschluss an ein Android Device vorgesehen. Mit einem kleinen Adapter, z.B. von Micro USB auf USB C-Stecker kann der Sender natürlich problemlos mit einem Surface Notebook verbunden werden.