Objekterkennung mit rotierenden Infrarotsensor mit Matlab/Simulink und EV3: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 11: Zeile 11:


== Primärsensor ==
== Primärsensor ==
[[Datei:Sensor1.jpg|thumb|right|thumb|Abb.2: Lego Infrarot Sensor [7]]]
[[Datei:Sensor1.jpg|thumb|right|thumb|Abb.2: Lego Infrarot Sensor [8]]]
Als Sensor für die Distanzmessung kommt der Lego EV3 Infrarot Sensor zum Einsatz.
Als Sensor für die Distanzmessung kommt der Lego EV3 Infrarot Sensor zum Einsatz.
Dieser Sensor hat drei Funktionen:
Dieser Sensor hat drei Funktionen:
Zeile 27: Zeile 27:


===Funktionsweise des Sensors===
===Funktionsweise des Sensors===
[[Datei:Sensor Schaltplan.jpg|thumb|right|thumb|Abb.2: Lego Infrarot Sensor [8]]]
Der Sensor besteht grundlegend aus zwei Bauteilen. Zum einen besteht der Sensor aus einer infraroten LED und zum anderen aus einer Fotodiode. Die Infrarot-LED sendet einen Infrarotlichtstrahl auf ein Objekt aus. Ein Teil des ausgesendeten Lichtes wird vom Objekt reflektiert und von der Photodiode empfangen. Die Intensität des reflektierten Lichtes ist dabei umgekehrt proportional zum Quadrat der Distanz. Die vom optischen Sensor erzeugten analogen Spannungswerte werden durch den AD-Wandler des Sensors in Digitalwerte umgewandelt. Zudem findet im Mikrocontroller die Vorverarbeitung statt, indem die Werte auf Entfernungswerte von 0-100 normiert werden. Da dieser Sensor nicht nach der Triangulation als Messmethode arbeitet sondern nach der reflektierten Lichtmenge, treten je nach Oberfläche und Farbe des Objektes stark unterschiedliche Entfernungswerte auf. Die höchste Sensibilität hat der eingesetze optische Sensor bei einer Wellenlänge von ca. 900 nm und es wird alle 50 mS eine Messung durchgeführt. Das schließt Störeinflüsse durch Umgebungslicht nahezu aus.  
Der Sensor besteht grundlegend aus zwei Bauteilen. Zum einen besteht der Sensor aus einer infraroten LED und zum anderen aus einer Fotodiode. Die Infrarot-LED sendet einen Infrarotlichtstrahl auf ein Objekt aus. Ein Teil des ausgesendeten Lichtes wird vom Objekt reflektiert und von der Photodiode empfangen. Die Intensität des reflektierten Lichtes ist dabei umgekehrt proportional zum Quadrat der Distanz. Die vom optischen Sensor erzeugten analogen Spannungswerte werden durch den AD-Wandler des Sensors in Digitalwerte umgewandelt. Zudem findet im Mikrocontroller die Vorverarbeitung statt, indem die Werte auf Entfernungswerte von 0-100 normiert werden. Da dieser Sensor nicht nach der Triangulation als Messmethode arbeitet sondern nach der reflektierten Lichtmenge, treten je nach Oberfläche und Farbe des Objektes stark unterschiedliche Entfernungswerte auf. Die höchste Sensibilität hat der eingesetze optische Sensor bei einer Wellenlänge von ca. 900 nm und es wird alle 50 mS eine Messung durchgeführt. Das schließt Störeinflüsse durch Umgebungslicht nahezu aus.  
===Rohsignale des Sensors===
===Rohsignale des Sensors===

Version vom 12. Juni 2017, 08:58 Uhr

Autor: Thorsten Drees
Betreuer: Prof. Dr.-Ing. Ulrich Schneider

Aufgabenstellung

Begleitend zu der Vorlesung „Signalverarbeitende Systeme“ besteht die Aufgabe des Studenten darin, dass ein LEGO Mindstorm Roboter mit EV3 Brick mittels eines Sensors ein Hindernis erkennt und automatisch abbremst. Diese Notbremsung soll erfolgen, sobald sich ein Objekt (Kopierpapierkarton) 20 cm vor dem Roboter befindet. Als Sensor kommt in diesem Projekt ein rotierender LEGO Infrarot Sensor zum Einsatz. Die Programmierung soll in Matlab und/oder Simulink implementiert werden. Zudem ist ein Video zu erstellen, welches die Funktionalität demonstriert.

Projektplan

Zur zeitlichen Planung des Projekts wurde ein Gantt Chart mit MS Project 2016 erstellt. Dieses ist in Abbildung 1 zu sehen.

Abbildung 1: Gantt-Chart

Primärsensor

Abb.2: Lego Infrarot Sensor [8]

Als Sensor für die Distanzmessung kommt der Lego EV3 Infrarot Sensor zum Einsatz. Dieser Sensor hat drei Funktionen: • IR proximity Sensor • IR seeker Sensor • IR remote control Receiver Für dieses Projekt wird der Sensor als „IR proximity Sensor“ eingesetzt. In diesem Modus bestimmt der Sensor eine relative Distanz zu einem vor ihm liegenden Objekt. Als Ausgabe liefert der Sensor einen Wert von 0 (sehr nah) bis 100 (maximale Entfernung). Implementiert ist dieser Sensor als digitaler Sensor. Das bedeutet, dass der Sensor einen kleinen 8-bit Mikrocontroller integriert hat, welcher über den UART-Bus mit dem EV3-Brick kommuniziert.





Funktionsweise des Sensors

Abb.2: Lego Infrarot Sensor [8]

Der Sensor besteht grundlegend aus zwei Bauteilen. Zum einen besteht der Sensor aus einer infraroten LED und zum anderen aus einer Fotodiode. Die Infrarot-LED sendet einen Infrarotlichtstrahl auf ein Objekt aus. Ein Teil des ausgesendeten Lichtes wird vom Objekt reflektiert und von der Photodiode empfangen. Die Intensität des reflektierten Lichtes ist dabei umgekehrt proportional zum Quadrat der Distanz. Die vom optischen Sensor erzeugten analogen Spannungswerte werden durch den AD-Wandler des Sensors in Digitalwerte umgewandelt. Zudem findet im Mikrocontroller die Vorverarbeitung statt, indem die Werte auf Entfernungswerte von 0-100 normiert werden. Da dieser Sensor nicht nach der Triangulation als Messmethode arbeitet sondern nach der reflektierten Lichtmenge, treten je nach Oberfläche und Farbe des Objektes stark unterschiedliche Entfernungswerte auf. Die höchste Sensibilität hat der eingesetze optische Sensor bei einer Wellenlänge von ca. 900 nm und es wird alle 50 mS eine Messung durchgeführt. Das schließt Störeinflüsse durch Umgebungslicht nahezu aus.

Rohsignale des Sensors

Der eigentliche Infrarotsensor, also der optische Sensor (Fotodiode), gibt analoge Spannungswerte aus. Leider war es nicht möglich hierzu eine Kennline des Sensors zu erhalten. Die Rohsignale des fertigen LEGO Infrarotsensors bestehen aus int8 Werten von 0-100. Die Ausgabe erfolgt über den UART-Bus auf pin 5 und 6.

Signalvorverarbeitung

Vorverarbeitung

Analog-Digital-Umsetzer

Umsetzung der analogen Signale

Eingesetzer ADU

Gründe für diesen ADU

Bussystem

Bussystem zwischen Sensor und Mikrocontroller

Funktionsweise des Bussystems

Digitale Signalverarbeitung

Verarbeitungsschritte im Simulink-Modell

Empfindlichkeit des Sensors

Darstellung der Ergebnisse

Fehler in den einzelnen Verarbeitungsschritten

Messunsicherheit und Vertrauensintervall

Lessons Learned

Youtube-Video

Einzelnachweise

[1] https://education.lego.com/de-de/support/mindstorms-ev3/developer-kits Abgerufen am 20.05.2017
[2] http://www.eetimes.com/document.asp?doc_id=1272536 Abgerufen am 25.05.2017
[3] http://www.g9toengineering.com/AllSaints/infraredproximity.htm Abgerufen am 01.06.2017
[4] http://www.vias.org/mikroelektronik/adc_succapprox.html Abgerufen am 01.06.2017
[5] Skript Signalverarbeitende Systeme; Prof. Dr.-Ing. Ulrich Schneider; 2017
[6] https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter Abgerufen am 09.05.2017
[7] http://www.st.com/en/microcontrollers/stm8s103f2.html Abgerufen am 09.05.2017
[8] https://sh-s7-live-s.legocdn.com/is/image/LEGO/45509?$PDPDefault$ Abgerufen am 09.06.2017


→ zurück zum Hauptartikel: Signalverarbeitende Systeme SoSe2017