Gyroskop mit Matlab/Simulink
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 welchen Matlab/Simulink die Sensordaten auswerte kann.
Verkabelung
EV3-Gyrosensor-45505
Bei dem in diesem Projekt behandelten Gyro Sensor handelt es sich um eine Entwicklung von Lego selbst. Er stammt nicht wie viele Sensoren vom NXT Roboter vom Unternehmen HiTechnics. Der Sensor ist als ein digitaler Sensor entwickelt worden, dieser gibt also kein analoges Signal aus welches vom EV3 ausgewertet wird. Der eigentliche Gyro Sensor besteht aus drei Einheiten, eines Spannungswandlers, eines 8 Bit Microkontrollers und des eigentlichen Gyroskop. Die Messwerte werden im Sensor selbst berechnet und gefiltert, kommuniziert wird über die UART Schnittstelle. Hierrüber übermittelt der Sensor selbstständig seine Messwerte.
Spannungswandler
Versorgt wird der Gyro Sensor im normalen Fall vom EV3 Roboter mit einer Spannung von 4.4V, dies ist Einheitlich und wird vom EV3 nicht variiert. Der Microkontroller und das Gyroskop selbst im Sensor benötigen aber eine Eingangsspannung von 3.3V. Der Spannungswandler besitzt die Aufgabe die Eingangsspannung des Sensors die vom EV3 Roboter gespeist wird, auf die benötigten Arbeitsspannungen des Gyroskop und des Microkontrollers zu wandeln. Beim Spannungswandler handelt es sich um den XC6201P33 welcher eine maximale Eingangsspannung von 12V wandeln kann, aus diesem Grund ist es möglich den Sensor mit der Spannung des USB Ports des Computers zu versorgen, welche 5V beträgt.
Datenblätter zum Spannungswandler sind im SVN Ordner für eine detailliertere Einsichtsmöglichkeit abgelegt.
Microkontroller
Wie bereits erwähnt handelt es sich beim Gyro Sensor für den EV3 Roboter um einen digitalen Sensor, alle Messwerte werden im "Sensor" verarbeitet. Diese Aufgabe übernimmt der Microkontroller des Unternehmens ST Elektronics, es handelt sich um das Modell STM8S103F3. Bei diesem Handelt es sich um einen 8 bit Microkontroller welcher mit einem Takt von 16 MHz getaktet ist. Die genauen Spezifikationen sind in der Tabelle 2 nachzusehen oder im Datenblatt im SVN Ordner. Zu den Aufgaben des Microkontroller gehört es mit dem integrierten A/D Wandler das analog Signal welches das Gyroskop ausgibt zu wandeln und zu Filtern. Neben dieser Aufgabe ist es die Aufgabe des Microkontroller die Kommunikation mit dem EV3 durchzuführen und diesem die Messwerte über die UART Schnittstelle zu senden. Der Aufbau als Blockbild des verwendeten Microkontroller ist in der Abbildung 2 zu sehen.
Einehit | Merkmal | |
---|---|---|
Core | 16 Mhz advanced STM8 core mit Harvard architektur | |
Speicher | ||
Programm Speicher | 8 Kbyte Flash | |
Data Speicher | 640 byte EEPROM | |
Spannungsversorgung | 2.95 V - 5.5 V | |
Kommunikation | ||
UART | SmartCard, IrDA, LIN master mode | |
SPI | 8 Mbit/s | |
I2C | 400 kbit/s |
Analog digital Wandler
Um das Gyroskop welches ein analoges Signal ausgibt einlesen zu können, bedarf es einem analog zu digital Wandler. Diese Aufgabe wird von dem im Sensor verbauten 8 Bit Microkontroller übernommen, dieser wandelt das eraltende analog Signal in einen digitalen Wert, welchen er auch gleichzeitig versendet. Aufgelöst wird das analoge Singnal in ein 10 Bit digitales Signal
Kommunikation
Aus dem Grund das es sich beim EV3 Gyro Sensor um einen digitalen Sensor handelt und diese dem EV3 übermittelt werden müssen, bedarf es einer Kommunikation. Der im Sensor verbaute Microkontroller bietet hierzu mehrere Möglichkeiten. Welche in der Tabelle 1 aufgeführt sind. Gewählt wurde von Lego die UART Schnittstelle um die Kommunikation umzusetzen. Mögliche übertragungen finden vom EV3 zm Sensor und auch in der anderen Richtung statt. Der EV3 nutzt die Schnittstelle um abzufragen um welchen Sensor es sich handelt, oder um den Sensor in einen bestimmten Modus zu setzen. Der Sensor antwortet auf diese Anfraen, selbst stellt dieser keine Abfragen an den EV3. Finden keine Abfragen des EV3 ab, nutzt der Sensor den Microkontoller, und damit die UART Schnittstelle, um selbstständig die Messwerte an den EV3 zu übermitteln. Genauer wird au die Kommunikationsabfolgen im Kapitel !!! eingegangen.
Gyrosensor
Beim verbauten Gyroskop handelt es sich um das ISZ-655, dieses ist ein einachsiges Gyroskop welches um die Z-Achse misst. Bei Gyroskopen ist es ein häufiges Problem das die Messung mit einem Drift des Messwerte behaftet sind. Diese störung muss herraus gerechnet werden, möglich ist dies z.B. mit der kopplung eines Beschleunigungssensor. Beide Sensordaten können so z.B. in einem Kalmanfilter fusioniert werden und die Störung herrausgerechnet. Dieses Verfahren ist je nach umsetzung Rechenaufwenig, was einen Grund für den Verzicht dieses Verfahrens im Fall dieses Gyrosensor darstellen könnte.