TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken
kompass

11. KOMPASSSENSOREN

 

 

DU LERNST HIER...

 

wie du einen Magetfeldsensor als Kompass verwenden kannst.

 

 

MUSTERBEISPIELE

 

Um die Himmelsrichtung gegen Norden zu bestimmen, verwendest du einen Sensor, der in 3 Achsen das Erdmagnetfeld misst. Hier wird der hochempfindliche Magnetfeldsensor HMC5883L von Honeywell verwendet, der keine zusätzliche Kalibrierung benötigt. Er ist auf einem Breakout-Board mit einem I2C-Interface verbaut und liefert die Nordrichtung (heading) mit einer Genauigkeit von 1° bis 2° (Bezugsquelle eBay).

 


Das Koordinatensystem mit den x, y und z-Achsen ist wie in der neben stehenden Skizze orientiert.

Im Treibermodul hmc5883 gibt die Methode axes() ein Tupel mit den 3 Magnetfeldkomponenten (bx, by, bz) im Bereich bis 4 Gauss = 0.4 Millitesla zurück.

Im Treibermodul hmc5883 gibt die Methode axes() ein Tupel mit den 3 Magnetfeldkomponenten (bx, by, bz) im Bereich bis 4 Gauss = 0.4 Millitesla zurück.

Dreht man den Sensor in einer horizontalen Ebene, so liefert die Methode heading() das Azimut in Grad (zum magnetischen Nordpol).

In deinem Programm schreibst du das Azimut in der Konsole und auf ganzzahlig gerundet auf dem LED-Display aus.

 

Programm:

from oxocard import *
from hmc5883 import HMC5883
from time import sleep

def show():
    display(heading // 100)
    sleep(2)
    display("%02d" % (heading % 100))
    sleep(2)
    display("::")
    sleep(2)

compass = HMC5883()
while True:
    heading = int(compass.heading())
    print(heading)
    show()
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Zur Bestimmung der Himmelsrichtung verwendet man einen Magnetfeldsensor, der die Komponenten des Erdmagetfeldes misst und daraus das Azimut berechnet.

 

 

ZUM SELBST LÖSEN

 

 

1.

Zeige die Nordrichtung auf dem LED-Display als Linie ausgehend von Pixel (3, 3) an. Verwende die Funktion line(x, y, dir, length, color). Es werden nur Änderungen von 45 Grad angezeigt. Verwende enableRepaint(False), damit die Anzeige nicht flackert.