Gyroskop mit Matlab/Simulink: Unterschied zwischen den Versionen
Zeile 32: | Zeile 32: | ||
Wird der Gyrosensor mit dem EV3 Verbunden, beginnt dieser damit sich beim EV3 als Gyrosensor "anzumelden". Wurde dies erfolgreich Durchgeführt übermittelt der Gyrosensor seine möglichen Messmöglichkeiten und Wertebereiche der gesendeten Messwerte. Nach dem Abschluss dieses Anmeldevorgangs startete der Gyrosensor mit der Übermittlung von Messwerten an den EV3. Es kann zwischen drei verschiedenen Modi gewechselt werden. Der Default Modus ist der Gyro Winkel Modus, hierbei wird kontinuierlich gemessen und die Winkelgeschwindigkeit akkumuliert, dies wird übersetzt in einen relativen Winkel. Der relative Winkel bezieht sich auf die Drehung seit dem letzten Zurücksetzen des akkumulierten Winkels. Wird der Gyrosensor zu langsam gedreht, oder schneller als die maximale Geschwindigkeit von 440 Grad/Sekunde, wird die relative Winkelmessung ungenau. Neben diesem Modus gibt es den Gyro Modus, bei diesem wird die Gierrate kontinuierlich bestimmt. Wenn sich der Sensor nicht dreht, ist dieser Wert Null. Die schnellste Rotationsgeschwindigkeit, die der Sensor bestimmen kann, beträgt 440 Grad/Sekunde. Der dritte Modus des Gyrosensors ist der Gyro und Winkel Modus, bei welchem die identischen Messungen wie in den zuvor behandelten Modi durchgeführt werden. Der Unterschied liegt darin das beide Messwerte gleichzeitig an den EV3 versendet werden. | Wird der Gyrosensor mit dem EV3 Verbunden, beginnt dieser damit sich beim EV3 als Gyrosensor "anzumelden". Wurde dies erfolgreich Durchgeführt übermittelt der Gyrosensor seine möglichen Messmöglichkeiten und Wertebereiche der gesendeten Messwerte. Nach dem Abschluss dieses Anmeldevorgangs startete der Gyrosensor mit der Übermittlung von Messwerten an den EV3. Es kann zwischen drei verschiedenen Modi gewechselt werden. Der Default Modus ist der Gyro Winkel Modus, hierbei wird kontinuierlich gemessen und die Winkelgeschwindigkeit akkumuliert, dies wird übersetzt in einen relativen Winkel. Der relative Winkel bezieht sich auf die Drehung seit dem letzten Zurücksetzen des akkumulierten Winkels. Wird der Gyrosensor zu langsam gedreht, oder schneller als die maximale Geschwindigkeit von 440 Grad/Sekunde, wird die relative Winkelmessung ungenau. Neben diesem Modus gibt es den Gyro Modus, bei diesem wird die Gierrate kontinuierlich bestimmt. Wenn sich der Sensor nicht dreht, ist dieser Wert Null. Die schnellste Rotationsgeschwindigkeit, die der Sensor bestimmen kann, beträgt 440 Grad/Sekunde. Der dritte Modus des Gyrosensors ist der Gyro und Winkel Modus, bei welchem die identischen Messungen wie in den zuvor behandelten Modi durchgeführt werden. Der Unterschied liegt darin das beide Messwerte gleichzeitig an den EV3 versendet werden. | ||
<br/> | <br/> | ||
<br/> | <br/> |
Version vom 5. Mai 2018, 07:31 Uhr
Autor: Philipp Tewes
Betreuer: Prof. Dr.-Ing. Ulrich Schneider
Sensor: EV3-Gyrosensor-45505
Für die Lehrveranstaltung Signalverarbeitende Systeme des Studiengangs Business and Systems Engineering im SoSe 2018 war es die Aufgabe einen Gyro Sensor des Lego EV3 Roboter mit Matlab/Simulink auszulesen und seine Messwerte zu verarbeiten. Verwendet werden konnten dazu zwei Variationen, eine Möglichkeit war es, den EV3 Sensor an ein EV3 zu Verbinden und diesen dann mit dem PC, auf welchem Matlab die Werte verarbeitet auszulesen. Die andere Möglichkeit welche in dem Fall des Gyso Sensors verwendung fand, war es den Sensor an einen Arduino anzuschließen, dieser Kommuniziert mit dem PC auf welchem Matlab/Simulink die Sensordaten auswerte kann.
Lego Mindstorms
Der Lego Mindstorms EV3 Roboter ist der dritte Roboter welcher von Lego entwickelt wurde. Die erst Entwicklung war der RCX welcher im Jahr 1998 erschienen ist. Diese Variante ist von der Leistungsfähigkeit den neueren Entwicklugen deutlich unterlegen, bot aber schon drei Eingänge und 3 Ausgänge an. Beim Aufbau der Systeme hat Lego mit diesem begonnen eine zentrale Recheneinheit mit externen Motoren und Sensoren zu ergänzen. Auf diese weise sind sehr flexible Konstruktionen möglich. Beim RCX wurde die Konstruktion der Bauteile auf die Art vorgenommen, das diese mit dem normalen Lego System kompatiebel sind. Für die Verbindung der Komponenten trifft dies ebenfalls zu, diese werden durch einen Lego "Block" versteckt (Abb. 3).
Mit der Lego Mindstorms NXT Serie welche im Jahr 2006 auf dem Markt erschienen ist, gab es deutliche Veränderungen gegenüber des RCX Roboters und seiner Anbauteile (Abb. 2). Die Integrationsmöglichheit in das normale Lego Stecksystem wurde auf das System von Lego Technik umgestellt. Bei den Sensoren wurden alle neu entwickelt ohne eine Abwärtskompatibilität zu bieten. Die NXT Serie bot neben analogen Sensoren erstmals digitale Sensoren welche die Messwerte intern bestimmen und per BUS-System an den NXT senden. An vielen Schulen und Universitäten fand der Lego NXT Abnehmer, hier wurde dieser für die Einführung in Programmierung verwendet. Bei den Verbindungen der Bauteile gab es gegenüber des RCX ebenfalls eine nicht Abwärtskompatibile Änderung, die Verbindung wurde von der Lego "Block" Verbindung zu einer Art RJ12 Stecker umgestellt.
Die aktuellste Entwicklung ,aus 2013, der Lego Mindstorms Serie ist der EV3 (Abb. 1). Dieser bietet ebenfalls wie der NXT eine integrationsmöglichkeit in das Lego Technik System. Bei dieser Entwicklung wurde ein größerer Wert auf Abwärtskompatibilität gesetzt. Dies gillt für die Sensoren wie für die Kabelverbindungen. Bei den Schnitstellen gab es eine Erweiterung auf die Möglichkeit 4 Motoren mit dem EV3 Verbinden zu können. Neben dieser Änderung wurde der EV3 mit mehr Tasten und stärkerer Rechen Hardware ausgestattet, sowie mehr Speicherplatz. Die digitalen Sensoren übermitteln die Messwerte beim EV3 via UART welches zu der I2C des NXT eine weitere Veränderung darstellt.
Lego EV3 Gyro-Sensor
Bei dem Lego Gyrosensor (Abb. 1) handelt es sich um einen digitalen Sensor um Drehungen um die Hochachse ermitteln zu können. Diese kann bis zu einer Geschwindigkeit von 440 Grad/Sekunde gemessen werden. Die Messabweichung liegt in einem Bereich von Plus/Minus 3 Grad bei einer Drehung um 90 Grad. Die Bestimmung der Drehrate um andere Achsen ist mit diesem Sensor nicht möglich, es können nur Drehungen um die Hochachse (z-Achse) gemessen werden.
Bei der Kommunikation mit dem EV3 wurde auf die UART Schnittstelle zurückgegriffen, der Sensor beinhaltet einen 8 Bit Microkontroller welcher für die Datenverarbeitung und Datenversendung zuständig ist. Der Microkontroller übermittelt selbstständig 1000 Messwerte in der Sekunde. Der Sensor versendet Messwerte wann immer diese eine Änderung aufweisen, neben dieser selbstständigen Übermittlung ist es ebenfalls möglich das der EV3 den aktuellen Messwert abfragen kann.
Wird der Gyrosensor mit dem EV3 Verbunden, beginnt dieser damit sich beim EV3 als Gyrosensor "anzumelden". Wurde dies erfolgreich Durchgeführt übermittelt der Gyrosensor seine möglichen Messmöglichkeiten und Wertebereiche der gesendeten Messwerte. Nach dem Abschluss dieses Anmeldevorgangs startete der Gyrosensor mit der Übermittlung von Messwerten an den EV3. Es kann zwischen drei verschiedenen Modi gewechselt werden. Der Default Modus ist der Gyro Winkel Modus, hierbei wird kontinuierlich gemessen und die Winkelgeschwindigkeit akkumuliert, dies wird übersetzt in einen relativen Winkel. Der relative Winkel bezieht sich auf die Drehung seit dem letzten Zurücksetzen des akkumulierten Winkels. Wird der Gyrosensor zu langsam gedreht, oder schneller als die maximale Geschwindigkeit von 440 Grad/Sekunde, wird die relative Winkelmessung ungenau. Neben diesem Modus gibt es den Gyro Modus, bei diesem wird die Gierrate kontinuierlich bestimmt. Wenn sich der Sensor nicht dreht, ist dieser Wert Null. Die schnellste Rotationsgeschwindigkeit, die der Sensor bestimmen kann, beträgt 440 Grad/Sekunde. Der dritte Modus des Gyrosensors ist der Gyro und Winkel Modus, bei welchem die identischen Messungen wie in den zuvor behandelten Modi durchgeführt werden. Der Unterschied liegt darin das beide Messwerte gleichzeitig an den EV3 versendet werden.