Forum: Mikrocontroller und Digitale Elektronik Beschleunigungswert auf RGB LED ausgeben


von Gustl B. (-gb-)


Lesenswert?

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!

von W.A. (Gast)


Lesenswert?

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().

von Gustl B. (-gb-)


Lesenswert?

Vielen Dank, das sieht schon besser aus. Jetzt muss ich nur irgendwie 
die passende Kurvenform herausprobieren ...

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

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

von Jobst Q. (joquis)


Lesenswert?

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
von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

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 (-:

von Harry L. (mysth)


Lesenswert?

Schau mal hier:
https://de.wikipedia.org/wiki/Gammakorrektur
Sowas kann man in Excel berechnen und als Tabelle hinterlegen.
...oder einstellbar im Zielsystem.

von Gustl B. (-gb-)


Lesenswert?

Kannte ich noch nicht, vielen Dank!

von Wolfgang (Gast)


Lesenswert?

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.

von Dink (Gast)


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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
Noch kein Account? Hier anmelden.