3D Kompass hilfe
lima-city → Forum → Programmiersprachen → Python
-
Hallo LC,
ich hoffe hier kann mir vielleicht wer helfen.
Ich habe einen 3D Kompass an meinem Raspberry angeschlossen. (hmc5883l)
Nun will ich den Winkel nach Norden ausrechen. Dazu habe ich das probiert.
#!/usr/bin/env python3 import time import random import smbus import math import serial bus = smbus.SMBus(1) address = 0x1e while True: mitte = 0 bus.write_byte_data(address,0,80) bus.write_byte_data(address,1,32) bus.write_byte_data(address,2,1) time.sleep(0.01) x = y = z = 1.0 x = y = z = 1.0 x1=bus.read_byte_data(address,3) x2=bus.read_byte_data(address,4) x=x1*256.0+x2 if x>32767: x-=65536 z1=bus.read_byte_data(address,5) z2=bus.read_byte_data(address,6) z=z1*256.0+z2 if z>32767: z-=65536 y1=bus.read_byte_data(address,7) y2=bus.read_byte_data(address,8) y=y1*256.0+y2 if y>32767: y-=65536 #print"teyt",x,y,z ang = 180+round(math.atan2(x, y)*(180/math.pi),0) print"winkel",ang
Leider funktioniert das nicht ganz...bis ca 180 grad ist alles ok aber dannach gibt er mir nur noch 270 aus als Winkel aus.
Hier die Daten die er ausgiebt:
X1: 255 X2: 183 Y1: 255 Y2: 7 Y1: 255 y2: 183
X1: 255 X2: 36 Y1: 255 Y2: 154 Y1: 255 y2: 36
X1: 255 X2: 64 Y1: 255 Y2: 245 Y1: 255 y2: 64
X1: 255 X2: 110 Y1: 0 Y2: 119 Y1: 0 y2: 110
X1: 0 X2: 96 Y1: 0 Y2: 115 Y1: 0 y2: 96
X1: 0 X2: 180 Y1: 255 Y2: 91 Y1: 255 y2: 180
LG
Beitrag zuletzt geändert: 17.8.2013 13:07:58 von christian1603 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage