Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:spezial:pyprogramgenerator:tutorial_tuneclock

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anleitungen:spezial:pyprogramgenerator:tutorial_tuneclock [2025/02/06 10:24] – [4. ATTiny85 vorsortieren] hlinkeanleitungen:spezial:pyprogramgenerator:tutorial_tuneclock [2025/02/06 12:12] (aktuell) – [6.3 Den ersten Tiny evtl. nochmal nachtrimmen] hlinke
Zeile 1: Zeile 1:
 ====== Direct Mode Servo - Mehrere Attinys hintereinander abgleichen ====== ====== Direct Mode Servo - Mehrere Attinys hintereinander abgleichen ======
  
-===== 1. Hintergrund =====+===== 1. Tutorial Video ===== 
 + 
 +{{youtube>cKx1rNHql40?}} 
 + 
 + 
 +===== 2. Hintergrund =====
  
 Der auf den MLL Platinen verwendete ATTiny85 Microcontroller wird ohne eigenen Quarz verwendet, da dieser zwei Pins brauchen würde, sowie Platinenfläche und zusätzliche Lötungen und zudem Kosten verursacht. Der verwendete Betriebsmodus hierfür ist „PLL mit chip-internem Oszillator und 16 MHz“. Leider ist die Taktgenauigkeit dieser Lösung nicht sehr hoch und man kann exemplarabhängig Frequenzen zwischen 15,5 und 17,5 MHz messen. Der auf den MLL Platinen verwendete ATTiny85 Microcontroller wird ohne eigenen Quarz verwendet, da dieser zwei Pins brauchen würde, sowie Platinenfläche und zusätzliche Lötungen und zudem Kosten verursacht. Der verwendete Betriebsmodus hierfür ist „PLL mit chip-internem Oszillator und 16 MHz“. Leider ist die Taktgenauigkeit dieser Lösung nicht sehr hoch und man kann exemplarabhängig Frequenzen zwischen 15,5 und 17,5 MHz messen.
Zeile 12: Zeile 17:
  
  
-===== 2. Vorbereitungen =====+===== 3. Vorbereitungen =====
  
-==== 2.1 Man benötigt an Hardware ====+==== 3.1 Man benötigt an Hardware ====
  
 - Eine Hauptplatine 101 (Nano) oder 102 (ESP32) - Eine Hauptplatine 101 (Nano) oder 102 (ESP32)
Zeile 22: Zeile 27:
 Bei Verwendung einer Hauptplatine 102, zusammen mit Heartbeat-Breakout-Boards der ersten Serien (mit Spannungs-Reduktions-Diode) benötigt man eine zusätzliche Heartbeat LED vor der ersten 511 DM-Servo Platine! Bei Verwendung einer Hauptplatine 102, zusammen mit Heartbeat-Breakout-Boards der ersten Serien (mit Spannungs-Reduktions-Diode) benötigt man eine zusätzliche Heartbeat LED vor der ersten 511 DM-Servo Platine!
  
-==== 2.2 Zu installierende Software ====+==== 3.2 Zu installierende Software ====
 Benötigt wird weiterhin eine aktuelle Version des MLL Python Programm Generators von Harold Linke. (Version > 5.3.5e) Benötigt wird weiterhin eine aktuelle Version des MLL Python Programm Generators von Harold Linke. (Version > 5.3.5e)
  
-==== 2.3 Programmieren der ATTiny85 ====+==== 3.3 Programmieren der ATTiny85 ====
 Mit dem aktuellen pyPG wird, unter Zuhilfenahme des 400er Tina Proggers (oder eines anderen geeigneten Programmierwerkzeugs), ein Firmware-Code auf den Tiny geschrieben, der die „Tune Clock“ Fähigkeit besitzt. (steht im pyPG zur Verfügung!) Mit dem aktuellen pyPG wird, unter Zuhilfenahme des 400er Tina Proggers (oder eines anderen geeigneten Programmierwerkzeugs), ein Firmware-Code auf den Tiny geschrieben, der die „Tune Clock“ Fähigkeit besitzt. (steht im pyPG zur Verfügung!)
  
-===== 3. Aufbau =====+===== 4. Aufbau =====
  
-==== 3.1 Hardware ====+==== 4.1 Hardware ====
  
 Man schließt zuerst den Verteiler an die Hauptplatine an. Wenn man eine 102 mit Dioden hat, folgt als erstes eine weitere Heartbeat RGB LED. Dann kommen zwei, oder mehr 511 DM-Servo Platinen mit programmiertem DM-Servo ATTiny85 und auf der finalen 511 gesetztem Terminator. Zuletzt kommt auf den Verteiler ein RGB LED Streifen mit mindestens 10 RGB LEDs. Man schließt zuerst den Verteiler an die Hauptplatine an. Wenn man eine 102 mit Dioden hat, folgt als erstes eine weitere Heartbeat RGB LED. Dann kommen zwei, oder mehr 511 DM-Servo Platinen mit programmiertem DM-Servo ATTiny85 und auf der finalen 511 gesetztem Terminator. Zuletzt kommt auf den Verteiler ein RGB LED Streifen mit mindestens 10 RGB LEDs.
  
-==== 3.2 Software ====+==== 4.2 Software ====
 Im pyPG erzeugt man ein neues Blatt genau für diesen Kalibrierungs-Aufbau. Dieses Blatt sollte folgende Einträge enthalten Im pyPG erzeugt man ein neues Blatt genau für diesen Kalibrierungs-Aufbau. Dieses Blatt sollte folgende Einträge enthalten
 - Eine Heartbeat LED auf der Hauptplatine - Eine Heartbeat LED auf der Hauptplatine
Zeile 42: Zeile 47:
  
  
-===== 4. ATTiny85 vorsortieren =====+===== 5. ATTiny85 vorsortieren =====
  
 Die Software auf den ATTiny85 kann nicht nur mit vollkommen gleichschnell laufenden Tinys ein gutes Ergebnis erzielen, sondern auch mit dem Prinzip der „Wasserfall Kaskaden“ von „oben nach unten“. Das heißt, ein vorhergehender Tiny darf auch einen Tick schneller laufen, als sein direkter Nachfolger. Nur nicht umgekehrt! (wenn sie genau gleichschnell laufen, ist das aber auch OK) Die Software auf den ATTiny85 kann nicht nur mit vollkommen gleichschnell laufenden Tinys ein gutes Ergebnis erzielen, sondern auch mit dem Prinzip der „Wasserfall Kaskaden“ von „oben nach unten“. Das heißt, ein vorhergehender Tiny darf auch einen Tick schneller laufen, als sein direkter Nachfolger. Nur nicht umgekehrt! (wenn sie genau gleichschnell laufen, ist das aber auch OK)
Zeile 59: Zeile 64:
  
  
-===== 5. Nachtrimmen der ATTiny85 =====+===== 6. Nachtrimmen der ATTiny85 =====
  
 Wenn wir nun die Tinys sortiert haben, aber immer noch einer der nachfolgenden Tinys manchmal komisch flackert und nicht nur gleichmäßig langsam blinkt, oder die finale Heartbeat LED nicht ausschließlich gleichmäßig changiert, oder eine der LEDs hinter der finalen Heartbeat LED manchmal aufblitzt und nicht kontinuierlich „aus“ ist, dann müssen wir nachtrimmen! Wenn wir nun die Tinys sortiert haben, aber immer noch einer der nachfolgenden Tinys manchmal komisch flackert und nicht nur gleichmäßig langsam blinkt, oder die finale Heartbeat LED nicht ausschließlich gleichmäßig changiert, oder eine der LEDs hinter der finalen Heartbeat LED manchmal aufblitzt und nicht kontinuierlich „aus“ ist, dann müssen wir nachtrimmen!
  
-==== 5.1 Im pyPG den ersten Tiny trimmen ====+==== 6.1 Im pyPG den ersten Tiny trimmen ====
  
   - Wir gehen in den pyPG und verbinden uns mit der Hauptplatine.    - Wir gehen in den pyPG und verbinden uns mit der Hauptplatine. 
Zeile 73: Zeile 78:
   - Am WICHTIGSTEN ist hierbei das gleichmäßige Blinken der direkt nachfolgenden 511er Platine!   - Am WICHTIGSTEN ist hierbei das gleichmäßige Blinken der direkt nachfolgenden 511er Platine!
  
-==== 5.2 Im pyPG den zweiten Tiny trimmen ====+==== 6.2 Im pyPG den zweiten Tiny trimmen ====
  
   - Das Trimmen des zweiten Tiny kann nur erfolgen, wenn der erste Tiny so gut getrimmt wurde, dass der zweite Tiny, genau wie der erste Tiny, gleichmäßig langsam blinkt!   - Das Trimmen des zweiten Tiny kann nur erfolgen, wenn der erste Tiny so gut getrimmt wurde, dass der zweite Tiny, genau wie der erste Tiny, gleichmäßig langsam blinkt!
-  - Um den zweiten Tiny zu trimmen (falls überhaupt erforderlich) wählt man jetzt bei „Servo Modul Adresse“ eine 4 an (oder 5 bei Hauptplatine mit Diode) und wiederholt den Vorgang aus 5.1 so lange, bis der dritte (in diesem Beispiel letzte) 511 Controller gleichmäßig blinkt und auch die finale Heartbeat und die nachfolgenden LEDs keine komischen Effekte mehr zeigen.+  - Um den zweiten Tiny zu trimmen (falls überhaupt erforderlich) wählt man jetzt bei „Servo Modul Adresse“ eine 4 an (oder 5 bei Hauptplatine mit Diode) und wiederholt den Vorgang aus 6.1 so lange, bis der dritte (in diesem Beispiel letzte) 511 Controller gleichmäßig blinkt und auch die finale Heartbeat und die nachfolgenden LEDs keine komischen Effekte mehr zeigen.
  
-==== 5.3 Den ersten Tiny evtl. nochmal nachtrimmen ====+==== 6.3 Den ersten Tiny evtl. nochmal nachtrimmen ====
  
   - Es kann vorkommen, dass der zweite Tiny durch den eigenen Trimm den Kontakt zum ersten Tiny wieder verliert. Man merkt das daran, dass man schlagartig eine Verschlechterung erzeugt und i.d.R. kann man das auch nicht sofort wieder rückgängig machen, weil der zweite Tiny ja nun auch keine Befehle mehr über den ersten Tiny lesbar zugestellt bekommt.   - Es kann vorkommen, dass der zweite Tiny durch den eigenen Trimm den Kontakt zum ersten Tiny wieder verliert. Man merkt das daran, dass man schlagartig eine Verschlechterung erzeugt und i.d.R. kann man das auch nicht sofort wieder rückgängig machen, weil der zweite Tiny ja nun auch keine Befehle mehr über den ersten Tiny lesbar zugestellt bekommt.
-  - Das ist aber leicht zu lösen, indem man die Prozedur aus 5.1 wiederholt und den ersten Tiny wieder besser an den …nun ja selber auch neu getrimmten …zweiten Tiny anpasst!+  - Das ist aber leicht zu lösen, indem man die Prozedur aus 6.1 wiederholt und den ersten Tiny wieder besser an den …nun ja selber auch neu getrimmten …zweiten Tiny anpasst!
  
-===== 6. Nach dem erfolgreichen Trimmen =====+===== 7. Nach dem erfolgreichen Trimmen =====
  
 Wenn man mehrere 511 Controller erfolgreich durchgetrimmt hat sollte man auf jeden Fall bei ALLEN einen „Factory default Reset“ durchführen, da es durch die wirren Bits in der Trimmphase durchaus mal vorkommen konnte, dass ungewollte Programmierungen entstanden sind und gespeichert wurden! Wenn man mehrere 511 Controller erfolgreich durchgetrimmt hat sollte man auf jeden Fall bei ALLEN einen „Factory default Reset“ durchführen, da es durch die wirren Bits in der Trimmphase durchaus mal vorkommen konnte, dass ungewollte Programmierungen entstanden sind und gespeichert wurden!
  
-===== 7. Mehr als drei Tinys trimmen =====+===== 8. Mehr als drei Tinys trimmen =====
  
 Die Prozeduren gelten sinngemäß auch für mehr als drei Tinys und es ist durchaus möglich erfolgreich bis zu sechs 511 Platinen mit ATTiny85 zu trimmen. Die mögliche Anzahl an Sortier- und Trimm-Schritten steigt aber exponentiell an! Die Prozeduren gelten sinngemäß auch für mehr als drei Tinys und es ist durchaus möglich erfolgreich bis zu sechs 511 Platinen mit ATTiny85 zu trimmen. Die mögliche Anzahl an Sortier- und Trimm-Schritten steigt aber exponentiell an!
anleitungen/spezial/pyprogramgenerator/tutorial_tuneclock.1738837471.txt.gz · Zuletzt geändert: 2025/02/06 10:24 von hlinke