ISM 330;

Nachdem ich mir die Beschleunigunswerterfassung des BM20 trotz Kalibrierung zu ungenau war, habe ich mir den ISM330 DLC zugelegt, da er ja laut ISM ( Seite 29 ) werksseitig kalibriert sein soll.
Er ist zwar genauer wie der BM20 (Abweichung ca. 5%) aber um eine eigene Korrektur der Meßwerte kommt man nicht herum.
Der von ISM angebene Weg (Seite 19) der Messwertkorrektur bringt keine Genauigkeitssteigerung. Offensichtlich ist die Messwerterfassung nicht linear.
Abhilfe ist nur möglich, wenn eine getrennte Korrektur der Beschleunigungs messwerte zwischen – und 0 und zwischen 0 und + erfolgt.
Auch eine Regresionsgerade zwischen – und + des Messbereiches liefert keine zufriedenstellende Ergebnisse.
Wie ich allerdings die Genauigkeit der Winkelmessungen überprüfen bzw. die Messwerte korrigieren kann weiß ich noch nicht. Den in Ruhestellung angezeigten Messwert einfach zu subtrahieren bringt nichts. (Ich benötige den Winkel um die
positive Z-achse, ein indirektes Maß für diesen Winkel, ist der Winkel zwischen der X und Y Achse der Beschleunigung).

Als echter Flaschenhals hat sich nach längerem experimentieren die Ansteuerung der seriellen Schnittstelle (Comm Port) mit dem I2C- Interface erwiesen.
Obwohl die Baudrate bis zu 23600 B/sec beträgt, sind nur Messwertfrequenzen von 42,7 Hz möglich ( ohne Comm Port auf meinem System 819,5 Hz – mit Datenabspeicherung).
Dieses liegt daran, daß der Timeout des Comm Portes
nicht unter 4 mSec gesetzt werden kann, um plausible Messwerte zu erhalten.
Bei kleineren Timeouts entstehen, sporadisch extreme Messwertfehler.

Die usb_i2C_Demosoftware ist meines Erachtens nur zur Überprüfung der Einstellungen des ISM330 geeignet (maximale Messfrequenz 0,5 Hz).
Die in der ELV Beschreibung angegeben Adressen (SD30 und SD4) beziehen
sich auf den LowPowermodus, bei einer USB Verbindung muß die High Power Adresse SD32 und SD6 gesetzt werden.