![]() |
Kompass mit Android
Hallo,
ich versuche bisher vergeblich herauszufinden wie eine Kompassfunktion realisiert werden kann. Bei den Demo-Apps gibt es für Compass3D nur HeadingX, -Y, -Z Bei Bewegung sieht es von Änderung und Wertebereich nicht so aus als gäbe es einen Bezug zur Himmelsrichtung. Habe auch keine Erklärung zu den Unterschieden zwischen Heading- und Tilt-Werten der Sensoren gefunden. Eigentlich müsste die Himmelsrichtung ja in TrueHeading des GPS-Sensors stehen, aber da kommt nur NAN obwohl Latitude und Longitude korrekt da sind. Das Handy mit dem ich es versuche ist ein Samsung S3, Kompass-Apps funktionieren. Weiss jemand wie man an die Himmelsrichtung kommt? Gegoogelt habe ich schon erfolglos. In den Demo-Apps gibt es auch leider keinen Hinweis auf Kompassfunktionen mit Himmelsrichtung. Wäre dankbar wenn jemand da entsprechende Hinweise hätte. Gruss Ralphi |
AW: Kompass mit Android
Leider willst Du etwas für ANDROID...
Etwas anderes als ein Beschleunigungschip ist da aber auch nicht drin. Softwaremäßig kann ich Dir da nicht helfen, obwohl ich mit einem entsprechenden Chip ( ![]() Siehe: ![]() ![]() Physik: ![]() Software (auch von unserem ![]() ![]() |
AW: Kompass mit Android
Zitat:
Aber es kommt auch auf das Modell/Hersteller an, was der nun genau eingebaut hat. Bei mir ist praktisch fast alles drin, nur Luftdruck/Höhe, Luftfeuchtigkeit und scheinbar auch Temperatur wurde weggelassen (beim S4 Mini DUOS, gegenüber dem normalen S4 Mini). Im Prinzip gibt es sozusagen 2-3 Varianten dieses Sensors, bzw. Einiges kommt vom selben Sensor und ist nur anders aufbereitet. - Schwergraft/Gravity inkl. Beschleunigung/Accelerometer, welcher quasi nach unten zeigt (bei stillstand, ansonsten ist da auch noch die Beschleunigung mit drin) > wenn flach, dann X und Y nahezu 0 und Z ist 9,8 (Erdanziehung) - lineare Beschleunigung / Linear Acceleration = reine Beschleunigungskräfte > im Stillstand und bei gleichmäßiger Bewegun ist alles nahezu 0 und ansonsten zeigt es die Beschleinigungskräfte an - zirkuläre Beschleinigung / Gyroscope > das sind die Beschleunigugskräfte beim Drehen (vom Zentrum des Sensors aus gesehen) - Magnetismus (hoffentlich den der Erde) / Magnetic Field und Orientation > Himmelsrichtung, allerdings in 3 Achsen > hier kannst du es noch mit der Schwergraft verrechnen, um die Lage des Handys mit einzubeziehen Und dann natürlich noch die Location/GPS (eventuell noch mit Hilfe der WLANs) Jetzt mußt du nur noch aufpassen, daß du den gewünschten Sensor erwischst. Du kannst dir ja mal AndroSensors besorgen, der liestet alle gefundenen Sensoren auf und zeigt die Rohwerte. MyDroid System Info listet "bekannte" Sensoren auf, ordnet sie gleich Gruppen zu und vergibt "ordentliche" Namen/Beschreibungen und stellt die Werte "ordentlich" formatiert da. Da kannst'e ja mal nachsehen was vorhanden ist. Und AndroSensors sagt dir wohl Namen des gewünschten Sensors. |
AW: Kompass mit Android
Unter den mobilen Beispielen findet Du die App Sensorinfo, die zeigt Dir alle Sensoren deines Gerätes an und auch die aller Eigenschaften mit allen Werten.
Das Gerät mit den meisten Sensoren war ich hier bereits getestet habe ist das Galaxy Note 3 das schlechteste Gerät ist das Acer B1, das hat überhaupt keinen Sensor drin. |
AW: Kompass mit Android
Wie bekomme ich aus den Headingwerten die Himmelsrichtung bestimmt?
|
AW: Kompass mit Android
Die Achse mit dem größten Wert zeigt am meisten in Richtung des Nordpols eines Magnetes.
Wenn du es dir einfach machen willst, dann nimmst du nur X und Y (also wenn das Handy flach da liegt, wobei Z nach unten zeigt) und schon kannst du das wie eine Kreisfunktion ansehen, also via Cosinus und Sinus die Werte der Achsen in den Winkel umrechnen. PS: Wie du vielleicht weißt,ist der "echte" Nordpol nicht genau da, wo der magnetische Nordpol ist. Aber das kannst du erstmal ignorieren, und zeigst einfach nur zum magnetischen Nordpol. Denn um den Fehler rausrechnen zu können, müsstest du wissen, wo sich das Handy grade befindet. |
AW: Kompass mit Android
Zitat:
|
AW: Kompass mit Android
Dann würdest du dich in 5000 Jahren eventuell verlaufen, dern de magnetische wandert und angeblich sind wir grade mitten in einer Polumkehr, wo du danach vielleicht am Südpol landen könntest.
|
AW: Kompass mit Android
Also irgendwie bekomme ich aus den Werten wohl nicht die korrekten Daten hergeleitet. Zur Berechnung nutze ich das hier:
Delphi-Quellcode:
Ich sollte eventuell erwähnen, dass ich das von hier her habe:
function Heading: single;
begin if (FHeadingY > 0) then result := 90.0 - arcTan(FHeadingX / FHeadingY) * 180 / PI else if (FHeadingY < 0) then result := 270.0 - arcTan(FHeadingX / FHeadingY) * 180 / PI else if (FHeadingY = 0) and (FHeadingX < 0) then result := 180 else if (FHeadingY = 0) and (FHeadingX > 0) then result := 0; end; ![]() |
AW: Kompass mit Android
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz