Android Handys und die Sensoren

ColonelZap

Administrator
Teammitglied
Moin :)

Kennt sich jemand damit aus? Ich wollte schon immer einmal verstehen, wozu GENAU welche(r) Sensor(en) zuständig sind.

In meinen Videos behaupte ich immer ganz pauschal "...das Handy hat einen g-sensor..." und meine damit, daß sich der Bildschirm dreht, wenn ich das Handy drehe, aber in Wirklichkeit steckt da ja sicher sehr viel mehr hinter!

Sensoren wie Proximity, Light, Magnetic Field verstehe ich natürlich, aber wie sieht es mit all den anderen Sensoren aus? Was machen die all diese Sensoren?

Z.B.:

 

dierose

Well-Known Member
Orientation ist bei der Digicam hoch/quer Bestimmung
Gyro ist bestimmt für Wasserwaage, wenns flach auf dem Tisch liegt.
 

ColonelZap

Administrator
Teammitglied
Der Orientation Sensor ist als das, was ich als "g-sensor" bezeichne? Sprich: Es wird erkannt, ob sich das Handy im Hoch- oder Querformat befindet?

Angenommen das Handy ist im Querformat, ich spiele ein Rennspiel und zur Lenkung "kippe" ich das Handy nach rechts oder links, welcher Sensor ist dafür zuständig? Ich kann das Handy ja auch zusätzlich zu "rechts" und "links" auch noch nach vorne und hinten neigen, ist dafür auch wieder ein andere Sensor notwending?

Was mich z.B. streckenweise wundert, wenn ich bei Google Street View den Compass Mode benutze, läuft dieser auf manchen Handys BUTTERWEICH, auf anderen Handys ist das ziemlich ruckelig?!? Woran liegt das? Welcher Sensor fehlt oder ist "schlecher" bei den Handys, wo es ruckelt?

Für MICH sind alle diese Sensoren ein echtes Rätsel! ;)
 

ColonelZap

Administrator
Teammitglied
Das wird bestimmt so sein, Ich vermute aber auch, daß "gute" Apps/Spiele in der Lage sind, auf noch weitere Sensoren zurückzugreifen, falls diese vohanden sind und der Steuerung dienen können :)

Gutes Beispiel: Google Street View im Compass Mode: Magnetic Field Sensor reicht dafür aus, ist jedoch zusätzlich noch ein Gyroscope Sensor vorhanden, dann läuft das VIEL flüssiger :)
 

ColonelZap

Administrator
Teammitglied
No ne kleine Demo, wazu man man einen Gyroscope Sensor "braucht" ;)

[video=youtube;oRDp18-gtp8]http://www.youtube.com/watch?v=oRDp18-gtp8[/video]
 

Vantaa

Active Member
Ich versuche mal etwas Licht in das Gebiet der Sensoren zu bringen.
Bin aber ein Neuling beim Android Betriebssystem

Linux Kernel
Der Linux Kernel ist sehr modular aufgebaut . Für einen bestimmten Sensor muss im Kernel ein Modul existieren oder der Sensor kann auf fest eingebunden sein. Der Kernel kann auf Kernel.org im Quellccode geladen und angepasst werden. Die aktuelle stabile Version ist 3.11.X Entwicklerversion 3.12.rcX .Mein neu gekauftes Handy basiert auf Kernel 3.4.5

Nur die Sensoren , die der Linux Kernel bereitstellt, können dann in Android angesprochen werden.
Daher könnte es durchaus passieren , dass Sensoren im Gerät verbaut sind ,.die nicht im Android System erscheinen oder vielleicht bei einen Update, plötzlich auftauchen.

Androidsytem .
Das Androidsytem sitzt oberhalb des Linux Kernels und besteht aus den „Bibliotheken“ ,
der eigentlichen Android Laufzeitumgebung und einer Anwendungsschicht...
Die Android Laufzeitumgebung bezeichne ich mal als den Kern der Android Maschine, bestehend aus der DVM (Dalvik virtuell Maschine) und den Laufzeitbibliotheken.
Für jede APP die gerade im System läuft ist , ist jeweils eine separate DVM zuständig.

Sensoren
Für die Sensoren gibt ist die Java Klasse public final class Sensor zuständig, In der folgende Sensoren bereits definiert sind:
zwei unterschiedliche Beschleunigungsmesser, Umgebungstemperatursensor, Magnetsensor, Drucksensor, Feuchtesensor, Gyroskop, Lichtsensor, Abstandssensor digital, Bewegungssensor,
Lagesensor.

Für alle Sensoren, die irgendwie mit den X, Y, und Z Koordinaten in Verbindung stehen gilt folgende Betrachtung Handy in Längsachse mit dem Home Button vor euch liegend.
Pos x Achse von links nach rechts (quer zum Handy).
Pos.y Achse längs zum Händy von euch weg.
Pos z Ache nach oben zur Decke (die Normale zur Ebene)

steht das Handy auf den Kopf (Normale zur Tischebene) müsste ein negativer g Wert -9,9 m/s² bei der Y Koordinate im Beschleunigungssensor gemessen werden.

wird fortgesetzt.
 
Zuletzt bearbeitet:

Vantaa

Active Member
Sensor

Allgemein

Was im Handy als Sensor bezeichnet wird , wird in der Mess- und Regeltechnik als Messsystem bezeichnet. Das Messsystem besteht da aus Messaufnehmer, Kabel zur einer Messwarte, Messumformer im Schaltschrank und einer Anzeige.

Im folgenden ist jedoch nur von Sensor die Rede , auch wenn der Sensor eine komplette CPU beinhalten sollte.

Der Sensor erfasst die zu messende Größe (physikalish, chemisch, biologisch) und formt diese in einen digitalen Wert um , der dann angezeigt wird..

Für jeden Sensor muss im Linux System ein Treiber existieren. Wenn ein Sensorhersteller das IC (Soc) durch ein neueres Modell ersetzt , kann es durchaus sein, dass der alte Linux Treiber nicht mehr funktioniert. Ich hoffe, das die Sensoren in Linux Kern besser unterstützt werden, durch die weite Verbreitung von Android Handys.

Im Handy werden bisher nur physikalische Größen.gemessen.

Irgendwann gibt es dann ein Handy, dass auch den Blutzuckerspiegel misst.

Messbereich

Jeder Sensor hat einen Messbereich. Innerhalb des Messbereichs gelten die Fehlergrenzen.
Der Messbereich muss auch nicht linear sein. sondern kann auch logarithmisch sein (Schallpegel).

Der Meßbereich muss auch nicht bei Null beginnen.

Bei vielen Sensoren ist der Messbereich auch umschaltbar. Ob die Umschaltung vom Androidsystem unterstützt wird, steht auf einen anderen Blatt

Messfehler

Jeder Sensor hat einen Messfehler.

Achtung :. Der Messfehler wird meist in % vom Messbereichsendwert angegeben oder auch absolut. Auch bei sehr kleinen Messwerten gilt dann der „relativ große Fehler“.

Sehr oft gelten die Fehler für gewisse Umgebungsbedingungen..

Hier beim Handy sicher nicht so wichtig


Wiederholgenauigkeit:

Wenn die Messung mehrmals mit der gleichen Größe durchgeführt wird, jann dies bei gleicher Messgröße zu unterschiedlichen Ergebnisse führen..

Beispiel : Das Gewicht bei der Waage ist unterschiedlich, je nachdem wie man sich auf die Waage stellt.

Auflösung

Der Messgröße wird in einen digitalen Wert gewandelt der eine bestimmte Anzahl von Bits hat.

Achtung Die Auflösung ist unabhängig vom Messfehler.

Beispiel: Der Beschleunigungsmesser von Bosch BMA 150 misst im Zweierkomplement mit 10 Bit Auflösung
daher ist die Auflösung 1/256 vom Messbereich , der hier umschaltbar ist und im kleinsten Messbereich +-2g beträgt.

Hier ist dann nur eine Stelle hinter dem Komma von Interesse.. Die zweite Stelle hinter dem Komma ist schon, auf gut deutsch „Blödsinn“.
Schaut was angezeigt wird und welcher Sensor verbaut ist.


Messfrequenz.

Jeder Sensor kann die Messgröße in einer gewissen Zeit verarbeiten.
Auch das Auslesen der Register ist nur in einer endlichen Zeit möglich
 
Zuletzt bearbeitet:

PrinzPoldi007

Active Member
Grundsätzlich keine schlechte Idee, dies theoretisch zu erklären, aber was bringt mir das in der Praxis?

Kann ich irgendwie auslesen, welche Sensoren mein Handy theoretisch hätte, wenn der Kernel diese ansprechen würde? Und zwar nicht, dass der Programmierer diese einfach irgendwo eingetragen hat -wie z.B. irgendeinen Prozessor, den er in der build.prop eingetragen hat, der aber in der Realität ein ganz anderer Prozessor ist
 

Vantaa

Active Member
Nun Soll auch fortgeführt werden braucht aber Zeit und Mithilfe
Ist auch an mehreren Stellen begonnen worden.
Es wird dann sinnvoll wenn die Sensoren durch eine der zahllosen Sensor App (zB. My Sensors) ausgelesen werden und dann die verbauten IC gelistet werden.
Auch die Sensor Apps können gelistet werden. Ich denke aber , dass nur die graphische Darstellung eine andere ist, da wohl alle Apps auf die Klasse Sensoren zugreifen..

Hier etwas Schleichwerbung für Bosch, (arbeite nicht bei Bosch und bekomme auch keine Gelder)

Die Sensoren entstanden da wohl wegen dem „Smart Elchtest“

Beschleunigungsmesser BMA 050 (3Achsen) wird nicht mehr produziert , daher wird nur das Nachfolgemodell BMA 150 besprochen.
Der Bosch Sensor BMI 055 (6Achsen) ist eine Kombination aus Gyroskop- und Beschleunigungssensor. Auch in den Daten wesentlich besser als obiger Sensor.

Der Bosch Sensor BNO 055 (9 Achsen) hat dann noch den Magnetsensor integriert und eine eigene CPU. Da sind auch noch keine Datenblätter.

Das Sensorthema ist im Moment an einigen Stellen verstreut. Ich weiß leider auch nicht, wie man es besser zentralisieren kann. VoOrschläge einer Verbesserung oder auch nur besseren Auffindbarkeit?

Hier von OraChinaMobiles konzentriert mit Sensorbewertung pro Handy http://chinamobiles.org/threads/5-zoll-optimale-sensoren-gps-wlan-nfc-gyroskop.35770/

Hier auch nochmal von ColonelZap mit Kamera Werten http://chinamobiles.org/threads/chinahandys-und-ihre-sensoren-leds-blenden-cpu-z.36529/

Hier der Beschleunigundssensor von JensK http://chinamobiles.org/threads/g-sensor-wozu.37604/

Gut wenn der Poster nach dem Datenblatt sucht und hier dann den Link zum Datenblatt angibt.
 
Zuletzt bearbeitet:

Mitglieder

Keine Mitglieder online.

Statistik des Forums

Themen
54,361
Beiträge
837,159
Mitglieder
66,935
Neuestes Mitglied
sawfish
Oben Unten