Hallo, ich habe mir ein kleines FPGA Bord gebaut mit einer Reihe an LEDs, einer WS2812b, einem ADXL345, ... Das ist nur zum Spielen, also habe ich mit dem ADXL und der LED Reihe eine Wasserwaage implementiert und jetzt möchte ich auch noch die Beschleunigungswerte auf der RGB LED ausgeben. Das klappt auch soweit ganz gut, nur sieht man die Änderung der Beschleunigung nicht sehr deutlich. Ich vermute das liegt daran, dass wir Menschen Helligkeit nicht linear wahrnehmen. Wie kann ich das ausgleichen? Müsste ich von den Beschleunigungswerten die Wurzel nehmen und diese als Helligkeitswert zur LED schicken? Ich möchte grob, dass ein doppelt so großer Wert auch als doppelte Helligkeit wahrgenommen wird. Danke!
Gustl B. schrieb: > Müsste ich von den Beschleunigungswerten die Wurzel nehmen und diese > als Helligkeitswert zur LED schicken? Die Wurzel macht die Kurve noch flacher. Der Mensch nimmt die Helligkeit logarithmisch wahr. Die Umkehrfunktion wäre dann exp().
Vielen Dank, das sieht schon besser aus. Jetzt muss ich nur irgendwie die passende Kurvenform herausprobieren ...
W.A. schrieb: > Der Mensch nimmt die Helligkeit logarithmisch wahr. Gustl B. schrieb: > Jetzt muss ich nur irgendwie > die passende Kurvenform herausprobieren ... Lieder nur näherungsweise und auch noch jeder etwas anders. Die Farbe des Lichts spielt da auch noch mit rein. Am besten einfach ausprobieren wie es dir am besten gefällt:-) - https://de.wikipedia.org/wiki/Helligkeit#Objektivierung_der_Helligkeit
Gustl B. schrieb: > Das klappt auch soweit > ganz gut, nur sieht man die Änderung der Beschleunigung nicht sehr > deutlich. Warum nimmst du nicht die Farbe zur Anzeige? Da sind Unterschiede viel deutlicher wahrzunehmen.
:
Bearbeitet durch User
Die Farbe wird schon verwendet. Der Beschleunigungssensor liefert mir X, Y und Z, das bilde ich auf die Farben R, G und B ab. Und hier ging es mir drum dass sich die Helligkeit der Farbe R schön mit dem Beschleunigungswert von X verändert. Wenn ich schlicht den Wert von X der Farbe R zuweise dann ist ist der Unterschide zwischen -1 g und +1 g zwar sichtbar, aber nicht sehr deutlich. Mit Exponentialfunktion sieht man das schon besser. Im Anhang ist die Kurve der Abbildung. Ich bekomme vom ADXL345 10 Bits von -2 g bis +2g. Mich interessieren aber nur -1 g bis + 1 g, daraus werden also 9 Bits. Und die bilde ich ab auf einen 7 Bit Helligkeitswert. Ja, die WS2812b kann 8 Bits je Farbe, aber das ist mir zu hell und außerdem muss ich beim MAX10 02 Flipflops sparen (-:
Schau mal hier: https://de.wikipedia.org/wiki/Gammakorrektur Sowas kann man in Excel berechnen und als Tabelle hinterlegen. ...oder einstellbar im Zielsystem.
Gustl B. schrieb: > RGB_XYZ.png > Mich interessieren aber nur -1 g bis + 1 g -1 g und +1 g sind, bis auf die Richtung, gleich hohe Werte. Wäre es dann nicht auch sinnvoll, gleiche Helligkeiten zuzuordnen? Sonst wird es schwierig, den in der Mitte liegenden Wert 0 g zu erkennen. Besser ablesbar wird es, wenn du z.B. für positive und negative Werte die selbe Helligkeit verwendest, aber bei negativen die LED schnell blinken lässt.
Farbe und Helligkeit der 3 Kanäle zur Informationsdarstellung zu verwenden halte ich für einen Irrweg (den ich auch gegangen bin). Es mag mental verlockend zu sein über diese Dimensionen Informationen darzustellen und prinzipiell geht es ja auch, in meinem Fall konnte ich aber in der Praxis die einzelnen angezeigten Farbwerte kaum intuitiv interpretieren - vieleicht bin ich da Unfähigkeit, aber ich bin der Meinung das die Darstellungsform kein gutes "UI Design" ist. Eine einzelne Farbe/Helligkeit ist noch verständlich, im Mix zwischen z.B. X und Y teilweise noch grob interpretierbar aber intuitiv 27% X, 49% Y und 72% Z zu erkennen traue ich wenigen zu. Das macht die technische Diskussion über die nichtlineare Darstellung von Helligkeit aber nicht weniger interessant.
Wolfgang schrieb: > Wäre es dann nicht auch sinnvoll, gleiche Helligkeiten zuzuordnen? Könnte man auch machen. Wolfgang schrieb: > Sonst wird es schwierig, den in der Mitte liegenden Wert 0 g zu erkennen. Dink schrieb: > Farbe und Helligkeit der 3 Kanäle zur Informationsdarstellung zu > verwenden halte ich für einen Irrweg (den ich auch gegangen bin). Ja, wenn das ein ernstzunehmendes Messgerät werden sollte, dann stimmt das. Hier geht es nur um eine Spielerei. Ich habe mir winzige FPGA Platinen in China gekauft und um die einmal in Betrieb zu nehmen habe ich mir eine Art Eval-Board gebastelt. Nur JTAG und UART ist etwas wenig, dafür lohnt sich kein Board, also habe ich eben noch den ADXL, LEDs, die WA2812b, einen ADC, einen PMOD, einen Taster mit draufgepackt damit man was ausprobieren kann. Und es ging mir auch drum ein Gefühl dafür zu bekommen was in diesen winzigen FPGA so rein passt. 2k LEs sind eben nicht viel, aber es geht schon was. Bei der RGB LED geht es mir nur drum, dass das schöne bunte Lichter gibt wenn man die Platine im Raum orientiert. Würde ich die XYZ Werte direkt als Helligkeit ausgeben, dann wäre die LED eigentlich immer ziemlich hell und weißlich. Ja, man sieht dass sich etwas verändert, aber eben nicht deutlich. Jetzt mit der LUT sieht das viel besser aus.
Und hier ist das Projekt wegen dem ich hier gefragt hatte: Beitrag "cdpga_h3_EVAL_Rev_A (MAX10 FPGA, ADXL, JTAG,.)"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.