Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| anleitungen:spezial:codevorlagen:holzfaeller [2021/12/10 19:19] – fromue | anleitungen:spezial:codevorlagen:holzfaeller [2024/10/28 17:03] (aktuell) – [Der Holzfäller, wie programmieren?] fromue | ||
|---|---|---|---|
| Zeile 11: | Zeile 11: | ||
| Die Vorlage für dieses Projekt hat mir ein Bekannter von unserem Winnender Stummi-Stammtisch zukommen lassen.\\ | Die Vorlage für dieses Projekt hat mir ein Bekannter von unserem Winnender Stummi-Stammtisch zukommen lassen.\\ | ||
| Hier findet man die originale Beschreibung, | Hier findet man die originale Beschreibung, | ||
| - | <WRAP center round download 60%> | + | <WRAP center round download 60%> |
| - | Mein erste Gedanke war, als ich es gelesen habe, das muss sich doch mit der MobeLedLib | + | Mein erster |
| \\ | \\ | ||
| So, nun geht es los. \\ | So, nun geht es los. \\ | ||
| Zeile 30: | Zeile 30: | ||
| ===== Was soll passieren? ===== | ===== Was soll passieren? ===== | ||
| - | * Kettensäge startet und wird angelegt (Baumfäller | + | * Kettensäge startet und wird angelegt (Holzfäller |
| - | * Mann setzt mit Kettensäge nach (Baumfäller | + | * Mann setzt mit Kettensäge nach (Holzfäller |
| - | * 2. Mal nachsetzen der Kettensäge (Baumfäller | + | * 2. Mal nachsetzen der Kettensäge (Holzfäller |
| * Baum wackelt | * Baum wackelt | ||
| - | * Baumfäller | + | * Holzfäller |
| * Der Baum knickt weg | * Der Baum knickt weg | ||
| * Der Baum bleibt kurz an einem anderen Baum hängen | * Der Baum bleibt kurz an einem anderen Baum hängen | ||
| Zeile 41: | Zeile 41: | ||
| * zu guter Letzt richtet sich der Baum wieder auf und der Ablauf beginnt von vorne\\ | * zu guter Letzt richtet sich der Baum wieder auf und der Ablauf beginnt von vorne\\ | ||
| \\ | \\ | ||
| - | Wer möchte kann den ganzen Ablauf natürlich noch weiter verfeinern. | + | Wer möchte kann den ganzen Ablauf natürlich noch weiter verfeinern. |
| ===== Was muss programmiert werden? ===== | ===== Was muss programmiert werden? ===== | ||
| - | - Pattern-Ablauf Servo 1, der Baumfäller | + | - Pattern-Ablauf Servo 1, der Holzfäller |
| - Pattern-Ablauf Servo 2, der Baum | - Pattern-Ablauf Servo 2, der Baum | ||
| - Pattern-Ablauf Sound (für das Soundmodul) | - Pattern-Ablauf Sound (für das Soundmodul) | ||
| Zeile 51: | Zeile 51: | ||
| ===== Was müssen wir für die Einstellung des Sounds wissen? ===== | ===== Was müssen wir für die Einstellung des Sounds wissen? ===== | ||
| - | Das unter dem Soundmodul befindlichen WS2811-Modul wird über die Kanäle " | + | Das unter dem Soundmodul befindlichen WS2811-Modul wird über die Kanäle " |
| - | die Schalterbefehle über die Helligkeitswerte an das Soundmodul weiter. | + | die Schalterbefehle über die Helligkeitswerte an das Soundmodul weiter. |
| Dabei werden widerstandskodierte Tasten simuliert, mit denen das Soundmodul normalerweise angesteuert wird.\\ | Dabei werden widerstandskodierte Tasten simuliert, mit denen das Soundmodul normalerweise angesteuert wird.\\ | ||
| \\ | \\ | ||
| - | So nun müssen wir noch die Helligkeitswerte für die Sounds rausbekommen. | + | So nun müssen wir noch die Helligkeitswerte für die Sounds rausbekommen. |
| - | Dies " | + | Dies " |
| - | Wir finden die Datei unter Dokumente/ | + | Wir finden die Datei unter Dokumente/ |
| \\ | \\ | ||
| Diese öffnen wir mit z.B. dem Texteditor und scrollen bis zum\\ | Diese öffnen wir mit z.B. dem Texteditor und scrollen bis zum\\ | ||
| Zeile 76: | Zeile 76: | ||
| \\ | \\ | ||
| - | Nachdem wir den Sound 6 brauchen (hatte ich ja ganz oben geschrieben, | + | Nachdem wir den **Sound 6** brauchen (hatte ich ja ganz oben geschrieben, |
| sind für uns die Werte ADKEY2 -- Helligkeit 134 -- Sound 6 ( in der Tabelle rot hinterlegt) interessant. \\ | sind für uns die Werte ADKEY2 -- Helligkeit 134 -- Sound 6 ( in der Tabelle rot hinterlegt) interessant. \\ | ||
| - | Steht der Sound auf anderer Stelle auf der SD-Karte, so muss man natürlich dann die entsprechenden Werte aus der Tabelle | + | Steht der Sound auf anderer Stelle auf der SD-Karte, so muss man natürlich dann die entsprechenden Werte aus der Tabelle |
| \\ | \\ | ||
| Um die Werte zum Soundmodul schicken zu können, benötigen wir noch die Schaltzeiten, | Um die Werte zum Soundmodul schicken zu können, benötigen wir noch die Schaltzeiten, | ||
| Zeile 91: | Zeile 91: | ||
| Die Servo-Platine setzt die von der Hauptplatine über den Verteiler kommenden RGB-Signale um.\\ | Die Servo-Platine setzt die von der Hauptplatine über den Verteiler kommenden RGB-Signale um.\\ | ||
| Somit wird ein Kanal einem Servo auf der Servo-Platine zugeordnet (z.B. Kanal 1 = Rot)\\ | Somit wird ein Kanal einem Servo auf der Servo-Platine zugeordnet (z.B. Kanal 1 = Rot)\\ | ||
| - | Die Bewegung wird über den Helligkeitswert des Kanals (z.B. rot) in den Werten von 10-210 gesteuert.\\ (für diejenigen, die es genauer wissen möchten: [[https:// | + | Die Bewegung wird über den Helligkeitswert des Kanals (z.B. rot) in den Werten von 10-210 gesteuert.\\ |
| + | (für diejenigen, die es genauer wissen möchten: [[https:// | ||
| \\ | \\ | ||
| Die Servo-Einrichtung für die Geschwindigkeit und die Drehwinkel ist im Wiki beschrieben, | Die Servo-Einrichtung für die Geschwindigkeit und die Drehwinkel ist im Wiki beschrieben, | ||
| Zeile 108: | Zeile 109: | ||
| \\ | \\ | ||
| {{: | {{: | ||
| + | \\ | ||
| \\ | \\ | ||
| Als nächstes benennen wir das Makro mit einem aussagekräftigem Namen, wie zum Beispiel: " | Als nächstes benennen wir das Makro mit einem aussagekräftigem Namen, wie zum Beispiel: " | ||
| Jetzt geht es ans ausfüllen der Tabelle: | Jetzt geht es ans ausfüllen der Tabelle: | ||
| + | \\ | ||
| \\ | \\ | ||
| {{: | {{: | ||
| + | \\ | ||
| \\ | \\ | ||
| Die Zeile " | Die Zeile " | ||
| - | Spalte Nr.1 sorgt dafür, dass der Servo in die Ausgangsposition fährt | + | * Spalte Nr.1 sorgt dafür, dass der Servo in die Ausgangsposition fährt |
| - | Spalte Nr.2 schaltet den Servo ab, damit er nicht brummt. | + | |
| \\ | \\ | ||
| - | In die Goto-Tabelle geben wir den Wert E für Ende ein, dies beendet die erste Startsequenz, | + | In die Goto-Tabelle geben wir den Wert "E" |
| \\ | \\ | ||
| Die weiteren Spalten dienen dazu, den Servo1 = Servo Baumfaeller und den Servo2 = Servo Baum abgestimmt mit dem Soundablauf zu steuern. \\ | Die weiteren Spalten dienen dazu, den Servo1 = Servo Baumfaeller und den Servo2 = Servo Baum abgestimmt mit dem Soundablauf zu steuern. \\ | ||
| Der Sound hat eine Gesamtlänge von 26 Sekunden.\\ | Der Sound hat eine Gesamtlänge von 26 Sekunden.\\ | ||
| Ich habe mir die Mühe gemacht, nachdem es ja nur eine Sounddatei für den ganzen Ablauf ist, \\ | Ich habe mir die Mühe gemacht, nachdem es ja nur eine Sounddatei für den ganzen Ablauf ist, \\ | ||
| - | diese für mich in einzelne Abschnitte/ Ereignisse zu zerlegen. Das Ergebnis sind die Zeiten in der obigen Tabelle. | + | diese für mich in einzelne Abschnitte/ Ereignisse zu zerlegen. Das Ergebnis sind die Zeiten in der obigen Tabelle. |
| + | \\ | ||
| Um die Servobewegung auszuführen benötigen wir die Werte zwischen 10 und 210 (minimaler bzw. maximaler Ausschlag).\\ | Um die Servobewegung auszuführen benötigen wir die Werte zwischen 10 und 210 (minimaler bzw. maximaler Ausschlag).\\ | ||
| - | Den tatsächlichen Ausschlag bestimmt man im Farbtestprogramm über die Servoeinstellungen. | + | Den tatsächlichen Ausschlag bestimmt man im Farbtestprogramm über die Servoeinstellungen. |
| - | Die Werte 10 und 210 liegen außerhalb des normalen Bewegungsbereichs, | + | Die Werte 10 und 210 liegen außerhalb des normalen Bewegungsbereichs, |
| Das Brummen entsteht, da die Messung der WS2811-Helligkeiten und die Messung der Servoposition geringfügige Störungen haben.\\ | Das Brummen entsteht, da die Messung der WS2811-Helligkeiten und die Messung der Servoposition geringfügige Störungen haben.\\ | ||
| \\ | \\ | ||
| Zeile 133: | Zeile 137: | ||
| Sowie am Ende den Wert G1 (Goto Wert 1, also zu PS), damit der programmierte Prozess ab der Stelle PS von vorne beginnt.\\ | Sowie am Ende den Wert G1 (Goto Wert 1, also zu PS), damit der programmierte Prozess ab der Stelle PS von vorne beginnt.\\ | ||
| Der Ablauf läuft so lange immer wieder durch, bis wir ihn beenden, z.B. durch drücken eines Tasters.\\ | Der Ablauf läuft so lange immer wieder durch, bis wir ihn beenden, z.B. durch drücken eines Tasters.\\ | ||
| + | \\ | ||
| Nun müsste die Tabelle wie oben ausgefüllt aussehen. \\ | Nun müsste die Tabelle wie oben ausgefüllt aussehen. \\ | ||
| Die unter der Tabelle angegebenen Hinweise dienen zur Erklärung des Ablaufs, um zu erkennen wann was gemacht wird. \\ | Die unter der Tabelle angegebenen Hinweise dienen zur Erklärung des Ablaufs, um zu erkennen wann was gemacht wird. \\ | ||
| - | + | \\ | |
| - | <WRAP center round tip 60%> | + | <WRAP center round tip 30%> |
| **Speichern __nicht__ vergessen!!!** | **Speichern __nicht__ vergessen!!!** | ||
| </ | </ | ||
| Zeile 145: | Zeile 149: | ||
| Hierfür machen wir wieder ein neues Blatt (Einstellungen übernehmen? | Hierfür machen wir wieder ein neues Blatt (Einstellungen übernehmen? | ||
| Dann tragen wir die Werte in den gelben Kasten ein:\\ | Dann tragen wir die Werte in den gelben Kasten ein:\\ | ||
| + | \\ | ||
| {{: | {{: | ||
| + | \\ | ||
| \\ | \\ | ||
| Nun geben wir dem Registerblatt wieder einen Namen, wie zum Beispiel: " | Nun geben wir dem Registerblatt wieder einen Namen, wie zum Beispiel: " | ||
| Zeile 152: | Zeile 157: | ||
| \\ | \\ | ||
| {{: | {{: | ||
| + | \\ | ||
| \\ | \\ | ||
| Für die Soundansteuerung benötigen wir zwei Zeilen, nämlich " | Für die Soundansteuerung benötigen wir zwei Zeilen, nämlich " | ||
| Zeile 163: | Zeile 169: | ||
| (diese Werte haben wir oben der 1. Tabelle entnommen)\\ | (diese Werte haben wir oben der 1. Tabelle entnommen)\\ | ||
| \\ | \\ | ||
| - | ADKEY2 füllen wir mit Nullen, da wir hiermit keinen Sound starten. Wir brauchen die Zeile aber, damit ADKEY2 abgefragt wird. | + | ADKEY2 füllen wir mit Nullen, da wir hiermit keinen Sound starten. Wir brauchen die Zeile aber, damit ADKEY2 abgefragt wird. \\ |
| \\ | \\ | ||
| Nachdem unsere Sounddatei 26 Sekunden lang ist, müssen wir in Spalte 4 die Restdauer des Sounds definieren, also 25800 ms. \\ | Nachdem unsere Sounddatei 26 Sekunden lang ist, müssen wir in Spalte 4 die Restdauer des Sounds definieren, also 25800 ms. \\ | ||
| Zeile 173: | Zeile 179: | ||
| Wichtig ist in Spalte 5 wieder G1 einzugeben, damit nach dem Ablauf wieder mit Spalte 3 begonnen werden kann. \\ | Wichtig ist in Spalte 5 wieder G1 einzugeben, damit nach dem Ablauf wieder mit Spalte 3 begonnen werden kann. \\ | ||
| \\ | \\ | ||
| - | <WRAP center round tip 60%> | + | <WRAP center round tip 30%> |
| **Speichern __nicht__ vergessen!!!** | **Speichern __nicht__ vergessen!!!** | ||
| </ | </ | ||
| Zeile 197: | Zeile 203: | ||
| Es werden wieder Rot und Grün angelegt. \\ | Es werden wieder Rot und Grün angelegt. \\ | ||
| \\ | \\ | ||
| - | <WRAP center round tip 60%> | + | <WRAP center round tip 30%> |
| **Speichern __nicht__ vergessen!!!** | **Speichern __nicht__ vergessen!!!** | ||
| </ | </ | ||
| Zeile 205: | Zeile 211: | ||
| {{: | {{: | ||
| \\ | \\ | ||
| - | Nun können wir das Programm an den Arduino schicken. | + | \\ |
| + | Nun können wir das Programm an den Arduino schicken. | ||
| \\ | \\ | ||
| \\ | \\ | ||
| - | <webcode renderingMode=" | ||
| - | <code html> | ||
| - | < | ||
| - | </ | ||
| + | <WRAP center round box 20%> | ||
| + | **Endlich sind wir fertig !! **:-D | ||
| + | </ | ||
| + | |||
| + | |||
| + | \\ | ||
| \\ | \\ | ||
| + | Jetzt müsste es, nachdem man in der Excel den " | ||
| \\ | \\ | ||
| - | Jetzt müsste es, nachdem | + | Stoppen kann man das Ganze dann wieder mit dem "Roten Punkt" |
| - | " | + | |
| \\ | \\ | ||
| - | Stoppen kann man das Ganze dann mit dem "Roten Punkt" | ||
| \\ | \\ | ||
| <WRAP center round info 60%> | <WRAP center round info 60%> | ||
| Zeile 227: | Zeile 235: | ||
| Sobald neu gestartet wird, fahren die Servos in die Ausgangsposition und das Programm startet von vorn. | Sobald neu gestartet wird, fahren die Servos in die Ausgangsposition und das Programm startet von vorn. | ||
| </ | </ | ||
| + | \\ | ||
| \\ | \\ | ||
| Da der Sound sehr laut ist, habe ich im Prog_Generator noch weitere Zeilen eingefügt um die Lautstärke zu regulieren. \\ | Da der Sound sehr laut ist, habe ich im Prog_Generator noch weitere Zeilen eingefügt um die Lautstärke zu regulieren. \\ | ||
| Hierzu benutze ich die Taster mit den dazugehörigen LEDs der Hauptplatine. \\ | Hierzu benutze ich die Taster mit den dazugehörigen LEDs der Hauptplatine. \\ | ||
| - | \\ | ||
| * Switch D1 (der linke Taster) macht in diesem Beispiel " | * Switch D1 (der linke Taster) macht in diesem Beispiel " | ||
| * Switch D2 (der mittlere Taster) macht in diesem Beispiel " | * Switch D2 (der mittlere Taster) macht in diesem Beispiel " | ||
| Zeile 236: | Zeile 244: | ||
| Hier die entsprechenden Zeilen für die Programmierung: | Hier die entsprechenden Zeilen für die Programmierung: | ||
| \\ | \\ | ||
| - | {{: | + | {{: |
| + | \\ | ||
| \\ | \\ | ||
| \\ | \\ | ||
| ** Nun wünsche ich Euch viel Spaß beim Nachbau und Baumfällen**\\ | ** Nun wünsche ich Euch viel Spaß beim Nachbau und Baumfällen**\\ | ||
| + | \\ | ||
| \\ | \\ | ||
| Hier habe ich noch ein Video des " | Hier habe ich noch ein Video des " | ||
| - | Leider habe ich derzeit noch keine Holzfäller-Figur, | + | Leider habe ich derzeit noch keine Holzfäller-Figur, |
| Aber den Ablauf kann man sehr gut nachvollziehen, | Aber den Ablauf kann man sehr gut nachvollziehen, | ||
| \\ | \\ | ||
| Zeile 248: | Zeile 258: | ||
| \\ | \\ | ||
| - | (c) Dieses Projekt wurde durch Jürgen (fromue) zur Verfügung gestellt. | + | (c) Dieses Projekt |