Gyroskop mit Matlab/Simulink: Unterschied zwischen den Versionen
Zeile 181: | Zeile 181: | ||
|- | |- | ||
| | | | ||
| | | 20° | ||
| | | | ||
| | | |
Version vom 29. Juni 2018, 08:48 Uhr
Autor: Philipp Tewes
Betreuer: Prof. Dr.-Ing. Ulrich Schneider
Sensor: EV3-Gyrosensor-45505
EV3 Connect Box
Für die Auslesung des Lego EV3 Gyroskop wurde, wie in der Einleitung bereits erwähnt, die Möglichkeit eines Arduinos verwendet. Dies bietet den Vorteil, dass für die Aufgabe des Datentransfers vom Sensor zum PC kein teurer EV3 Baustein verwendet werden muss. Denn wird die hohe Funktionalität eines EV3 Bausteins, welche einen hohen Preis resultieren lässt, für diese Aufgabe nicht benötigt. Es wurde unter Verwendung eines Arduino Nano eine Connect Box für EV3 Sensoren entwickelt. Diese bietet die Funktionalität, das EV3 Sensoren prinzipiell mit jede PC Anwendung ausgelesen werden können. Alle Lego EV3 Sensoren nutzen die bereits vorgestellte Kommunikation. Die Connect Box wickelt diese Kommunikation mit dem Sensor vollständig ab, die Anwendung auf dem PC kann dadurch Infos zum Sensor oder auch Messdaten des Sensors Auslesen. Die Connect box bietet ein übersichtliches Kommunikationsprotokoll über welche die Kommunikation von PC und Connect Box abgewickelt wird.
Kommunikation mit der EV3 Connect Box
Das entwickelte Kommunikationsprotokoll ist in der Tabelle 2 zu sehen, diese findet zwischen dem PC und der EV3 Connect Box statt. Hierrüber könnte mit der EV3 Connect Box mit jedem beliebigen Gerät kommuniziert werden.
Befehl | Befehls Information | |
---|---|---|
's' | Sensor ID auslesen | |
'm' | Sensor Modus auslesen | |
'0' - '6' | Sensor in Modus z.B. 0 versetzen | |
'r' | Sensor Reset durchführen | |
'f' | Connect Box in den Daten-Modus versetzen | |
'd' | Messdaten des Sensors anfordern |
Wird die EV3 Connect Box durch den Anschluss eines USB Kabels mit Spannung versorgt, startet diese Damit eine Verbindung zu einem EV3 Sensor aufzubauen. Wurde noch kein Sensor erkannt leuchtet die Status LED der EV3 Connect Box rot, wurde ein Sensor erkannt leuchtet die gelbe und die grüne LED. Ab diesem Zeitpunkt kann eine Verbindung mit dem PC zur EV3 Connect Box hergestellt werden. Wird die im folgenden Kapitel vorgestellte speziell für die EV3 Connect Box entwickelte Windows Anwendung verwendet muss auf solche Details nicht geachtet werden. In diesem Fall wird alles Automatisch für den Nutzer abgewickelt. Wurde die EV3 Connect Box durch die Anwendung erkannt und in den Datenmodus versetzt leuchtet nur noch die grüne LED, werden aktiv Daten ausgetauscht pulsiert die grüne LED.
Arduino der EV3 Connect Box
Beim verwendeten Arduino wurde sich für den Arduino Nano entschieden. Dieser besitzt nahezu dieselben Funktionalitäten und Leistungen wie der Arduino Uno, bietet aber eine kompaktere Bauform an. Um den Gyrosensor oder andere Komponenten anschließen zu können, stehen insgesamt 14 I/O Pins, wovon acht analoge Eingänge sind, zur Verfügung. Die Spannungsversorgung für den Arduino wird durch das USB Kabel sichergestellt, der Gyrosensor bezieht einen Teil davon für die eigene Versorgung. Verwendet wurden insgesamt acht Pinns des Arduino, sechs davon für die Schaltung der LED's und zwei für die Serielle Kommunikation mit dem EV3 Sensoren.
Aus dem Grund, dass der verwendete Arduino nur eine hardwaretechnisch umgesetzte serielle Schnittstelle aufweist, musste eine weitere, durch die für Arduinos zur Verfügung stehende Software Serial, serielle Schnittstelle in Software hinzugefügt werden. Die in Hardware vorhandene serielle Schnittstelle wird für die Kommunikation mit dem PC verwendet, die in Software umgesetzte für die Kommunikation mit dem Sensor. Hierbei wäre keine variation möglich, denn ist die in Hardware umgesetzte Serielle Schnittstelle mit der USB Buchse verbunden.
Einheit | Merkmal | |
---|---|---|
Core | 16 Mhz ATmega328 | |
Speicher | ||
Flash-Speicher | 32 KB | |
SRAM | 2 KB | |
EEPROM | 1KB | |
Spannungen | ||
Betriebsspannung | 5 V | |
Empfohlene Eingangsspannung | 7 V - 12 V | |
Maximale Eingangsspannung | 20 V | |
Kommunikation | ||
UART | Ja | |
I2C | Ja | |
I/O-Pins | 14, davon 6 PWM und 8 analoge Eingänge |
Verbindungen der EV3 Connect Box
Um vollstanädig funktionsfähig zu sein, muss die EV3 Connect Box mit einem EV3 Sensor und einem PC Verbunden werden. Ein Beispiel für die Verbindung ist in der Abbildung 17 zu sehen, der USB Hub ist mit einem PC verbunden.
Die Verbindung von Connect Box 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 der Connect Box gab es die Möglichkeit eines verstecken. Es wurde eine baugleiche Buchse verwendet, wie sie an einem Lego EV3 Baustein verwendet wird, hierdurch können Sensoren mit den originalen Kabeln von Lego mit der Connect Box verbunden werden. Die Verkabelung nach der Tabelle 3 ist hierdurch sichergestellt. Die interne Verbindung von Buchse und Arduino wurde durch Kabel mit einem geringen Querschnitt realisiert, um eine auf lange Zeit sichere Kontaktierung sicher zu stellen, wurden diese verlötet.
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 | 14 |
Pin6 Blau | TX | 15 |
EV3 Connect Box Anwendung
Eine möglichkeit die EV3 Connect Box zu verwenden, ist die für diese entwickelte PC Anwendung. Diese wurde mit der Software Matlab entwickelt mit zu hilfenahme von GUIDE, wodurch es möglich ist grafische Oberflächen zu erstellen. Insgesamt gibt es zwei Matlab Skripts, einmal eins mit den Callback Funktionen für die grafische Oberfläche und ein weiters für die Steuerung der GUI und die Kommunikation mit dem Sensor. Prinzipiell wurde die EV3 Connect Box sowie die EV3 Connect Box Anwendung so entwickelt, das sich hiermit alle EV3 Sensoren Auslesen und Konfigurieren lassen, bisher ist jeweils nur der Case für den EV3 Gyro Sensor implementiert, weitere Sensoren können dadurch unkompliziert hinzugefügt werden.
Die grafische Oberfläche ist in der Abbildung 18 zusehen. Im Abschnitt des serial Port kann im drop down Menü der COM Port ausgewählt werden, an welchem die EV3 Connect Box angeschlossen wurde. Wurde das Programm gestartet, werden alle COM Ports aufgelistet an welche ein Gerät angeschlossen wurde. Die Aktualisierung des drop down Menü wird durchgängig durchgeführt, ein schließen und öffen der Anwendung ist dadurch nicht notwendig, wenn der Sensor erst zur Laufzeit der Anwendung verbunden wurde. Nach der Auswahl des korrekten COM Ports kann die Connect Box durch den button "Connect" verbunden werden. Im Abschnitt Working mode muss hierraufhin der Arbeitsmodus des Sensors ausgewählt werden, ebenfalls kann ein Data logging aktiviert werden. Wird das Data logging aktiviert, wird eine Textdatei im Verzeichnis des Programms erstellt in welchem alle Messwerte geschrieben werden, so sind die Daten auch auf längere Zeit verfügbar. Die Auslesung des Sensors beginnt wenn nach Auswahl des Working mode mit confirm bestätigt wird. Daraufhin werden Messwerte von der Anwendung bei der Connect Box abgefragt und im Plot visualisiert, ebenfalls wird der aktuelle Messwert dezimal angezeigt. Aus dem Grund, dass die Plots in der Anwendugng nur eine begrenzte Größe aufweisen, kann per Bigger plot ein beliebig großer Plot aktiviert werden. In den Plots werden auf der X-Achse immer die letzten 100 Messwerte Angezeigt. Im Fall des Gyrosensors können zwei Messwerte zur selben Zeit ausgelesen und in der Anwendung visualisiert, sowie im Log File abgespeichert werden.
Die Anwendung kann durch das erstellte .m-file auf jedem PC verwendet werden, auf welchem die Software Matlab installiert ist. Um ebenfalls eine Nutzung auf PCs zu ermöglichen, auf welchen die Software Matlab nicht verfügbar ist, wurde eine .exe Anwendung mit dem Matlab Application Compiler erstellt. Auf dem Ziel PC muss bei dieser Variante eine Matlab Laufzeit umgebung installiert werden, anschließend ist auf diese weise eine Verwendung möglich.
Datenverarbeitung
Wahrer Wert | Gemessener Wert aus 4 Messungen | Absolute Abweichung | Relative Abweichung in % | Arithmetisches Mittel | Standard- abweichung | Mess- unsicherheit | Vertrauens- intervall | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
Soll Winkel | Min. | Max | Min | Max | Min | Max | |||||
5° | ± | ||||||||||
10° | ± | ||||||||||
20° | ± | ||||||||||
30° | ± | ||||||||||
40° | ± | ||||||||||
50° | ± | ||||||||||
60° | ± | ||||||||||
70° | ± |