Das Servo Bricklet 2.0 kann bis zu 10 RC Servos steuern. Eine API für viele Programmiersprachen ermöglichen das Steuern der Position, Geschwindigkeit und Beschleunigung/Verzögerng der angeschlossenen Servos. Motion Planning wird genutzt um neue Positionen ruckelfrei anzufahren. Zusätzlich kann die PWM (Pulsweite und Preiod) 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.
Die Versorgung der Servos erfolgt entweder eine externe Stromversorgung (schwarze Stromversorgungsbuchse). Die Eingangsspannung wird direkt mit den Servos verbunde.
Eigenschaft | Wert |
---|---|
Stromverbrauch | 75mW (15mA at 5V) |
Eingangsspannung | 5V-24V (wird direkt mit den Servos verbunden) |
Ausgangsperiode* | 1µs - 65535µs |
Pulsweite* | 1µs - 65535µs |
Geschwindigkeit* | 0 - 500000 °/100s |
Beschleunigung* | 0 - 500000 °/100s² |
Verzötgerung* | 0 - 500000 °/100s² |
Abmessungen (B x T x H) | 40 x 40 x 10mm (1,57 x 1,57 x 0,39") |
Gewicht | 9g |
* einstellbar pro Servo
Das folgende Bild zeigt die verschiedenen Anschlussmöglichkeit des Servo Bricklet 2.0.
Um ein Servo Bricklet 2.0 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.
Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab namens "Servo Bricklet 2.0" auftauchen. Wähle diesen Tab aus.
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 Bricklet 2.0 und Beispiele in verschiedenen Programmiersprachen auf.
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 das Servo Bricklet 2.0 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.
Mit dem Servo Bricklet 2.0 können bis zu 10 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 Bricklet 2.0 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 den Servo Bricklet 2.0 zerstört werden. Um die BEC abzuschalten darf das rote Kabel des ESC nicht an den Servo Bricklet 2.0 angeschlossen werden (externes Videotutorial).
Warnung
Falls die gleiche Stromversorgung für den ESC und den Servo Bricklet 2.0 verwendet wird, dann darf auch das schwarze Kabel (GND) nicht an den Servo Bricklet 2.0 angeschlossen werden. Andernfalls kann der Motorstrom über das GND Kabel fließen und die Strommessschaltung auf dem Servo Bricklet 2.0 zerstört werden.
Es können auch andere Geräte wie z.B. Lüfter mit PWM Eingang (nicht zu verwechseln mit Tachoausgang) gesteuert werden.
Zur Verwendung eines 12V/24V Lüfters muss ein 12V/24V Netzteil am Schwarzen Spannungseingangsstecker angeschlossen werden. Die Kontroll-PWM des Lüfters muss allerdings einen High-Pegel von 5V und einen Low-Pegel von 0V unterstützen. Die meisten PWM-kontrollierbaren Lüfter unterstützen dies, allerdings sollte das vorher im Datenblatt des Lüfters überprüft werden.
Coming Soon: Bild/Video + Beispielkonfiguriation
TBD
Siehe Programmierschnittstelle für eine detaillierte Beschreibung.
Sprache | API | Beispiele | Installation |
---|---|---|---|
C/C++ | API | Beispiele | Installation |
C/C++ für Mikrocontroller | 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 | 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 |
Die häufigste Ursache ist ein Spannungsabfall, verursacht durch wiederholte Spitzen im Stromverbrauch der angeschlossenen Servos.
Ü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.