Servo Brick

Features

  • Steuert bis zu 7 RC Servos mit max. 3A über USB
  • Brushless Motoren über externe ESCs ebenfalls steuerbar
  • API für viele Programmiersprachen verfügbar
  • Unterstützt TurboPWM
  • Über API einstellbare Servospannung, Periode und Pulsweite
  • Position, Geschwindigkeit und Beschleunigung steuerbar
  • Erweiterbar über zwei Bricklet Anschlüsse

Beschreibung

Der Servo Brick kann bis zu 7 RC Servos mit einem maximalen Strom von 3A per USB steuern. Eine API für viele Programmiersprachen ermöglichen das Steuern der Position, Geschwindigkeit und Beschleunigung der angeschlossenen Servos. Die Ausgangsspannung ist ebenfalls per API einstellbar (max. 9V), der Stromverbrauch jedes Servos kann einzeln gemessen werden. Zusätzlich kann die PWM jedes Servos einzeln konfiguriert werden.

Modellbau-Fahrtenregler (Electronic Speed Controller - ESC) können anstatt der Servos angeschlossen werden und ermöglichen es andere Motoren, wie z.B. Brushless Motoren, zu steuern. Es muss nur der richtige ESC abhängig vom Motor gewählt werden, so dass auch Motoren mit einem Stromverbrauch von 150A und mehr steuerbar sind.

Über zwei Anschlüsse können Bricklets angeschlossen werden, die die Fähigkeiten des Bricks erweitern. Der Servo Brick kann mit anderen Bricks in einem Stapel genutzt werden. Zum Beispiel kann ein zusätzlicher Master Brick mit Master Extensions genutzt werden, um die USB Verbindung durch andere kabelgebundene Schnittstellen (RS485, Ethernet) oder drahtlose Schnittstellen (WLAN) zu ersetzen.

Die Versorgung der Servos erfolgt entweder über eine externe Stromversorgung (schwarze Stromversorgungsbuchse), die direkt an den Brick angeschlossen wird, oder über die interne Stromversorgung des Stapels. Der Brick schaltet automatisch auf externe Stromversorgung um, sobald eine angeschlossen wird.

Technische Spezifikation

Eigenschaft Wert
Maximaler Motorstrom (Summe) 3A
Eingangsspannung 5V - 25V (mindestens 1V höher als eingestellte Ausgangsspannung)
Ausgangsspannung 2V - 9V (über Software einstellbar)
   
Ausgangsperiode* 1µs - 65535µs
Pulsweite* 1µs - 65535µs
Geschwindigkeit* 0 - 65535 °/100s
Beschleunigung* 1 - 65535 °/100s²
   
Bricklet Anschlüsse 2
Abmessungen (B x T x H) 40 x 40 x 16mm (1,57 x 1,57 x 0,63")
Gewicht 18g
Stromverbrauch 60mA

* einstellbar pro Servo

Ressourcen

Anschlussmöglichkeit

Das folgende Bild zeigt die verschiedenen Anschlussmöglichkeit des Servo Bricks.

Servo Brick mit Beschriftung

Erster Test

Um einen Servo Brick testen zu können müssen zuerst Brick Daemon und Brick Viewer installiert werden. Brick Daemon arbeitet als Proxy zwischen der USB Schnittstelle der Bricks und den API Bindings. Brick Viewer kann sich mit Brick Daemon verbinden, gibt Informationen über die angeschlossenen Bricks und Bricklets aus und ermöglicht es diese zu testen.

Schließe einen RC Servo und eine passende Stromversorgung an den Brick an. Der Aufbau sollte dem im folgenden Bild ähnlich sehen.

Servo Brick mit Servo

Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab namens "Servo Brick" auftauchen. Wähle diesen Tab aus.

Servo Brick im Brick Viewer

Auf der linke Seite des Tabs kann der einzustellende Servo ausgewählt werden. Dieser kann ein- und ausgeschaltet, die zulässige PWM Pulsweite eingestellt und der Winkelbereich definiert werden. Zusätzlich wird der Stromverbrauch des Servos angezeigt. Weiter unten finden sich vier Regler mit denen Position, Geschwindigkeit und Beschleunigung des Servos kontrolliert werden können. Der vierte Regler dient zur Einstellung der PWM Periode (siehe Servo PWM einstellen für weiterführenden Information).

Auf der rechten Seite wird die externe und die Versorgungsspannung des Stapels angezeigt. Darunter findet sich eine graphische Darstellung des Zustandes jedes Servos. Ganz unten können die Mindesteingangsspannung und die Ausgangsspannung eingestellt werden. Wird die Mindesteingangsspannung unterschritten wird der Undervoltage Callback ausgelöst.

Warnung

Eine zu hohe Ausgangsspannung kann den Servo beschädigen!

Unten rechts ist der "Start Test" Knopf, dieser startet eine Testsequenz bei der alle Servos zufällige Bewegungen ausführen.

Nun kann ein eigenes Programm geschrieben werden. Der Abschnitt Programmierschnittstelle listet die API des Servo Brick und Beispiele in verschiedenen Programmiersprachen auf.

Servo PWM einstellen

Typischerweise wird ein RC Servo über ein PWM Signal mit 20ms Periode und 1ms bis 2ms Pulsweite gesteuert. Dabei definiert die Pulsweite die gewünschte Position. Es gibt aber auch Servos die nicht diesem Standard entsprechen, daher erlaubt der Servo Brick alle Parameter des PWM Signals zu konfigurieren.

Der Standardwert für die Periode ist 19,5ms. Diese Periode funktioniert mit allen bisher getesteten Servos (20ms funktioniert mit einigen chinesischen Servos nicht zuverlässig). Falls im Datenblatt des Servos eine Periode angeben ist sollte dieser Wert auch eingestellt werden. Es ist allerdings eher unwahrscheinlich, dass dieser Wert verändert werden muss.

Eher interessant ist die minimale und maximale Pulsweite. Der Standardbereich ist 1ms bis 2ms. Die meisten Servos können aber auch einen größeren Winkelbereich fahren wenn der Bereich der Pulsweite vergrößert wird. Falls im Datenblatt des Servos eine Angabe über die zulässige Pulsweite gemacht ist sollte diese entsprechend eingestellt werden. Falls der zulässige Bereich der Pulsweite unbekannt ist können die richtigen Werte durch Ausprobieren angenähert werden. Dazu muss der Bereich solange vergrößert werden bis der Servo anfängt zu stottern. Der zulässige Bereich sind dann der nächste kleiner, bei dem der Servo noch nicht stottert.

Warnung

Einen Servo über längere Zeit mit einer falsch eingestellten PWM zu betreiben kann den Servo beschädigen.

Stromversorgung

Der Servo Brick hat eine interne Stromversorgung, die es ermögliche die Ausgangsspannung für die Servos einzustellen. Die interne Stromversorgung kann entweder über den schwarzen Stromversorgungsstecker auf der Platine versorgt werden oder über eine Stromversorgung die unter den Brick gesteckt wird. Der Brick schaltet von selbst auf extern Versorgungen um, wenn am schwarzen Stecker eine Spannung anliegt. Da die interne Stromversorgung einen Step-Down Regler verwendet muss die Eingangsspannung am schwarzen Stromversorgungsstecker 1V höher sein als die eingestellt Ausgangsspannung für die Servos. Andernfalls ist ein stabiler Betrieb nicht gewährleistet.

Warnung

Eine zu hohe Ausgangsspannung kann den Servo beschädigen!

Brushless Motoren mit ESCs verwenden

Mit dem Servo Brick können bis zu 7 Brushless Motoren mittels externen Electronic Speed Controllern (ESC) gesteuert werden. Dazu muss einfach der Brushless Motor an den ESC und der ESC an den Servo Brick angeschlossen werden. Mit diesem Aufbau ist der maximale Motorstrom nur durch den verwendeten ESC beschränkt.

Warnung

Viele ESCs haben eingebaute Battery Eliminator Circuits (BEC) die verwendet werde können um RC Empfänger zu versorgen. Falls ein ESC mit BEC verwendet wird dann muss diese unbedingt abgeschaltet werden. Andernfalls kann der ESC oder der Servo Brick zerstört werden. Um die BEC abzuschalten darf das rote Kabel des ESC nicht an den Servo Brick angeschlossen werden (externes Videotutorial).

Warnung

Falls die gleiche Stromversorgung für den ESC und den Servo Brick verwendet wird, dann darf auch das schwarze Kabel (GND) nicht an den Servo Brick angeschlossen werden. Andernfalls kann der Motorstrom über das GND Kabel fließen und die Strommessschaltung auf dem Servo Brick zerstört werden.

Andere Hardware anschließen

Es können auch andere Geräte wie z.B. Lüfter mit PWM Eingang (nicht zu verwechseln mit Tachoausgang) gesteuert werden. Diese dürfen nur direkt über das Servo Brick mit Strom versorgt werden, wenn die normale Gerätespannung unter 9V liegt.

Möchte man z.B. einen 12V Lüfter betreiben, so sollte dieser nicht über das Servo Brick versorgt werden! Auftretende Spannungsspitzen können dazu führen, dass die Maximalspannung von 10V (definiert durch einen verbauten Tantal-Kondensator) überschritten wird und der Tantal-Kondensator explodiert! Um dies zu verhindern sollte der Lüfter extern über 12V versorgt werden (12V, Masse). Das PWM Signal kommt dann vom Servo Brick. Masse muss ebenfalls mit dem Servo Brick verbunden werden.

Fehler LED

Die rote LED leuchtet wenn die Versorgungsspannung unter das einstellbaren Minimum fällt.

Programmierschnittstelle

Siehe Programmierschnittstelle für eine detaillierte Beschreibung.

Sprache API Beispiele Installation
C/C++ API Beispiele Installation
C# API Beispiele Installation
Delphi/Lazarus API Beispiele Installation
Go API Beispiele Installation
Java API Beispiele Installation
JavaScript API Beispiele Installation
LabVIEW API Beispiele Installation
Mathematica API Beispiele Installation
MATLAB/Octave API Beispiele Installation
MQTT API Beispiele Installation
Perl API Beispiele Installation
PHP API Beispiele Installation
Python API Beispiele Installation
Ruby API Beispiele Installation
Rust API Beispiele Installation
Shell API Beispiele Installation
Visual Basic .NET API Beispiele Installation
TCP/IP API    
Modbus API    

FAQ

Die Servos stottern

Die häufigste Ursache ist ein Spannungsabfall, verursacht durch wiederholte Spitzen im Stromverbrauch der angeschlossenen Servos. Als erstes sollte sichergestellt werden, dass die Eingangspannung des Servo Bricks um mindestens 1V höher liegt als die eingestellte Ausgangsspannung.

Üblicherweise tritt diese Problem auf, wenn die Stromversorgung Spitzen im Stromverbrauch nicht verträgt. Um die Stromversorgung als Ursache auszuschließen können testweise Batterien als Stromversorgung verwendet werden. Diese haben normalerweise kein Problem mit Spitzen im Stromverbrauch.

Falls schon Batterien verwendet werden und das Problem weiterhin auftritt, dann sollte als nächstes sichergestellt werden, dass die Batterien voll geladen sind. Falls die Batterien zu schwach sind fällt deren Spannung ab.

Wenn die Servos nur anfangen zu stottern wenn sie den minimalen oder maximalen Winkel erreichen, dann ist der Bereich der zulässigen Pulsweite zu groß eingestellt. In diesem Fall musst der Bereich der Pulsweite verringert werden. Anderenfalls können deine Servos beschädigt werden, wenn dieser Zustand längere Zeit anhält.