HMC5883L - Winkel berechnen

Janiiix3

Aktives Mitglied
28 Sep 2013
1.292
10
38
Hannover
Sprachen
C, C#
Hallöchen,

hat jemand Erfahrungen mit dem "HMC5883L - Beschleunigungssensor" sammeln dürfen?
Daten ( X , Z , Y - Achse(n)) bekomme ich schon.

Nun würde ich gerne so eine art "Neigungssensor" bauen. Der mir auf einem Display oder später mit LED´s den aktuellen WInkel anzeigt ( 0 - 359 ° ).

Wie kann ich diesen Winkel aus den Achsen berechnen?

Datenblatt zum Sensor..
 

Anhänge

addi

Mitglied
2 Sep 2013
115
4
18
Hamminkeln
Sprachen
BascomAVR, C, Assembler
Hmmm...schau dir z.b die python libs für den raspi oder die libs fuer den arduino an..
73 de addi
 

Mikro23

Mitglied
2 Jan 2017
285
21
18
Großraum Hannover
Sprachen
C, Assembler
Wie kann ich diesen Winkel aus den Achsen berechnen?
Dazu mußt Du Deine kartesischen Koordinaten in Kugelkoordinaten umrechnen.
Kugelkoordinaten.png
Phi ist der Winkel in der xy-Ebene, Theta in z-Richtung (hoch/runter). Bild

Solltest Du das noch nicht für Polarkoordinaten in der Ebene gemacht haben, wäre es sicher einfacher fertige Bibliotheken zu benutzen, wie addi schon anmerkte.

Dir ist übrigens bewußt, daß der HMC5883L ein Magnetsensor ist?
 

Mikro23

Mitglied
2 Jan 2017
285
21
18
Großraum Hannover
Sprachen
C, Assembler
Ist es damit etwa nicht möglich?
Das Ergebnis ist von Deiner Position relativ zum Erdmagnetfeld abhängig.
Wenn Du das Gerät translatorisch in der Nähe bewegst, ändert sich nichts.
Bei jeder Rotation, wie auch immer Du es drehst, ändern sich zwei Winkel. (Wenn man es genau nimmt, gibt es zwei Ebenen im Raum, in denen sich nur ein Winkel ändert.)

Um es also als »sowas wie eine "Digitale Wasserwaage"« zu verwenden, wie Du irgendwo anders schriebst, mußt Du es vor jeder Messung auf Null stellen und Dir bei jeder Bewegung darüber im Klaren sein in welche Richtung Du es in Bezug auf den Nullpunkt drehst.
 

addi

Mitglied
2 Sep 2013
115
4
18
Hamminkeln
Sprachen
BascomAVR, C, Assembler
Hmmm...man könnte aber den sensor zur beobachtung des erdmagnetfeldes einsetzen und grobe aenderungen des magnetfeldes, das durch den sensor ja erfasst wird, monitoren...autos, verönderungen im feld durch sonnenstürme
73 de addi
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.292
10
38
Hannover
Sprachen
C, C#
Damals wo ich diesen Sensor bestellt hatte, habe ich gedacht das man damit ohne weiteres sowas realisieren könnte.
Das scheint ja aber nicht wirklich dafür gemacht zu sein.

Dann muss ich mich wohl noch mal umschauen. Was könnte man sonst mit diesem Sensor anstellen?

Hmmm...und damit die sache noch etwas komplexer wird, brauchst du noch die geomagnetischen daten deiner umgebung. Hier etwas , was deiner zielvorstellung besser entgegenkommt

https://funduino.de/nr-14-lagesensor
Dies scheint eine gute Alternative zu sein, muss man halt mal schauen wie sich die Spannungen bei 0° verhalten und ob sie einigermaßen proportional ansteigen.
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.292
10
38
Hannover
Sprachen
C, C#
Man kann diesen Sensor wohl auch als Kompass benutzen.
Wenn ich das Register für die 'X' Achse auslese, komme ich zwar in den Bereich des möglichen (bezogen auf den Wertebereich laut Datenblatt.. min | max), nur kommt mir dieser Wert ziemlich komisch vor.

Kann man irgendwo im Internet? für meine Region vergleichen ob der Wert im Bereich des möglichen liegt?

Die Messdaten drüfen folgende Werte annehmen.: 0xF800–0x07FF (-2048–2047 ).
Mein gemessener Wert für 'X' beträgt so zwischen.: -53 - -55.
 

Mikro23

Mitglied
2 Jan 2017
285
21
18
Großraum Hannover
Sprachen
C, Assembler
Man kann diesen Sensor wohl auch als Kompass benutzen.
Wie der Name »3-Axis Digital Compass IC« schon sagt, wurde er genau dafür entwickelt. ;)

Das Erdmagnetfeld hat eine horizontale und eine vertikale Komponente. Die Intensität ist an jedem Punkt der Erdoberfläche entweder durch drei Werte in kartesischen Koordinaten oder durch zwei Winkel und den Radius in Kugelkoordinaten genau bestimmbar. Die Inklination (der Winkel, unter dem das Magnetfeld die Erdoberfläche schneidet) beträgt in Deutschland ca. 70°. Die Gesamtintensität der magnetischen Flußdichte beträgt bei uns ca. 50µT, der horizontale Anteil daran beträgt etwa 20µT.

Wenn Du die genaue Lage der Sensors kennst, kannst Du aus den drei Werten die Stärke des Magnetfeldes in jeder Richtung ablesen.
Wenn Du den Sensor z.B. so drehst, daß der x-Wert am größten bzw. kleinsten wird und der y- und z-Wert gleichzeitig Null sind, dann zeigt die x-Achse genau in Richtung des Magnetfeldes.
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.292
10
38
Hannover
Sprachen
C, C#
Danke für jegliche Erklärung.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)