Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:spezial:tiny-uniprog

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:tiny-uniprog [2020/04/19 07:48] – [Aufgabe/Ziel] moba_nickanleitungen:spezial:tiny-uniprog [2024/09/24 18:57] (aktuell) gerald_bock
Zeile 1: Zeile 1:
-====== Programmierung von Attinys für Servo oder Charlieplexing ======+====== Programmierung von ATTinys für ServoCharlieplexing oder Sound ======
  
 ====== Aufgabe/Ziel ====== ====== Aufgabe/Ziel ======
  
 Programmierung eines ATTiny85 für die Verwendung in der 510DE-Servo LED WS2811 Platine. \\ Programmierung eines ATTiny85 für die Verwendung in der 510DE-Servo LED WS2811 Platine. \\
-Diese Platine kann in unterschiedlichen Bestückungsvarianten verwendet werden: +Diese Platine kann in unterschiedlichen Bestückungsvarianten verwendet werden: 
-  * **Variante 1** Ansteuerung von 12 LEDs mit Charlieplexing/Multiplexing-Schaltung oder einem Schrittmotor (//Anmerk.: derzeit noch nicht unterstützt//)+  * **Variante 1** [[anleitungen:bauanleitungen:510de_modul_servo_mux|Ansteuerung von 12 LEDs mit Charlieplexing/Multiplexing-Schaltung]]
   * **Variante 2** [[anleitungen:bauanleitungen:510de_modul_servo|Ansteuerung von 3 Servos]]   * **Variante 2** [[anleitungen:bauanleitungen:510de_modul_servo|Ansteuerung von 3 Servos]]
 +  * **Variante 3**      [[anleitungen:spezial:sound_servoplatine|Sound Servoplatine]]
 \\ \\
-Die Programmierung erfolgt mittels der Platine "400-Attiny-Programmer" in der Standard Bestückung, wie sie in der [[anleitungen:bauanleitungen:attiny_programmer_400de|Wiki Bauanleitung]] beschrieben ist. Softwaremäßig stehen für jede Bestückungsvariante jeweils 2 Möglichkeiten zur Auswahl:+Die Programmierung erfolgt mittels der Platine "400-ATTiny-Programmer" in der Standard Bestückung, wie sie in der [[anleitungen:bauanleitungen:attiny_programmer_400de|Wiki Bauanleitung]] beschrieben ist. Softwaremäßig stehen für jede Bestückungsvariante jeweils 2 Möglichkeiten zur Auswahl:
   - Pattern_Configurator by Hardi   - Pattern_Configurator by Hardi
   - Arduino Programmiersoftware   - Arduino Programmiersoftware
Zeile 112: Zeile 113:
 \\ \\
 Die weitere Programmierung für die speziellen Anforderungen ist jetzt mit dem Pattern_Configurator möglich. \\ Die weitere Programmierung für die speziellen Anforderungen ist jetzt mit dem Pattern_Configurator möglich. \\
-Beispiele sind angeführt und eine nähere Beschreibung von Hardi ist unter dem folgenden [[https://www.stummiforum.de/viewtopic.php?f=7&t=165060&sd=a&start=999|Link]] zu finden.\\+Beispiele sind angeführt und eine nähere Beschreibung von Hardi ist unter dem folgenden [[https://wiki.mobaledlib.de/redirect/forum/mt999|Link]] zu finden.\\
  
 ---- ----
  
 ==== Servo-Modul ==== ==== Servo-Modul ====
-<WRAP important>Das Verwenden des Servo-Moduls ist von Hardi noch nicht offiziell freigegeben!</WRAP> +
-  +
-Es erfolgt auf eigene Verantwortung mit einem „geheimen Trick“😉 \\+
 Vorgehensweise wie bei der Charlieplex-Modul Programmierung. \\ Vorgehensweise wie bei der Charlieplex-Modul Programmierung. \\
   - Öffnen des Pattern_Configurators   - Öffnen des Pattern_Configurators
Zeile 126: Zeile 125:
   - Servo auswählen   - Servo auswählen
    
-{{bilder:anleitungen:spezial:uniprog:012.jpg?480}} \\+{{bilder:anleitungen:spezial:uniprog:012.jpg?480}} \\  
 +\\ 
 +Beim Klick auf den Button „Prog. Servo“ kommt nun eine Abfrage: \\ 
 +{{bilder:anleitungen:spezial:uniprog:korrektur_pins_1.jpg?480}} \\ 
 +\\ 
 +Falls man eine ältere Platine mit Datumsaufdruck 14.6.19 \\ 
 +{{bilder:anleitungen:spezial:uniprog:korrektur_pins_2.jpg?480}} \\ 
 +<wrap em>UND</wrap> die SMD-Variante der WS2811 verwendet wählt man „Ja“. \\ 
 +Bei den neueren Servo-Platinen wurde die Pinbelegung der SMD-Variante korrigiert. Und wenn man die DIL-Variante des WS2811 einsetzt ist die Version der Platine egal. Hier kann man „Nein“ auswählen.
  
-Anschließend kommt folgende Meldung – Uups! \\ +<WRAP info>AnmerkungHat man doch den falschen Button gewählt ist das auch nicht tragischDann sind halt SV1 und SV2 vertauscht.</WRAP> 
-{{bilder:anleitungen:spezial:uniprog:013.jpg?480}} + 
-\\  +Anschließend kommt die normale Routine wie sie vom Charlieplex-Modul bekannt ist.\\
-Um diese Meldung zu umgehen klickt man mit gedrückter Strg-Taste auf den Servo-Button. Anschließend kommt die normale Routine wie sie vom Charlieplex-Modul bekannt ist.\\+
 Die gelbe Prog-LED blinkt, anschließend flackert die orange Read-LED.\\ Die gelbe Prog-LED blinkt, anschließend flackert die orange Read-LED.\\
-Hochladen abgeschlossen, wenn die weiße LED leuchtet. \\ \\+Hochladen abgeschlossen, wenn die blaue LED leuchtet. \\ \\
 // (C:\Users\MadMax\Documents\Arduino\libraries\MobaLedLib\examples\80.Modules\01.ATTiny85_Servo)//. // (C:\Users\MadMax\Documents\Arduino\libraries\MobaLedLib\examples\80.Modules\01.ATTiny85_Servo)//.
 \\ \\ \\ \\
-Um den ATTiny85 für die Verwendung im Servo-Modul fertigzustellen ist es zwingend notwendig mittels Drückens der rechten Taste mind2 Sek. und weniger als 4 Sek von der weißen LED auf die blaue LED umzuschalten+ 
-Das ist erforderlich um 3 Servos auf dem Modul anschließen zu können. Der ATTiny hat normalerweise zu wenige Ausgänge. Durch kurzfristig Beschaltung mit 12V wird der ResetPin ebenfalls zu einem Ausgang (IO). +<WRAP info centeralign round>Bei der Verwendung einer alten Version vom Programm-Generator kann es passieren, das der Reset-Pin nicht automatisch als Ausgang definiert wird\\ Dann bitte den Reset-Taster auf dem Tiny_UniProg drücken, bis die blaue LED kurz aufblinkt.</WRAP> 
-\\ + 
-{{bilder:anleitungen:spezial:uniprog:014.jpg?480}} +Die richtige Programmierung kann man überprüfen, indem man folgende Schritte macht
-\\+
   - Das serielle Monitor Fenster öffnen.    - Das serielle Monitor Fenster öffnen. 
-  - Die Reset Pintaste auf der Platine drücken (rechte äußere Taste) – Länge je nach Zweck+  - Die Reset-Taste auf der Platine kurz drücken (rechte äußere Taste)
   - Wenn der ATTiny nicht gleich erkannt wird dann nochmals versuchen. \\   - Wenn der ATTiny nicht gleich erkannt wird dann nochmals versuchen. \\
-Die angezeigten Werte der Fuses und die Frequenzeinstellung MHz sind für die Servo Verwendung. \\ +Die angezeigten Werte der Fuses und die Frequenzeinstellung 16 MHz sind für die Servo Verwendung. \\ 
-\\+{{bilder:anleitungen:spezial:uniprog:13-19_002137.jpg?480}} \\  
 ** Reset pin IO = blaue LED leuchtet.**  ** Reset pin IO = blaue LED leuchtet.** 
  
 ---- ----
  
-==== Servo-Positionen definieren ====+ 
 +==== Servo-Positionen mit dem Farbtestprogramm definieren ==== 
 + 
 +Um den Servo-ATTiny85 zu verwenden müssen noch die Endpositionen der Servos definiert werden. 
 +Das ist mit dem Farbtestprogramm des Programm-Generator möglich. 
 +  - Programm-Generator starten 
 +  - Optionen aufrufen \\ {{bilder:anleitungen:servofarbtestprogramm:01_servo_farbtest.png}} \\ 
 +  - LED __F__arbtest starten \\ {{bilder:anleitungen:servofarbtestprogramm:02_optionen_led_farbtest_starten.png}} \\ 
 +  - Auswahl des COM Ports bestätigen \\ {{bilder:anleitungen:servofarbtestprogramm:03_com_port.png}} \\ 
 +  - Abfrage "Standard oder letzte Benutzer Farbtabelle verwenden?" bei der erstmaligen Abfrage mit "Ja" bestätigen. \\ {{bilder:anleitungen:servofarbtestprogramm:04_farbtabelle_ja_1.png}} \\ 
 +  - Auf das Laden des Farbtestprogramms warten \\ {{bilder:anleitungen:servofarbtestprogramm:05_farbtabelle_2.png}} \\ 
 +  - Im geöffneten Programm zum Reiter "Servo Test" wechseln \\ {{bilder:anleitungen:servofarbtestprogramm:06_farbtest_reiter_servo_test.png}} \\ 
 +  - Wir sollten jetzt folgende Darstellung sehen \\ {{bilder:anleitungen:servofarbtestprogramm:07_mobaledlib_led_servotester.png}} \\  
 +  -     Folgende Vorgehensweisen haben sich bereits bei mehreren Anwendern bewährt. Die Werte werden hierbei direkt in den Attiny geschrieben: 
 +  - 1. Servo Addresse und Servo Anschluss angeben. (Servo Adresse "0" ist die HeartBeat LED auf der Hauptplatine. **Servo Addresse** "1" ist die erste Servoplatine. **Servo Anschluss** "0" ist der erste von drei möglichen Servos pro Servoplatine.) 
 +  - 2. Das Servo (ohne Ruderhorn) mittels des Schiebebalkens ( unter Servo position) auf 110 (Mittenposition) setzen. 
 +  - 3. Dann das Ruderhorn des Servo montieren. 
 +  - 4. Folgend (unter Programmierung von Min/Max Position und Geschwindigkeit) den Button "Starte Min-Max Pos/Speed programmieren" drücken um die erste äußere Position (Min) des Servo mittels der Pfeilfelder "Dec <<", "Dec <", "Inc >" und "Inc >>" zu bestimmen. Nach erneutem Drücken des Button kann die zweite äußere Position (Max) eingestellt werden. Erläuterung: Dec=Decrease=verringern, Inc=Increase=erhöhen. "<" und ">"=kleine Schritte, "<<" und ">>"=größere Schritte. 
 +  - 5. Nach nochmaligem Drücken des Buttons (auf der Hauptplatine blinkt die weiße mittlere LED) kann die Geschwindigkeit des Servos ebenso mittels der Pfeilfelder eingestellt werden. 
 +  - 6. Weitere Servos können jetzt unter der Eingabe von Servo Addresse und Servo Anschluss eingestellt werden (zurück zu Punkt 1.). 
 +  - 7. Schließen des Farbtestprogramms. Eine extra Speicherung ist nicht notwendig und es gibt auch keinen Button hierfür.  
 + 
 +Sollten pro Servo mehr als zwei Stellungen benötigt werden, so können die weiteren Stellungen über den Programm-Generator (Dialog) eingestellt werden, siehe auch erstes Bild in dieser Rubrik.  Dort ist als erstes ein Servo mit drei Stellpositionen aufgeführt, danach mehrere Servos mit 2 Positionen. 
 +Bei der Servobestimmung bitte die Kanalauswahl (1/Rot, 2/Grün, 3/Blau) beachten. Pro Servoplatine = 3 Servos = 3 Kanäle \\ {{bilder:anleitungen:servofarbtestprogramm:07_programm-generator_dialog_led_kanal_auswahl.png}} \\ 
 +  
 +Bitte auch die Bauanleitung "510DE - Servo & LEDs" beachten. Hier sind wichtige Tipps zu den Servoplatinen-Anschlüssen zu finden 
 + 
 +---- 
 + 
 + 
 +==== Servo-Positionen mit der Arduino IDE definieren ====
  
 Um den Servo-ATTiny85 zu verwenden müssen noch die Endpositionen der Servos definiert werden. Um den Servo-ATTiny85 zu verwenden müssen noch die Endpositionen der Servos definiert werden.
-Das ist derzeit ausschließlich mit der Arduino IDE möglich.+Das ist mit der Arduino IDE möglich.
   - Arduino Software öffnen   - Arduino Software öffnen
   - Datei – Beispiele … 01.Servo_Pos öffnen - siehe unten.\\ {{bilder:anleitungen:spezial:uniprog:016.jpg?480}} \\   - Datei – Beispiele … 01.Servo_Pos öffnen - siehe unten.\\ {{bilder:anleitungen:spezial:uniprog:016.jpg?480}} \\
Zeile 172: Zeile 208:
  
 Man kann mit dem Beispiel_Main experimentieren. Man kann mit dem Beispiel_Main experimentieren.
-  * https://www.stummiforum.de/viewtopic.php?f=7&t=165060&sd=a&start=935  +  * https://wiki.mobaledlib.de/redirect/forum/mt935  
-  * https://www.stummiforum.de/viewtopic.php?f=7&t=165060&sd=a&start=1790  +  * https://wiki.mobaledlib.de/redirect/forum/mt1790  
-  * https://www.stummiforum.de/viewtopic.php?f=7&t=165060&sd=a&start=1818 +  * https://wiki.mobaledlib.de/redirect/forum/mt1818 
  
 ---- ----
 +
  
 ====== Bekannte Fehler ====== ====== Bekannte Fehler ======
   * Der COM Anschluss wird nicht richtig erkannt – Anschluss überprüfen und evtl USB-Port wechseln.   * Der COM Anschluss wird nicht richtig erkannt – Anschluss überprüfen und evtl USB-Port wechseln.
   * Verzeichnis „“ nicht gefunden – fehlende Bibliothek in der Boardverwaltung der Arduino IDE  siehe   * Verzeichnis „“ nicht gefunden – fehlende Bibliothek in der Boardverwaltung der Arduino IDE  siehe
 +  * Wenn man alle Servos (mehr als drei) mit nur einer Servoplatine programmiert (Servos austauscht), bleiben die Einstellungen nicht erhalten - Man konfiguriert nicht das Servo sondern die Ausgänge des ATTiny auf der Servoplatine.
   * Der Programmer erzeugt die 12V für den HV-Reset nicht. Dies kann einer der folgenden Ursachen haben   * Der Programmer erzeugt die 12V für den HV-Reset nicht. Dies kann einer der folgenden Ursachen haben
     * Nicht bestückter Widerstand R10     * Nicht bestückter Widerstand R10
     * Falsche Beschriftung des Plus Pols der LEDs (Dieser muss Links sein). Das hatte Hardi zunächst nicht gemerkt und die Software so geschrieben, dass sie zu der falschen Beschriftung passt. In der aktuellen Version der Platine vom 30.10.19 ist die Beschriftung dann korrigiert. Dummerweise ist in der offiziellen Version der Bibliothek noch die alte Software. Eine korrigierte Version gibt es hier: https://github.com/Hardi-St/MobaLedLib_Docu/blob/master/Quelldateien/02.Tiny_UniProg.zip     * Falsche Beschriftung des Plus Pols der LEDs (Dieser muss Links sein). Das hatte Hardi zunächst nicht gemerkt und die Software so geschrieben, dass sie zu der falschen Beschriftung passt. In der aktuellen Version der Platine vom 30.10.19 ist die Beschriftung dann korrigiert. Dummerweise ist in der offiziellen Version der Bibliothek noch die alte Software. Eine korrigierte Version gibt es hier: https://github.com/Hardi-St/MobaLedLib_Docu/blob/master/Quelldateien/02.Tiny_UniProg.zip
-    * Falsche Kondensatoren. Die Beschriftung der Einheit auf dem Board verurscaht Verwirrung. \\ Die Angabe auf der Platine ist 0.22uF. Dies sind 220nF, bitte prüfen ob es sich um die richtigen Werte handelt((Aufdruck 204 220Nf203 = 22nF)).+    * Falsche Kondensatoren. Die Beschriftung der Einheit auf dem Board verursacht Verwirrung. \\ Die Angabe auf der Platine ist 0.22uF. Dies sind 220nF, bitte prüfen ob es sich um die richtigen Werte handelt((Aufdruck 224 220nFFalsch ist 223 = 22nF)).
     * Lötbrücke zwischen einem Pad und einer Durchkontaktierung. Dummerweise haben die Durchkontaktierungen keinen Lötstopplack.     * Lötbrücke zwischen einem Pad und einer Durchkontaktierung. Dummerweise haben die Durchkontaktierungen keinen Lötstopplack.
     * Falsche bestückter Spannungsteiler (R8 wurde versehentlich mit 47K anstelle von 470K bestückt).     * Falsche bestückter Spannungsteiler (R8 wurde versehentlich mit 47K anstelle von 470K bestückt).
  
anleitungen/spezial/tiny-uniprog.1587282492.txt.gz · Zuletzt geändert: 2020/04/19 08:48 (Externe Bearbeitung)