Es laufen "gleichzeitig" auf einem NANO - das Schrittschaltwerk, an EINER angeschlossenen 511 Servo Platine an Position1 ein Legacy Servo mit 3 Positionen und an Position 2 ein DM Servo mit Beschleunigungskurve.
ZitatEINER angeschlossenen 511 Servo Platine an Position1 ein Legacy Servo mit 3 Positionen und an Position 2 ein DM Servo mit Beschleunigungskurve
Ist das überhaupt so möglich?
Interessanterweise muss ich den DM Servo mit einem FlipFlop ansteuern, da er auf "normale" ON-OFF Befehler nicht reagiert.
Ausserdem kann ich mal wieder im PY prog Sheet die DCC Taster / Schalter nicht betätigen. Beim Tastendruck wird jedesmal nur die Zelle ausgewählt.
Deswegen schalte ich zur Zeit alles über das DCC Keyboard.
Es laufen "gleichzeitig" auf einem NANO - das Schrittschaltwerk, an EINER angeschlossenen 511 Servo Platine an Position1 ein Legacy Servo mit 3 Positionen und an Position 2 ein DM Servo mit Beschleunigungskurve.
ZitatEINER angeschlossenen 511 Servo Platine an Position1 ein Legacy Servo mit 3 Positionen und an Position 2 ein DM Servo mit Beschleunigungskurve
Ist das überhaupt so möglich?
Doch, das ist genauso gedacht!
Die drei Servos und ihre Konfiguration sind, so weit das irgendwie möglich ist, voneinander unabhängig verwaltet. Jedes Servo belegt genau den Bitraum einer RGB-LED. Am Anfang war ja nicht 100% klar, ob wir die Reset Leitung für ein viertes Servo einsetzen, oder für eine Status-LED und das Konzept, auch den Kommandokanal und die CRC für jedes Servo separat zu führen, skaliert einfach besser. Mit größeren ATTiny Typen könnte man damit auch "anbauen", ohne konzeptionell alles groß verändern zu müssen. (auch und besonders von der Software der Hauptplatine aus)
Es laufen "gleichzeitig" auf einem NANO - das Schrittschaltwerk, an EINER angeschlossenen 511 Servo Platine an Position1 ein Legacy Servo mit 3 Positionen und an Position 2 ein DM Servo mit Beschleunigungskurve.
Das ist schon mal sehr gut.
Zitat von GerdR im Beitrag #526 Interessanterweise muss ich den DM Servo mit einem FlipFlop ansteuern, da er auf "normale" ON-OFF Befehler nicht reagiert.
Bei mir reagiert der Servo-Animationsmakro auf den Ein/Ausbutton. Kannst Du mir dein programm zum Testen schicken?
Zitat von GerdR im Beitrag #526 Ausserdem kann ich mal wieder im PY prog Sheet die DCC Taster / Schalter nicht betätigen. Beim Tastendruck wird jedesmal nur die Zelle ausgewählt.
Deswegen schalte ich zur Zeit alles über das DCC Keyboard.
Das geht bei mir auch. Ich kann die Taster im ProgrammGenerator benutzen.
Kannst Du mal einen Icon-Refresh durchführen und dann die Taster betätigen. Geht es dann?
Hi Harold, sehr seltsamer Effekt - wenn ich über TABELLE - REFRESH ICONS gehe, "sortieren" sich die Icons zwar da ein wo sie hingehören, zeigen auch die richtigen Farben aber hatten trotzdem keine Funktion. Ich hab dann das Py Programm beendet und nochmal gestartet - et voila - jetzt klappt alles.
Einen ähnlichen Effekt hatte ich heute morgen. Ich hatte das Programm gestern Abend nicht beendet sondern über Nacht durchlaufen lassen ( unbeabsichtigt) und heute morgen tat sich gar nichts mehr, der Nano lief zwar normal, blinkte still vor sich hin und auch der Heartbeat lief, aber das Py programm zeigte keinerlei Reaktion. Erst nach einem Neustart lief wieder alles normal - gibts da in Python auch sowas wie n Pufferüberlauf?
Hi Harold, sehr seltsamer Effekt - wenn ich über TABELLE - REFRESH ICONS gehe, "sortieren" sich die Icons zwar da ein wo sie hingehören, zeigen auch die richtigen Farben aber hatten trotzdem keine Funktion. Ich hab dann das Py Programm beendet und nochmal gestartet - et voila - jetzt klappt alles.
Einen ähnlichen Effekt hatte ich heute morgen. Ich hatte das Programm gestern Abend nicht beendet sondern über Nacht durchlaufen lassen ( unbeabsichtigt) und heute morgen tat sich gar nichts mehr, der Nano lief zwar normal, blinkte still vor sich hin und auch der Heartbeat lief, aber das Py programm zeigte keinerlei Reaktion. Erst nach einem Neustart lief wieder alles normal - gibts da in Python auch sowas wie n Pufferüberlauf?
das ist wirklich seltsam. Python sollte gerade so etwas nicht haben. Aber die Benutzeroberfläche könnte einfrieren. Die ist nicht in Python geschrieben. Ich werde das auch mal bei mir testen.
leider gibt es neues Problem bei der Servo Animation. Ich beschreib mal die Vorgehensweise:
Ich erstelle eine Servo Animation für ein legacy Servo auf Kanal rot ich ändere die Kurve in Beschleunigung und weil sie mir nicht gefällt in Individuell. Nach update der Kurve änder ich zwei Punkte, mache wieder ein update und lade mit ok die Kurve in den ProgrammGenerator.
So weit so gut
Jetzt lade ich die Kurve erneut in das Animationsblatt da mir z.B. die Kurve nicht gefällt.
Allerdings stimmt jetzt weder die Kurve noch die Start und Endpunkte der Kurve im Animationsfeld. Trotzdem lade ich diese "kaputte" Kurve zurück in den Programmgenerator. Die Start und Endpunkte (Zeiten) des Servos haben sich nicht geändert, wohl aber die Kurvenpunkte im Programmgenerator.
Und nun für die ganz Verrückten - ich lade diese Kurve wieder zurück in das Animationsblatt und Python zeigt mir eine Fehlermeldung. Wenn ich diese mit ok bestätige sieht mein Animationsfeld etwas seltsam aus.
Lade ich diese Kurve jetzt wieder in den Programmgenerator ändert sich nichts.
Das ganze passiert beim mir nur wenn ich ein Legacy Servo Kanel rot, usw. auswähle. ei den DM Servos ist alles in Ordnung, da kann ich hin und herladen wie ich lustig bin.
Neue Version der pyMLL V5.3.5l. Die neue Versionb kann über die Update-Funktion der pyMLL installiert werden.
Korrekturen - legacy servo Absturz in Servo-Animation - LED-Channel Unterstützung in Servo2-testpage - DM-Servo firmware - Neu Beschränkung auf 10-210
Achtung: Bei Anschluß des DM-Servos an einen LED-Kanal > 0 bitte beachten: Standardmäßg sendet der ARDUINO/ESP32 keine Daten über diese Kanäle. Man muß erst RGB-LEDS für diese Kanäle im Programm definieren und hochladen, bevor es möglich ist, eine LED oder den Servo über diesen Kanal anzusprechen.
Wichtig: Damit der DM-Servo funktioniert, müssen Daten für ALLE 3 Servos definiert sein. Wenn nur einer fehlt, dann reagiert der Attiny nicht auf Änderungen.
Es muß dabei kein ServoMacro sein, es reicht auch ein RGB-LED Macro.
Zeile 5 ist die Servo Definition Zeile 6 und 7 sind dummies für die beiden anderen Servos Zeile 8 dient zum Testen, ob das Signal vom Attiny richtig weitergegeben wird
Außerdem gibt es eine neue Firmware für den DM-Servo: Das Verhalten im Legacy-Mode wurde geändert. Wie schon in einem früheren Post diskutiert, sind die 510er Servo auf einen Bereich von 10 bis 210 begrenzt. In der bisherigen Version hat der Servo im legacy-servo mode die Endstellungen erst bei 1 und 255 erreicht. Wir woillten damit einen bessere Auflösung erlauben. Leider hat es sich herausgestellt. dass die Excel-Version der MLL die Eingabe von Werten unter 10 und über 210 verhindert. Die Firmware wurde deshlab jetzt so angepasst, daß der Servo im Legacy-Mode die Endstellungen bei 10 bzw 210 erreicht und dann stehen bleibt. Damit ist der DM-Servo im Legacy-Mode vollständig kompatibel zu den bisherigen Servoplatinen 510.
danke. Das wollte ich gerade sehen, ob das Update klappt. Die Meldung sagt, daß die Dateien im Programmverzeichnis nicht mit den heruntergeladenen Zip-Archiv übereinstimmen.
Das muß ich mir dann nochmal anschauen, und eine detailiertere Fehlermeldung erzeugen.
Auf jeden Fall kannst Du trotz der Fehlermeldung weiterarbeiten.
bin gerade dabei das gezeigte nach zu bauen, um zu lernen. Dazu meine Frage: in Zeile 5 steht in Start LED 1-1, in Zeile 9 steht bei Dir auch 1-1. Bei mir steht in Zeile 5 auch 1-1 in Start LED, aber in Zeile 9 steht bei mir 1-5. Wie kann das? Alles dazwischen habe ich identisch übernommen.
bin gerade dabei das gezeigte nach zu bauen, um zu lernen. Dazu meine Frage: in Zeile 5 steht in Start LED 1-1, in Zeile 9 steht bei Dir auch 1-1. Bei mir steht in Zeile 5 auch 1-1 in Start LED, aber in Zeile 9 steht bei mir 1-5. Wie kann das? Alles dazwischen habe ich identisch übernommen.
Gruß Peter
Hallo Peter,
mein Fehler. Ich hätte die zeile 9 löschen sollen.
in der Zeile 9 fehlt der "*". Die Zeile ist nicht aktiv und wird ignoriert. Also einfach in Zeile 9 auf den "*" klicken, dann wird die zeile deaktiviert.
Hallo Peter, # wo habe ich geschrieben, daß der Servo an kanal 0 soll? Wenn Du dieses Programm verwendest muß er an Kanal 1 und zwar hinter die HeartbeatLED von Kanal 1. Wenn Du dann noch den Term-Jumper auf der Platine setzt, dann kannst Du die zweite Heartb eatLED, die am Ende des MLL-Buses liegt ein/ausschalten.
Viele Grüße Harold
PS: Ich bin die nächsten 3 Tage bis Donnerstag abend beruflich unterwegs und kann deshalb wahrscheinlich nicht sofort antworten und auch leider nicht am Stammtisch teilnehmen.
ok - das Problem mit der grafischen Darstellung und dem Laden der Servo Animation bei Legacy Servos ist jetzt in Ordnung.
Aber mir ist etwas anderes / neues aufgefallen:
Animationsmodus
Im Animationsmodus ist es wenn man Kurventyp: Individuell Modus ist, ist es nicht mehr möglich den Stufenabstand der Zeitstufenparameter zu ändern. das ist nur in den beiden Modi Linear und Beschleunigung möglich - nur dann macht man sich seine eingestellte Kurve wieder kaputt.
Servo test 2
Die Invers Einstellung für den Servo hat keine Funktion mehr - der Servo zuckt zwar kurz als ob er die invertierte Position annemhen will, bleibt aber trotzdem bei den alten Werten stehen.
Im Endlagenmodus (normal) beträgt der Winkel ca 60 Grad - das waren vorher ca. 90 Grad. Im Endlagenmodus (Training End pos special) nur noch ca. 130 Grad - das waren vorher etwa 165- 170 Grad.
So wie ich das sehe ermöglichen die verwendeten Servolibraries alle die Stellbewegung von 0 - 180 Grad, theoretisch , praktisch wohl nur so um die 170 Grad +/-.
Wenn das an der Beschränkung der "Hardischen Servoansteuerung" liegt bin ich dafür wieder zurück zugehen auf die maximal Werte (1-254) die hier in de py MLL möglich sind.
Ich habe hier Tore die die maximal mögliche Servobewegung erfordern. Ich könnte zwar die Anlenkpunkte ersetzen, mus dann aber auch die Geschwindigkeit und die Kurve ändern....
Die Invers Einstellung für den Servo hat keine Funktion mehr - der Servo zuckt zwar kurz als ob er die invertierte Position annemhen will, bleibt aber trotzdem bei den alten Werten stehen.
Im Endlagenmodus (normal) beträgt der Winkel ca 60 Grad - das waren vorher ca. 90 Grad. Im Endlagenmodus (Training End pos special) nur noch ca. 130 Grad - das waren vorher etwa 165- 170 Grad.
So wie ich das sehe ermöglichen die verwendeten Servolibraries alle die Stellbewegung von 0 - 180 Grad, theoretisch , praktisch wohl nur so um die 170 Grad +/-.
Wenn das an der Beschränkung der "Hardischen Servoansteuerung" liegt bin ich dafür wieder zurück zugehen auf die maximal Werte (1-254) die hier in de py MLL möglich sind.
Ich habe hier Tore die die maximal mögliche Servobewegung erfordern. Ich könnte zwar die Anlenkpunkte ersetzen, mus dann aber auch die Geschwindigkeit und die Kurve ändern....
GerdR
Hast du die aktuelle (mit dem derzeitigen pyPG kommende) DM-Servo Firmware neu auf den ATTiny85 geflasht? (du hast nicht geschrieben, das du es getan hast)
Bezieht sich "Endlagenmodus (normal) beträgt der Winkel ca 60 Grad - das waren vorher ca. 90 Grad" auf ein neues Anlernen der Endlagen? Oder auf die Bewegung von bereits früher angelernten Endlagen? (Bei "Im Endlagenmodus (Training End pos special) nur noch ca. 130 Grad - das waren vorher etwa 165- 170" die gleiche Frage)
Der bisherige Version des DM-Servo LegacyMode interpretiert ja 1..255 und wenn der pyPG jetzt nur noch 10..210 sendet, wäre das zu wenig! Die aktuelle ATTiny85 Firmware spreizt aber den Bereich von 10..210 wieder auf die programmierten Endlagen auf!
Die Invertierung macht im Moment ihrer Programmierung selbstständig keine Bewegung! (nur zufällig, wenn danach bewegt wird) Es sollten danach aber die Endlagen A und B (bezogen z.B. auf DCC rot und grün) miteinander vertauscht sein!
Hast du die aktuelle (mit dem derzeitigen pyPG kommende) DM-Servo Firmware neu auf den ATTiny85 geflasht? (du hast nicht geschrieben, das du es getan hast)
Bezieht sich "Endlagenmodus (normal) beträgt der Winkel ca 60 Grad - das waren vorher ca. 90 Grad" auf ein neues Anlernen der Endlagen? Oder auf die Bewegung von bereits früher angelernten Endlagen? (Bei "Im Endlagenmodus (Training End pos special) nur noch ca. 130 Grad - das waren vorher etwa 165- 170" die gleiche Frage)
Der bisherige Version des DM-Servo LegacyMode interpretiert ja 1..255 und wenn der pyPG jetzt nur noch 10..210 sendet, wäre das zu wenig! Die aktuelle ATTiny85 Firmware spreizt aber den Bereich von 10..210 wieder auf die programmierten Endlagen auf!
Die Invertierung macht im Moment ihrer Programmierung selbstständig keine Bewegung! (nur zufällig, wenn danach bewegt wird) Es sollten danach aber die Endlagen A und B (bezogen z.B. auf DCC rot und grün) miteinander vertauscht sein!
Gruß, Eckhart
Hi Eckhart,
Da ich ja die neue Version der PYMLL habe (5.3.5l) habe ich auch den ATTiny neu geflasht. Vorausgesetzt die DM-TinyServo.hex im hex-files ordner ist die aktuellste. Hätte ich vlt. schreiben sollen.
Und da Harold ja geschrieben hat das die Endlagen Endpunkte von 1 auf 10 und von 254 auf 210 geändert wurden um kompatibel zur Hardi Version zu bleiben hab ich erst im Legacy Mode und anschliessend auch nochmal im DM Mode die Endlagen des Servos neu "angelernt".
Der maximale Winkel den das Servo jetzt fahren kann ist kleiner als in der Version 5.3.5.k. So wie oben geschrieben - etwa 60 Grad im Legacymode und etwa130 Grad im DM Mode - und nicht nur mit einem Servo sondern mit 4 verschiedenen (wobei die SG90 China Spielzeuge sowieso nicht so genau sind, aber ich hab noch ein anderen Servotyp der sich genauso verhält.
ZitatDie Invertierung macht im Moment ihrer Programmierung selbstständig keine Bewegung! (nur zufällig, wenn danach bewegt wird) Es sollten danach aber die Endlagen A und B (bezogen z.B. auf DCC rot und grün) miteinander vertauscht sein!
Und genau das macht der Servo nicht, es werden die Endlagen nicht vertauscht.
Bezüglich der Endpunkte des Servos hatte ich keine Probleme wenn ich mit der PYMLL einen Servo angelernt und eingestellt habe und dann das Programm in die Excel Version geladen habe. Da hab ich bezüglich der Endlagen keine Unterschiede festgestellt, sonst hätte mir der Servo meine Lokschuppentore schon aus den Scharnieren gedrückt.
Der maximale Winkel den das Servo jetzt fahren kann ist kleiner als in der Version 5.3.5.k. So wie oben geschrieben - etwa 60 Grad im Legacymode und etwa130 Grad im DM Mode - und nicht nur mit einem Servo sondern mit 4 verschiedenen (wobei die SG90 China Spielzeuge sowieso nicht so genau sind, aber ich hab noch ein anderen Servotyp der sich genauso verhält.
ZitatDie Invertierung macht im Moment ihrer Programmierung selbstständig keine Bewegung! (nur zufällig, wenn danach bewegt wird) Es sollten danach aber die Endlagen A und B (bezogen z.B. auf DCC rot und grün) miteinander vertauscht sein!
Und genau das macht der Servo nicht, es werden die Endlagen nicht vertauscht.
Ich kann inzwischen beide Bugs bestätigen und nachvollziehen!
Der Winkel der Endlagen passt nicht mehr, weil ich beim Entwickeln der Clock-Trim Funktion die Bezugsgröße für die 1-2ms Servo PWM kaputt gemacht habe. Außerdem habe ich versucht das Invertieren nicht nur vom "Invers-Bit" abzuleiten, sondern auch davon, ob man die Endlagen anders herum anlernt; leider hab ich auch dadurch einen Bug eingebaut.
Beides werde ich am kommenden Wochenende fixen und es auch bei Harold läuft, dass wird der Fix im nächsten pyPG mit veröffenlicht!
ACHTUNG: Nach dem Fix-Update werden die Winkel wieder so sein, wie früher! (also weiter) Wenn jetzt mit der buggy Version angelernt wurde, dann passen die Anlernpunkte nicht mehr! Vorsicht bei eurer Mechanik! Am besten neu anlernen!
Außerdem sollte dann das Feature funktionieren, dass eine "umgekehrte Endlagen Anlernung" automatisch eine Invertierung von z.B. DCC rot und grün zur Folge hat!
Der maximale Winkel den das Servo jetzt fahren kann ist kleiner als in der Version 5.3.5.k. So wie oben geschrieben - etwa 60 Grad im Legacymode und etwa130 Grad im DM Mode - und nicht nur mit einem Servo sondern mit 4 verschiedenen (wobei die SG90 China Spielzeuge sowieso nicht so genau sind, aber ich hab noch ein anderen Servotyp der sich genauso verhält.
ZitatDie Invertierung macht im Moment ihrer Programmierung selbstständig keine Bewegung! (nur zufällig, wenn danach bewegt wird) Es sollten danach aber die Endlagen A und B (bezogen z.B. auf DCC rot und grün) miteinander vertauscht sein!
Und genau das macht der Servo nicht, es werden die Endlagen nicht vertauscht.
Ich kann inzwischen beide Bugs bestätigen und nachvollziehen!
Der Winkel der Endlagen passt nicht mehr, weil ich beim Entwickeln der Clock-Trim Funktion die Bezugsgröße für die 1-2ms Servo PWM kaputt gemacht habe. Außerdem habe ich versucht das Invertieren nicht nur vom "Invers-Bit" abzuleiten, sondern auch davon, ob man die Endlagen anders herum anlernt; leider hab ich auch dadurch einen Bug eingebaut.
Beides werde ich am kommenden Wochenende fixen und es auch bei Harold läuft, dass wird der Fix im nächsten pyPG mit veröffenlicht!
ACHTUNG: Nach dem Fix-Update werden die Winkel wieder so sein, wie früher! (also weiter) Wenn jetzt mit der buggy Version angelernt wurde, dann passen die Anlernpunkte nicht mehr! Vorsicht bei eurer Mechanik! Am besten neu anlernen!
Außerdem sollte dann das Feature funktionieren, dass eine "umgekehrte Endlagen Anlernung" automatisch eine Invertierung von z.B. DCC rot und grün zur Folge hat!
Es gibt zur Zeit immer wieder neue Versionen der pyMLL.
Diese sind NUR für Dominik.
Wir sind gerade dabei die pyMLL auf einem Linux-Laptop mit einem sehr kleinen Bildschirm zum Laufen zu bekommen, den Dominik mit auf die Messe nehmen möchte.
da ja im Oktober Windows 10 nicht mehr versorgt wird. Habe ich mich mal mit Linux beschäftigt. Es wurde mir als Anfänger empfohlen Linux Mint zu installieren. Ich habe allerdings Probleme mit dem starten der pyMobaLedLib.
Ich bekomme im Terminal folgende Fehlermeldung:
roland@Chronos-Series-7:~$ python3 /home/roland/Arduino/pyMobaLedLib/python/pyMobaLedLib.py Traceback (most recent call last): File "/home/roland/Arduino/pyMobaLedLib/python/pyMobaLedLib.py", line 64, in <module> import tkinter as tk ModuleNotFoundError: No module named 'tkinter'
da ja im Oktober Windows 10 nicht mehr versorgt wird. Habe ich mich mal mit Linux beschäftigt. Es wurde mir als Anfänger empfohlen Linux Mint zu installieren. Ich habe allerdings Probleme mit dem starten der pyMobaLedLib.
Ich bekomme im Terminal folgende Fehlermeldung:
roland@Chronos-Series-7:~$ python3 /home/roland/Arduino/pyMobaLedLib/python/pyMobaLedLib.py Traceback (most recent call last): File "/home/roland/Arduino/pyMobaLedLib/python/pyMobaLedLib.py", line 64, in <module> import tkinter as tk ModuleNotFoundError: No module named 'tkinter'
Wer kann mir helfen?
Gruß Roland
Hallo Roland,
Dominik hat gerade für die Messe einen Laptop mit Linux Mint installiert und wir haben die pyMLL dort auf einem kleinen Bildschirm zum Laufen gebracht.
Bei Dir fehlt das GUI Modul TKinter. Diese Modul muß erst noch installiert werden. Ich kenne jetzt Linux Mint nicht, normalweise sollte folgendes Kommando reichen:
pip install tk
@Moba_Nicki Dominik, vielleicht kannst Du Roland helfen und ihm erklären, wie Du die pyMLL auf Deinem Laptop installiert hast. Vielleicht können wir das dann auch als Anleitung ins Wiki stellen. Ich glaube, daß noch mehr Leute auf diese Idee kommen und ihre "alten" Laptops mit Linux ausrüsten wollen.
Viele Grüße Harold
PS: Ich glaube ich werde das auch mal machen und ein "altes" Netbook auf Linux umstellen.
der Tip war gut. Nachdem in den TKinter über die Anwendungsverwaltung gefunden habe und darüber elegant installiert habe. Startet Dein Programm. Allerdings habe ich massiv Probleme den Pfad für den Ardunio IDE einzugeben. Da hierfür immer eine Datei auszuwählen ist. Aber welche?
Die Idee für eine Anleitung für das Wiki finde ich gut. Bisher fehlt sowas. Ich helfe auch soweit ich kann.
der Tip war gut. Nachdem in den TKinter über die Anwendungsverwaltung gefunden habe und darüber elegant installiert habe. Startet Dein Programm. Allerdings habe ich massiv Probleme den Pfad für den Ardunio IDE einzugeben. Da hierfür immer eine Datei auszuwählen ist. Aber welche?
Die Idee für eine Anleitung für das Wiki finde ich gut. Bisher fehlt sowas. Ich helfe auch soweit ich kann.
Aber zuerst muss es mal laufen.
Kennst Du die gesuchte Datei?
Gruß Roland
Hallo Roland
hier die Befehle die notwendig waren für die pyMobaLedLib Bei <BENUTZERNAME bitte deinen User eintragen. Die Gruppe ist notwendig für den Zugriff auf die USB-Schnittstellen vom Arduino
Danach musst du im Menü "Arduino Einstellungen" den Pfad zu der Datei Arduino auswählen. Bei mir ist die Datei in dem Pfad "/home/dominik/Downloads/arduino-1.8.19/" zu finden. Im Anschluss bitte das Programm beenden und neu starten.