Forum: Mikrocontroller und Digitale Elektronik Welchen Mikrocontroller für IMU


von josef (Gast)


Lesenswert?

Hi,

da nun bald Semesterferien ins Haus stehen wollte ich die Zeit sinnvoll 
nutzen und meine Mathematik/etc Kenntnisse etwas vertiefen und eine IMU 
bauen, die aus einem Drucksensor BMP180, einem Beschleunigungssensor 
BMA180, einem 3 Achsen Magnetometer HMC5883L und einem noch nicht 
genauer bestimmten Gyroskop (vllt ein ITG3200) besteht.
Diese sollen alle per I2C an einen Mikrocontoller angebunden werden, und 
dieser soll dann möglichst exakt die Lage im Raum berechnen.
Ich habe schon diverse Projekte mit AVRs realisiert, aber hierfür ist 
ein AVR denke ich gnadenlos unterdimensioniert.

Habt ihr Ideen welche Mikrocontroller dafür interessant wären?
Ich habe mich über verschiedene Informiert und bin dabei auf die MSP430 
Reihe gestoßen, aber ich glaub diese haben auch zu wenig Leistung, daher 
tendiere ich im Moment zu einem ARM, da dieser bestimmt auch eine 
größere Praxisrelevanz im Beruf hat.
Welche Derivate könnt ihr mir da empfehlen in Hinsicht der 
Einarbeitungszeit, kosten für Programmer und Leistungsfähigkeit 
empfehlen? Die STM32 sehen sehr interessant aus, aber gibt es dazu auch 
praktische Beispiele, z.B. die Grundbeschaltung oder wie man die 
Hardware initialisiert, etc (ähnlich dem AVR Tutorial hier im Wiki)

Viele Grüße ;)

von Friedrich J. (franjuja)


Lesenswert?

Hallo josef,

schau mal unter "openpilot", da gips sowas schon.
Ansonsten denke ich wäre ein ARM Cortex M (STM, NXP, ...) oder DSP (TI, 
AD, ...) schon die Größenordnung. Aber je nachdem was DU machen willst 
(nur einfach auslesen wenige Berechnungen/s) geht's sicher auch kleiner. 
Wenn du realtime mit >100Berechnungen irgendwelche 
floating-vektorberechnungen machen willst ...

Frage: Was willst Du genau?

Grüße

von Heiko J. (heiko_j)


Lesenswert?

Also funktionierende IMUs mit AVRs gibt's zuhauf. Ardupilot z.B. Aber Du 
hast natürlich recht, viel Luft nach oben ist da nicht. Ich würd 'nen 
stm32 nehmen, der scheint in der UAV-Gemeinde momentan auf dem Vormarsch 
zu sein und die AVRs zu verdrängen. Ich bastel momentan an einem 
Olimexino mit stm32 und nem 9DOF-Stick von Sparkfun 
(ADXL345,ITG-3200,HMC5843), BMP085 für den Luftdruck, MPXV7002DP für den 
Staudruck, SRF05 Ultraschall Entfernungsmesser für die Landung, EM-406a 
SiRF StarIII GPS

Gruß Heiko

von Timmo H. (masterfx)


Lesenswert?

Also ich verwende einen Atxmega für meinen Quadcopter. Der macht neben 
der Steuerung/Regelung eben auch parallel die Lageberechnungen aus Gyro, 
Beschleunigungssensor, Magnetometer und Barometer (100 mal pro Sekunde 
momentan, per Komplementärfilter). Alles über I²C. Dafür würde sogar der 
Atxmega16D4 reichen, welcher für ~1,4€ zu haben ist.
Bisher rechne ich sogar noch in float und habe immernoch einiges an 
Rechenzeit übrig. Solange ich da noch keine Engpässe habe stelle ich das 
auch nicht auf Festkomma um.
Solange du nicht den rechenintensiven Kalman-Filter implementieren 
willst, reicht ein Atxmega mit 32 MHz dicke aus.
Ansonsten würde ich auch einen ARM mit FPU nehmen und > 70 MHz.

von Heiko J. (heiko_j)


Lesenswert?

Timmo H. schrieb:

> Ansonsten würde ich auch einen ARM mit FPU nehmen und > 70 MHz.

Wäre der neue STM32F4 da keine Option ?!? Der hätte ne FPU und 168 MHz. 
Also genug Luft nach oben.

von Prachz Kerl (Gast)


Lesenswert?

Was soll den gemacht werden ?

von Timmo H. (masterfx)


Lesenswert?

Timmo H. schrieb:
> Solange du nicht den rechenintensiven Kalman-Filter implementieren
> willst, reicht ein Atxmega mit 32 MHz dicke aus.
Ich muss mich korrigieren. Ich habe jetzt den Kalman-Filter 
implementiert für die Lageberechnung, und der braucht etwa 1ms auf dem 
xMega. Das I2C-Ausgelese braucht mehr Zeit :D

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.