2016-04-08 18 views
1

Ich verwende Java & Android Studio, um die Lichtsensorinformationen für Galaxy S5 zu lesen.Android-RGB-Lichtsensor lesen - Galaxy S5

public void onSensorChanged(SensorEvent event) { 
      // TODO Auto-generated method stub 

      if(event.sensor.getType()==Sensor.TYPE_LIGHT){ 
      currentReading = event.values[0]; 
//... 

} 

} 

Das gibt mir den Lux-Wert. Kann man die einzelnen Werte des RGB-Lichtsensors im Galaxy S5 lesen, um mehr Informationen zu erhalten? Ich habe mir das Samsung SDK angeschaut, aber ich kann diese Informationen nicht finden (falls vorhanden). Update: 3 Sensordaten [0] (Lux Daten) ist mal 200, 1 ist unverändert, [2] ist mal 200 um vergleichbarer Wert zu sein. Beachten Sie, dass die vernünftigste ist 1 aber es bewegt sich unabhängig von den anderen in Zeiten: 3 sensor data

+0

Ich kenne die Antwort nicht, aber gibt es irgendetwas in 'event.values ​​[1]', zufällig? –

+0

Ja. Es gibt 3 Werte (event.values.length ist 3): [0]: 3.0, [1] 1596.0 [2] 1.0. Der erste ist der Lux, den ich lese, der zweite variiert mit dem Licht (der Wert 1596.0 ist bei 0 Lux), der dritte ist ein bisschen kleiner, aber nahe dem ersten. – user3546827

+0

@MattGibson die 3 Werte beziehen sich auf das Licht, da sie mit ihm variieren. – user3546827

Antwort

1

Posting die Antwort nur jemand zu helfen da draußen mit einem ähnlichen Problem: auf einem Galaxy-Gerät mit RGB-Lichtsensor gibt es 3 Werte zurückgegeben : event.values[0], event.values[1] and event.values[2]. In der offiziellen Android-Dokumentation wird nur die erste erwähnt. Nach dem Durchsehen des Sensors pdf ("TMG3993, Gesture, Farbe, ALS und Näherungssensor-Modul mit mobeam", ams Datenblatt, verfügbar: http://ams.com/eng/content/view/download/349956), fand ich, dass es einen IR-Filter hat.

Daher sind die RGB-Informationen von diesem Sensor in event.values[1] zu finden, da es das einzige ist, das sich nicht ändert, wenn es mit Infrarotlicht angesteuert wird. Es ist auch der empfindlichste der 3 Werte.

0

habe ich versucht, das gleiche auf meinem S5 und fand heraus, die folgenden:

values[0] und values[2] scheinen LUX Werte zu sein, aber sie sind viel zu hoch. Ich habe sie mit meinem Multimeter-Luxmeter (Mastech ms8229) verglichen, der kein reines Luxmeter ist, aber immer noch einigermaßen zuverlässig. Hohe Werte (1000+) waren etwa doppelt und [0] war immer höher als [2]. Ich nehme an, dass man in irgendeiner Weise gefiltert oder normalisiert/korrigiert wird. Und es ist davon auszugehen, dass ihre Ungenauigkeit von Gerät zu Gerät unterschiedlich ist, so dass sie ohne Kalibrierung bestenfalls eine grobe Indikation sind. Auch sie fallen unter bei schlechten Lichtverhältnissen gemessen. Bei 50 Lux gemessen mit dem Multimeter sagt der Sensor 20.

values[1] scheint die Lichtfarbe in Kelvin aber auch sehr ungenau darzustellen. Ich habe Lichtquellen von 2700K bis 6500K an meiner Stelle und sie alle wurden "ok" gemessen, aber abhängig von der Entfernung eine 4000K Philips LED-Birne von 3900K bis 3600K gemessen.

Wie in der Grafik in der Frage, würde ich sagen, die [2] muss [1] sein und die anderen 2 sind [0] und [2] und wenn es eine normale Glühbirne und etwas dim es war würde ein 2500K-Licht mit LUX bei ungefähr 10 bis 20 geben. Angenommen, dass es in der Realität bis zu 50 Lux hätte sein können, was für das Auge völlig ok ist, ergibt das alles einen Sinn.

wichtiger Hinweis

Von der Lichttemperatur können Sie einige RGB-Werte berechnen, aber der Sensor Photodioden, die auf eine bestimmte Wellenlänge des Lichtspektrums reagieren, und das ist das Problem. Wenn die Lichtquelle ein ungerades oder sehr kleines Spektrum (LED, CFL) hat, ist der Sensor möglicherweise mehr aus als bei Sonnenlicht oder Glühlampen.

Es sei denn jemand kann herausfinden, wie man direkt auf den Sensor zugreift, der Wert ist nur, was es ist, Lichtfarbe und Lux.

Ich nahm sogar Windows malen und machte den gesamten Bildschirm 255 rot und gemessen, legte den Telefonsensor direkt gegen den Bildschirm und versuchte dann, "rückwärts" zu berechnen. Habe das gleiche mit 255 blau und grün gemacht aber das Ergebnis war unbrauchbar.

Verwandte Themen