Willkommen Gast. Bitte einloggen oder registrieren.
Mai 17, 2024, 05:25:01
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
+  MODDING-FAQ FORUM
|-+  Alles rund ums Modden
| |-+  Elektronik, Elektrik (Moderator: TzA)
| | |-+  Ambilight
  « vorheriges nächstes »
0 Mitglieder und 0 Gäste betrachten dieses Thema.
Seiten: 1 [2] 3 4 nach unten Drucken
Autor Thema: Ambilight  (Gelesen 36637 mal)
nuss
Stichsägenquäler

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 51


Casemodding braucht keinen Grund


Profil anzeigen WWW
Re: Ambilight
« Antwort #15 am: November 8, 2005, 17:11:21 »

das muss doch viel einfacher gehn...kann man ned seinen treiber abfragen und dann die RGB leitung anzapfen?

idee: die steuerung von nem altem tft anzappen da muss doch irgendwo nen rgb-ausgang für die anzeige sein wenn ich da einfach ne verstärkerschaltung dran hänge um größere lichtquellen anzusprechen könnte das doch funzen oder?
Gespeichert

Modshark
Global Moderator

*

Karma: +11/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 838


Spammen gefährdet Ihre Postings.


Profil anzeigen
Re: Ambilight
« Antwort #16 am: November 8, 2005, 17:20:14 »

Was das VB-Problem angeht...
Code:
Picture1.ScaleMode = 3

Dann sollte allerdings mit ScaleWidth und ScaleHeight gearbeitet werden. Es sei, du stellst den ScaleMode auch im Formular um.

Einfach mal die MSDN welzen und nich immer auf "VB ist ja sooo einfach" verlassen Wink

MfG
Modshark
Gespeichert

   
hackspider
Wakü-Poseidon

*

Karma: +4/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 412



Profil anzeigen
Re: Ambilight
« Antwort #17 am: November 8, 2005, 17:28:00 »

so was die hardware angeht weiß ich nicht inwiefern das machbar ist. bin jetzt nicht so bewandert aber wie werden die bildschirme den angesteuert. Digital oder analog ? wenn digital dann denk ich ein decoder is zu umständlich wenn analog könnte man einfach schaun welches signal das stärkste ist.

aber mal zum neuen ich hab mal gecodet so quick and dirty aus dem screenshot tipp von avtivevb. Also hab ein raster gemacht also jedes 50te twip wird abgefragt das gibt ein sauberes ergebnis bei akzeptabler zeit. (im ms bereich).

http://hackspider.toxic-link.n...en/screen0r.exe
also wie gesagt quick and dirty also nich lästern sieht alles S****sse aus und so aber es geht.

mfg hackspider

PS: wenn wirklich bedarf besteht dann bin ich bereit mal eine final zu schreiben.
Gespeichert

TzA
Modder der Apokalypse

*

Karma: +10/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1166



Profil anzeigen
Re: Ambilight
« Antwort #18 am: November 8, 2005, 17:45:59 »

Was spricht eigentlich gegen 3 Photodioden/Phototransistoren mit Farbfilterfolie davor, die man (mittels Blende und Linse) nur den Bildschirm sehen lässt?
Der einzige Nachteil ist halt, dass man die etwas vor dem Monitor anbringen müsste, aber sie können ja ruhig von unten in einem steilen Winkel hochschauen. Sämtliche Mittelung wird dann in Echtzeit analog durchgeführt, mann muss nur noch die jeweiligen Spannungen (evtl. mit der spektralen Empfindlichkeit der Sensoren kombiniert) als Grundlage für die Helligkeit der jeweiligen LEDs nehmen.
Gespeichert

You need only two tools. WD-40 and duct tape. If it doesn't move and it should, use WD-40. If it moves and shouldn't, use the tape
Blocki
Case-Konstrukteur

*

Karma: +3/-1
Offline Offline
Geschlecht: Männlich
Beiträge: 710



Profil anzeigen
Re: Ambilight
« Antwort #19 am: November 9, 2005, 09:51:47 »

so was die hardware angeht weiß ich nicht inwiefern das machbar ist. bin jetzt nicht so bewandert aber wie werden die bildschirme den angesteuert. Digital oder analog ? wenn digital dann denk ich ein decoder is zu umständlich wenn analog könnte man einfach schaun welches signal das stärkste ist.

aber mal zum neuen ich hab mal gecodet so quick and dirty aus dem screenshot tipp von avtivevb. Also hab ein raster gemacht also jedes 50te twip wird abgefragt das gibt ein sauberes ergebnis bei akzeptabler zeit. (im ms bereich).

http://hackspider.toxic-link.n...en/screen0r.exe
also wie gesagt quick and dirty also nich lästern sieht alles S****sse aus und so aber es geht.

mfg hackspider

PS: wenn wirklich bedarf besteht dann bin ich bereit mal eine final zu schreiben.


hmmm... ich habe das teil mal getestet... bei einem zum grossteil weissem screen, meinte er, rot weare der winner... hmmm find ich ganz komisch Grin
Gespeichert

"Mehrmalige Ausrufezeichen", fuhr er kopfschüttelnd fort, "sind ein sicheres Zeichen für einen kranken Geist." (Terry Pratchett in "Eric")

"May the wind always be at your back and the sun upon your face, and the winds of destiny carry you aloft to dance with the stars..." by George Jung
melloman
Case-Konstrukteur

*

Karma: +1/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 506


let's mod something


Profil anzeigen WWW
Re: Ambilight
« Antwort #20 am: November 9, 2005, 10:16:41 »

hab's auch getestet...

bei nem fast nur schwarzen wallpaper kan auch rot...
bie m-faq page kam blau...

fazit:
test nicht bestanden...
Gespeichert

OlafSt
Global Moderator

*

Karma: +13/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 2138


Master of STLCD and LISA III


Profil anzeigen
Re: Ambilight
« Antwort #21 am: November 9, 2005, 10:31:31 »

Wie ich schon sagte. Die Stichproben-Methode kann zu sehr seltsamen Ergebnissen führen.

Allerdings ist hier nicht auszuschließen, das evtl. noch ein Bug im Programm vergraben ist und daher die seltsamen Ergebnisse stammen. Auch in einem Dreizeiler kann man 5 Fehler verstecken  Wink
Gespeichert

Erstens: Lies was da steht. Zweitens: Denk drüber nach. Drittens: Dann erst fragen
hackspider
Wakü-Poseidon

*

Karma: +4/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 412



Profil anzeigen
Re: Ambilight
« Antwort #22 am: November 9, 2005, 11:38:16 »

ich hab ja gesagt das es arg q &d ist aber
das programm mach nix anderes als ein screen vom aktuellen bildschirm und rechnet dan jedes 50 twip in seine grundbestandteile auf rot grün blau d.h. es kann kein schwarz bzw weis geben er gibt die farbe als gewinner aus die auf dem screen am meisten vorkommt das ist bei der mfaq halt blau und bei einem "fast" schwarzen desktop halt die farbe die am meisten da ist in deinem fall blau.
Es gibt nur 3 möglichkeiten die angesteuert werden könnten.
Eine weitere idee wäre ein hell/dunkel rechnung für alle leds an bzw allle leds aus. oder wenn 2 farben in etwa gleich viel anteile haben diese 2 led (balken) dann auch anzusteuern d.h. z.B. rot und blau gleichzeitig oder grün und rot gleichzeitig.

@ Olaf
ich hab das mit dem zufall über den haufen geschmissen weil da ja viel müll rauskommen könnte. deshalb hab ich ein gitter mit je 50 twips abstand über den desktop gespannt so das ich eine eher gleichmäßige Abfrage hinbekomme.

mfg hackspider
Gespeichert

firest0rm
LED-Tauscher

*

Karma: +0/-0
Offline Offline
Beiträge: 25


Ich liebe dieses Forum!


Profil anzeigen
Re: Ambilight
« Antwort #23 am: November 10, 2005, 13:08:58 »

Ja schon klar aber man müsste dazu mindestens 1x die Sekunde einen Screenshot machen und bei diesem dann die RGB-Werte der Pixel zusammenrechnen und dann durch die Anzahl der Pixel insgesamt teilen. Das ist bei z.B. 1280x1024 sehr langwierig (1-2 Sekunden im Debug Modus von C#.Net) und auch stark CPU-fressend. Das heißt man könnte maximal alle 2 Sekunden das Ambilight ändern und das unter relativ hoher CPU-Last. Ist für z.B. Spiele nicht zu empfehlen.

Und glaub nich ich hab nen schlechten PC.. AMD64 3500+, 2GB Ram Dual, ..
Gespeichert
melloman
Case-Konstrukteur

*

Karma: +1/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 506


let's mod something


Profil anzeigen WWW
Re: Ambilight
« Antwort #24 am: November 10, 2005, 13:44:45 »

ich würd auch sagen hardware mässig realisieren...
das sollet ja scho in realtime laufen...

man müsste einfach irgendwie die rgb werte auslesen und auf die leds übertragen, damit die jeweiligen farben dann stärker oder schwächer leuchten...
Gespeichert

OlafSt
Global Moderator

*

Karma: +13/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 2138


Master of STLCD and LISA III


Profil anzeigen
Re: Ambilight
« Antwort #25 am: November 10, 2005, 13:46:00 »

C#.Net ist auch nicht wirklich pfeilschnell, muß man dazusagen. Der ganze DotNet-Krams ist P-Code, ähnlich wie die VB6-Programme - die auch nicht für atemberaubendes Tempo berühmt waren.

Mir schwebte da ein anderer (softwaremäßiger) Ansatz vor, einen richtigen Compiler vorausgesetzt:

- Screenshot ziehen (z.B. 1024x768 Pixel, 24Bit = 2.4MByte)

Dann hat man sozusagen ein Array aus RGB-Werten vor der Nase. Ich nehme mal 200ms als Zeitdauer dafür an. [Edit: 76ms]

- Mittelwert aus Rotem Kanal bilden (Scannen von 768KB)
- Mittelwert aus Grünem Kanal bilden (Scannen von 768KB)
- Mittelwert aus Blauem Kanal bilden (Scannen von 768KB)

Die Scanvorgänge dürften kaum mehr als 10ms an Zeit fressen. Die RGB-Werte sind allesamt schon Bytes, Bitshiftereien entfallen also. da käme man vielleicht sogar ohne Assembler hin.

[Edit: Die "übliche" Methode benötigt 3,5 Sekunden]

- Ausgabe Roter Mittelwert an PIO
- Ausgabe Grüner Mittelwert an PIO
- Ausgabe Blauer Mittelwert an PIO

Alle drei zusammen kaum mehr als 100µs.

Der komplette Vorgang dauert dann 230ms - ergo ist eine Aktualisierung je Sekunde problemlos möglich.

Die eigentliche PWM müßte dann ein am PIO angeklemmter µC machen, der dafür eh mehrere Klassen besser geeignet wäre. Dieser könnte auch das "hinfaden" zur eingestellten Farbe übernehmen, so das dann fließende Übergänge möglich sind.

Anbei ein Schnipsel Code, den ich schnell zusammengehustet habe:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
   bmp: TBitmap;
   DeskDC: HDC;
   h,w: integer;

   RMid, GMid, BMid: integer;
   R,G,B: integer;
   Pixel: TColor;

   Tick: Longint;

   TickShot: LongInt;
   TickScan: LongInt;
begin
     Tick:=GetTickCount;
     RMid:=0;
     GMid:=0;
     BMid:=0;
     //Screenshot-Empfänger erzeugen
     bmp:=TBitmap.Create;
     bmp.Height:=Screen.Height;
     bmp.Width:=Screen.Width;
     bmp.PixelFormat:=pf32Bit;
     //DC auf den Desktop besorgen
     DeskDC:=GetWindowDC(GetDesktopWindow);
     //Screenshot ziehen
     BitBlt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, DeskDC, 0, 0, SRCCOPY);
     //DC wieder hergeben
     ReleaseDC(GetDesktopWindow,DeskDC);
     TickShot:=GetTickCount;
     //Bild scannen - die wahrscheinlich langsamste Methode der Welt :-)
     for h:=0 to bmp.Height do
     begin
          for w:=0 to bmp.Width do
          begin
               Pixel:=bmp.Canvas.Pixels[h,w];
               R:=Pixel and $0000FF;
               G:=(Pixel AND $00FF00) shr 8;
               B:=(Pixel AND $FF0000) shr 16;
               RMid:=RMid+R div 2;
               GMid:=GMid+G div 2;
               BMid:=BMid+B div 2;
          end;
     end;
     TickScan:=GetTickCount;
     Pixel:=RGB(RMid,GMid,BMid);
     Panel1.Color:=Pixel;

     bmp.Free;

     TickShot:=TickShot-Tick;
     TickScan:=TickScan-Tick-TickShot;
     ShowMessage(Format('Shot: %d, Scan: %d',[TickShot,TickScan]));
end;
« Letzte Änderung: November 10, 2005, 14:12:40 von OlafSt » Gespeichert

Erstens: Lies was da steht. Zweitens: Denk drüber nach. Drittens: Dann erst fragen
nuss
Stichsägenquäler

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 51


Casemodding braucht keinen Grund


Profil anzeigen WWW
Re: Ambilight
« Antwort #26 am: November 10, 2005, 14:25:19 »

mhhz joa schon klar...aber des abilight soll doch sowieso ned so schnell die farbe wechseln weil dann haste ja ne art stroboskob Tongue und das ist ja ned sehr beruhigend....

also ich ziehe eine hardware lösung auch vor!

ich frag mal unsere verstrahlten et lehrer^^
Gespeichert

OlafSt
Global Moderator

*

Karma: +13/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 2138


Master of STLCD and LISA III


Profil anzeigen
Re: Ambilight
« Antwort #27 am: November 10, 2005, 15:01:12 »

Einige Experimente haben ergeben, das obiger Algo zur Farbermittlung echt Schrott ist. Besser funktioniert dieser hier:

Code:
     for h:=0 to bmp.Height do
     begin
          for w:=0 to bmp.Width do
          begin
               Pixel:=bmp.Canvas.Pixels[h,w];
               R1:=(Pixel and $FF);
               G1:=(Pixel and $FF00) shr 8;
               B1:=(Pixel and $FF0000) shr 16;

               inc(R2,R1);
               inc(G2,G1);
               inc(B2,B1);
          end;
     end;
     R2:=R2 div (bmp.Height * bmp.Width);
     G2:=G2 div (bmp.Height * bmp.Width);
     B2:=B2 div (bmp.Height * bmp.Width);
     Pixel2:=RGB(R2,G2,B2);

Jeder Farbkanal wird stur aufsummiert (darum muß ein 32-Bit unsigned integer her) und anschließend durch die Anzahl Pixel insgesamt geteilt.

3657 ms Laufzeit bei 1280x1024 - wer bietet weniger ?
Gespeichert

Erstens: Lies was da steht. Zweitens: Denk drüber nach. Drittens: Dann erst fragen
da_bigboss
Case-Konstrukteur

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 552


ich habe keine Wakü!


Profil anzeigen WWW
Re: Ambilight
« Antwort #28 am: November 10, 2005, 15:52:55 »

das ambilight kann vom prinzip her gar nicht so schnell schalten. es soll leicht von einer zu der nächsten farbe faden. nun stell dir mal vor, du zappst im tv rum und jedes mal leuchtet deine wand in einer anderen farbe  headshot -> augenkrebs ^^

also 1 sekunde müsste für das faden schon mit einberechnet werden Smiley
Gespeichert

Gefundene Rechtschreibfehler dürfen behalten werden!
turborunner
Lötkolbenfreak

*

Karma: +2/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 172


Yeeehhhaaa !


Profil anzeigen
Re: Ambilight
« Antwort #29 am: November 10, 2005, 16:21:37 »


bei einer reinen Softwarelösung stellt sich mir die Frage wie man den Bildschirminhalt ermittelt bei Fullscreen DirectX Anwendungen / Spielen. Bekommt man da per software vernünftige ergebnisse (und die nötige rechenzeit). Bin da etwas unbewandert aber lasse mich gerne positiv überraschen ;-)

Ich habe mal ein Bischen zur Struktur/Stäre/Modulation des VGa Signals gegooglet und möchte folgenden Denkanstoß geben:
Das Signal hat 0,7 Volt und wenn man annimmt, dass dunkle Bereiche des Bildes mit weniger und helle mit mehr Spannung gekennzeichnet sind müsste man mit einer Integrator Schaltung mit Operationsverstärker  aus dem Signal ein Mittelwert bilden können. Mit dieser Mittelwertspannung über ne PWM die LED´s (oder was auch immer) ansteuern und fertig ist das Ambilight... (theoretisch ;-))
Gespeichert
Seiten: 1 [2] 3 4 nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.044 Sekunden mit 16 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!