- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 14

Thema: 3D kompass. Rechnung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.02.2013
    Beiträge
    51

    3D kompass. Rechnung

    Hallo RN,
    ich lese so meinen 3D Kompass aus:
    Code:
    #!/usr/bin/env python3
    import time
    import random
    import smbus
    import math
    import serial
    
    
    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)
        z1=bus.read_byte_data(address,5)
        z2=bus.read_byte_data(address,6)
        y1=bus.read_byte_data(address,7)
        y2=bus.read_byte_data(address,8)
    Jetzt möchte ich den Winkel nach Norden ausrechnen. Kann mir wer helfen :/
    Ich würde nun gerne den Winkel unabhängig von der Neigung des Modules berechnen.
    LG
    Versuch 1:
    Code:
    #!/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
    bringt allerdings nur werte bis 270grad...kann mir wer helfen?

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    werden die X und Y Koordinaten den richtig ausgegeben?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.02.2013
    Beiträge
    51
    Zitat Zitat von Kampi Beitrag anzeigen
    Hey,

    werden die X und Y Koordinaten den richtig ausgegeben?
    ich habe den Kompass x,y,z mal aufgezeichnet dazu den errechneten winkel

    X: -3.0 Y: -303.0 Z: -400.0 Winkel 1.0
    X: -3.0 Y: -301.0 Z: -401.0 Winkel 1.0
    X: -22.0 Y: -293.0 Z: -403.0 Winkel 4.0
    X: -75.0 Y: -266.0 Z: -406.0 Winkel 16.0
    X: -176.0 Y: -210.0 Z: -392.0 Winkel 40.0
    X: -209.0 Y: -70.0 Z: -393.0 Winkel 71.0
    X: -184.0 Y: 35.0 Z: -390.0 Winkel 101.0
    X: -118.0 Y: 117.0 Z: -390.0 Winkel 135.0
    X: -35.0 Y: 123.0 Z: -399.0 Winkel 164.0
    X: 83.0 Y: 1.0 Z: 1.0 Winkel 269.0
    X: 156.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 230.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 263.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 226.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 186.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 182.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 132.0 Y: 1.0 Z: 1.0 Winkel 270.0
    X: 120.0 Y: 1.0 Z: 1.0 Winkel 270.0

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2012
    Beiträge
    24
    Hey Spacecam,
    ich habe deine Daten mehrfach überprüft und dabei auch eine andere Formel zu Hilfe genommen, aber es kommt immer das Gleiche heraus: Du hast nunmal nur Winkel bis 270°.
    Wenn du genauer drüber nachdenkst ist es auch logisch, am Schluss deiner Tabelle bleibt Y konstant bei 1.0, nur X verändert sich. Daraus folgt eine so kleine Änderung des Winkels, dass wegen der Rundung nur noch 270° herauskommt.
    Ich habe dir zum Überprüfen mal eine Tabelle und ein Bild angehängt, sofern ich alles richtig verstanden habe kannst du damit per Hand deinen Winkel überprüfen.
    Höchstwahrscheinlich werden die Werte falsch ausgelesen, oder das Gerät spinnt.

    MFG TechipionKlicke auf die Grafik für eine größere Ansicht

Name:	Kompass.png
Hits:	4
Größe:	3,5 KB
ID:	26230
    Angehängte Dateien Angehängte Dateien

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Torrentula
    Registriert seit
    10.10.2009
    Ort
    Procyon A
    Beiträge
    355
    Mir hat diese Seite sehr gut geholfen, die Winkelberechnung zu verstehen: https://www.loveelectronics.co.uk/Tutorials/8/
    Ist ja im Endeffekt dasselbe, was man auch schon in der 8. Klasse in Physik lernt, mann kan einen Vektor auf der XY-Ebene in seine beiden Teilvektoren in X und Y Ebene zerlegen. Genau diese Teilvektoren misst ja das Magnetometer und mit Hilfe des (Arcus-)Tangens kann man dann den Winkel zum magnetischen Nordpol berechnen.

    Zu beachten ist, dass man die Werte vom Magnetometer mit Hilfe der lokalen Abweichung des Erdmagnetfeldes kompensieren muss, um genau den magnetischen Nordpol zu bestimmen (ist auch in dem Artikel oben beschrieben, lokale Abweichung lässt sich im Netz nachschauen, bzw. auch das GPS kann es einem sagen).

    Wenn du dann noch für die Neigung kompensieren willst, benötigst du ein Accelerometer, ist in diesem Artikel beschrieben: https://www.loveelectronics.co.uk/Tu...duino-tutorial
    MfG Torrentula

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.02.2013
    Beiträge
    51
    Zitat Zitat von Technipion Beitrag anzeigen
    Hey Spacecam,
    ich habe deine Daten mehrfach überprüft und dabei auch eine andere Formel zu Hilfe genommen, aber es kommt immer das Gleiche heraus: Du hast nunmal nur Winkel bis 270°.
    Wenn du genauer drüber nachdenkst ist es auch logisch, am Schluss deiner Tabelle bleibt Y konstant bei 1.0, nur X verändert sich. Daraus folgt eine so kleine Änderung des Winkels, dass wegen der Rundung nur noch 270° herauskommt.
    Ich habe dir zum Überprüfen mal eine Tabelle und ein Bild angehängt, sofern ich alles richtig verstanden habe kannst du damit per Hand deinen Winkel überprüfen.
    Höchstwahrscheinlich werden die Werte falsch ausgelesen, oder das Gerät spinnt.

    MFG TechipionKlicke auf die Grafik für eine größere Ansicht

Name:	Kompass.png
Hits:	4
Größe:	3,5 KB
ID:	26230
    ok,
    ich habe mal eine neuen bestellt.... ich hoffe dann läuft es. Danke für die Exel anwendung

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    09.02.2013
    Beiträge
    51
    fehler gefunden... ich hatte ausversehen das auslesen von

    z1 u z1 in der IF bedinung drinne....
    sry
    Geändert von Spacecam (17.08.2013 um 13:21 Uhr)

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2012
    Beiträge
    24
    Macht doch nix
    Nur aus Fehlern lernt man schließlich!

    Sag mal, hat dein 3D-Kompass zufällig was mit dem Projekt zu tun einen Raspi ins All zu schießen?
    Gruß Technipion

Ähnliche Themen

  1. 3D kompass. Rechnung
    Von Spacecam im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 12.08.2013, 17:20
  2. Hexaservos + Rechnung
    Von Andi_K im Forum Motoren
    Antworten: 9
    Letzter Beitrag: 26.03.2013, 08:37
  3. Rechnung in Boolschem Ausdruck
    Von Static im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 25.09.2005, 19:02
  4. % Rechnung
    Von Marco78 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 19.03.2005, 12:17
  5. einfache rechnung
    Von Adam im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 06.10.2004, 21:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests