STOP RUSSIAN WAR OF AGGRESSION ON UKRAINE

Raspberry Pi elektronischer Fahrtenregler

Raspberry Pi elektronischer Fahrtenregler

Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

Der klassische Modellbau Fahrtenregler findet sich in RC Autos, Booten und Flugmodellen. Ich hatte bis jetzt für meine Roboter Autos immer H-Brücken verbaut die über eine Vielzahl an Kabeln mit dem Raspberry Pi Computer verbunden werden. Die H-Brücken mit teilweise bis zu sechs Kabeln anzuschließen hat immer wieder Potential für Fehler geboten in Form z. B. eines Wackelkontaktes oder gelösten Steckers. Mit einem elektronischen Fahrtenregler (ESC) der mit nur einem Stecker mit drei Kontakten an einem Servo-Kontroller angeschlossen ist das Fehlerrisiko deutlich geringer.

Für mein Projekt Donkeycar habe ich einen Fahrtenregler wie den nachfolgenden verbauen müssen. So habe ich mich mit dem Anschließen und der Ansteuerung im Zusammenhang mit einem Raspberry Pi auseinandergesetzt.

Raspberry Pi elektronischer Modellbau Fahrtenregler

Raspberry Pi elektronischer Modellbau Fahrtenregler

Neben dem Fahrtenregler wird noch ein PCA9685 Servo-Kontroller und ein Raspberry Pi benötigt. Der Servo-Kontroller wird am I2C Bus des Raspberry Pi angeschlossen und bietet 16 Anschlussmöglichkeiten für Standard RC Komponenten wie Servomotoren und besagten Fahrtenregler.

Für den PCA9685 Servo Kontroller gibt es eine Adafruit Bibliothek die die Ansteuerung aus einem Python Programm heraus sehr vereinfacht. Ich habe unter dem nachfolgenden Link eine Artikelserie geschrieben die in den PCA9685 Servo-Kontroller einführt und Schritt für Schritt erklärt welche Software benötigt wird.

Tutorials PCA9685 Servo Kontroller: 16-Kanal PCA9685 Servo Kontroller – Teil 1 Einführung und Aufbau

Nach folgende Bild zeigt einen Raspberry Pi mit angeschlossenem Servo Kontroller am I2C Bus. Der Servo Kontroller benötigt selber noch 5V um die Servo Motoren mit Energie versorgen zu können. Dieses Kabel ist noch nicht angeschlossen.

Raspberry Pi mit PCA9685 Servo-Kontroller

16 Kanal Servo Kontroller I2C Schnittstelle PCA9685 logisch angeschlossen

16 Kanal Servo Kontroller I2C Schnittstelle PCA9685 logisch angeschlossen

Ich habe den RC Modell Fahrtenregler in mein Donkeycar eingebaut und mit dem kleinen DC Motor des Modellautos verbunden. In dem Modell arbeite ich mit Spannungen von 7,2 V und 5V für den Raspberry Pi und den Servo Kontroller. Nach dem ich den Fahrtenregler mit dem Kanal 0 des Servo Kontrollers verbunden hatte konnte ich diesen mit meinem Python Programm ansteuern.

Autonom fahrendes Raspberry Pi KI Roboter Auto - ESC Fahrtenregler

Autonom fahrendes Raspberry Pi KI Roboter Auto – ESC Fahrtenregler

Python Programm – RC Modellbau Fahrtenregler

Mit dem kleinen Python Programm das ich geschrieben habe ist es möglich einen Fahrtenregler auf dem Kanal 0 und einen Lenk Servo auf dem Kanal 1 den Servo Kontrollers zu steuern. So ist es möglich so gut wie jedes RC Auto mit einem Raspberry Pi und dem Python Programm mit der Tastatur über SSH fernzusteuern.

Das Programm gibt es auf GitHub zum download: GitHub – Python Programm RC Fahrtenregler

Das Python Programm esc.py kann mit dem folgenden Befehl gestartet werden. Es erscheint anschließend ein Text-Menü nach dem Tippen z. B. der Pfeiltaste nach oben. Über die Pfeiltasten der Tastatur wird das RC Modellauto ferngesteuert.

Befehl: python esc.py

Das folgende Bild zeigt das Text-Menü des Python Programms für die Fernsteuerung des RC Autos.

Python RC Auto - Python Programm

Python RC Auto – Python Programm

Zusammenfassung

Wenn man einmal verstanden hat wie ein RC Modellbau Fahrtenregler mit einem Raspberry Pi angesteuert werde kann dann möchte man eigentlich keine H-Brücke mehr verbauen. Im Vergleich zu einer H-Brücke spart man sich eine Vielzahl an Kabeln und kann auf Standard RC Modellbau Komponenten zurückgreifen.

Allerdings muss man etwas mit der Nullstellung des Fahrtenreglers spielen. Dazu bitte die Dokumentation in einem Programm beachten. Denn nur wenn die Nullstellung des Habels für die Beschleunigung zu dem eingesetzten Fahrtenregler stimmt kann dieser aktiviert werden und das Auto fährt vorwärts oder rückwärts. Die Nullstellung sollte bei ca. 380 bis 420 liegen. Mein Python Programm ist entsprechend so geschrieben.


Übersicht der PCA9685 Servo Kontroller Anleitungen:

16-Kanal PCA9685 Servo Kontroller - Teil 1 Einführung und Aufbau
16-Kanal PCA9685 Servo Kontroller - Teil 2 Software Installation und Test
16-Kanal PCA9685 Servo Kontroller - Teil 3 Ansteuerung einer L298N H-Brücke
16-Kanal PCA9685 Servo Kontroller - Teil 4 Ansteuerung eines LED Bandes mit Dimm-Funktion
16-Kanal PCA9685 Servo Kontroller - Spezial: Raspberry Pi elektronischer Modellbau Fahrtenregler
(Visited 5.772 times, 3 visits today)

Über den Autor

Maker

My name is Ingmar and I build Raspberry Pi robots in my sparetime. I wrote a book about Raspberry Pi robots 2016 which is available in German. I am interested in all kinds of electronic projects like differential GPS, machine learning or robotics.

3 Bemerkungen

  1. BerNhard

    Hallo Ingmar,

    erstmal ein großes Lob an diese Seiten und die tolle Anleitungen.

    Seit einigen Wochen bastel ich an meinem (bestimmt schon über 30 Jahre alten) Panzermodel Leo I herum.
    Also mit einem Raspberry Pi Zero um über PWM den ESC und den Servo anzusteuern. Dabei ärgere und wundere mich über zuckende und zitternde Motoren.
    Bis ich nun deine Seiten und die Beiträge zum 16-Kanal PCA9685 Servo Kontroller gefunden habe.

    Ich hab ihn gleich bestellt, eingebaut und was soll ich sagen… es funktioniert super, also fast. Es zittert kein Servo, der Motor läuft völlig Ruckfrei… aber nur Rückwärts.
    Ich drücke die Pfeil-nach-oben Taste, die Anzeige sagt speed dc motor: 20 und der Panzer fährt rückwärts. Zweimal nach unten und die Anzeige sagt -20. Doch leider bewegt sich nichts.

    Hast Du dazu irgendeine Idee?

    Gruß
    Bernhard

    Antworten
    • Maker

      Hallo Bernhard,
      falls Du das Programm von GitHub von mir verwendet hast so kann es sein, dass der Wert 400 gespeichert in den Variablen stop/go bei Deinem ESC ein anderer ist.
      Die 400 legt die Frequenz fest, bei der der Fahrtenregler stoppt. Also sich der Motor nicht mehr dreht und keine Spannung mehr anliegt. Dieser Wert könnte bei Dir auch z. B. 380 sein.

      Denn so wie ich die Funktionsweise der Fahrtenregler verstanden habe muss der 0 Punkt des Hebels der Fernsteuerung erreicht sein bevor der ESC den Motor in eine andere Richtung drehen läßt.

      Ich hoffe ich konnte Dir helfen,

      Ingmar

      Antworten
  2. Bernhard

    Hallo Ingmar,
    ja, ich verwende das Programm von Dir auf GitHub.
    Und tatsächlich, Du hast Recht, den Wert 400 musste ich verändern. Mein ESC funktioniert dabei zwischen 350 und 390.
    Allerdings mit der Einschränkung, dass beim wechsel von rückwärts auf vorwärts der Motor bei vorwärts nicht läuft. Drücke ich jedoch in 0-Stellung auf b und dann auf vorwärts dann läuft er wieder. Dabei ist es egal ob ich mit den Pfeiltasten oder mit q auf die 0-Stellung wechsle.
    Seltsamerweise funktioniert die andere Richtung (Wechesel von vorwärts zu rückwärts) tadellos.
    Hast Du da noch eine Idee?

    Gruß
    Bernhard

    Antworten

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Buchempfehlung:

Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019