hast dus mal mit deinem leonardo probiert?
[Projekt] Arduatmo - Ambilight auf Arduino-Basis
-
-
Nee, noch nicht, ich schau mal, ob ichs heut noch schaffe.
-
Hallo TheChief,
wie löst du denn das "Problem" Automatisches Einschalten der Stromversorgung der LED's?Bei mir ist es so das auf dem VDR sowohl der VDR als auch das XBMC genutzt werden. Beide können ja den Arduino ansteuern.
Könnte man nicht auf dem Arduino schauen ob pro Sekunde n (einstellbar) Aktualisierungen für die LED's angekommen sind um darüber ein Relais zu schalten?
Außerdem sollte man auch noch einen Befehl und eine Voreinstellung für das Überschreiben der Relaisautomatik im Plugin haben.Ich habe mir das so vorgestellt (jeweils Beschreibung einer Aktivität/Event):
VDR bootet:
VDR und Arduino starten -> Arduino schaltet das Reilais ab / bzw. ist da ja schon aus, da der Arduino vorher stomlos war
VDR ist gestartet und lädt das SeduAtmo-Plugin
Je nach Voreinstellung überschreibt er die Automatik auf dem Arduino mit:
An -> Relais ist immer geschalten
Aus -> Relais ist immer aus
Automatik -> aktiviere RelaisautomatikNutzer möchte Ambilight nutzen:
Nutzer sendet Fernbedienungsbefehl, welcher dem Plugin sagt das es des das Ambilight aktiviert (nur sinnvoll wenn Voreinstellung "aus" ist) -> Arduino Relaisautomatik wird aktiviert
Durch die LED-Aktualisierungen (vom Plugin) des Arduino wird automatisch das Relais aktiviertNutzer möchte zu XBMC wechseln (welches ja auch die Ansteuerung kann):
Plugin aktiviert von allein das Ambilight (nur sinnvoll wenn Voreinstellung "aus" ist) -> Arduino Relaisautomatik wird aktiviert
Durch die LED-Aktualisierungen (vom XBMC) des Arduino wird automatisch das Relais aktiviertNutzer möchte Ambilight als Hintergrundbeleuchtung nutzen:
Nutzer sendet Fernbedienungsbefehl, welcher dem Plugin sagt das es des das Ambilight fix aktiviert -> Arduino schlatet Relaissteuerung auf fix An
Nutzer wählt im Plugin eine der BeleuchtungsmodiNutzer möchte Ambilight deaktivieren:
Nutzer sendet Fernbedienungsbefehl, welcher dem Plugin sagt das es des das Ambilight deaktiviert -> Arduino schlatet Automatik und Relais ausDas sollte für viele Szenarien funktionieren. Die frage ist nur gibt es Relais für das Arduino was die 5V mit 5-8A schalten kann.
Tschau, Uwe.
-
Hallo Uwe,
ich sehe, du bist Programmierer, dann sollte dir das eigentlich nicht schwer fallen, zu implementieren.
Aber wozu ein Relais? Um die LEDs komplett stromlos zu machen? Bei mir ist das Netzteil einfach an. LEDs an und ausschalten/Beleuchtung wählen usw. geht einfach über das Seduatmo-Plugin. Bei xbmc detache ich das Plugin und starte boblight.
Grüsse
TheChief -
Bin noch nicht dazu gekommen. Müsst ganzen Setup erst zerpflücken.
Funktioniert denn das Plugin garnicht? Schraub doch mal das Loglevel hoch. Danach probier mal im Hauptmenü auf fixed color zu stellen und schau mal ins Log.
-
läuft. Vllt hat er n reboot gebraucht, n restart vdr hat vllt nicht gereicht.
Aber es ist sehr langsam. Mit moving color wheel ca. jede 0,5s Ruckeln.
-
Was steht denn bei Effekt Speed? Irgendwo hier im Forum hatte ich auch mal einen Patch gepostet, damit man Effect Speed bis 20 oder 15 ms einstellen kann.
Wie ist der Ambilight Modus?
-
100ms
Atmo ruckelt auch.
-
Quote
Wie ist der Ambilight Modus?
Funktioniert das flüssig?
-
der Modus heißt bei mir Atmo, der ruckelt auch. Oder meinst du was anderes?
-
Hallo,
da ich hier auch bald einsteigen will (warte noch auf meine LEDs), habe ich mal einen Geschwindigkeitstest mit meinem Arduino Micro gemacht.
Mein Programm schaut etwa so aus:Code
Display Morevoid setup() { pinMode(13, OUTPUT); // init LED Serial.begin(9600); // Baudrate wird ignoriert } void loop() { uint8_t inByte; if (Serial.available() > 0) { inByte = Serial.read(); if (inByte==0x0A) { PORTC=(PORTC ^ _BV(PC7)); // blink LED Serial.write(0x06); // write ACK } } }
Getestet habe ich auf die schnelle mit HTerm unter Windows 7 32Bit. Nach einigen Fehlversuchen habe ich rausgefunden, dass DTR eingeschaltet sein muss, damit Arduino über USB was sendet. Die Baudrate wird übrigens auf beiden Seiten ignoriert. Dann habe ich eine 1MB große Testdatei mit jeweils 64Bytes pro Zeile erzeugt und mit HTerm gesendet. Um die 1048576 Bytes zu schicken und die 8192 Bytes zu empfangen werden etwa 24 Sekunden benötigt. Das macht über 43KByte/s.Grundsätzlich ist hier also genug Potential vorhanden auch wenn der Umweg über den Virtuellen Comport ganz schön USB Bandbreite schluckt.
Werde später mal schauen, was da noch bremst.Tschüß Frank
-
Habe auch noch eine serielle Schnittstelle am VDR ;).
-
Dann versuchs doch mal per FTDI. Vielleicht gehts dann besser.
Ah, jemand der sich mit Arduino auskennt. Einen ähnlichesn Test hatte ich auch mal gemacht und eigentlich sollte die Geschwindigkeit ausreichen, dennoch bekomme ich per virtuellem Com Port nur 7-10 FPS.
-
Ah, jemand der sich mit Arduino auskennt.
Auskennen ist vielleicht noch ein bisschen übertrieben.
Aber ich habe schon einiges mit ATmega gemacht. Entwickeln tue ich auch den Arduino mit AtmelStudio und einem JTAGICE mkII, was das debuggen unheimlich erleichtert. Ich benutze aber die Arduino Bibliotheken, sodass das Ganze auch mit Arduino übersetzbar bleiben sollte. Bei mir soll der Arduino "nebenbei" auch noch den VDR einschalten und IR-Codes entschlüsseln. Meinen alten IR-Code vom VDR-Wakeup habe ich schon portiert. Der kann RC5, RC6 und NEC Codes decodieren.Ich werde mal deinen Atmocode testen. Ist zwar ohne LEDs etwas unspektakulär , aber sollte ja laufen.
Tschüß Frank
-
HI,
Die Baudrate wird übrigens auf beiden Seiten ignoriert
Das soll keine Kritik sein, will eher etwas Wissen abzapfen..
Bei benutzen der Arduino Serial Lib ein:
Intialisiert die Serielle mit 9600 Baud. (im Prinzip werden damit nur die "Baudratenregister" des AVR entsprechend gesetzt und startet den Baudratengenerator ).
Ich habe ein Arduino UNO und ein MEGA Board und bin der Meinung das dies bei beiden funktioniert.Wenn dies ignoriert wird, was für eine Baudrate hast du dann ?
QuoteEntwickeln tue ich auch den Arduino mit AtmelStudio und einem JTAGICE mkII, was das debuggen unheimlich erleichtert
Debuggen ist so ein Thema.
Ich habe einen ISP MK2 Programmer. Sollte auch JTAG fähig sein.
Kann man damit z.b Breakpoints setzen um den Wert der Variablen des C++ Codes auszuwerten ?
Das wäre natürlich genial.
Geht dann wohl nur im AVR Studio.Wenn deine Antwort zu weit vom Thema abweicht gerne via PN oder auch eigener Thread.
-
Beim Leonardo wird die Baudrate auch ignoriert bzw. hat keinen Effekt.
Hab ich auch schonmal irgenndwo gelesen.
-
Beim Leonardo wird die Baudrate auch ignoriert bzw. hat keinen Effekt.
Auch ein 32U4 evtl. hat die Arduino Serial Lib damit ein Problem.
Bei mir funktioniert dies mit ATMEGA 328 und 2560. -
CDC ist halt was anderes, da gibts keine feste Baudrate: http://www.mikrocontroller.net/topic/253503
Vielleicht kann man im Plugin ja libusb verwenden...ma gucken.
-
Hallo TheChief,
da nun schon ein paar Teile da sind (die LED Leisten haben nur 5 Tage inkl. Wochenende gebraucht) wollte ich schon mal mit dem Basteln anfangen.
Wo bringt man die Leisten denn am Besten am TV an? Ganz außen wie in deinen Beispielbilder? Da sieht man die Leisten und LEDs ja sicher ziemlich schnell von der Seite wenn man nicht exakt mittig vor dem TV sitzt, oder?
Wäre es nicht besser die LEDs so 5cm vom Rand entfernt anzubringen und dafür leicht nach außen zu drehen? Der Wandabstand wird ca. 15-40cm betragen (die Wandhalterung ist auch ausziehbar).Die zweite Frage die sich mir stellt ist in welcher Ecke ich denn genau anfangen muss und in welche Richtung das dann gehen soll. aus welcher Richtung blickt man denn auf den TV, wenn man sich nach der Anschlussplan vom ersten Posting richten will?
Ist das von vorn, so dass ich (von vorn auf den TV geschaut) in der unteren/rechten Ecke anfange und dann gegen den Uhrzeigersinn die LEDs anbringe?Hoffentlich braucht das Arduino-Board nicht mehr so lange.
Tschau, Uwe.
-
Moin Uwe,
die Ecke, wo Du anfängst, kannst Du Dir aussuchen. Das kann man im seduatmo-Plugin bzw. im Config-Skript einstellen. Bei mir fängt es auch unten rechts an und geht im Uhrzeigersinn. unten-links-oben-rechts von vorn gesehen.
Wenn Du die LEDs direkt auf den TV klebst, dann kannst Du auch bis zum Rand geht, musst nur schauen, wie Du die Kabel unterbringst. Wenn Du es wie ich machst, könntest Du auch etwas Abstand lassen. 4-5 cm bedeutet dann aber, dass Du links und rechts insgesamt 8-10 LEDs weniger nutzen kannst. Ist aber natütlich auch ausreichend. Nach meinem Bauvorschlag kannst Du ja die LEDs dann etwas nach aussen drehen. Denke aber 1-2cm Rand reichen auch (notfalls schwarze Rohre nehmen :D). Hängt auch vom TV ab, wo man die LEDs am idealsten abringt.
Hast Du jetzt das SaintSmart noch bestellt? Die Arduinos aus China können schon mal 2 Wochen dauern.
Grüsse
TheChief -
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!