Von LSB/g auf m/s²?

Gast #6246733
Lesenswert?
• ▲
▼
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!
Gast #6254711
Lesenswert?
• ▲
▼
Kleiner Tipp: Schau dir die Referenzimplementierung des BMI160 von Bosch 
auf GitHub.

Deren Treiber sind ein Beispiel von Schönheit im Code mit klar 
definierten Schnittstellen.

Im wesentliches ist es bei jeder MPU gleich: Es gibt vorgegebene 
Divisoren, je nach eingesetztem Range.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.