Hören wir uns dann morgen nocheinma?
Ambilight: Hyperion kann LEDs nicht ansteuern
-
Svenson2 -
11. September 2018 um 19:30 -
Erledigt
L
I
V
E
Stammtisch ab 20:30 Uhr im Chat
-
-
Ambilight: Hyperion kann LEDs nicht ansteuern? Schau mal ob du hier fündig wirst!
-
Melde dich mal, ob die LEDs weiß blinken.. ach den arduino kannst du gleich am raspberry anschließen.. dazu kommen wir aber noch das einzurichten..
-
OK bis morgen
-
eine Frage noch : Der Datenpin der LEDs, den habe ich ja aktuell am Pi, soll ich den da abklemmen und nur an den Arduino ankemmen oder?
-
Genau, den Datenpin vom Pi abnehmen und am arduino anklemmen.
-
letzter Status für heute:
Arduino angeschlossen und alles wieder hochgefahren---> LEDs gingen an --> 2xGute Nacht Zusammen
-
so ich wäre bereit
-
Ich auch..
-
Hiermit mal eine kurze Erinnerung an alle Beteiligten: ein Forum ist kein Kurznachrichtendienst. Etwas mehr Informationsgehalt je Beitrag und weniger Doppelposts wären ganz nett...
Danke.
-
Auf was beziehst du das, wegen einmal "ich auch.."?
Kann dich zwar verstehen, aber Support erfordert nunmal Nachrichten, Gedanken kann ich nämlich noch nicht lesen
-
#41, #43, #47 und #48. Was soll denn auf so ein "Ich bin bereit" - "Ich auch" folgen?
Edit: Und diverse ab #13.
-
#43
Ist Höflichkeit jetzt verboten? Ich seh's nicht so eng..
Die anderen sehe ich teils ein, wobei ich finde das es weitaus schlimmere Threads gibt..
Ist ja jetzt auch egal
-
sorry, so bin am start
-
Jetzt versuche mal eine Config zu erstellen mit hypercon. Bei device nimmst du Adalight bei RATE gibts du dann diese Rate an : 500000
Dann lädst du dir die Config auf den Pi
-
ok
ich starte also hyperion am Windoof und übertrage das dann?
-
das wäre meine config:
-
Liest du eigentlich meine Nachrichten??
Schaue nochmal hier:
Jetzt versuche mal eine Config zu erstellen mit hypercon. Bei device nimmst du Adalight bei RATE gibts du dann diese Rate an : 500000
Dann lädst du dir die Config auf den Pi
-
Du sorry bei mir aktualisiert sich das nicht, ich bin auch gerade auf letzte Aktivitäten gegangen, dann habe ich deine letzte Info gesehen
-
- Offizieller Beitrag
Liest du auch was hier steht? Das hier ist nicht Whatsapp. Nach der Ermahnung durch Linus fällt dir nichts besseres ein als gleich mal wieder einen Doppelpost mit zwei 1 Zeilern zu verfassen? Auch wenn es für die Generation Twitch schwer fällt Texte zu lesen die länger sind als eine Videoüberschrift - das hier ist ein Forum. Man macht sich vorher Gedanken, fasst zusammen, postet und erhält dann Antworten. Post kann man bearbeiten, falls man eine Info vergessen hat - solange noch niemand geantwortet hat. Änderungen werden mit einem Edit oder einem erklärenden Satz gekennzeichnet.
-
Hallo Zusammen,
nachfolgend möchte ich die Lösung des Problems preisgeben.
Um nicht zu viele Forum Mitglieder, mit meinen Laienhaften Ausführungen zu verärgern, haben wir mein Proplem, ausserhalb der Öffentlichkeit gelöst.
Vorab einen RIESEN DANKESCHÖN an raspbastler, dem hier die Ehre gebührt !!!!!!!!!Danken möchte ich auch der Forenpolizei, die ja schön aufpasst, das alles richtig läuft , wodurch man ja auch nur lernen kann.
Dies war mein Ausgangspunkt:
ZitatPrinzipiell geht es darum das Hyperion, bei einem ansonsten voll funktionsfähigen Setup, die LED´s für mein zukünftiges Ambilight nicht ansteuern kann.
Komponenten:
- Raspberry Pi 2
- Strecht lite (http://www.iobroker.net/docu/?ddownload=8005)
- Videograbber: Logilink ( https://www.amazon.de/gp/product/B0013BXFLG/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1&tag=psblog-21 [Anzeige] )
- HDMI to AV Konverter ( https://www.amazon.de/gp/product/B01AG0MDY4/ref=oh_aui_detailpage_o04_s01?ie=UTF8&psc=1&tag=psblog-21 [Anzeige] )
- 10.09.18 neuen Konverter bestellt (https://www.amazon.de/gp/product/B06XJTV33G/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1&tag=psblog-21 [Anzeige])
- Leicke HDMI Switch 4fach ( https://www.amazon.de/gp/product/B004MYUCF8/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1&tag=psblog-21 [Anzeige] )
- LEDs: WS2812b (Pins: VCC, GND, Data)
- Anzahl LED´s zum Testen: 35
- Spannungsversorgung LED´s: VIN: 220 V, Ampere: 20A, VOUT 5V (https://www.amazon.de/gp/product/B01LXRVQ1P/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1&tag=psblog-21 [Anzeige])
Was habe ich bisher gemacht?
LED´s anschliessen (erfolgreich):
- Nach dieser Anleitung die Technik mit dem Raspberry verbunden: https://deref-gmx.net/mail/client/zz…mment-24375----
- https://deref-gmx.net/mail/client/H5…ff%2Frpi_ws281x ist somit installiert. Nach Aufruf von „strandtest.py“ aus dem Examples Ordner leuchten die LED´s am Raspberry ordnungsgemäß.
- Somit liegt kein Problem mit der Verkabelung vor.
Grabber anschliessen und Testen (teilweise erfolgreich):
- Grabber an den Pi angeschlossen
- Grabber unter Stretch getestet mit folgenden Befehl: lsusb ---> Bus 001 Device 008: ID 1b71:3002 Fushicai USBTV007 Video Grabber [EasyCAP]
- Hyperion erkennt den Grabber ebenfalls. Entsprechende Zeile aus dem Log:
- sudo hyperion-v4l2 --width 320 --height 180 --screenshot
hyperion-v4l2: version : V1.03.4 (brindosch-c750c41/dc6a602-1522918225 build time: Apr 5 2018 01:57:25 V4L2GRABBER INFO: width=720 height=576 V4L2GRABBER INFO: pixel format=YUYV V4L2GRABBER INFO: signal threshold set to: {0,0,0} V4L2GRABBER INFO: started V4L2GRABBER INFO: stopped - Somit liegt kein Problem mit der Grabber Erkennung unter Stretch vor.
- Grabber mit HDMI switch, Konverter und TV Signal verbunden
- im Hyperion Bild vom Grabber geholt ---> wird richtig dargestellt
- Grabber liefert TV Signal.
- Somit liegt kein Problem mit meinen Komponenten vor.
- Nun habe ich versucht Hyperion mit diesem Tutorial ans Laufen zu bringen: https://www.digitalewelt.at/am…nleitung-teil-2-hyperion/ und : https://www.digitalewelt.at/am…g-teil-4-externe-geraete/
- Wenn ich zum Testen unter Hyperion Reiter SSH auf „Sende Farben “ klicke, bleiben die LED´s dunkel. und dies steht im LOG: ssh in:
hyperion-remote:
ssh in: version : V1.03.4 (brindosch-c750c41/dc6a602-1522918225 ssh in: build time: Apr 5 2018 01:57:05 ssh in: Connected to localhost:19444 ssh in: Set color to 255 11 48 ssh out: Error while reading data from host
Ich wollte also die LEDs WS2812B direkt mit dem Raspberry steuern.
Auf diesem war allerdings ein Image für IObroker drauf und auch schon einiges installiert. Da wir mit dieser Konfiguration nicht weiter kamen, habe ich ein neues Image aufgespielt und nur Hyperion installiert.
Neue Voraussetzung für meinen Raspberri Pi 2:
1. Image heruntergeladen, auf SD Card geschoben und in Pi gesteckt, https://downloads.raspberrypi.org/raspbian_lite_latest
2. Pi ins Netzwerk gehangen und über putty drauf zugegriffen
3. in der config die Root-Partition vergrößert im "Expand Filesystem"
4. SSH aktiviert
5. WLan eingerichtet
6. neu über Wlan gebootet
7. Hyperion installiert:
Codeapt-get update apt-get install libqtcore4 libqtgui4 libqt4-network libusb-1.0-0 libprotobuf7 ca-certificates wget -N https://raw.github.com/tvdzwan/hyperion/master/bin/install_hyperion.sh sh ./install_hyperion.sh
raspbastler erklärte die Vorteile des Einsatzes eines Arduino Nano, welchen ich mir dann bestellt habe:
An diesen habe ich dann den GND und Pin 6 (D6) -> Datenkabel für die LEDs angelötetUm den Arduino ans laufen zu bringen muss man sich das Programm Arduino Ide (bei mir: arduino-1.8.5-windows) herunterladen und installieren.
https://www.filehorse.com/download-arduino/download/ (Aktuelle Version 1.8.7 vom 12.09.18)
ZitatSo dann machst du folgendes..
Du öffnest die IDE und gehst dann auf "SKETCH" dann gehst du auf "Bibliothek Einbinden" -> Bibliotheken Verwalten, dann suchst du im Suchfeld nach FASTLED. Dann klickst du auf installieren.
So nun musst du dir noch einen Treiber installieren, damit du den Arduino Flashen kannst.
Hier müsst Ihr der Anleitung folgen, jedoch war der dort veröffentlichte Link zum Windowstreiber falsch, nier der richtige:
Quelle : http://www.wch.cn/download/CH341SER_ZIP.html
Wenn das erledigt ist müsst Ihr:
1. PC neu starten
2. Arduino über beiliegendes USB-Kabel anschliessen
3. warten,,dumdidum, dumdidum,dumdidum.......!!!!!
4. Arduino IDE starten und folgendes in das freiche Feld (Sketch) einfügen:
Code
Alles anzeigen#include "FastLED.h" #define ANALOG_MODE_AVERAGE 0 #define ANALOG_MODE_LAST_LED 1 /************************************** S E T U P set following values to your needs **************************************/ #define INITIAL_LED_TEST_ENABLED true #define INITIAL_LED_TEST_BRIGHTNESS 155//0..255 #define INITIAL_LED_TEST_TIME_MS 500 // 10.. // Number of leds in your strip. set to "1" and ANALOG_OUTPUT_ENABLED to "true" to activate analog only // As of 26/1/2017: // 582 leaves ZERO bytes free and this // 410 is ok // tested with 500 leds and is fine (despite the warning) #define MAX_LEDS 500 // Hier wird die LED Anzahl definiert, bitte am Anfang zählen und dementsprechend ändern! // type of your led controller, possible values, see below #define LED_TYPE WS2812B //Nichts ändern, da wird WS2812B LEDs nutzen // 3 wire (pwm): NEOPIXEL BTM1829 TM1812 TM1809 TM1804 TM1803 UCS1903 UCS1903B UCS1904 UCS2903 WS2812 WS2852 // S2812B SK6812 SK6822 APA106 PL9823 WS2811 WS2813 APA104 WS2811_40 GW6205 GW6205_40 LPD1886 LPD1886_8BIT // 4 wire (spi): LPD8806 WS2801 WS2803 SM16716 P9813 APA102 SK9822 DOTSTAR // For 3 wire led stripes line Neopixel/Ws2812, which have a data line, ground, and power, you just need to define DATA_PIN. // For led chipsets that are SPI based (four wires - data, clock, ground, and power), both defines DATA_PIN and CLOCK_PIN are needed // DATA_PIN, or DATA_PIN, CLOCK_PIN #define LED_PINS 6 // 3 wire leds Dort wird der PIN angegeben, wo das Daten Signal der LEDs angeschlossen wird! //#define LED_PINS 6, 13 // 4 wire leds (Nicht benötigt, da wir WS2812B LEDs nutzen! #define COLOR_ORDER GRB // colororder of the stripe, set RGB in hyperion // Nichts Ändern! #define OFF_TIMEOUT 15000 // ms to switch off after no data was received, set 0 to deactivate. Nichts Ändern! // analog rgb uni color led stripe - using of hyperion smoothing is recommended // ATTENTION this pin config is default for atmega328 based arduinos, others might work to // if you have flickering analog leds this might be caused by unsynced pwm signals // try other pins is more or less the only thing that helps #define ANALOG_OUTPUT_ENABLED false #define ANALOG_MODE ANALOG_MODE_LAST_LED // use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED #define ANALOG_GROUND_PIN 8 // additional ground pin to make wiring a bit easier #define ANALOG_RED_PIN 9 #define ANALOG_GREEN_PIN 10 #define ANALOG_BLUE_PIN 11 // overall color adjustments #define ANALOG_BRIGHTNESS_RED 255 // maximum brightness for analog 0-255 #define ANALOG_BRIGHTNESS_GREEN 255 // maximum brightness for analog 0-255 #define ANALOG_BRIGHTNESS_BLUE 255 // maximum brightness for analog 0-255 #define BRIGHTNESS 255 // maximum brightness 0-255 #define DITHER_MODE BINARY_DITHER // BINARY_DITHER or DISABLE_DITHER #define COLOR_TEMPERATURE CRGB(255,255,255) // RGB value describing the color temperature #define COLOR_CORRECTION TypicalLEDStrip // predefined fastled color correction //#define COLOR_CORRECTION CRGB(255,255,255) // or RGB value describing the color correction // Baudrate, higher rate allows faster refresh rate and more LEDs //#define serialRate 460800 // use 115200 for ftdi based boards //#define serialRate 115200 // use 115200 for ftdi based boards #define serialRate 500000 // use 115200 for ftdi based boards /************************************** A D A L I G H T C O D E no user changes needed **************************************/ // Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i; unsigned long endTime; // Define the array of leds CRGB leds[MAX_LEDS]; // set rgb to analog led stripe void showAnalogRGB(const CRGB& led) { if (ANALOG_OUTPUT_ENABLED) { byte r = map(led.r, 0,255,0,ANALOG_BRIGHTNESS_RED); byte g = map(led.g, 0,255,0,ANALOG_BRIGHTNESS_GREEN); byte b = map(led.b, 0,255,0,ANALOG_BRIGHTNESS_BLUE); analogWrite(ANALOG_RED_PIN , r); analogWrite(ANALOG_GREEN_PIN, g); analogWrite(ANALOG_BLUE_PIN , b); } } // set color to all leds void showColor(const CRGB& led) { #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false LEDS.showColor(led); #endif showAnalogRGB(led); } // switch of digital and analog leds void switchOff() { #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false memset(leds, 0, MAX_LEDS * sizeof(struct CRGB)); FastLED.show(); #endif showAnalogRGB(leds[0]); } // function to check if serial data is available // if timeout occured leds switch of, if configured bool checkIncommingData() { boolean dataAvailable = true; while (!Serial.available()) { if ( OFF_TIMEOUT > 0 && endTime < millis()) { switchOff(); dataAvailable = false; endTime = millis() + OFF_TIMEOUT; } } return dataAvailable; } // main function that setups and runs the code void setup() { Serial.begin(serialRate); // analog output if (ANALOG_OUTPUT_ENABLED) { // additional ground pin to make wiring a bit easier pinMode(ANALOG_GROUND_PIN, OUTPUT); digitalWrite(ANALOG_GROUND_PIN, LOW); pinMode(ANALOG_BLUE_PIN , OUTPUT); pinMode(ANALOG_RED_PIN , OUTPUT); pinMode(ANALOG_GREEN_PIN, OUTPUT); } int ledCount = MAX_LEDS; if (ANALOG_MODE == ANALOG_MODE_LAST_LED) { ledCount--; } #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false FastLED.addLeds<LED_TYPE, LED_PINS, COLOR_ORDER>(leds, ledCount); #endif // color adjustments FastLED.setBrightness ( BRIGHTNESS ); FastLED.setTemperature( COLOR_TEMPERATURE ); FastLED.setCorrection ( COLOR_CORRECTION ); FastLED.setDither ( DITHER_MODE ); // initial RGB flash #if INITIAL_LED_TEST_ENABLED == true for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++) { showColor(CRGB(v,v,v)); delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS); } for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++) { showColor(CRGB(v,v,v)); delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS); } #endif showColor(CRGB(0, 0, 0)); Serial.print("Ada\n"); // Send "Magic Word" string to host boolean transmissionSuccess; unsigned long sum_r, sum_g, sum_b; // loop() is avoided as even that small bit of function overhead // has a measurable impact on this code's overall throughput. for(;;) { // wait for first byte of Magic Word for (i = 0; i < sizeof prefix; ++i) { // If next byte is not in Magic Word, the start over if (!checkIncommingData() || prefix[i] != Serial.read()) { i = 0; } } // Hi, Lo, Checksum if (!checkIncommingData()) continue; hi = Serial.read(); if (!checkIncommingData()) continue; lo = Serial.read(); if (!checkIncommingData()) continue; chk = Serial.read(); // if checksum does not match go back to wait if (chk != (hi ^ lo ^ 0x55)) continue; memset(leds, 0, MAX_LEDS * sizeof(struct CRGB)); transmissionSuccess = true; sum_r = 0; sum_g = 0; sum_b = 0; int num_leds = min ( MAX_LEDS, (hi<<8) + lo + 1 ); // read the transmission data and set LED values for (int idx = 0; idx < num_leds; idx++) { byte r, g, b; if (!checkIncommingData()) { transmissionSuccess = false; break; } r = Serial.read(); if (!checkIncommingData()) { transmissionSuccess = false; break; } g = Serial.read(); if (!checkIncommingData()) { transmissionSuccess = false; break; } b = Serial.read(); leds[idx].r = r; leds[idx].g = g; leds[idx].b = b; #if ANALOG_OUTPUT_ENABLED == true && ANALOG_MODE == ANALOG_MODE_AVERAGE sum_r += r; sum_g += g; sum_b += b; #endif } // shows new values if (transmissionSuccess) { endTime = millis() + OFF_TIMEOUT; #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false FastLED.show(); #endif #if ANALOG_OUTPUT_ENABLED == true #if ANALOG_MODE == ANALOG_MODE_LAST_LED showAnalogRGB(leds[MAX_LEDS-1]); #else showAnalogRGB(CRGB(sum_r/MAX_LEDS, sum_g/MAX_LEDS, sum_b/MAX_LEDS)); #endif #endif } } } // end of setup void loop() { // Not used. See note in setup() function. }
Nun gibt ihr an, welchen Arduino ihr habt . Dies ist wichtig, damit die IDE weiß, wie der Sketch hochgeladen werden muss. Das erledigt ihr in dem ihr in der IDE auf den Reiter
"Werkzeuge" geht und dann bei
"Board" euren Arduino auswählt (hier dann Arduino Nano anklicken) ggf. müsst ihr beim Punkt
"Port" noch einen Port auswählen, falls es die IDE nicht von selbst aus macht - dort sollte dann nur ein Port zur Auswahl stehen
Wenn Ihr das habt, dann mit STRG+U speichern, dann läd das Programm den Sketch auf den Arduino hoch.
(oder auf den Reiter Sketch, dann auf hochladen)
So..... nun kommen wir zum:
Arduino anschliessen
Ich habe den Raspberry heruntergefahren und vom Strom getrennt, weiss aber nicht ob das nötig ist.
Meine ursprüngliche Verkabelung (Raspberry --LEDs) habe ich natürlich entfernt.
Dann den GND an den Minus vom Netzteil der LEDs anschliessen und den Pin6 an das Datenkabel der LEDs.
USB Stecker in den Raspberry stecken.
Danach den Pi wieder hochfahren.---> jetzt sollten die LEDs 2x hoch dimmen und wieder aus gehen (so war es bei mir)
Einstellungen im Hyperion
Reiter Allgemein:Typ: Adalight
Ausgabe: /dev/ttyUSB0
Bautrate: 500000
Verzögerung: 0
RGB Reihenfolge: RGB ---> das passt bei mir so da müsst ihr probieren. EDIT 23.09.18: zeige unten wie es direkt im Pi geht
Den Rest müsst Ihr nach Euren Gegebenheiten anpassen
Reiter Verarbeitung :
Hier habe ich alles so gelassen.
Reiter Grabber:
Hier den externen Grabber anhaken und den internen Grabber aus (ich will ja nur über extern)
Reiter Extern:
hier könnt Ihr unter Effekte den StartEeffekt festlegen
Reiter SSH:
System: Alle Systeme nicht OE/LE
Eure IP vom Pi reinschreiben , Port :22
Benutzername und Passwort vom Pi
Dann auf Connect
Jetzt noch Eure Einstellungen sicher, mit SPEICHERN
und
GENERIERE KONFIGURATION FÜR HYPERION diese Datei (hyperion.config,json) so speichern das Ihr sie wieder findet,
denn wir Übertragen Sie jetzt auf den Pi.
Ich habe dazu Filezilla genommen https://filezilla.de.uptodown.com/windows
Hier müsst Ihr oben auch wieder die IP des Pi eingeben und Benutzername und Passwort.
Dann seht Ihr links Euren PC und rechts die Dateien des Pi.
Links sucht Ihr den Speicherort der Config Datei (hyperion.config,json) und rechts seit Ihr standart mäßig im Ordner /home/pi
hie geht Ihr auf /etc/hyperion. Dort müsst Ihr die Config Datei vom linken Fenster hineinziehen. (eventuell di bestehende Datei im rechten Fenster löschen)
Als nächstes müsst Ihr mit Putty auf den Pi zugreifen.
mit
startet und stoppt Ihr das Ambilight.
EDIT 23.09.18: RGB Reihenfolge direkt im Pi ändern:
immer erst hyperion stoppen, dann die config ändern , dann starten um es zu prüfen!
Codesudo service hyperion stop sudo nano /etc/hyperion/hyperion.config.json (hier dann RGB in RBG oder BGR usw ändern, mit STRG-O speichern, bstätigen mit enter, mit STRG-X verlassen) sudo service hyperion restart
So hat es bei mir funktioniert.
Viel Spass und Danke nochmal an raspbastler
-
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!