Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Der Einstieg in die MobaLedLib:

Stammtische

aktuell verwendete Versionen


Python MobaLedLib

Workshops

Verwendung mit der MoBa-Zentrale

Steuerung der MobaLedLib-Effekte

Erste Hilfe

Bewegung mit der MLL

Servoplatine

Relaisplatine

WS2811-BiPol


Sound mit der MLL

JQ6500

MP3-TF-16P

Hauptplatine

Servoplatine

Sounddateien

Anwendungsbeispiele:

3D-Druck

Entwicklungen MoBa-Universum

Platinen van Theo

MobaLedLib Sonderplatinen

Drehscheibensteuerung LocoTurn V 1.4

Drehscheibe (V0.6)

OLED Displays

Infrared to Z21 Bridge

Hilfereiche Themen

Wissen für Fortgeschrittene

Impressum & Datenschutz

Für Wiki-Editoren:

Faszination Modellbau 2025 - wir sind dabei!

wir sind dabei

anleitungen:spezial:pyprogramgenerator:servo2_seite

Direct Mode Servo

1.Tutorials

2. Die Servo2 Test- und Einstellseite

In pyMobaLedLib die Seite „Servo Test 2“ öffnen.

Auf der Seite gibt es folgende Parameter:

  1. Servo Modul Adresse
  2. Servo Control Betriebsart („Normal Position“, „Training End Pos“, „Training End Pos (special)“, „Einstellen Max Geschwindigkeit“, „Reset Servo“)
  3. Use fast Refresh – für Experten, schnellere Reaktion auf Schieberänderungen
  4. Servo Position-Schieber
  5. Enter-Taster
  6. Pos 0 – Taste – stellt den Schieber auf 1 (0 geht im Legacy Mode nicht)
  7. Pos255-Taste – stellt den Schieber auf 255
  8. Servo Programmieren-Taster
  9. Attiny Direkt Programmieren (nur zum Testen für Experten)

2.1 Servo Modul Adresse

Adresse des Servo Moduls, das eingestellt werden soll - bis jetzt können leider noch keine LED-Strang-Kanäle angesprochen werden.

Achtung Bei der modifizierten Platine belegt jeder Servo eine RGB-Adresse. (Bei der originalen Platine hatte das gesamte Modul eine RGB-LED Adresse und die Servos wurden durch die R-G-B Farbkanäle angesprochen). Die Adressen bei der modifizierten Platine sind fortlaufend. D.h. wenn die erste Servo-Adresse 5 ist, dann haben die beiden anderen Servos die Adresse 6 und 7. Diese Adresse muß bei der Endlageneinstellung und in der Servo-Animation angegeben werden, damit der richtige Servo angesprochen wird.

Das mit den Kanälen ist leider etwas mißverständlich: Es gibt z.B. bei der ESP32-Platine 8 Kanäle für 8 LED Stränge. Und es gibt bei den Servo-Platinen Servo-Kanäle für die 3 Servos

2.2. Servo Control Betriebsart

Bestimmt die aktuelle Betriebsart:

  1. „Normal Position“,
  2. „Training End Pos“,
  3. „Training End Pos (special for Experts only)“,
  4. „Einstellen Max Geschwindigkeit“,
  5. „Toggle Invers“, Drehrichtung ändern
  6. „Reset Servo“, aktuellen Servo zurücksetzen
  7. „Factory Reset“, Attiny (alle Servos) in Grundzustand bringen
  8. „Reset last mem pos“, Speicherung der letzten Position löschen
  9. „Tune Clock“, mehrere Attinys hintereinander abgleichen
  10. „Einstellen Legacy Speed“, DM-Servo kompatibel zu „Alt“-Servos machen

2.2.1 "Normal Position"

In dieser Betriebsart kann der Servo direkt über den Sero Positionsschieber gesteuert werden. Der Servo folgt dem Schieber direkt.

Achtung: Direkt nach dem Flashen des Attiny85 und im Normalmodus bewegt sich der Servo mit dem Schieberegler von 0 bis 255 nur etwa 30°. Die 30 Grad default sind eine Sicherheitsfunktion, damit man sich nicht gleich seine Mechanik beschädigt. Im Trainingsmodus kann der gesamte Bereich angefahren werden.

2.2.2"Training End Pos"

In dieser Betriebsart werden die Endlagen eingestellt.

- Eine Schieberposition zwischen den aktuellen Endlagen suchen (siehe Achtungshinweis unten) - Mit dem Schieber aus dieser Position langsam in die eine Endlage fahren - Enter-Taste drücken - Mit dem Schieber in die andere Endlage fahren - Enter-Taste drücken - Fertig

In Normal_Betriebsart, die Endlagen testen

Achtung: In der Trainingsbetriebsart kann jede Servo Position angefahren werden. Also auch Positionen, die für die Mechanik gefährlich sein können!! Der Attiny hat eine Sicherheitsfunktion. Da das Trainingstool nicht wissen kann, wo die aktuellen Endlagen des angeschlosenen Attinys sich befinden, muß der Schieber erst in eine Position zwischen den aktuellen Endlagen gebracht werden. Man bewegt also am besten den Schieber von der 0 Stellung aus langsam nach rechts, bis der Servo dem Schieber folgt. Ab jetzt kann man jede beliebige Endstellung anfahren und programmieren.

Siehe auch: Direct Mode Servo - Einstellung der Endlagen

2.2.3 "Training End Pos (special)"

In dieser Betriebsart werden die Endlagen in einem erweiterten Bereich eingestellt.

- Mit dem Schieber aus der Mittelposition langsam in die eine Endlage fahren - Enter-Taste drücken - Mit dem Schieber in die andere Endlage fahren - Enter-Taste drücken - Fertig

In Normal_Betriebsart, die Endlagen testen

Wenn du den Servo im Normalbereich mit den Endlagen trainierst, dann entspricht der Bereich von 0 bis 255 den PWM Werten von 1ms bis 2ms. Wenn du das selbe mit der Einstellung (spezial) tust, dann umfassen die Werte 0 bis 255 die PWM Werte von 0,5ms bis 2,5ms.

Achtung: In der Trainingsbetriebsart kann jede Servo Position angefahren werden. Also auch Positionen, die für die Mechanik gefährlich sein können!! Der Attiny hat eine Sicherheitsfunktion. Da das Trainingstool nicht wissen kann, wo die aktuellen Endlagen des angeschlosenen Attinys sich befinden, muß der Schieber erst in eine Position zwischen den aktuellen Endlagen gebracht werden. Man bewegt also am besten den Schiber von der 0 Stellung aus langsam nach rechts, bis der Servo dem Schieber folgt. Ab jetzt kann man jede beliebige Endstellung anfahren und programmieren.

2.2.4 "Einstellen Max Geschwindigkeit"

In dieser Betriebsart kann die „Höchstgeschwindigkeit“ eingestellt werden.

Hierzu eine kleine Erklärung, was ihr dort als „Höchstgeschwindigkeit“ einstellen könnt und wie dieser Wert wirkt. (die wirklich wirksame Geschwindigkeit macht die Servo Animation, bzw. die MLL-Hauptplatine!)

Einstellbar sind, als maximale Begrenzung, auch wieder die Werte von 0 bis 255

- Bei 0 (Null) ist die Begrenzung abgeschaltet. - Die Werte von 1 bis 255 stellen die maximal zulässige Schrittweite der Stellwerte (die gehen auch von 0 bis 255) [b]PRO ÜBERTRAGUNG[/b] von der Hauptplatine dar! - Wenn ich z.B. 10 einstelle, dann dürfen die Stellwerte immer nur 10 Stellwertpunkte pro Übertragung weiter springen, sonst werden sie begrenzt - Bei 20ms Übertragungstakt (also 50 Stellwerte pro Sekunde) kann ich damit z.B. die Gesamtstrecke des gesamten Stellwegs in einer halben Sekunde zurücklegen „1 / ( 50 / (255 / 10)) = ~0,5-Sek“ - Die maximale Begrenzung wäre der Wert 1, mit dem es 5 Sekunden dauert, bis der Stellweg zurückgelegt ist.„ 1 / ( 50 / (255 / 1)) = ~5-Sek“

Aber !!!ACHTUNG!!! Dieser Wert ist nur als Obergrenze gedacht (um mechanische Beschädigungen zu vermeiden) Wenn man zu stark begrenzt, dann werden die Werte von Harolds pyPG bzw. der Hauptplatine nicht mehr schnell genug ausgeführt sondern merkwürdig aussehend gedämpft.

PS: Der Wert 255 würde wirken, wie mit 0 abgeschaltet, da ja dann der Sprung von 255 Werten, als von Stellwert 0 zu Stellwert 255 ad hoc erlaubt ist.

2.2.5 "Reset Servo"

Der Servo wird wieder auf die Startwerte zurückgesetzt

2.2.6 "Toogle Invers"

Dreht die Drehrichtug des Servos um,

2.2.7 "Factory reset"

Der komplette Attiny wird zurück gesetzt,

2.2.8 "Reset last mem pos"

Um das schnelle ruckartige Bewegen des Servos zu reduzieren, speichert der Attiny die letzte Position des Servos. Wenn der Attiny wieder Strom bekommt, muß erst ein Stellwert mit dieser Position beim Attiny ankommen, bevor er den Servo bewegt. In bestimmten Fällen kann das zu einer Blockade führen, deshalb kann man mit diesem Befehl, den Speicher löschen.

2.2.9 "Tune Clock"

Der auf den MLL Platinen verwendete ATTiny85 Microcontroller wird ohne eigenen Quarz verwendet. Leider ist die Taktgenauigkeit dieser Lösung nicht sehr hoch. Das kann dazu führen, daß das ausgegebene Datensignal nicht ganz genau ist. Es liegt noch innerhalb der Spezifikation, so daß eine nachfolgende WS2012 oder WS2811 das Signal richtig verarbeitet. Folgt auf einen Attiny aber direkt ein weiterer Attiny, so besteht die Möglichkeit, sich die Ungenauigkeiten der beiden Attinys addieren und der zweite Attiny das Datensignal des ersten nicht mehr sauber erkennt. Mit der „Tune Clock“-Funktion kann ein Abgleich zwischen den Attinys erfolgen. Für Details bitte das Tutorial Direct Mode Servo - Mehrere Attinys hintereinander abgleichen anschauen.

2.2.10 "Einstellen Legacy Speed"

Die DM-Servos folgen sehr schnell jeder Einstellwertänderung. Dadurch sind Bewegungen, wie Nachwippen möglich. Mit Hilfe des Servo-Animations-Makros können diese Bewegungen erstellt werden.

Für einfache Bewegungen mit 2 bis 5 Positionen gibt es die Makros Servo2, Servo3, Servo4 und Servo5.

Mit der Funktion „Legacy Speed einstellen“ können diese Makros jetzt auch mit den DM-Servos verwendet werden. Damit können die DM-Servos mit der Platine 511 die bisherige Servo-Platine 510 ersetzen.

Details sind im Tutorial Direct Mode Servo - Einstellung Legacy Speed zu finden.

2.3. Servo Position-Schieber

Der Servo-Positionsschieber erlaubt die direkte Steuerung des Servos. Es werde direkt die eingestellten Werte an den Servo gesendet.

2.4. Enter-Taste

Mit der Enter-Taste werden Endlagen bestätigt

2.5. Servo Programmieren-Taste

Mit der Servo Programmieren Taste, wird ein Dialog zum Programmieren der Firmware des Attinys aufgerufen. Es öffnmet sich das „Optionen“-Fenster des Patterconfigurators für den „Servo2“. Durch Drücken von „Prog Servo2“ wird ein Auswahldialog aufgerufen, in dem man die Firmware-Datei (.hex) auswählen kann. Wenn die Firmware einen fertigen Stand erreicht hat, wird diser Dialog entfernt und die Programmierung startet direkt.

2.6. Attiny direkt Programmieren

Dies ist eine Funktion, die noch im Test ist, und erst später freigegeben wird

3. Hinweise aus der Diskussion

Hier sind einige Hinweise aus der Diskussion im Forum zusammengefasst:

- Genau genommen ist der Bereich von 0 bis 255, beim Direct Mode Servo, eine Art „Zahlenwerte Matroschka“! (die russische „Puppe in der Puppe“) Wenn du den Servo im Normalbereich mit den Endlagen trainierst, dann entspricht der Bereich von 0 bis 255 den PWM Werten von 1ms bis 2ms. Wenn du das selbe mit der Einstellung (spezial) tust, dann umfassen die Werte 0 bis 255 die PWM Werte von 0,5ms bis 2,5ms. Doch egal, welche Millisekunden Werte du für die Endlagen festlegst, der gewählte Bereich hat vom Python Programm Generator aus wieder den Bereich von 0 bis 255. Das wäre auch dann der Fall, wenn der Bereich zwischen den gewählten Endlagen sehr schmal ist. Damit erhält man in dem schmalen Bereich eine sehr hohe Genauigkeit!

- Ein DM Servo belegt den Adressraum einer RGB LED mit drei Mal 8 Bit bzw. Werten von 0..255! Im ersten Kanal kommt eine Steuerinformation und eine CRC Prüfsumme, im zweiten Kanal ein Stellwert von 0.255 und der dritte Kanal ist bei der Std. MLL derzeit nicht genutzt. Außerdem hat die Std. MLL die ersten beiden Kanäle technisch vertauscht. - Nach meinen Messungen und meiner Erfahrung haben SG90 Servos, bei der Servo Norm-PWM von 1-2ms, nur 90 Grad Stellwinkel! Die 170 Grad Aussage kommt dadurch zustande, dass fast alle eben nicht 1-2ms PWMs machen, sondern mehr! Das gibt es beim DM Servo auch und heißt „Training Pos Mode (spezial)“ Warnung: (gerade auch sehr kraftvolle) Servos können sich, wenn sie an den mechanischen Anschlag gefahren werden, selbst beschädigen!

- Wenn der Attiny direkt an einem ARDUINO angeschlossen ist, verhält er sich komisch.

Antwort: Eine direkte Verbindung Attiny zum ARDUINO ist nicht zu empfehlen. Es sollte immer ein WS2811 oder WS2812 dazwischen liegen. Tatsächlich haben die Tinys hinter einer echten physikalischen WS2811 oder WS2812B LED eine ganz passable Reichweite! Die nächste WS2811, hinter dem Tiny, kann auch ganz ordentlich weg sein (z.B. 70cm kein Problem), aber ATMega238 auf ATTiny85 ist irgendwie seltsam. Es wundert mich ein wenig, denn ATTiny auf ATTiny, also zwei meiner Direct Mode Servo Platinen, vertragen durchaus einen halben Meter zwischeneinander!

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
anleitungen/spezial/pyprogramgenerator/servo2_seite.txt · Zuletzt geändert: 2025/02/06 12:34 von hlinke