Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
anleitungen:spezial:pyprogramgenerator:servo_animation [2024/06/30 07:45] – angelegt hlinke | anleitungen:spezial:pyprogramgenerator:servo_animation [2024/06/30 16:06] (aktuell) – [Einige Tips] hlinke | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== pyProgrammGenerator - Servo Animation ====== | ====== pyProgrammGenerator - Servo Animation ====== | ||
+ | Der Servo-Animations Assistent ermöglicht die einfache Erstellung von komplexen Servo Animationen. | ||
+ | Er ist Teil des pyProgrammGenerators. | ||
+ | Die Servo Animation arbietet am besten mit den Direct Mode Servos von Eckhard (Platine 511) zusammen, funktioniert aber auch mit den bisherigen Servos (Platine 510). | ||
+ | Details zu den Direct Mode Servos ist hier zu finden: | ||
+ | [[anleitungen: | ||
+ | ==== Auswahl der Servo Animation ==== | ||
+ | Die Assistenten werden genauso wie ein Macro, z.B. der HausMacro, im Macro Dialog ausgewählt: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Servo Animation ==== | ||
+ | |||
+ | Nach Auswahl des Macros Servo Animation erscheint folgendes Fenster: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Links sind die Eingabefelder zum Definieren von einfachen Bewegungskurven. Rechts wird die erstellte Kurve grafisch dargestellt nachdem man auf den Button " | ||
+ | |||
+ | Der Assistent unterstützt den Direkt Mode Servo von Eckhart (Servo DM) und die normalen MLL-Servos (Servo1, Servo2 und Servo3) | ||
+ | |||
+ | Durch Eingabe der **Ein- und Ausschaltparameter** wird der Zeitablauf bestimmt. Es stehen 3 Kurven-Modi zur Verfügung: **Linear**, **Beschleunigung** und **Individuell**. | ||
+ | |||
+ | Die berechneten Kurven werden in der Grafik rechts angezeigt. | ||
+ | |||
+ | **Achtung: Die Änderungen werden erst nach Betätigung des Tasters " | ||
+ | |||
+ | Bei der Einstellung **Individuell** können die Kurvenwerte (Grüne Punkte) einzeln eingestellt werden. | ||
+ | |||
+ | Wurde unter **Servo-Adresse** die Adresse des Servos angegeben, kann die Servostellung direkt überprüft werden. | ||
+ | |||
+ | Beim **Ausführen** kann man wählen zwischen: | ||
+ | * Wiederholen: | ||
+ | * PingPong: die Sequenz wird vor- und zurück abgespielt, | ||
+ | * Ein/Aus: Bei Schalter auf EIN wird die Einschaltsequenz, | ||
+ | |||
+ | Ein Beispiel für eine **individuelle Sequenz** zeigt das folgende Bild. Die Sequenz simuliert einen umstürzenden Baum, der beim ersten Schlag sich etwas bewegt und dann mit einer Beschleunigungskurve umfällt, um dann noch mal kurz hoch zu springen. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Das Ergebnis in der ProgrammGenerator Tabelle sieht dann so aus: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | === individuelle Sequenzen erstellen === | ||
+ | |||
+ | Zum Erstellen von individuellen Sequenzen gibt es 2 Einstellungen: | ||
+ | |||
+ | 1. individuelle Kurvenparameter | ||
+ | |||
+ | Wenn der Kurvenparametertypauf " | ||
+ | Es ist nicht möglich, die Zeitpunkte zu ändern. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 2. Individuelle Zeitstufen | ||
+ | Wenn der Zeitstufenparametertypauf " | ||
+ | |||
+ | Es ist auch möglich Punkte zu löschen und neue Punkte einzufügen (ab Version 5.3.1D) | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Bedienung der Kurvenverlaufgrafik === | ||
+ | |||
+ | == Bewegung der Punkte: == | ||
+ | |||
+ | Punkte können mit der Maus angeklickt und mit gedrückter linker Maustaste bewegt werden. Die aktuellen Werte für die Zeit und die Servostufe, werden unten links unter der Grafik angezeigt. | ||
+ | |||
+ | Zusätzlich zur Maus können Punkte nachdem sie mit der Maus angeklickt wurden auch mit den Cursortasten bewegt werden. | ||
+ | |||
+ | Für die Zeit ist das Raster auf 20ms gesetzt. | ||
+ | |||
+ | == Punkte löschen, bzw neu erstellen == | ||
+ | |||
+ | Nachdem ein Punkt mit der Maus angeklickt wurde, kann er mit der " | ||
+ | |||
+ | Nachdem ein Punkt mit der Maus angeklickt wurde, kann er mit der " | ||
+ | |||
+ | == Zoom == | ||
+ | Mit Ctrl-Mausrad und Ctrl-Pfeil-auf/ | ||
+ | |||
+ | Mit Shift-Linke-Maustaste und Shift-Pfeiltasten kann das Fenster verschoben werden. | ||
+ | |||
+ | Durch klick auf " | ||
+ | |||
+ | == Gesamtzeit ändern == | ||
+ | Ist der Zeitstufenparametertyp auf " | ||
+ | Maßgeblich ist jeweils die gesamte Zeit aus Startpause, Dauer und Endepause. Wird " | ||
+ | |||
+ | === Einige Tips === | ||
+ | * Es empfiehlt sich mit einer linearen oder Beschleunigungskurve und einem festen Zeitraster zu starten und die Zeitparameter entsprechend zu setzen. | ||
+ | * Erst wenn diese einfachen Kurven funktionieren, | ||
+ | * Das Zeitraster nicht zu klein wählen. Jeder Kurvenpunkt kostet Speicher im ARDUINO und Zeit beim Erstellen des Programms. | ||
+ | * Das Programm erzeugt einen Patternmacro. Dieser Macro enthält die Abstände zwischen den Zeitpunkte und alle Werte zu einem Zeitpunkt. Wenn alle Zeitpunkte denselben Abstand haben, wird nur ein Zeitwert benötigt. Alle folgenden haben dann denselben Abstand. Dadurch kann man die Anzahl der Zeitwerte reduzieren, in dem man am Ende möglichst viele gleiche Abstände zwischen den Zeitpunkten verwendet. | ||
+ | |||
+ | |||
+ | === Bekannte Probleme === | ||
+ | Beim Neustart des ARDUINO, z.B. beim Einschalten und nach Neuverbinden mit dem PC, wird die letzte Sequenz nochmal ausgeführt. Dies führt dazu, daß der Sero, wenn die letzte Sequenz z.B. Torschießen war, erst einmal das Tor mit voller Geschwindigkeit öffnet und dann entsprechend der Animation wieder schließt. Wir arbeiten daran, diesen Effekt zu verhindern. | ||
+ | |||
+ | Deshalb vorsichtig sein mit empfindlichen Modellen. | ||
+ | |||
+ | Außerdem ist es sinnvoll eine Federung zwischen Servo und Modell einzubauen, falls der Servo mal die programmierte Endlage überschreitet. | ||