Gast
#6246733
Guten Tag, ich bin dabei, einen BMI160 Sensor von Bosch für zu verwenden und da ich ein ziemlicher Anfänger bin, habe ich da einige Fragen, hier ist das Datenblatt: https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi160-ds000.pdf Ich möchte gerne die Beschleunigung (x,y,z) und Orientierung (x,y,z) messen und dann dementsprechend umrechnen. In einem Arduino Skript wird der Skalierungsbeschreich +/- 2g für Beschleunigung und 250dps für Orientierung verwendet. Auf Se.8 des Datenblatts steht, dass die Empfindlichkeit bei 2g 16384 LSB/g beträgt. Das Skript an sich liest aus den 12 Registern die Werte aus und packt sie in ein byte Array, das am Ende zurückgegeben wird: for (int i = 0; i < 12; i++) { // Read 12 bytes of data // xGyr lsb, xGyr msb, yGyr lsb, yGyr msb, zGyr lsb, zGyr msb // xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb data[i]=readBMI(12+i); //Read from Register 12+i ble.print(data[i]); //send value to bluefruit uart Serial.print(data[i], HEX); Serial.print(" "); Serial.print(i); Serial.print(" "); if(i==11){ ble.print(byte(0x00)); } } Serial.println(); Meine Frage ist jetzt, ich bekomme solche Werte, wie kann ich nun meine Messwerte in m/s² und °/s bekommen? Also speziell, wie erhalte ich aus der LSB/g Angabe meine tatsächliche Beschleunigung? Ich habe irgendwo gelesen, dass ich Beispielsweise für die X-Beschleunigung den Wert des Registers durch die 16384 LSB/g teilen muss, um g zu bekommen. Ist das korrekt so? Auf einer anderen Seite hat jemand eine Rechnung mit (2^15)/2*g gemacht, und die Rohdaten durch diesen Wert geteilt... Vielen Dank!