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 |