Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:spezial:codevorlagen:schweisslicht

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:codevorlagen:schweisslicht [2020/10/08 14:25] nessianleitungen:spezial:codevorlagen:schweisslicht [2020/10/11 12:08] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 **Schweißlicht mit Sound** **Schweißlicht mit Sound**
 +
 +https://vimeo.com/466220989
  
 Mit diesem Beispiel soll die Erzeugung eines schweißlichtähnlichen Lichteffekts mit einer RGB-LED und das zeitgleiche Abspielen der entsprechenden MP3-Sounddatei gezeigt werden. Mit diesem Beispiel soll die Erzeugung eines schweißlichtähnlichen Lichteffekts mit einer RGB-LED und das zeitgleiche Abspielen der entsprechenden MP3-Sounddatei gezeigt werden.
-Der Sound liegt als MP3-Datei mit einer Dauer von ca. 3 Sekunden auf ein JQ6500 Modul vor. Details zum JQ6500 Modul im WIKI-Link.  Entsprechend wird das Schweißlicht ebenfalls eine Dauer von ca. 3 Sekunden haben. Längere Sounddateien können über entsprechende MP3-Bearbeitungsprogramme gekürzt und an eigene Vorstellungen angepasst werden. Harte Schnitte sollten im Fall des Schweißgeräuschs kein Problem sein.  +Der Sound liegt als MP3-Datei mit einer Dauer von ca. 3 Sekunden auf ein JQ6500 Modul vor. Details zum JQ6500 Modul im WIKI Link [[anleitungen:bauanleitungen:sound_jg6500_500de|]].  Entsprechend wird das Schweißlicht ebenfalls eine Dauer von ca. 3 Sekunden haben. Längere Sounddateien können über entsprechende MP3-Bearbeitungsprogramme gekürzt und an eigene Vorstellungen angepasst werden. Harte Schnitte sollten im Fall des Schweißgeräuschs kein Problem sein.  
  
 Zunächst den Pattern_Configurator öffnen und ein neues Blatt anlegen, die Einstellungen nicht übernehmen und einen Namen nach eigener Wahl vergeben, hier Welding_2. Zunächst den Pattern_Configurator öffnen und ein neues Blatt anlegen, die Einstellungen nicht übernehmen und einen Namen nach eigener Wahl vergeben, hier Welding_2.
Zeile 10: Zeile 12:
 In dem neuen Blatt sind im gelb unterlegten Teil die Einstellungen wie im folgenden Bild gezeigt vorzunehmen.  In dem neuen Blatt sind im gelb unterlegten Teil die Einstellungen wie im folgenden Bild gezeigt vorzunehmen. 
  
-{{:bilder:anleitungen:spezial:codebeispiele:schw_einstellungen_b.jpg?400 |}}+{{ :bilder:anleitungen:spezial:codebeispiele:schw_neues_blatt_c.jpg?400 |}}
  
 Anmerkungen dazu: Anmerkungen dazu:
-  * Ausgabekanäle 4: 3 x für die RGB-LED, der vierte für die Ansteuerung des Sound-Modules. Beim JQ6500-Modul wird der rote Kanal für den Sound gebraucht, gelb und blau sind herausgeführt und können für LEDs, natürlich auch weiße, genutzt werden. Das wird in diesem Beispiel im ProgGen auch so genutzt.+  * Ausgabekanäle 4: 3 x für die RGB-LED, der vierte für die Ansteuerung des Sound-Moduls. Beim JQ6500-Modul wird der rote Kanal für den Sound gebraucht, gelb und blau sind herausgeführt und können für LEDs, natürlich auch weiße, genutzt werden. Das wird in diesem Beispiel im ProgGen auch so genutzt.
   * Bits pro Wert 8: mit der 8 Bit Auflösung lassen sich die 256 Helligkeitsstufen darstellen. Für ein Schweißlicht mit harten Übergängen und wenigen Helligkeitsstufen würde eine geringere Auflösung zur Darstellung völlig ausreichen. Mit 4 Bit ergibt sich nach meiner Einschätzung keine wesentlicher Unterschied im erzeugten LED-Licht. Damit ließen sich ein paar Byte kostbarer Speicher einsparen. Allerdings brauchen wir für die Ansteuerung des Sound-Modules einen exakten Wert, der sich evtl. mit einer geringeren Auflösung nicht erzeugen lässt.   * Bits pro Wert 8: mit der 8 Bit Auflösung lassen sich die 256 Helligkeitsstufen darstellen. Für ein Schweißlicht mit harten Übergängen und wenigen Helligkeitsstufen würde eine geringere Auflösung zur Darstellung völlig ausreichen. Mit 4 Bit ergibt sich nach meiner Einschätzung keine wesentlicher Unterschied im erzeugten LED-Licht. Damit ließen sich ein paar Byte kostbarer Speicher einsparen. Allerdings brauchen wir für die Ansteuerung des Sound-Modules einen exakten Wert, der sich evtl. mit einer geringeren Auflösung nicht erzeugen lässt.
-  * Analoges Überblenden: ist nur für die Ansteuerung des Sound-Moduls notwendig, für ein Schweißlicht mit kurzen Lichtimpulsen eigentlich nicht. (Ohne den eingeschalteten Analogmodus hat bei mir der Sound nicht funktioniert.)+  * Analoges Überblenden: ist für ein Schweißlicht mit kurzen Lichtimpulsen nicht notwendig
   * Goto Aktivierung: definiert die Methode zum Einlesen der Eingänge im GOTO-Modus. Durch einen Doppelklick auf das gelb unterlegte Feld öffnet sich das im Bild gezeigte Fenster. Wir wählen N_Buttons1 aus, da wir mit der Aktion bei „1“ starten wollen also erst bei der Betätigung eines Tasters oder der Ausführung eines Befehls aus einem Programm heraus und nicht bereits bei„0“ ohne eine Eingabe.    * Goto Aktivierung: definiert die Methode zum Einlesen der Eingänge im GOTO-Modus. Durch einen Doppelklick auf das gelb unterlegte Feld öffnet sich das im Bild gezeigte Fenster. Wir wählen N_Buttons1 aus, da wir mit der Aktion bei „1“ starten wollen also erst bei der Betätigung eines Tasters oder der Ausführung eines Befehls aus einem Programm heraus und nicht bereits bei„0“ ohne eine Eingabe. 
-  * Grafische Anzeige: eine „1“ schaltet die grafische Anzeige in den Tabellen ein und erzeugt die „GOTO Tabelle.+  * Grafische Anzeige: eine „1“ schaltet die grafische Anzeige in den Tabellen ein und erzeugt die Goto-Tabelle.
  
-Nun können wir die Tabellen befüllen. +Nun können wir die drei rot umrandeten Tabellen befüllen. 
  
-{{:bilder:anleitungen:spezial:codebeispiele:schw_pattern_conf_b.jpg?400 |}}+{{ :bilder:anleitungen:spezial:codebeispiele:schw_pattern_conf_c.jpg?400 |}}
  
 Die von mir eingetragenen Werte für die Zeiten und die Werte sind nur ein Beispiel und können natürlich nach eigenen Vorstellungen fast beliebig angepasst werden. Die von mir eingetragenen Werte für die Zeiten und die Werte sind nur ein Beispiel und können natürlich nach eigenen Vorstellungen fast beliebig angepasst werden.
Zeile 27: Zeile 29:
   * In der untersten Tabelle für die Werteeingabe muss die Spalte Nr 1 leer bleiben, in der entsprechenden Spalte der Goto-Tabelle tragen wir ein „E“ als „GoEnd-Anweisung“ ein, die Funktion wartet auf ein Ausführungskommando, der logische Zustand ist „0“. Die Dauer ist unbedeutend daher „10 ms“. Bitte beachten: zwischen Zahlenwert und Einheit muss ein Leerzeichen eingegeben werden.   * In der untersten Tabelle für die Werteeingabe muss die Spalte Nr 1 leer bleiben, in der entsprechenden Spalte der Goto-Tabelle tragen wir ein „E“ als „GoEnd-Anweisung“ ein, die Funktion wartet auf ein Ausführungskommando, der logische Zustand ist „0“. Die Dauer ist unbedeutend daher „10 ms“. Bitte beachten: zwischen Zahlenwert und Einheit muss ein Leerzeichen eingegeben werden.
   * In der zweiten Spalte der Goto-Tabelle geben wir ein „S“ als Startspalte ein. Der Einsprung in der Programmausführung erfolgt mit der logischen „1“ = Tastendruck, wie grafisch dargestellt.    * In der zweiten Spalte der Goto-Tabelle geben wir ein „S“ als Startspalte ein. Der Einsprung in der Programmausführung erfolgt mit der logischen „1“ = Tastendruck, wie grafisch dargestellt. 
-  * In der vierten Spalte der Wertetabelle habe ich den Wert 70 eingegeben, da bei meinem Sound-Modul die entsprechende MP3-Datei über diesen Wert aufgerufen wird. Andere Werte können als Anhalt der folgenden Tabelle entnommen werden.  Die Werte können wegen der Bauteiltoleranzen für jedes Sound-Modul unterschiedlich ausfallen und müssen evtl. durch Tests ermittelt werden. +  * In der vierten Spalte der Wertetabelle habe ich den Wert 65 eingegeben, da bei meinem Sound-Modul die entsprechende MP3-Datei über diesen Wert sicher aufgerufen wird. Andere Werte können als Anhalt der folgenden Tabelle entnommen werden.  
                                                            
 Anhaltswerte für den **JQ6500** Anhaltswerte für den **JQ6500**
Zeile 35: Zeile 37:
   * SOUND 2     Wert 134   * SOUND 2     Wert 134
   * SOUND 1     Wert 255        * SOUND 1     Wert 255     
 +Die Werte können wegen der Bauteiltoleranzen für jedes Sound-Modul unterschiedlich ausfallen und müssen evtl. durch Tests mit der Sound Test-Funktion im LED-Farbtest des Programm_Generators ermittelt werden.
  
-  * Die Dauer von 850 ms habe ich eingestellt, damit das Sound-Modul den Befehl sicher erkennt und reagiert+{{ :bilder:anleitungen:spezial:codebeispiele:schw_soud_test.jpg?400 |}}  
-  * In der nächsten Spalte habe ich eine Pause von 400 ms eingefügtda das Sound-Modul gegenüber der LED träge reagiert und etwas Zeit benötigt bis das gewünschte Geräusch zu hören ist. Der Sound wird nur einmal ausgelöst und läuft dann über 3 Sekunden ab. Ein Abbruch wäre nur über den Aufruf eines anderen Sounds bzw. eines „leeren“ Sounds möglich. + 
-  * In den folgenden Spalten sind Werte für die Ansteuerung der RGB-LED eingetragen. Die Werte können zwischen 0 und 255 liegen, x = Maximalwert. Zunächst ist das Licht etwas bläulich, zum Ende des Schweißvorgangs ist das das rötliche Nachglühen zu sehen. Der Umsetzung eigener Vorstellungen und Wünschen steht hier (fast) nichts im Wege. +Die Sound-Modul-Adresse einstellen, bei mir die "5", die Impulsdauer kann bei 200 ms bleiben. Der Sound Anschluss ist bei JQ6500 der rote Kanal, folglich hier den Wert einstellen und zum Arduino schicken. Ich konnte das Schweißgeräusch im Wertebereich 61 bis 71 aufrufen und "65" als gewählt. Die Anschlüsse "G"elb und "B"lau haben beim JQ6500 keine Bedeutung für den Sound. Falls am Sound-Modul LEDs angeschlossen sind, können hier zur Kontrolle Helligkeitswerte eingestellt werden. Die beiden angeschlossenen LEDs leuchten dann dem Wert entsprechend. 
-  * Am Ende muss in die Goto-Spalte der Wert „E“ eingegeben werden.+ 
 +  * Die Dauer von 200 ms habe ich in dieser Spalte eingestellt, damit das Sound-Modul den Befehl sicher erkennt und reagiert, wie im vorigen Schritt bereits getestet. Der Sound wird nur einmal ausgelöst und läuft dann über 3 Sekunden ab. Ein Abbruch wäre nur über den Aufruf eines anderen Sounds bzw. eines „leeren“ Sounds möglich. 
 +  * In den folgenden Spalten sind Werte für die Ansteuerung der RGB-LED eingetragen. Die Werte können zwischen 0 und 255 liegen, x = Maximalwert. Zunächst ist das Licht etwas bläulich, zum Ende des Schweißvorgangs ist das rötliche Nachglühen zu sehen. Der Umsetzung eigener Vorstellungen und Wünsche steht hier (fast) nichts im Wege. 
 +  * Am Ende muss in die Goto-Spalte der Wert „E“ für "Ende" eingegeben werden.
   * Sound und Licht können leicht über die Verlängerung der Brenndauer der LED synchronisiert werden. Hier muss man etwas experimentieren.    * Sound und Licht können leicht über die Verlängerung der Brenndauer der LED synchronisiert werden. Hier muss man etwas experimentieren. 
 Nun können wir die Konfiguration mit einem Klick auf die entsprechende Taste an den Programm_Generator schicken. Nun können wir die Konfiguration mit einem Klick auf die entsprechende Taste an den Programm_Generator schicken.
Zeile 47: Zeile 53:
 {{ :bilder:anleitungen:spezial:codebeispiele:schw_prog_gen_3_b.jpg?400 |}} {{ :bilder:anleitungen:spezial:codebeispiele:schw_prog_gen_3_b.jpg?400 |}}
  
-Nach der Eingabe einer Adresse und Auswahl eines Tasters können wir unser Ergebnis wie gewohnt zum Arduino schicken und testen. +Nach der Eingabe einer Adresse und Auswahl eines Tasters können wir unser Ergebnis nun wie gewohnt zum Arduino schicken und testen. 
  
 ---- ----
Zeile 62: Zeile 68:
 Über die Zielvariable WL1 wird unsere Schweißlichtfunktion aufgerufen. Über die Zielvariable WL1 wird unsere Schweißlichtfunktion aufgerufen.
  
-In meinem Beispiel kann über die DCC-Befehle 50 bis 56 weiterhin das JQ6500-Modul wie gewohnt gesteuert werden. Dazu muss über dir NEXT_LED-Funktion der Sprung zur nächsten LED in der Kette rückgängig gemacht werden – NEXT_LED -1! +In meinem Beispiel kann über die DCC-Befehle 50 bis 56 weiterhin das JQ6500-Modul wie gewohnt gesteuert werden. Dazu muss über die NEXT_LED-Funktion der Sprung zur nächsten LED in der Kette rückgängig gemacht werden – NEXT_LED **-1**! 
-Wie anfangs erwähnt können die beiden verbleibenden Ausgänge auf dem Sound-Modul für LEDs, zum Beispiel Außenbeleuchtung des Lokschuppens, unter Verwendung von „NEXT_LED -1“ genutzt werden, Beispiel in der Programmzeile 41 bis 44.+ 
 +---- 
 + 
 +Wie anfangs erwähnt können die beiden verbleibenden Ausgänge auf dem Sound-Modul für LEDs, zum Beispiel die Außenbeleuchtung des Lokschuppens, unter Verwendung von „NEXT_LED -1“ genutzt werden. In der Programmzeile 41 bis 44 ist das realisiert.
  
 {{ :bilder:anleitungen:spezial:codebeispiele:schw_prog_gen_6_random_b.jpg?400 |}} {{ :bilder:anleitungen:spezial:codebeispiele:schw_prog_gen_6_random_b.jpg?400 |}}
  
anleitungen/spezial/codevorlagen/schweisslicht.1602167142.txt.gz · Zuletzt geändert: 2020/10/08 15:25 (Externe Bearbeitung)