Der Silent Stepper Brick kann einen bipolaren Schrittmotor mit einem maximalen Phasenstrom von 1,6A und einer maximalen Spannung von 46V per USB 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.
Über zwei Anschlüsse können Bricklets angeschlossen werden, die die Fähigkeiten des Bricks erweitern. Der Silent Stepper Brick kann mit anderen Bricks in einem Stapel genutzt werden. Zum Beispiel kann ein zusätzlicher Master Brick mit Master Extension genutzt werden um die USB Verbindung durch andere kabelgebundene Schnittstellen (RS485, Ethernet) oder drahtlose Schnittstellen (WIFI) ersetzen.
Der Schrittmotor kann über eine externe Stromversorgung (schwarze Stromversorgungsbuchse) oder durch den Stapel versorgt werden. Wird eine externe Stromversorgung angeschlossen, schaltet der Brick zu dieser um.
Der Silent Stepper Brick 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. Der Silent Stepper Brick kann konfiguriert werden, abhängig von der Motorgeschwindigkeit, automatisch zwischen diesen Modi zu wechseln.
Der Silent Stepper Brick nutzt aktuell immernoch 10-Pol Bricklet-Stecker. Um Bricklets mit dem Brick zu verbinden werden 10p-7p Bricklet-Kabel benötigt.
Ein Vergleichsvideo zwischen Stepper Brick und Silent Stepper Brick ist auf Youtube verfügbar:
Eigenschaft | Wert |
---|---|
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² |
Bricklet Anschlüsse | 2 |
Abmessungen (B x T x H) | 40 x 40 x 17mm (1,57 x 1,57 x 0,67") |
Gewicht | 19g |
Stromverbrauch | 59mA |
Das folgende Bild zeigt die verschiedenen Anschlussmöglichkeiten des Silent Stepper Bricks.
Um einen Silent Stepper 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.
Verbinde einen Schrittmotor mit dem Brick und eine passende Stromversorgung an den Brick 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 Brick" 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 Brick und Beispiele in verschiedenen Programmiersprachen auf.
Der angeschlossene Motor kann über den schwarzen Stromversorgungsstecker auf der Platine extern versorgt werden. Alternativ kann eine Stromversorgung unter den Brick gesteckt werden. Der Brick schaltet von selbst auf die externe Versorgungen um, wenn am schwarzen Stecker eine Spannung anliegt.
Die rote LED leuchtet wenn die Versorgungsspannung unter das einstellbaren Minimum fällt.
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] |
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 |
openHAB | 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 |