Aus Beschleunigungswerten Picht an Roll berechnen bzw. Umstellung Code auf openHAB

Themen auf die es innerhalb eines Jahres keine Antwort gab, werden hier archiviert.

Moderatoren: Cyrelian, seppy, udo1toni

Gesperrt
Bunker72
Beiträge: 1
Registriert: 31. Aug 2020 06:32
Answers: 0

Aus Beschleunigungswerten Picht an Roll berechnen bzw. Umstellung Code auf openHAB

Beitrag von Bunker72 »

Hallo,
ich bin neu hier um Forum und möchte alle Mitglieder zunächst begrüßen.
Leider beherrsche ich keine Programmiersprachen und so sind meine ersten "Gehversuche" noch sehr stolprig.

Ich zerbreche mir gerade an der Lösung für folgendes Problem den Kopf:
Ich habe von TinkerForge den Accelerometer Bricklet 2.0.
Dieser ist in OH richtig angelegt und liefert als Items auch die Werte für die 3 Achsen X,Y,Z mit den Beschleunigungswerten in g.
Nur leider fehlt diesem Bricklet "von Hause aus" die Umrechnung in Pitch an Roll.

Bei Recherchen im Internet habe ich dann Formeln (Eulersche Winkel) zur Lösung dieses Problems gefunden.
Auch einen Codeschnipsel zur Berechnung habe ich unter https://wiki.dfrobot.com/How_to_Use_a_T ... lt_Sensing gefunden:

Code: Alles auswählen

int x, y, z;                        //three axis acceleration data
double roll = 0.00, pitch = 0.00;       //Roll & Pitch are the angles which rotate by the axis X and y

void RP_calculate(){
  double x_Buff = float(x);
  double y_Buff = float(y);
  double z_Buff = float(z);
  roll = atan2(y_Buff , z_Buff) * 57.3;
  pitch = atan2((- x_Buff) , sqrt(y_Buff * y_Buff + z_Buff * z_Buff)) * 57.3;
}
Aber leider kann ich das nicht in eine für openHAB verständliche Rule umsetzen.
Kann mir hier vielleicht jemand helfen?
Vielen Dank im Voraus
Thomas

Gesperrt