Infrarot Sensor Sharp 2Y0A21
Der Infrarot Sensor Sharp 2Y0A21 dient zur Messung der Entfernung. Im Gegensatz zum Ultraschall Sensor HC-SR04 wird dabei die Entfernung optisch bestimmt. Ich zeige euch wie ihr diesen Sensor verwendet und wie man die Software zur exakten Bestimmung der Entfernung einstellt.
Infrarot Sensor Sharp 2Y0A21
Ziel meiner aktuelles aktuellen Projekts ist ein autonom agierender Roboter auf Basis eines Raspberry Pi Minicomputers. Dafür benötigt man Abstandsmesser, damit der Roboter Hindernisse erkennt und auf dem Weg ausweichen kann. Bei komplexerer Programmierung sollte er dann auch die Umgebung erfassen können. Ich verwende dabei einen Sharp 2Y0A21 Sensor.
Infrarot Sensor oder Ultraschall Sensor
Bei der Abstandmessung hat man die Qual der Wahl. Im Roboternetz Forum wurde darüber auch diskutiert. Perfekt wäre ein Kombination aus beiden, diesen Weg möchte ich auch gehen. Der Ultraschall Sensor liefert Basiswerte und dient als Backup. Die Messwerte sind kugelförmig und erfassen somit einen recht breiten Bereich. Genauer und punktförmiger sind die Infrarot Sensoren. Diese funktionieren aber meist nur in einem begrenzten Bereich gut und können bei starkem Licht auch gar nicht funktionieren. Der große Vorteil von Infrarot Sensoren ist deren schnellere Messung. Die Lichtgeschwindigkeit ist bekanntlich um ein vielfaches schneller als die Schallgeschwindigkeit, dieser Vorteil wirkt sich beim Infrarot Sensor Sharp 2Y0A21 auf die Messgeschwindigkeit aus.
Hardware
Für dieses Tutorial benötigst du:
- einen infrarot Abstandssensor (beispielsweise von Sharp)
- Steckdrähte (female-female) oder Krokodilklemmen
- einen Analog-Digital-Converter
Auf dem Raspberry Pi montieren wir die ADC Pi Platine. Diese habe ich bereits im letzten Artikel vorgestellt. Damit können wir das analoge Signal des Sensors lesen. Alternativ dazu gibt es auch USB AD Wandler.
Der Sensor sieht sympathisch aus, schließlich blicken mich da 2 Augen an. Tatsächlich ist das eine ein Sender und das andere ein Empfänger. Die Funktionsweise habe ich bereits im Einführungsartikel beschrieben. Die genaue technische Grundlage kann uns eigentlich recht egal sein, da der Sensor direkt die Entfernung als analogen Wert liefert. Der Sensor hat folgende Pins:
- GND
das mittlere schwarze Kabel ist die Erdung. Diese schließen wir an einen GND Pin der GPIO Schnittstelle oder wie im Bild zu sehen an den GND Pin der ADC Platine. Verbinden kann man die Kabel mit Steckdrähten oder mit Krokodilklemmen. Ich habe beides probiert, mich aber für die Klemmen entschieden. - VCC
das rote Kabel ist die Eingangsspannung. Diese beträgt 5 Volt, man kann also einen GPIO 5 Volt Pin verwenden oder wie ich den 5 V Ausgang der ADC Platine. - Daten
der gelbe Draht ist der Ausgang des Sensors. Dieser liefert einen analogen Wert, welche der gemessenen Entfernung entspricht.
Bei der Verkabelung muss man aufpassen! Berührt man mit den Klemmen mehrere Pins kann es manchmal passieren, dass der Raspberry Pi abrupt neu startet. Offenbar kommt es da zu einer Überspannung der GPIO Schnittstelle. Mir ist das bisher 5 bis 10 mal passiert und der Pi hat keine erkennbaren Schäden davongetragen, trotzdem sollte man das nicht zu oft machen.
Fazit
Die Verkabelung des Sensors ist recht einfach. Bei dem Infrarot Sensor Sharp 2Y0A21 ist die Software etwas komplexer als bis jetzt, da wir nun einen analogen Wert einlesen müssen und diesen in eine Entfernung umrechnen. Wie das funktioniert zeige ich im nächsten Teil.
Teil 1 | Teil 2 | Teil 3 | Teil 4 | Teil 5
Könnte man den Sharp 2Y0A21 auch in der der Art verwenden, dass wenn dieser fest montiert ist, ein Signal sendet, wenn sich ein Objekt daran vorbei bewegt?
ja der Sensor liefert ja konstant Daten. Man müsste in einem Programm oder Skript nur prüfen ob sich bei den empfangenen Werten etwas verändert. Dann kann man feststellen wie weit das Objekt entfernt ist und aus dem Vergleich vorangegangener Werte ob es sich hin oder vom Sensor weg bewegt. Theoretisch könnte man daraus sogar dessen Geschwindigkeit ermitteln. Ist nur die Frage wie genau das geht.