Hallo,
ich habe den Accelerometer Bricklet 2.0.
Im BrickViewer werden zusätzlich zu den 3 Beschleunigungswerten auch die Werte für Pitch and Roll angezeigt.
In openHAB sind jedoch nur die 3 Beschleunigungswerte als Items verfügbar.
Nach Recherchen im Internet habe ich dann Formeln (Eulersche Winkel) zur Berechnung der Werte Pitch and Roll gefunden.
Auch einen Codeschnipsel zur Berechnung habe ich unter https://wiki.dfrobot.com/How_to_Use_a_T ... lt_Sensing gefunden:
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;
}
Dies könnte die richtige Berechnung sein.
Nur leider lässt sich dieser Code nicht in eine Rule unter openHAB einbauen, da es offensichtlich unterschiedliche Sprachen sind.
Hat jemand eine Lösung, wie ich den Code auf openHAB umschreiben könnte bzw. wie ich die Werte Pitch and Roll berechnen lassen kann?
Vielen Dank
Thomas