Objekterkennung mit Ultraschall mit Matlab/Simulink und EV3

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Mike Westhoff

Betreuer: Prof. Schneider

→ zurück zum Hauptartikel: Signalverarbeitende Systeme SoSe2017

Aufgabenstellung

Im Fach Signalverarbeitende Systeme soll, als Semesterbegleitende Aufgabe, ein Lego Mindstorms Roboter konstruiert werden, der bei Objekterkennung innerhalb eines kritischen Bereichs eine Vollbremsung vollzieht. Bei dem Roboter handelt es sich um einen Lego Mindstorms EV3. Die Objekterkennung wird mittels eines Ultraschallsensors (SRF 05) umgesetzt. Der EV3-Roboter soll solange geradeaus fahren, bis dieser ein Objekt erkennt und vor diesem im Abstand von 5 cm anhalten (Vollbremsung). Als Software darf Matlab oder Simulink verwendet werden. Die Dokumentation der Vorgehensweise und Ergebnisse erfolgt im vorliegenden Wiki-Artikel. Zusätzlich ist ein Video zu erstellen, welches die Funktionsweise darstellt.

Vorstellung des Sensors

Technische Daten

Tabelle 1: Technische Daten SRF05 [1]

Betriebsspannung 5 V
Betriebsmode Auslöse-Pin und Echo-Pin
Stromaufnahme nur 4 mA
Ultraschallfrequenz 40 kHz
Maximale Reichweite 4 m
Minimale Reichweite 1 cm
Größe 43 mm x 20 mm x 17 mm
Abbildung 1: Sensor Vorderansicht [2]
Abbildung 2: Sensor Rückansicht [3]


Auf der Abbildung 1 ist in der Vorderansicht links der Sender und rechts der Empfänger des SRF05 zu sehen. Die Abbildung 2 zeigt die möglichen Anschlüsse bzw. Pins zur Kontaktierung.

Funktionsweise Sensor

Der Ultraschallsensor ist so konzipiert, dass dieser die Entfernung zu einem Objekt mittels Schall misst. Der ausgesendete Schall benötigt zwischen dem Aussenden und der Reflexion des Signals eine bestimmte Zeit. Aus der Zeitdifferenz wird mittels einer Umrechnung ein Distanzwert in cm berechnet (Digitale Vorverarbeitung). Der Distanzwert gibt die Entfernung zwischen dem Sensor und dem Objekt an. Der Ultraschallsensor SRF05 von Devantech besteht aus zwei Grundbausteinen, dem Sender und Empfänger. Der Sender arbeitet dabei vergleichsweise wie ein Lautsprecher und der Empfänger wie ein Mikrophon. Dementsprechend besitzen beide Bauteile jeweils eine Membran zum Senden, als auch zum Empfangen von Signalen. Es ist weiter anzunehmen, dass der Ultraschallsensor mit dem piezoelektrischen Effekt arbeitet, jedoch konnte dies nicht von dem Sensor – Hersteller bestätigt werden. Insgesamt besitzt der Ultraschallsensor wie in Abb. zu sehen vier Anschlüsse. Neben der Spannungsversorgung (5V) und dem Masseanschluss (GND), gibt es einen Trigger-Pin und einen Echo-Pin. Zu Beginn sorgt ein Auslöseimpuls dafür, dass der Trigger-Pin auf „high“ gesetzt wird. Der Ultraschallsensor generiert nach dem Auslösesignal eine Ultraschallwelle. Diese Schallwelle hat eine Frequenz von 40kHz und acht Perioden. Nach der Aussendung des Signals wird der Echo-Pin solange auf „high“ gesetzt bis der erste reflektierte Ultraschallimpuls empfangen wird. Das Echo-Signal gibt demnach an, wie viel Zeit der Ultraschall benötigt, um das vor ihm liegende Objekt zu erreichen und durch Reflexion wieder zum Sensor zurück zu gelangen. Der Echo-Pin wird nach dem Empfang wieder auf „low“ gesetzt. Die Dauer zwischen dem Aussenden und Empfangen kann bei Objekterkennung zwischen 100µs und 25ms betragen.

Abbildung 3: SRF05 Zeitverlauf [4]
















Warum wird eine Ultraschallfrequenz mit 40kHz verwendet?

Hersteller: „40 khz is an optimum point of range and sensitivity, the receiver is 40khz resonant so other frequencies won't pass into the circuit, so no need for band pass filtering.” Die Ultraschallfrequenz mit 40kHz ist ein optimaler Punkt bzgl. Reichweite und Empfindlichkeit. Bei dieser Resonanzfrequenz hat der Empfänger ebenfalls kein Problem mit Hintergrundgeräuschen bzw. anderen Frequenzen, die zu Störungen führen könnten. Somit gibt es keine Notwendigkeit für entsprechende Filter.


Wie wird mit dem Arduino die Zeit gemessen?

pulseIn() Mit dem “pulse” Befehl können sowohl “high” als auch “low” Signale an einem Pin eingelesen werden. Mit dem Trigger Impuls von 10 μs wird die Entfernungsmessung gestartet. Nach der Aussendung der Ultraschallwelle, wird der pulseIn() Pin (Echo_Pin) auf High gesetzt. Die Zeitmessung startet und dauert solange an, bis der Sensor ein reflektiertes Echo erkennt. Der pulseIn() wird wieder auf low gesetzt und die Zeitmessung stoppt. Die Ausgabe der Zeitmessung erfolgt in Mikrosekunden.


Warum sind auf dem SRF05 Zeit Diagramm Leerlaufzeiten eingezeichnet?

Hersteller: „[…] there is also a slight delay for slower controllers (from some years back) to start there timing following the trigger pulse.” Nach heutigen Standards (bzw. leistungsfähigen Mikrocontrollern) ist daher auch die nachfolgende Darstellung zulässig.

Abbildung 2: Sensor Rückansicht

Quellen

!!!Für SVN Ordner sind die entsprechenden Zugriffsrechte erforderlich!!!

→ zurück zum Hauptartikel: Signalverarbeitende Systeme SoSe2017