Posts by FatCookie

    Achso tut mir leid das hab ich missverstanden^^

    Aber mit dem Beschleunigungssensor hast du recht.

    Die Werte vom Gyro sind mir eigendlich egal damit habe ich mich noch nicht wirklich befasst. Aber soweit ich das bis jetzt verstanden habe zeigen die Werte die Drehbewegung z.B. in Grad pro Sekunde der jeweiligen Achsen an. Nur sind die hier wahrscheinlich auch noch irgendwie umzurechnen.


    Der Magnetsensor misst die magnetische Flussdichte. Und das von allen Feldern in der Nähe und nicht nur vom Erdmagnetfeld. Deswegen sollte man die auch kalibrieren aber da mein Sensor an 4 Drähtchen weiter von der Platine entfernt befestigt ist denke ich mal dass das für eine relativ einfache Messung so auch ausreichen wird, vorallem da ich nur sehen möchte ob ich die tilt compensation richtig gemacht habe.

    Also der Sensor liefert Werte die sehen so aus:

    Code
    gyro: {'y': -0.313, 'x': -2.739, 'z': -1.282}
    accel: {'y': 0.016, 'x': -0.077, 'z': -1.007}
    magnet: {'y': 7.127, 'x': 62.641, 'z': -136.772}


    Aus den Werten von dem Magnetsensor und dem Beschleunigungssensor möchte ich einen Winkel berechnen, der in Werten von 0 bis 360 die Grad anzeigt, die der der Sensor relativ zum Nordpol steht. Und das unabhängig davon wie er im Raum steht.

    Mit den X und Y Werten vom Magnetsensor allein funktioniert das auch schon - vorausgesetzt er ist gerade im Raum. Wenn nicht, dann wird der Fehler jedoch größer je schiefer ich ihn halte.

    Hallo,

    Ich habe ein MPU9250 das einen Gyro, Magnet und Beschleunigungssensor hat (alle in 3 Achsen Ausführung). Zum ansprechen verwende ich die FaBo9Axis_MPU9250 library.

    Werte messen und Ausgeben funktioniert also. Da ich das Board als Kompassensor verwenden möchte muss ich aus den einzelnen Werten für die X, Y und Z Achsen einen Winkel berechnen. Das Problem dabei ist, dass der Sensor mit der einfachen Methode die nur die X und Y Achse des Magnetometers verwendet, falsche Werte liefert, sobalt der Sensor nicht mehr gerade ist.

    Ich habe schon einiger Versuche unternommen das zu Korrigieren aber meine Werte sind alles andere als richtig.


    Hier ist mein letzter Versuch:


    Wie schon oben geschrieben ergeben die Werte keinen Sinn egal mit welcher Methode ich es versuche:wallbash:.

    Hoffentlich hat das schon von euch schon jemand gemacht und weiß wie das richtig geht mir fällt nichts mehr ein.

    Okey tut mir leid das waren zu wenig Infos. Mit den Buttons will ich in Verbindung mit einem LCD Display am Raspberry Pi einen Roboter steuern. Der Roboter fährt mir GPS und soll auf dem Weg Hindernissen automatisch ausweichen. Ich möchte nur am LCD einen Punkt auswählen können wo entweder "Roboter starten" oder "Roboter stoppen" steht und dafür wollte ich den Thread starten und stoppen können


    Wie schon oben beschreiben habe ich zwar schon einige Threads nach dem Thema durchgesucht aber ich weiß trotzdem noch nicht wie ich das am Besten machen soll.

    Manul: ich habe den Coder probiert und er funktioniert auch, danke!

    Nur wird dann bei mir der Code nach dem 2. mal starten nicht mehr beendet (ja ich weiß oben fehlt der Teil) woran könnte das liegen?

    Und wieso lässt sich der Thread neu starten wenn man t_worker.stoprequest.clear() ausführt?


    noisefloor: Habe ein Paar Buttons an meinem Raspberry und die sollen ein paar Funktionen steuern. Wie z.B. einen Thread starten und stoppen können der sich unabhängig vom Rest des Programms um Aufgaben kümmert bis das nicht mehr gewünscht ist.

    Hallo zusammen,


    Ich habe wieder ein Problem mit Python:lol:

    Diesmal möchte ich einen Worker Thread nach belieben starten, beenden und danach wieder starten können.

    Das starten und beenden bekomme ich auch grundsätzlich hin nur beim wieder starten bekomme ich eine Fehlermeldung.

    Ich hab hier mal meinen Beispielcode:

    Beim zweiten t_worker.start() bekkomme ich den Fehler: RuntimeError: threads can only be started once.


    Ich hab das Internet schon nach einer anderen Lösung zum beenden durchgesucht aber nichts gefunden das mein Problem lösen könnte.

    Gibt es da eine bessere Lösung oder soll ich gleich versuchen einen eigenen Prozess zu starten?

    Danke schonmal im Vorraus:danke_ATDE:

    Hallo zusammen,


    Ich möchte mit meinem Raspberry Pi einen kleinen Roboter bauen der gewisse Positionen mittels GPS in einer Datei speichert, damit

    sie später wieder verwendet werden können. Beim Speichern werden diese an einer Liste angehängt. Wenn ich die Punkte dann auslese, habe ich eine Liste die beispielsweise so aussieht: [(Lat, Lon), (Lat, Lon), (Lat, Lon)]. Noch wichtig zu sagen ist das nicht immer gleich viele Punkte gespeichert werden sollen.


    Bis hier funktioniert auch schon alles, nur weiß ich nicht wie ich die Liste beim verwenden der Punkte so aufspalten kann, damit ich die Positionen als Längen- und Breitengrade wieder einzeln verwenden kann. Bis jetzt hab ich nur ein paar Lösungswege gefunden bei denen die Liste in einen String umgewandelt werden und dann mittels string.split(',') aufgeteilt werden.

    Da aber alle Elemente mittels "," geteilt sind und die Liste mit den gespeicherten Punkten nicht immer gleich groß ist, weiß ich nicht wie ich das Problem zuverlässig lösen kann.


    Wie kann ich das anstellen?

    Im Voraus schon einmal vielen Dank für eure Hilfe.