How To Control Teensy Octows2811 With Xlights
Zitat von blacksnowflake am 04/07/2021, x:49 Uhr
Hallo Jssr,
bin neu hier im Forum und kämpfe mit dem gleichen Problemen und Fragen wie du?
Habe im letzten Jahr nach der Anleitung von Heiz meine "Anlage" aufgebaut und möchte/wollte sie mit Vixen betreiben. Leider stürzt bei mir Vixen jedesmal ab wenn ich an den Grundeistellungen des Setup Display was ändere und würde gerne auf XLights umstellen...
Lid es mit XLights geklappt und verwendest Du dafür den gleichen Sketch auf Teensy wie mit Vixen? Wo muss was geändet werden?
Sad wenn ich da in deine Fragen reinplatze!
VG Martin
Hallo Jssr,
bin neu hier im Forum und kämpfe mit dem gleichen Problemen und Fragen wie du?
Habe im letzten Jahr nach der Anleitung von Heiz meine "Anlage" aufgebaut und möchte/wollte sie mit Vixen betreiben. Leider stürzt bei mir Vixen jedesmal ab wenn ich an den Grundeistellungen des Setup Display was ändere und würde gerne auf XLights umstellen...
Hat es mit XLights geklappt und verwendest Du dafür den gleichen Sketch auf Teensy wie mit Vixen? Wo muss was geändet werden?
Pitiful wenn ich da in deine Fragen reinplatze!
VG Martin
DerWaldFried hat auf diesen Beitrag reagiert.
Zitat von DerWaldFried am 11/07/2021, eleven:26 Uhr
Genau das ganze ist C wenn ich das richtig sehe oder wie du schon meintest maximal c++ 🙂
Heinz Doessegger - http://www.technikfreak.ch
#include <OctoWS2811.h>
const int ledsPerStrip = 50; // Maximale Anzahl Pixel pro Strang
int PixelCount = 400; // Effektive Anzahl Pixel
float hell = 0.20; // Dimmer ane.00=100% Helligkeit - 0.50=50% Helligkeit
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_RGB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
int pixelValue = 0;
void setup()
{
delay(300);
Serial.brainstorm(115200); // Geschwindigkeit der Datenuebertragung von Vixen Lights iii zum Arduino
leds.brainstorm();
for (int i=0;i<PixelCount;i++) // Initialisierung - Einmalig leuchten alle LED blau
{
leds.setPixel(i, 0, 0, 200*hell);
}
leds.bear witness();
delay (5000);
for (int i=0;i<PixelCount;i++)
{
leds.setPixel(i, 0, 0, 0);
}
leds.show();
}
void loop()
{
if (Serial.available()>vi) // Auf Datenuebertragung von Vixen Lights warten
{
for (int pixCount=0; pixCount<PixelCount;
"const int" bedeutet, dass es sich bei LED um eine Ganzzahl handelt, die nicht geändert werden kann (d.h. sie ist eine Konstante) und für die der Wert fifty festgelegt wurde.
Int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768 bis +32767 beschreiben. Mit dem Datentyp int lassen sich nur Ganzzahlen darstellen. Dice Abkürzung int steht für Integer. Hier wurde 400 bestimmt.
Float Zahlen werden in 32 Bit gespeichert. Float kommt von floating point, das heißt, es können gebrochene Zahlen (27,fifty, 0,25 usw) gespeichert und auch berechnet werden können. Hier wurde 0,20 bestimmt. Der Bladder wird genutzt um eine Dunkelheit oder Helligkeit der LED zu erzeugen.
DMAMEM definierte Variablen werden am Anfang von RAM2 platziert. Normalerweise werden hier Puffer und große Arrays platziert. Diese Variablen können nicht initialisiert werden. Deswegen nutzen wir eine Int dazu und kommen deswegen auf den Code "DMAMEM int"
displayMemory[ledsPerStrip*6]; legt fest wie viele Leds an einer Strip sind und zeigt den Speicher an. Zum Beispiel
Teensy three.1 lid genug Ram für bis zu 300 LEDs pro Strip. Bei der four.1 sind es nach meinem Wissen bis zu 600.Ein kleiner LinkTip von mir, ist wenn du Englisch kannst https://world wide web.pjrc.com/store/teensy40_pins.html da findet man then ein wenig Übersicht wie es funktioniert.
Genau das ganze ist C wenn ich das richtig sehe oder wie du schon meintest maximal c++ 🙂
Heinz Doessegger - http://www.technikfreak.ch
#include <OctoWS2811.h>
const int ledsPerStrip = 50; // Maximale Anzahl Pixel pro Strang
int PixelCount = 400; // Effektive Anzahl Pixel
float hell = 0.20; // Dimmer 1.00=100% Helligkeit - 0.fifty=50% Helligkeit
DMAMEM int displayMemory[ledsPerStrip*six];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_RGB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
int pixelValue = 0;
void setup()
{
delay(300);
Serial.begin(115200); // Geschwindigkeit der Datenuebertragung von Vixen Lights 3 zum Arduino
leds.brainstorm();
for (int i=0;i<PixelCount;i++) // Initialisierung - Einmalig leuchten alle LED blau
{
leds.setPixel(i, 0, 0, 200*hell);
}
leds.show();
delay (5000);
for (int i=0;i<PixelCount;i++)
{
leds.setPixel(i, 0, 0, 0);
}
leds.show();
}
void loop()
{
if (Serial.available()>6) // Auf Datenuebertragung von Vixen Lights warten
{
for (int pixCount=0; pixCount<PixelCount;
"const int" bedeutet, dass es sich bei LED um eine Ganzzahl handelt, die nicht geändert werden kann (d.h. sie ist eine Konstante) und für die der Wert fifty festgelegt wurde.
Int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768 bis +32767 beschreiben. Mit dem Datentyp int lassen sich nur Ganzzahlen darstellen. Dice Abkürzung int steht für Integer. Hier wurde 400 bestimmt.
Bladder Zahlen werden in 32 Bit gespeichert. Float kommt von floating bespeak, das heißt, es können gebrochene Zahlen (27,50, 0,25 usw) gespeichert und auch berechnet werden können. Hier wurde 0,20 bestimmt. Der Float wird genutzt um eine Dunkelheit oder Helligkeit der LED zu erzeugen.
DMAMEM definierte Variablen werden am Anfang von RAM2 platziert. Normalerweise werden hier Puffer und große Arrays platziert. Diese Variablen können nicht initialisiert werden. Deswegen nutzen wir eine Int dazu und kommen deswegen auf den Code "DMAMEM int"
displayMemory[ledsPerStrip*6]; legt fest wie viele Leds an einer Strip sind und zeigt den Speicher an. Zum Beispiel
Teensy 3.1 hat genug Ram für bis zu 300 LEDs pro Strip. Bei der 4.one sind es nach meinem Wissen bis zu 600.
Ein kleiner LinkTip von mir, ist wenn du Englisch kannst https://www.pjrc.com/store/teensy40_pins.html da findet human being so ein wenig Übersicht wie es funktioniert.
Zitat von jssr am 04/08/2021, 21:24 Uhr
Hallo Martin, sorry das ich erst jetzt auf Deine Nachricht Antworte. Ich state of war so genervt von den Misserfolgen die ich hatte, das ich erstmal eine Pause eingelegt habe.
Um so erfreulicher ist, das andere sich auch damit Beschäftigen.Also, bei mir lief Vixen mit dem Sketch von Heinz Einwandfrei und Problemlos.
Auf Deine Frage, ob bei mir mittlerweile Xlights läuft, kann ich mit Nein Beantworten.
Habe Wochenlang im Internet nach Lösungen gesucht und irgendwie nichts Brauchbares finden können. Auch Kontakte ins Amerikanische Forum hat nichts dazu beigetragen Lösungen zu finden.Es werden wohl nur wenige ein Teensy verwenden werden.
Brauchts dich nicht zu Entschuldigen. Das Forum ist doch für alle da und wenn dadurch Lösungen gefunden werden ist das für alle Interessierten von Vorteil.
Und so wie es aussieht, hast Du tatsächlich eine Lösung gefunden oder was haben Deine Teste ergeben.
Das Interessiert mich jetzt aber Brennend. Das wäre ja der Hammer hoch drei.
Gruß Jörg
Hallo Martin, sorry das ich erst jetzt auf Deine Nachricht Antworte. Ich war so genervt von den Misserfolgen die ich hatte, das ich erstmal eine Pause eingelegt habe.
Um so erfreulicher ist, das andere sich auch damit Beschäftigen.
Besides, bei mir lief Vixen mit dem Sketch von Heinz Einwandfrei und Problemlos.
Auf Deine Frage, ob bei mir mittlerweile Xlights läuft, kann ich mit Nein Beantworten.
Habe Wochenlang im Internet nach Lösungen gesucht und irgendwie nichts Brauchbares finden können. Auch Kontakte ins Amerikanische Forum chapeau nichts dazu beigetragen Lösungen zu finden.
Es werden wohl nur wenige ein Teensy verwenden werden.
Brauchts dich nicht zu Entschuldigen. Das Forum ist doch für alle da und wenn dadurch Lösungen gefunden werden ist das für alle Interessierten von Vorteil.
Und so wie es aussieht, hast Du tatsächlich eine Lösung gefunden oder was haben Deine Teste ergeben.
Das Interessiert mich jetzt aber Brennend. Das wäre ja der Hammer hoch drei.
Gruß Jörg
Zitat von jssr am 04/08/2021, 21:27 Uhr
Ich werde mal Dein Sketch ausprobieren und Berichten ob es auch bei mir funktioniert.
Hast Du auch ein Teensy 4.1 oder ein anderen?
Gruß Jörg
Ich werde mal Dein Sketch ausprobieren und Berichten ob es auch bei mir funktioniert.
Hast Du auch ein Teensy 4.1 oder ein anderen?
Gruß Jörg
Zitat von jssr am 04/08/2021, 22:58 Uhr
Versuch ist Gescheitert, kann den Sketch nicht auf mein Teensy laden.
for (int pixCount=0; pixCount<PixelCount; Fehlermeldung: Hier werden noch Eingaben/Daten erwartet.
Gruß Jörg
Versuch ist Gescheitert, kann den Sketch nicht auf mein Teensy laden.
for (int pixCount=0; pixCount<PixelCount; Fehlermeldung: Hier werden noch Eingaben/Daten erwartet.
Gruß Jörg
Zitat von blacksnowflake am 17/08/2021, 19:35 Uhr
Hallo Jssr,
Leider auch gibt es auch bei mir keinen 100%igen Durchbruch undvon meiner Vorfreude, dass alle Lichter leuchten ist im Augenblick nicht viel übrig und der frust geht weiter. Den Skatch den ich hier gepostet hab, hab nochmal „geändert" weil wie du schon geschrieben hast noch einen fehler gefunden würde. Bei meinen mail service fehlten ein paar Zeilen. Sorry!! Hoffe mit dem klappt es besser:
/* ===========================================================================================================================================================
* Sketch zur Übertragung von LED Sequenzen via XLights auf Teensy
* V. 0.1 - xviii.07.2021
* Ursprung: vchrismas_1_0 by Heinz
*============================================================================================================================================================
*/#include <OctoWS2811.h>
const int ledsPerStrip = 700; // Maximale Anzahl Pixel pro Strang
int PixelCount = 2800; // Effektive Anzahl Pixel = maximale Anzal x eight !!!!
float hell = 0.60; // Dimmer 1.00=100% Helligkeit - 0.50=50% Helligkeit -> evtl. beim ane. Commencement auf 1.0 setzenDMAMEM int displayMemory[ledsPerStrip*vi];
int drawingMemory[ledsPerStrip*half-dozen];
const int config = WS2811_RGB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
int pixelValue = 2800;void setup()
{
delay(300);
Series.begin(250000); // Geschwindigkeit der Datenuebertragungleds.begin();
for (int i=0;i<PixelCount;i++) // Initialisierung - Einmalig leuchten alle LED blau
{
leds.setPixel(i, 0, 0, 200*hell);
}
leds.show();
delay (5000);
for (int i=0;i<PixelCount;i++)
{
leds.setPixel(i, 0, 0, 0);
}
leds.show();
}void loop()
{if (Serial.available()>5) // Auf Datenuebertragung warten
{for (int pixCount=0; pixCount<PixelCount;pixCount++) // Tun Sie dies für so viele Pixel, die in PixelCount definiert sind
{
int RGB[3]; // Array fuer dice drei RGB Farbwerte
for (int colour = 0;color<3;color++) // Drei Werte bilden jeweils eine RGB LED
{
while (Serial.available() < 1) // Auf die naechste Zahl warten
{
delay(10);
}
RGB[color] = int(Serial.read()*hell); // Farbwert dem Assortment zuweisen mit Helligkeitskorrektur
} // Wiederholen bis alle drei Werte eingelesen sindleds.setPixel(pixCount, RGB[1], RGB[0], RGB[2]);
} // Wiederholen bis alle LED eingelesen sind
leds.prove(); // Farbmuster aktivieren
} // Naechstes Farbmuster holen
}Aktuell funktioniert es zwar mit xLights, aber nicht richtig. Dich Farbverläufe sehen eher so aus als würde jemand einen Lichtschalter umschalten als fliesend und statische Effekte bewegen sich… Zum aus der Haut fahren.
Ich denke aber, dass diese Probleme irgendwo in den Grundeistellungen von xLights stecken und versuche es weiter. Evtl auch auf einen anderen Controller umsteigen
Hallo Jssr,
Leider auch gibt es auch bei mir keinen 100%igen Durchbruch undvon meiner Vorfreude, dass alle Lichter leuchten ist im Augenblick nicht viel übrig und der frust geht weiter. Den Skatch den ich hier gepostet hab, hab nochmal „geändert" weil wie du schon geschrieben hast noch einen fehler gefunden würde. Bei meinen mail service fehlten ein paar Zeilen. Pitiful!! Hoffe mit dem klappt es besser:
/* ===========================================================================================================================================================
* Sketch zur Übertragung von LED Sequenzen via XLights auf Teensy
* 5. 0.1 - 18.07.2021
* Ursprung: vchrismas_1_0 by Heinz
*============================================================================================================================================================
*/
#include <OctoWS2811.h>
const int ledsPerStrip = 700; // Maximale Anzahl Pixel pro Strang
int PixelCount = 2800; // Effektive Anzahl Pixel = maximale Anzal x 8 !!!!
float hell = 0.sixty; // Dimmer ane.00=100% Helligkeit - 0.50=50% Helligkeit -> evtl. beim one. Start auf 1.0 setzen
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_RGB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
int pixelValue = 2800;
void setup()
{
delay(300);
Serial.begin(250000); // Geschwindigkeit der Datenuebertragung
leds.begin();
for (int i=0;i<PixelCount;i++) // Initialisierung - Einmalig leuchten alle LED blau
{
leds.setPixel(i, 0, 0, 200*hell);
}
leds.show();
filibuster (5000);
for (int i=0;i<PixelCount;i++)
{
leds.setPixel(i, 0, 0, 0);
}
leds.show();
}
void loop()
{
if (Serial.available()>v) // Auf Datenuebertragung warten
{
for (int pixCount=0; pixCount<PixelCount;pixCount++) // Tun Sie dies für so viele Pixel, die in PixelCount definiert sind
{
int RGB[3]; // Assortment fuer die drei RGB Farbwerte
for (int color = 0;color<3;colour++) // Drei Werte bilden jeweils eine RGB LED
{
while (Serial.available() < 1) // Auf die naechste Zahl warten
{
filibuster(10);
}
RGB[color] = int(Serial.read()*hell); // Farbwert dem Array zuweisen mit Helligkeitskorrektur
} // Wiederholen bis alle drei Werte eingelesen sind
leds.setPixel(pixCount, RGB[1], RGB[0], RGB[2]);
} // Wiederholen bis alle LED eingelesen sind
leds.prove(); // Farbmuster aktivieren
} // Naechstes Farbmuster holen
}
Aktuell funktioniert es zwar mit xLights, aber nicht richtig. Dich Farbverläufe sehen eher then aus als würde jemand einen Lichtschalter umschalten als fliesend und statische Effekte bewegen sich… Zum aus der Haut fahren.
Ich denke aber, dass diese Probleme irgendwo in den Grundeistellungen von xLights stecken und versuche es weiter. Evtl auch auf einen anderen Controller umsteigen
Zitat von jssr am 17/08/2021, 22:32 Uhr
Der neue Sketch funktioniert tatsächlich. Das blinken kann man unter Tools und dann Test mit den Schiebereglern abstellen.
Farbverläufe laufen jetzt ohne blinken aber sehr langsam und die Farben stimmen noch nicht überein. Blau ist bei mir Rot und Rot ist Blau.
Denke, das es alles eine Einstellsache ist.
Der neue Sketch funktioniert tatsächlich. Das blinken kann man unter Tools und dann Test mit den Schiebereglern abstellen.
Farbverläufe laufen jetzt ohne blinken aber sehr langsam und die Farben stimmen noch nicht überein. Blau ist bei mir Rot und Rot ist Blau.
Denke, das es alles eine Einstellsache ist.
Zitat von braggadocio am xviii/08/2021, 05:38 Uhr
Hallo zusammen,
wäre für euch ein Umstieg auf den Teensy 3.ii und vixen lights denkbar ? Hier gibt es super Anleitungen, wie man die Pixel zum leuchten bringt.
Die meisten hier im Forum haben wohl mit der Kombi angefangen und haben viel Erfahrung gesammelt.
Weihnachten soll ja nett blinken und keinen Frust schieben.….nur ne Idee ?
Hallo zusammen,
wäre für euch ein Umstieg auf den Teensy 3.2 und vixen lights denkbar ? Hier gibt es super Anleitungen, wie man die Pixel zum leuchten bringt.
Die meisten hier im Forum haben wohl mit der Kombi angefangen und haben viel Erfahrung gesammelt.
Weihnachten soll ja nett blinken und keinen Frust schieben.
….nur ne Idee ?
Zitat von Biber am 18/08/2021, 08:30 Uhr
Hallo zusamme,
Bei mir begingt dice 4 Weihnachtbeleuchtung Saison
vor 3 Jahren habe ich auch meine ersten versuche mit den Teensy Controller gemacht. Der Erfolg hielt sich in Grenzen.
Habe mich dann für die Advatek Controller entschieden, von denen (PixLite 16 Und PixLite iv MkII) habe ich jetzt 8 Stück im Einsatz. Vorteil ist das ich alles mit Netzwerk anspeien kann, und auch noch meine DMS Steuerungen mit diesen Controller mitmachen kann. Die Entfernung vom PC zu den Controllern sind ca. 150-200 Meter. Eine Strecke habe ich mit Wlan in Betrieb ca. 250 Meter da eine Straße dazwischen ist.Bin froh das ich mich für diese Controller entschieden habe (natürlich Kostengünstig ist etwas anderes)
Software verwenden ich das xLights Programm.
Ich werdende lieber meine Zeit zum Steuerungskasten und Wasserfesten Steckverbindungen Bau und noch zum Lichteffekte Programmieren.
rudis-weihnachtsbeleuchtung.at
Dann noch viele erfolge mit Teensy euer Rudi
Hallo zusamme,
Bei mir begingt die four Weihnachtbeleuchtung Saison
vor 3 Jahren habe ich auch meine ersten versuche mit den Teensy Controller gemacht. Der Erfolg hielt sich in Grenzen.
Habe mich dann für die Advatek Controller entschieden, von denen (PixLite sixteen Und PixLite 4 MkII) habe ich jetzt viii Stück im Einsatz. Vorteil ist das ich alles mit Netzwerk anspeien kann, und auch noch meine DMS Steuerungen mit diesen Controller mitmachen kann. Dice Entfernung vom PC zu den Controllern sind ca. 150-200 Meter. Eine Strecke habe ich mit Wlan in Betrieb ca. 250 Meter da eine Straße dazwischen ist.
Bin froh das ich mich für diese Controller entschieden habe (natürlich Kostengünstig ist etwas anderes)
Software verwenden ich das xLights Programm.
Ich werdende lieber meine Zeit zum Steuerungskasten und Wasserfesten Steckverbindungen Bau und noch zum Lichteffekte Programmieren.
rudis-weihnachtsbeleuchtung.at
Dann noch viele erfolge mit Teensy euer Rudi
Antwort: Tennsy 4.ane mit xlights LED Pixel WS2811 ansteuern
How To Control Teensy Octows2811 With Xlights,
Source: https://weihnachts-lichter.de/forum/topic/tennsy-4-1-mit-xlights-led-pixel-ws2811-ansteuern/?part=2
Posted by: leapostrythe.blogspot.com
0 Response to "How To Control Teensy Octows2811 With Xlights"
Post a Comment