Das Silent Stepper Bricklet 2.0 kann einen bipolaren Schrittmotor mit einem maximalen Phasenstrom von 1,6A und einer maximalen Spannung von 46V steuern. Die API des Bricks ist für verschiedene Programmiersprachen verfügbar und kann Richtung, Geschwindigkeit und Beschleunigung des angeschlossenen Schrittmotors steuern. Die Schrittweite kann zwischen Vollschritt und 1/256-Schrittmodus gewählt werden.
Das Silent Stepper Bricklet 2.0 kann in verschiedenen Modi betrieben werden. Im Stealth Modus ist der Motor vollständig lautlos, im Coolstep Modus wird Energie gespart und im Classic Modus bietet der Motor maximales Drehmoment. Das Silent Stepper Bricklet 2.0 kann konfiguriert werden, abhängig von der Motorgeschwindigkeit, automatisch zwischen diesen Modi zu wechseln.
Das Bricklet hat zwei digitale Eingänge, die für Endschalter genutzt werden können.
Eigenschaft | Wert |
---|---|
Stromverbrauch | 100mW (20mA bei 5V) ohne Motor |
Maximaler Motorstrom pro Phase | 1.6A |
Minimum/Maximum Eingangsspannung | 8V/46V |
Schrittauflösung | 1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256 |
Maximale Geschwindigkeit | 0 bis 65535, einstellbares Limit, in Schritte/s |
Maximale Beschleunigung | 0 bis 65535, einstellbares Limit, in Schritte/s² |
Abmessungen (B x T x H) | 40 x 40 x 15mm (1,57 x 1,57 x 0,59") |
Gewicht | 12g |
Das folgende Bild zeigt die verschiedenen Anschlussmöglichkeiten des Silent Stepper Bricklet 2.0.
Um ein Silent Stepper 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.
Verbinde einen Schrittmotor mit dem Bricklet und eine passende Stromversorgung an das Bricklet an (siehe hier). Der Aufbau sollte dem im folgenden Bild ähnlich sehen.
Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab namens "Silent Stepper Bricklet 2.0" auftauchen. Wähle diesen Tab aus.
Auf der linken Seite des Tabs kann die Treiberstufe ein- und ausgeschaltet, sowie die maximale Geschwindigkeit, Beschleunigung und Verzögerung eingestellt werden. Darunter sind drei Knöpfe um die Drehrichtung des Schrittmotors zu kontrollieren sowie diesen zu stoppen. Wenn der "Forward" Kopf geklickt wird, dann wird die Geschwindigkeit des Schrittmotors bis zur "Max Velocity" mit der eingestellten Beschleunigung erhöht. Ein Klick auf den "Stop" Knopf verringert die Geschwindigkeit auf "0" mit der eingestellten Verzögerung.
Weiter unten kann die Schrittmodus (Voll- bis 1/256 Schritt) eingestellt sowie eine Vollbremsung ausgelöst werden, die den Motor sofort anhält.
Alternativ kann der Schrittmotor auch zu einer bestimmten Position (gemessen in Schritten) gefahren werden. Dazu einfach bei "Drive To" die Position eingeben und "Go" klicken. Der Schrittmotor kann ebenfalls eine bestimmte Anzahl Schritte gefahren werden. Bei diesen beiden Fahrweisen werden auch die Einstellungen für die maximale Geschwindigkeit, Beschleunigung und Verzögerung berücksichtigt.
Auf der rechten Seite werden die aktuelle Position, die noch zu fahrenden Schritte sowie die Versorgungsspannung des Stapels und die externe Versorgungsspannung angezeigt. Darunter befindet sich eine Tachometer zur Darstellung der Motorgeschwindigkeit. Ganz unten kann die Mindestspannung des Motors eingestellt werden. Wird diese unterschritten wird der Undervoltage Callback ausgelöst. Zusätzlich kann auch noch der Motorstrom entsprechend des angeschlossenen Motors eingestellt werden.
Ganz unten können Basic, Stealth, Coolstep, Spreadcycle und andere Einstellungen gesetzt werden. Der letzte Tab zeigt den aktuellen Status des Treibers an.
Nun kann ein eigenes Programm geschrieben werden. Der Abschnitt Programmierschnittstelle listet die API des Silent Stepper Bricklet 2.0 und Beispiele in verschiedenen Programmiersprachen auf.
Die rote Error-LED hat vier unterschiedliche Zustände:
Wenn ein Überttemperatur- oder Kurzschluss-Event eintritt hört der Motor auf zu laufen und der treiber wird deaktiviert. Um den Treiber wieder zu starten muss dieser explizit mit der Enable-Funktion wieder aktiviert werden.
Für die meisten Anwendungen können alle anderen Einstellungen beibehalten werden. Nur diese Einstellungen müssen meist angepasst werden:
Im Stealth Modus bewegt sich der Schrittmotor sehr leise mit wenig Vibration. Dieser Modus ist gut einsetzbar für niedrige und mittlere Geschwindigkeiten.
Im Coolstep Modus wird der Schrittmotor mit Energie-Optimierungen betrieben. Für Anwendungen mit sich ändernden Lasten wird der Strom des Motors automatisch verringert, wenn niedrige Lasten bewegt werden. Dadurch wird weniger Wärme erzeugt und weniger Kühlung ist notwendig.
Im Classic Modus sind Stealth und Coolstep Modus deaktiviert. Der Schrittmotor wird ganz klassisch angesteuert, bietet aber ein maximales Drehmoment.
Spreadcycle kann zusammen mit dem Coolstep Modus verwendet werden. Es handelt sich dabei um eine andere Art der Stromregelung die eine schnellere Reaktionszeit auf sich ändernde Motorlasten und Geschwindigkeiten besitzt.
Mittels Stallguard können Motorlast und ein Abwürgen des Motors erkannt werden. Im Coolstep Modus wird diese Messung intern genutzt um den Motorstrom an die Motorlast anzupassen.
Der verwendete TMC2130 ist ein sehr mächtiger Motortreiber. Leider besitzt dieser daher auch viele Modi, Features und Einstellungsmöglichkeiten. In den meisten Anwendungen sollte es ausreichen nur die Grundeinstellungen (Basic Configuration, erster Tab im Brick Viewer) anzupassen.
Wenn alle Eigenschaften des Treibers im Detail verstanden werden sollen, empfehlen wir einen Blick in das TMC2130 Datenblatt.
Um unsere API besser mit den Registern des TMC2130 vergleichen zu können haben wir folgende Tabelle erstellt:
Function | Parameter | Register Name @Address[bits] | Note |
---|---|---|---|
SetBasicConfiguration | Standstill Current | ihold @0x10[4..0] | Wert wird umgewandelt in 0-31 |
Motor Run Current | irun @0x10[12..8] | Wert wird umgewandelt in 0-31 | |
Standstill Delay Time | iholddelay @0x10[19..16] | Wert wird umgewandelt in 2^18 Takte | |
Power Down Time | tpowerdown @0x11 | Wert wird umgewandelt in 2^18 Takte | |
Stealth Threshold | tpwmthrs @0x13 | Wert wird umgewandelt in Zeit zwischen zwei Takte | |
Coolstep Threshold | tcoolthrs @0x14 | Wert wird umgewandelt in Zeit zwischen zwei Takte | |
Classic Threshold | thigh @0x15 | Wert wird umgewandelt in Zeit zwischen zwei Takte | |
High Velocity Chopper Mode | vhighchm @0x6C[19] | ||
SetSpreadcycleConfiguration | Slow Decay Duration | toff @0x6C[3..0] | |
Enable Random Slow Decay | rndtf @0x6C[13] | ||
Fast Decay Duration | fd3/hstrt @0x6C[11/6..4] | wird genutzt wenn chm=1, sonst ignoriert | |
Hysteresis Start Value | hstrt @0x6C[6..4] | wird genutzt wenn chm=0, sonst ignoriert | |
Hysteresis End Value | hend @0x6C[10..7] | wird genutzt wenn chm=0, sonst ignoriert | |
Sinewave Offset | hend @0x6C[10..7] | wird genutzt wenn chm=1, sonst ignoriert | |
Chopper Mode | chm @0x6C[14] | ||
Comperator Blank Time | tbl @0x6C[16..15] | ||
Fast Decay Without Comperator | disfdcc @0x6C[12] | ||
SetStealthConfiguration | Enable Stealth | en_pwm_mode @0x00[2] | |
Amplitude | pwm_ampl @0x70[7..0] | ||
Gradient | pwm_grad @0x70[15..8] | ||
Enable Autoscale | pwm_autoscale @0x70[18] | ||
Force Symmetric | pwm_symmetric @0x70[19] | ||
Freewheel Mode | freewheel @0x70[21..20] | ||
SetCoolstepConfiguration | Minimum Stallguard Value | semin @0x6D[3..0] | |
Maximum Stallguard Value | semax @0x6D[11..8] | ||
Current Up Step Width | seup @0x6D[7..4] | ||
Current Down Step Width | sedn @0x6D[14..13] | ||
Minimum Current | seimin @0x6D[15] | ||
Stallguard Threshold Value | sgt @0x6D[22..16] | ||
Stallguard Mode | sfilt 0x6D@[24] | ||
SetMiscConfiguration | Disable Short To Ground Protection | diss2g @0x6C[30] | |
Synchronize Phase Frequency | sync @0x6C[23..20] |
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 |