Liebe Community, für ein Projekt an der Uni wurde ich beauftragt, die Bewegung des Maschinentisches einer 5-Achs-Fräsmaschine zu überwachen. Mein Ziel ist es, die Lage, Winkelgeschwindigkeit und Beschleunigung während der Bewegung auf dem PC auslesen und weiterverabeiten zu können. Für den Messaufbau kommen zwei Sensoren in Frage. BMX055 von Bosch: http://www.bosch-sensortec.com/en/homepage/products_3/9_axis_sensors_5/ecompass_2/bmx055_1/bmx055 oder MPU9150: http://www.digikey.de/product-highlights/de/de/invensense-mpu-9150/3809 In diesem Gebiet habe ich leider wenig (bzw. garkeine) Erfahrung, sodass ich nicht weiß, welche weiteren Teile bzw. Arbeitssschritte von Nöten sind, um die Daten des Sensors am PC auslesen zu können (sprich Bus etc.). Ich würde mich freuen, wenn sich jemand die Zeit nehmen könnte um mir zu erklären, wie man hierbei am besten vorgeht. Ich weiß, viele Informationen konnte ich bisher nicht zur Verfügung stellen, aber wenn irgendetwas essenziell benötigt wird, werde ich mich bemühen, die Information zu beschaffen. Vielen Dank im Voraus! Beste Grüße Julian
1. Rausfinden welche Schnittstelle der Sensor anbietet. Wenn ich das auf die Schnell richtig sehe brauchst du beim Bosch I2C und SPI. Für den anderen nur I2C. 2. Herausfinden wie man die entsprechenden Schnittstellen an den Rechner angekoppelt bekommt. Da PCs weder SPI noch I2C sprechen brauchst du einen Umsetzer. Da du keine Ahnung vom Thema hast kommt selberbauen mit µC wohl eher nicht in Frage. Also vermutlich wirst du sowas in der Art brauchen: http://www.elv.de/usb-i2c-interface-komplettbausatz-inkl-gehaeuse-bearbeitet-und-bedruckt-usb-kabel-3-anschlusskabel.html Julian G. schrieb: > Mein Ziel ist > es, die Lage, Winkelgeschwindigkeit und Beschleunigung während der > Bewegung auf dem PC auslesen und weiterverabeiten zu können. Auslesen kannst du nur die Daten die der Sensor auch zur Verfügung stellt :) Das sind Winkelgeschwindigkeit und Beschleunigung. Die Lage musst du daraus natürlich selber berechnen. Hier könnte ein guter Ansatz eines der vielen OpenSource-Quadrocopter-Projekte sein, die machen genau das selbe :) Nachtrag: Die Gehäuse dieser Sensoren sind mikroskopisch :) Das auch im Hinterkopf behalten.
:
Bearbeitet durch User
Der BMX055 kann man per SPI ansprechen, Verbindungen zum PC sind beispielweise per USB machbar. Also wählst du dir einen Controller, der beide Schnittstellen hat und du idealerweise schon auf fertige Bibliotheken zurückgreifen kannst. PIC18F4550 wäre ein beispiel, aber da gibts es noch massenweise passende Controller mit denen du das umsetzen kannst. Die Funktionsweise des SPI Interfaces und die notwendigen Register zum Auslesen sind ja alle im Datenblatt beschrieben.
Dominik S. schrieb: > brauchst du beim Bosch I2C und SPI. Nein, der kann beides, I2C oder SPI. Auf jeden Fall ist der richtig winzig und durch das LGA Gehäuse auch nicht mehr wirklich von Hand lötbar. Ich habe so einen mal im Dead-Bug Style aufgelötet für erste Tests und selbst das war nicht so richtig lustig. Da empfiehlt sich ein Breakout-Board, zumindest zum Rumspielen. Von IvenSense gibt es noch den MPU9250, das ist die Variante mit SPI. Wobei gut lötbar sind die MFL-Gehäuse der MPU9x50 auch nicht, aber für die gibt es auf jeden Fall Breakout-Boards, Stichwort "IMU". Ich würde auf jeden Fall SPI benutzen da I2C erheblich langsamer ist. Wenn I2C nicht reicht hat man verloren. Wenn man den SPI nicht ausreizen muss macht das nichts, den kann man dann auch immer noch langsamer takten.
Dominik S. schrieb: > Die Lage musst du daraus natürlich selber berechnen. Aha, ich dachte, das macht die IMU an besten selbst?! Der der MPU9150/MPU9250 hat einen internen DMP: Um den Host-Prozessor von der Sensorfusion vom zu entlasten, lädt die folgende Bibliothek die Firmware hoch, die Quaternionen aus den Sensor-Daten erzeugt: https://developer.mbed.org/users/p3p/code/MPU9150_DMP/ Aber ob das funktioniert, habe ich noch nicht ausprobiert. Ich bin noch nicht dazu gekommen.
Hallo, behalte deine Genauigkeitsanforderungen im Auge. Um irgendwelche sinnvollen Ergebnisse zu erhalten wirst du um ein regelmäßiges Stützen der Sensordaten nicht herumkommen. Nur zur Info: Dein BMX0055 hat ein Nullpunktsfehler von 1° pro Sekunde. Selbst wenn du das durch entsprechende Kompensation (Temperatur und Mondphasenabhängig) im Griff hast kommt noch das Rauschen dazu. Ein Stichwort wäre auf jedenfall der Kalmannfilter. Es gibt natürlich auch genauere Sensoren, aber die erfordern auch einen größeren Geldbeuetel. >1000€ (Faserkreisel) Gruß Peter
Julian G. schrieb: > In diesem Gebiet habe ich leider wenig (bzw. garkeine) Erfahrung, sodass > ich nicht weiß, welche weiteren Teile bzw. Arbeitssschritte von Nöten > sind, um die Daten des Sensors am PC auslesen zu können (sprich Bus > etc.). Du brauchst zunächst den/die Sensor/-en auf einem Experimentierboard (z.B. ebay 310670112244, 161299143883 o.ä.) und ein Mikrocontrollerboard idealerweise mit USB-Schnittstelle. Damit kann man ohne Probleme beim Aufbau erstmal Erfahrungen sammeln und die Software testen. Aufgabe des µC ist es, die Sensordaten mit der von dir gewünschten Rate mit Hilfe eines von dir zu schreibenden Programmes auszulesen, ggf. zu filtern und zum PC zu übertragen. Auf dem PC wird dann noch ein Programm benötigt, dass die Daten z.B. vom VCOM-Port liest, ggf. weiter auswertet und damit irgendetwas anstellt.
Dominik S. schrieb: > > Nachtrag: > Die Gehäuse dieser Sensoren sind mikroskopisch :) Das auch im Hinterkopf > behalten. Das stimmt wohl. Ich glaube die vorgefertigte Version auf dem Experimentierboard von Wolfgang ist für meine Bedürfnisse sehr gut geeignet. Peter (Gast) schrieb: > > Nur zur Info: Dein BMX0055 hat ein > Nullpunktsfehler von 1° pro Sekunde. Selbst wenn du das durch > entsprechende Kompensation (Temperatur und Mondphasenabhängig) im Griff > hast kommt noch das Rauschen dazu. Ein Stichwort wäre auf jedenfall der > Kalmannfilter. Danke für den Tipp. Zufällig beschäftigt sich ein Kollege genau mit diesem Kalmannfilter. Das trifft sich ja gut. Was gibt es bei der Wahl eines Microcontoller Board zu beachten? Ich nehme an, dass ich nicht irgendein beliebiges Board nehmen kann. Und schließe ich das Board direkt über die USB-Schnittstelle an den PC an oder benötige ich noch weitere Hardwarekomponenten? Beste Grüße Julian
Julian G. schrieb: > Was gibt es bei der Wahl eines Microcontoller Board zu beachten? Klar, im Grunde geht alles irgendwie, zur Not mit einem SW-UART. Trotzdem ein paar Hinweise, die die Sache vereinfachen könnten: USB: Um sich keine Gedanken über Treiber und USB-Firmware machen zu müssen, einen USB-VCOM-Adapter an den UART des µC anschließen. Den AduinoProMini gibt es bei ebay oder Ali oft im 'bundle' mit so einem Adapter, der AduinoNano hat schon einen on board. I²C: Um Pegelwandler zu vermeiden, den µC mit 3,3V betreiben. Der µC sollte I²C unterstützen. Der 8MHz-AduinoProMini hat z.B. 3,3V. Noch preiswerter ist ein STM8S103F3P6-Board, auch von ebay oder Ali. Ein MSP430-Launchpad ginge z.B. auch, ich hätte noch eins über. SPI: Das geht zwar per SW in der Regel nicht langsamer, es ist aber einfacher, wenn der µC auch SPI unterstützt. Dabei ist wichtig, dass die benötigten (alternativen) Funktionen sich nicht gegenseitig auf einem und dem selben Pin im Wege stehen. Das ist aber meistens kein Problem und bei den o.g. Beispielen auch nicht.
:
Bearbeitet durch User
Wichtige Frage: Wie willst Du debuggen? Mit Serial.print()? Dann wäre ein zweiter UART gut. Oder im Single-Step-Betrieb und mit Breakpoints? Dann wäre ein ST-Link-Clone oder ein Launchpad preiswerter als ein AVR-ICD-Adapter. Alternativ ginge auch ein STM32F4-Nucleo-Board.
:
Bearbeitet durch User
Wenn ich für einen Sensor auf dem Experimentierboard und einem dazu gehörigen Mikrocontrollerboard entschieden habe, muss ich es irgendwie noch schaffen, vom PC aus mit dem Sensor zu kommunizieren. Am Ende sollen mir die Daten in LabVIEW zur Weiterverarbeitung zur Verfügung stehen. Wenn ich das noch schaffen würde, sollten alle Sorgen aus der Welt geschafft sein. Beste Grüße, Julian
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.