Einsatz fortschrittlicher, langlebiger IMUs mit erweiterter Verfügbarkeit zur Gewährleistung der Langlebigkeit industrieller Geräte
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2020-04-28
Bei der Entwicklung von Robotersystemen, intelligenten Elektrowerkzeugen, Anlagenverfolgungsgeräten und anderen bewegungsbasierten Industrieprodukten spielen Trägheitsmesseinheiten (IMUs) eine Schlüsselrolle bei der Bereitstellung von Daten, die für die Verwaltung von Leistung, Sicherheit und mehr benötigt werden. Die Hersteller dieser langlebigen Industrieprodukte hängen nicht nur von der Leistungsfähigkeit der IMU-Geräte ab, sondern auch von deren langfristiger Verfügbarkeit. Eine aufkommende Klasse industrieller IMUs mit Langzeitverfügbarkeit bietet Entwicklern eine Lösung, die sowohl den Leistungs- als auch den Verfügbarkeitsanforderungen gerecht wird.
In diesem Artikel werden IMUs von Bosch Sensortec und STMicroelectronics diskutiert, die im Rahmen der 10-Jahres-Langlebigkeitsprogramme der Hersteller genaue Messungen in rauen Industrieumgebungen gewährleisten sollen. Dieser Artikel befasst sich auch mit Softwareentwicklungs-Boards dieser industriellen Hersteller von IMU-Geräten sowie mit Adafruit Industries, die die schnelle Entwicklung von IMU-basierten Designs erleichtern.
Was sind IMUs?
IMUs sind Sensorvorrichtungen, die einen Beschleunigungsmesser und ein Gyroskop kombinieren, um die Daten zu liefern, die zur Erkennung von Linear- und Drehbewegungen in sechs Freiheitsgraden erforderlich sind. Die Beschleunigungsmesser und Gyroskopsensoren in fortschrittlichen IMUs, wie z.B. Bosch Sensortec's BMI088, sind mit mikroelektromechanischen Systemen (MEMS) Technologie aufgebaut und mit dedizierten Signalketten und Analog-Digital-Wandlern (ADCs) und Logik integriert, um ein komplettes Bewegungserkennungssystem in einem einzigen Gehäuse bereitzustellen (Abbildung 1).
Abbildung 1: Fortgeschrittene IMUs wie das BMI088 von Bosch Sensortec integrieren Sensoren, Signalketten und Logik, um ein vollständiges Bewegungserkennungssystem bereitzustellen, das sich über serielle Standardschnittstellen leicht in Host-Prozessoren integrieren lässt. (Bildquelle: Bosch Sensortec)
Mit ihrer umfangreichen integrierten Funktionalität lassen sich IMUs leicht in Systementwürfe integrieren, wobei in der Regel kaum mehr als eine I2C- oder SPI-Verbindung erforderlich ist, um digitale Ergebnisse an einen Host-Prozessor zu liefern.
Leistung und Stabilität der industriellen IMU
Industrielle IMUs wie das BMI088 von Bosch wurden speziell entwickelt, um die Temperaturstabilität und Vibrationsrobustheit zu gewährleisten, die für den Betrieb in rauen Umgebungen erforderlich ist, in denen konstante thermische Belastung und mechanische Vibrationen oder Stöße die Leistung weniger robuster Geräte beeinträchtigen können. Der BMI088 integriert einen dreiachsigen 16-Bit-Beschleunigungsmesser und ein dreiachsiges 16-Bit-Gyroskop, die eine Auflösung von 0,09 Milligravitation (mg) bzw. 0,004 Grad pro Sekunde (°/s) liefern. Das Gerät unterstützt Gyroskopmessungen bei mehreren Winkelgeschwindigkeiten von 125°/s bis zu 2.000°/s. Wie die meisten Geräte dieser Klasse unterstützt der BMI088 den Betrieb über den gesamten industriellen Temperaturbereich von -40 bis +85°C. Der Beschleunigungsmesser des BMI088 geht über viele Geräte dieser Klasse hinaus und unterstützt eine Messung im gesamten Messbereich bis zu 24 Gramm (g), was einen zusätzlichen Schutz vor Signalbegrenzung bei hohen Vibrationspegeln bietet, wie sie häufig in industriellen Anwendungen vorkommen.
Gleichzeitig erfüllt das Gerät die Anforderungen an hohe Temperaturen oder schnell wechselnde Temperaturen, wie sie in industriellen Umgebungen üblich sind. Der Beschleunigungsmesser BMI088 zeigt eine Empfindlichkeitstemperaturdrift von nur 0,002 Prozent pro Kelvin (%/K) und eine Null-g-Offset-Temperaturdrift von weniger als 0,2 mg pro Kelvin (K). In ähnlicher Weise hat sein Gyroskop einen Temperaturkoeffizienten des Versatzes (TCO) von nur 0,015°/s pro K und einen Temperaturkoeffizienten der Empfindlichkeit (TCS) von 0,03%/K.
Trotz ihrer Hochleistungseigenschaften verbrauchen MEMS-basierte IMUs in der Regel nur minimalen Strom. Zum Beispiel verbraucht der Beschleunigungsmesser des BMI088 im Normalbetrieb 150 Mikroampere (mA), während sein Gyroskop 5 Milliampere (mA) benötigt. Wie bei den meisten Geräten mit niedrigem Stromverbrauch können Entwickler den BMI088 in Zeiten der Inaktivität in einen Stromsparmodus schalten. Im Suspend-Modus mit geringer Leistung fällt der Strom von Beschleunigungsmesser und Gyroskop auf 3 mA bzw. 25 mA ab. Tatsächlich bietet das Gyroskop BMI088 einen Deep-Suspend-Modus, der weniger als 5 mA verbraucht.
Der Betrieb mit geringer Leistung kann natürlich für batteriebetriebene Anwendungen wie tragbare Elektrowerkzeuge oder Geräte zur Verfolgung von Vermögenswerten kritisch sein, doch die Fähigkeit zur schnellen Wiederaufnahme normaler Messungen ist in industriellen Anwendungen ebenso wichtig. Tatsächlich weist der BMI088 eine Aufwachzeit aus dem Suspend-Modus (und Deep-Suspend-Modus) auf, die deutlich schneller ist als diejenige, die bei IMUs verfügbar ist, die typischerweise in Verbraucheranwendungen wie tragbaren Geräten und anderen persönlichen elektronischen Produkten verwendet werden.
Unterstützung für langlebige Produkte
Es gibt vielleicht einen grundlegenderen Unterschied, der die Anforderungen an IMUs in Verbraucher- und Industriegeräten voneinander trennt. Wie bei jeder Produktkategorie folgt der Lebenszyklus von Konsum- und Industrieprodukten einem bekannten Muster von Wachstum, Reife und Rückgang nach der Einführung (Abbildung 2).
Abbildung 2: Obwohl die Nachfrage der Verbraucher nach den neuesten Funktionen in der Regel in den späten Phasen des Lebenszyklus von Konsumgütern schrumpft, verlassen sich viele industrielle Anwender auf die erweiterte Verfügbarkeit ausgereifter und zuverlässiger Produktlinien. (Bildquelle: Wikipedia)
Für die Verbraucher hat die Nachfrage nach den neuesten funktionsreichen mobilen Produkten die Dauer der Reife- und rückläufigen Phasen des Produktlebenszyklus dramatisch verkürzt. In krassem Gegensatz zu den schrumpfenden Lebenszyklen der Unterhaltungselektronik wird oft erwartet, dass verschiedene Arten von Industrieausrüstungen mehrere Jahre in Betrieb bleiben. Eine ausgereifte Reihe von Elektrowerkzeugen in Industriequalität wird in der Regel eher wegen ihrer Zuverlässigkeit bei der Erfüllung ihrer primären Funktion als wegen ihres "Schnickschnacks" eine treue Anhängerschaft finden. In anderen industriellen Anwendungen wie der Anlagenverfolgung oder der IIoT-Überwachung kann die langfristige Verfügbarkeit einer Gerätefamilie den Bedarf oder die Praktikabilität eines Geräteaustauschs zur Unterstützung inkrementeller Funktionsverbesserungen überwiegen.
Um die Anforderungen an langlebige Produkte zu erfüllen, finden Entwickler oft Schlüsselprodukte in den Langlebigkeitsprogrammen der Halbleiterhersteller, die die Verfügbarkeit für einen Zeitraum sicherstellen, der typischerweise mit dem Einführungsdatum des Produkts beginnt. Beispielsweise bietet Bosch sein BMI090L IMU als Teil seines eigenen 10-Jahres-Langlebigkeitsprogramms an. Als pin-kompatible Version des BMI088 verfügt das BMI090L über die gleichen Funktions- und Leistungsspezifikationen wie das BMI088.
Industrielles maschinelles Lernen IMU
Als Teil seines eigenen 10-Jahres-Langlebigkeitsprogramms bietet STMicroelectronics sein leistungsstarkes ISM330DHCX industrielles IMU an. Das ISM330DHCX ist ein Mitglied einer spezialisierten Serie von iNEMO System-in-Package (SiP)-Modulen, zu denen auch die STMicroelectronics LSM6DSOX und LSM6DSRX gehören. Diese Geräte kombinieren einen dreiachsigen Beschleunigungsmesser und ein dreiachsiges Gyroskop mit einem eingebetteten maschinellen Lernkern. (Weitere Informationen über den iNEMO-Kern für maschinelles Lernen und seine Verwendung finden Sie unter "Verwenden Sie den integrierten Kern für maschinelles Lernen von intelligenten Sensoren zur Optimierung der immer aktiven Bewegungsverfolgung".
Das LSM6DSOX wurde für batteriebetriebene Verbraucherprodukte entwickelt und bietet den niedrigsten Stromverbrauch in dieser Serie von Spezialgeräten. Alternativ ist das LSM6DSRX für Virtual Reality (VR), Augmented Reality (AR) und Drohnenanwendungen ausgelegt. Es bietet eine höhere Stabilität als das LSM6DSOX und einen erweiterten maschinellen Lernkern.
Das für industrielle Hochleistungsanwendungen konzipierte ISM330DHCX baut auf den Fähigkeiten des LSM6DSRX in Verbraucherqualität auf, bietet jedoch einen wesentlich größeren Betriebstemperaturbereich von -40 bis +105°C im Vergleich zum LSM6DSRX mit -40 bis +85°C. Das ISM330DHCX bietet einen linearen Beschleunigungsbereich von bis zu 16 g und verfügt gleichzeitig über einen maximalen Winkelgeschwindigkeitsmessbereich von 4.000°/s, einen der höchsten Winkelgeschwindigkeitsmessbereiche, die in einem Gerät dieser Klasse verfügbar sind. Wie für industrielle Anwendungen erforderlich, weist das ISM330DHCX eine geringe Temperaturabhängigkeit auf. Sein Beschleunigungsmesser weist eine Empfindlichkeit von nur 0,005%/°C und eine Null-G-Drift von 0,1 mg/°C auf, während sein Gyroskop eine Empfindlichkeit von 0,007%/°C und eine Null-Drift von 0,005°/s pro °C aufweist.
Wie die meisten hochentwickelten IMUs lässt sich das ISM330DHCX über eine I2C- oder SPI-Verbindung problemlos in einen Host-Prozessor integrieren. Entwickler können das Gerät in vier verschiedenen Konfigurationen anschließen:
- Wird ausschließlich in Verbindung mit einem Host verwendet (Modus 1)
- Wird mit der Funktion Sensor-Hub (Modus 2) verwendet
- Wird sowohl an einen primären Host als auch an einen sekundären Host angeschlossen, der nur Gyroskop-Daten lesen kann (Modus 3)
- Wird sowohl an einen primären Host als auch an einen sekundären Host angeschlossen, der sowohl Gyroskop- als auch Beschleunigungsmesserdaten lesen kann (Modus 4)
Im Modus 2 kann das ISM330DHCX als Sensor-Hub fungieren, der im Slave-Modus sowohl einem Host als auch einem Master für externe Sensoren dient, die an seine Schnittstelle I2C angeschlossen sind (Abbildung 3).
Abbildung 3: Das ISM330DHCX von STMicroelectronics kann so konfiguriert werden, dass es in mehreren Betriebsmodi läuft, einschließlich des hier gezeigten Modus 2, in dem das ISM330DHCX als Sensor-Hub für externe Sensoren dient und die kombinierten Daten an den Host liefert. (Bildquelle: STMicroelectronics)
Schnelle Entwicklung der IMU
Da digitale IMUs minimale Hardware-Anforderungen stellen, können Entwickler in den frühen Phasen der Entwicklung weitgehend auf das Hardware-Design verzichten und sofort zur Software-Entwicklung übergehen, indem sie eine Reihe von Entwicklungs-Boards von industriellen IMU-Geräteherstellern verwenden. Beispielsweise ist das Bosch Application Board für die Aufnahme einer Vielzahl von Tochterkarten ausgelegt, einschließlich der Bosch BMI090L Shuttle-Platine. Basierend auf einem Arm® Cortex®-M4 Prozessor bietet das Bosch Application Board mehrere Testpunkte und Anschlüsse sowie einen USB-Anschluss für die Stromversorgung und Entwicklung auf einem Host-Personalcomputer.
Um die Evaluierung und das Prototyping von industriellen Anwendungen, die auf dem STMicroelectronics ISM330DHCX basieren, zu beschleunigen, können Entwickler als Hardware-Plattform das Adafruit Industries 4502 ISM330DHCX Evaluierungsboard verwenden, das mit einem Adafruit Industries 4382 STM32F405 Feather Entwicklungsboard verbunden ist.
Für die Softwareentwicklung unterstützt das Adafruit CircuitPython LSM6DS github Software-Repository eine Reihe von STMicroelectronics IMUs, einschließlich des ISM330DHCX sowie des LSM6DSOX und LSM6DS33. Folglich können Entwickler schnell Prototyp-Anwendungen erstellen, indem sie nur wenige Zeilen Python-Code verwenden, um Daten von ISM330DHCX-Sensoren zu lesen (Listing 1).
Copy
import time
import board
import busio
from adafruit_lsm6ds import ISM330DHCT
i2c = busio.I2C(board.SCL, board.SDA)
sensor = ISM330DHCT(i2c)
while True:
print("Acceleration: X:%.2f, Y: %.2f, Z: %.2f m/s^2" % (sensor.acceleration))
print("Gyro X:%.2f, Y: %.2f, Z: %.2f degrees/s" % (sensor.gyro))
print("")
time.sleep(0.5)
Listing 1: Entwickler können ein Adafruit CircuitPython-Modul verwenden, um schnell Prototypen von Anwendungen zu erstellen, die ISM330DHCX-Sensordaten lesen können, indem sie einfach auf Attribute eines ISM330DHCX-Objekts zugreifen. (Code-Quelle: Adafruit Industries)
STMicroelectronics bietet auch sein eigenes ISM330DHCX-basiertes STEVAL-MKI210V1K Add-on-Board an, das über einen DIL 24-Adapter mit dem firmeneigenen STEVAL-MKI109V3 Entwicklungsboard auf der Basis seines STM32F401VE Mikrocontrollers verbunden wird. Für die Evaluierung des ISM330DHCX mit diesem Board-Setup bietet STMicroelectronics ein Softwarepaket für Linux (STSW-MKI109L), Mac OSX (STSW-MKI109M) und Windows (STSW-MKI109W) an.
Obwohl sich diese STEVAL-Hardwareplattform strikt auf das ISM330DHCX konzentriert, können sich Entwickler an das STMicroelectronics X-NUCLEO-IKS02A1 Erweiterungsboard wenden, um das ISM330DHCX in Kombination mit anderen Sensoren zu evaluieren. Neben einer ISM330DHCX IMU enthält die X-NUCLEO-IKS02A1 Erweiterungskarte ein STMicroelectronics IIS2MDC Magnetometer, IIS2DLPC Low-Power-Beschleunigungsmesser und IMP34DT05 MEMS digitales Mikrophon mit Kugelcharakteristik. Das Erweiterungsboard NUCLEO-IKS02A1 ist für den Anschluss an ein STMicroelectronics NUCLEO-Board wie z.B. das NUCLEO-L476RG vorgesehen, um eine voll funktionsfähige Hardware-Plattform bereitzustellen.
Für die Entwicklung von Seriencode bieten das Softwarepaket STMicroelectronics STM32Cube und das zugehörige Software-Add-on X-CUBE-MEMS1 eine umfassende Software-Plattform. Neben Platinen- und Gerätetreibern bietet das X-CUBE-MEMS1-Paket eine Reihe von Beispielanwendungen, die auf dem Sensor- und Baseboard-Set ausgeführt oder als Grundlage für kundenspezifische Entwicklungen verwendet werden können. Eine Schwingungsüberwachungsanwendung veranschaulicht beispielsweise eine einfache Schleife, die kontinuierlich Daten aus dem Beschleunigungsmesser ISM330DHCX auf dem Erweiterungsboard X-NUCLEO-IKS02A1 liest (Listing 2).
Copy
while (fftIsEnabled == 0)
{
if (((HAL_GetTick() - start) > 6000))
{
Restart_FIFO();
return 0;
}
IKS02A1_MOTION_SENSOR_FIFO_Get_Tag(IKS02A1_ISM330DHCX_0, &tag);
if (tag == (uint8_t)ISM330DHCX_XL_NC_TAG)
{
IKS02A1_MOTION_SENSOR_FIFO_Get_Axes(IKS02A1_ISM330DHCX_0, MOTION_ACCELERO, &acceleration);
}
/* Store data */
single_data.AXIS_X = (float)acceleration.x;
single_data.AXIS_Y = (float)acceleration.y;
single_data.AXIS_Z = (float)acceleration.z;
/* Remove DC offset */
MotionSP_accDelOffset(&single_data_no_dc, &single_data, DC_SMOOTH, RestartFlag);
/* Fill the accelero circular buffer */
MotionSP_CreateAccCircBuffer(&AccCircBuffer, single_data_no_dc);
if (AccCircBuffer.Ovf == 1)
{
fftIsEnabled = 1;
AccCircBuffer.Ovf = 0;
}
MotionSP_TimeDomainProcess(&sTimeDomain, (Td_Type_t)MotionSP_Parameters.td_type, RestartFlag);
RestartFlag = 0;
}
Listing 2: Dieser Ausschnitt aus einer Schwingungsüberwachungs-Beispielanwendung im STMicroelectronics X-CUBE-MEMS1-Paket demonstriert eine einfache Schleife zum Auslesen von Beschleunigungsmessdaten aus der ISM330DHCX IMU. (Codequelle: STMicroelectronics)
Innerhalb dieser Schleife ruft die Funktion IKS02A1_MOTION_SENSOR_FIFO_Get_Tag() eine ISM330DHCX-spezifische Routine, ism330dhcx_fifo_sensor_tag_get(), auf, die ein Tag zurückgibt, das den spezifischen Quellsensor auf dem ISM330DHCX oder externen Sensor identifiziert, wenn dieser in Modus 1-Konfiguration betrieben wird. Diese im ISM330DHCX eingebaute Tagging-Funktion bietet einen Mechanismus zur einfachen Identifizierung mehrerer Typen und Quellen von Daten, die im 3-Kilobyte-First-in-First-out-Puffer (FIFO) des Geräts gespeichert sind. In diesem Beispiel erwartet die Anwendung ein Beschleunigungsmesser-Tag, ISM330DHCX_XL_NC_TAG.
Ein nachfolgender Aufruf von IKS02A1_MOTION_SENSOR_FIFO_Get_Axes() ruft die ISM330DHCX-spezifische Routine, ISM330DHCX_FIFO_ACC_Get_Axes() für Beschleunigungsmesserdaten oder ISM330DHCX_FIFO_GYRO_Get_Axes() für Gyroskopdaten auf. In diesem Beispiel verwendet der Aufruf ISM330DHCX_FIFO_ACC_Get_Axes(), die ihrerseits eine Low-Level-Routine, ISM330DHCX_FIFO_Get_Data(), aufruft, die die Register-Level-Operationen durchführt, die zum Lesen von FIFO-Pufferdaten erforderlich sind, und dann empfindlichkeitsskalierte Beschleunigungsdaten für jede der drei Achsen zurückgibt (Listing 3).
Copy
int32_t ISM330DHCX_FIFO_ACC_Get_Axes(ISM330DHCX_Object_t *pObj, ISM330DHCX_Axes_t *Acceleration)
{
uint8_t data[6];
int16_t data_raw[3];
float sensitivity = 0.0f;
float acceleration_float[3];
if (ISM330DHCX_FIFO_Get_Data(pObj, data) != ISM330DHCX_OK)
{
return ISM330DHCX_ERROR;
}
data_raw[0] = ((int16_t)data[1] << 8) | data[0];
data_raw[1] = ((int16_t)data[3] << 8) | data[2];
data_raw[2] = ((int16_t)data[5] << 8) | data[4];
if (ISM330DHCX_ACC_GetSensitivity(pObj, &sensitivity) != ISM330DHCX_OK)
{
return ISM330DHCX_ERROR;
}
acceleration_float[0] = (float)data_raw[0] * sensitivity;
acceleration_float[1] = (float)data_raw[1] * sensitivity;
acceleration_float[2] = (float)data_raw[2] * sensitivity;
Acceleration->x = (int32_t)acceleration_float[0];
Acceleration->y = (int32_t)acceleration_float[1];
Acceleration->z = (int32_t)acceleration_float[2];
return ISM330DHCX_OK;
}
Listing 3: Das STMicroelectronics X-CUBE-MEMS1-Paket wurde zur Unterstützung mehrerer Sensoren und Entwicklungsboards entwickelt und bietet gerätespezifische Funktionen wie die hier gezeigte, die wiederum eine Low-Level-Routine, ISM330DHCX_FIFO_Get_Data(), aufruft, um die erforderlichen Operationen auf Registerebene durchzuführen. (Codequelle: STMicroelectronics)
Weitere Beispiel-Codesätze im X-CUBE-MEMS1-Softwarepaket demonstrieren einen elektronischen Kompass, Neigungssensorik, Sensorkalibrierung und Datenfusion unter Verwendung der im Paket enthaltenen MotionFX-Sensorfusionsbibliothek. Die Softwarepakete STMicroelectronics STM32Cube und X-CUBE-MEMS1 bieten in Kombination mit dem NUCLEO-Board-Set eine umfassende Entwicklungsplattform zur Erstellung serienreifer, bewegungsbasierter industrieller Anwendungen.
Fazit
Neben der Bewältigung rauer Betriebsbedingungen müssen die Entwürfe für Industrieprodukte oft auch die verlängerte Lebensdauer der Produktlinie unterstützen. Für bewegungsbasierte industrielle Anwendungen bieten industrielle IMUs die Kombination aus robusten Eigenschaften und Stabilität, die erforderlich ist, um trotz thermischer und mechanischer Belastung genaue Messungen zu liefern. Die Verfügbarkeit langlebiger industrieller IMUs bietet Entwicklern die Möglichkeit, effektive Designlösungen für industrielle Produktlinien zu liefern, die auf robuste Bewegungsdaten und langfristige Geräteverfügbarkeit angewiesen sind.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.