Gyroskop mit Matlab/Simulink: Unterschied zwischen den Versionen
Zeile 65: | Zeile 65: | ||
=== Kommunikation des Gyrosensor === | === Kommunikation des Gyrosensor === | ||
=== Implementation des | === "Implementation" des EV3 auf dem Arduino === | ||
== Kommunikation Arduino und PC Matlab Software == | == Kommunikation Arduino und PC Matlab Software == |
Version vom 1. Mai 2018, 22:48 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 welchen Matlab/Simulink die Sensordaten auswerte kann.
Verkabelung
Bei der ausgewählten Variante musste einmal der PC mit dem Arduino und der Arduino mit dem EV3 Gyroskop verbunden werden.
Die Verbindung von Arduino und PC wurde über die Serielle Schnittstelle des Arduino umgesetzt. Hierzu kann das USB Kabel verwendet werden welches ebenfalls für das Code flashen auf den Arduino verwendet wird. Dieses muss in die mini USB Buchse des Arduino gesteckt werden und in einen USB Anschluss des PC.
Bei der Verbindung vom EV3 Gyroskop und dem Arduino gab es keine Möglichkeit einer versteckung. Buchsen Anschlüsse für den von Lego verwendeten Stecker sind nur sehr schwer erhältlich, so wurde sich gegen eine Buchse entschieden. Es wurde das Kabel was für die Verbindung von EV3 Gyroskop und EV3 verwendet wird durchgeschnitten, um so an die enzelnen Adern im Kabel direkt zu gelangen. Die Verkabelung wurde nach der Tabelle 1 vorgenommen. Am Arduino können beliebige Pins verwendet werden, sie müssen nur Serielle Kommunikation unterstützen.
Ader im EV3 Kabel | Belegung im Sensor | Anschluss an Arduino |
---|---|---|
Pin1 Weiß | GND | GND |
Pin2 Schwarz | Nicht angeschlossen | Nicht angeschlossen |
Pin3 Rot | GND | GND |
Pin4 Grün | Vin | 5V |
Pin5 Gelb | RX | |
Pin6 Blau | TX |
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.