Wir wissen, dass man mit helleren Scheinwerfern oder einer heller leuchtenden Taschenlampe noch Objekte in der Dunkelheit erkennen kann, die sehr weit weg sind.
Wenn man nun die IR LEDs des BoE Shield-Bot Arduino ebenfalls heller leuchten lässt, wird sein Erfassungsbereich vergrößert.
Mit Hilfe eines kleineren Widerstandes im IR-LED Schaltkreis kann der Durchlasstrom durch die Diode erhöht und damit ihre Leuchtstärke erhöht werden (die wir mit unseren Augen allerdings nicht wahrnehmen können). In dieser Übung untersuchen wir den Effekt, den Widerstände mit unterschiedlichen Werten auf eine rote LED und eine IR-LED haben.
Material |
2x Widerstand, 470 Ohm (gelb-violett-braun) 2x Widerstand, 220 Ohm (rot-rot-braun) 2x Widerstand, 1kOhm (braun-schwarz-rot) 2x Widerstand, 4,7kOhm (gelb-violett-rot) |
Aufgaben |
|
Das Programm IR_LEDlinks.ino
Wir haben eben herausgefunden, dass ein kleinerer Vorwiderstand zu einer stärker leuchtenden LED und damit zu einer besseren Ausleuchtung der Umgebung führt. Als Analogieschluss sollte dann auch eine IR LED heller leuchten und die Umgebung stärker ausleuchten. Damit würde sich auch die Reichweite der LED erhöhen.
Aufgaben |
|
Aufgaben |
|
Meine Messwerte
Aufgaben |
|
Die Rückmeldungen der IR Detektoren sind vergleichbar mit denen der Whiskers. Wird kein Objekt detektiert, dann wird eine 1 zurückgegeben, wird ein Objekt erkannt eine 0. In der folgenden Übung wird das Programm Whiskers_felderkundung.ino so verändert, dass es mit den IR Detektoren arbeitet.
Dazu sind ein paar Veränderungen und Ergänzungen notwendig. Füge die Funktion irDetect hinzu.
Ersetze die Zuweisung digitalRead
durch die Zuweisung irDetect
und ersetze alle Instanzen von wLinks und wRechts durch irLinks und irRechts.
Aufgaben |
|
Das Programm IR_felderkundung.ino
Die vordefinierten Fahrmanöver aus dem Programm IR_felderkundung.ino haben sich für den Robboter beim Einsatz der Whiskers ganz gut gemacht, sind aber viel zu langsam bei IR Sensoren. Das liegt u.a. daran, dass die Fühler erst nach dem Kontakt mit einem Objekt den Befehl zum Rücksetzen auslösen und dann das Objekt umfahren. Mit den IR Detektoren erkennt der BoE-Shield-Bot Arduino bereits vorher ein Objekt und sucht sich dann einen passenden Weg um das Objekt herum.
Erhöhung der Abtastrate zur Vermeidung von Zusammenstößen
Die Dauer aller Fahrmanövers lässt sich auf 20ms reduzieren, oder mit anderen Worten, ca. 40 mal pro Sekunde überprüft das Programm über die IR-Detektoren die Umgebung des Roboters auf vor ihm befindliche Objekte. Während der BoE Shield Bot sich durch das Gelände/den Parcours bewegt, führt er eine Reihe von Bewegungen aus, um Hindernissen auszuweichen und nicht mit ihnen zu kollidieren. Mit diesem Ansatz nähert er sich einem Objekt so nah wie nötig und findet dadurch frühzeitig einen Weg um das Hindernis. Die ausgeführte Bewegung ist jetzt wesentlich komplexer als in den vorherigen Programmbeispielen. Probiere es mit dem folgenden Programm IR_SchnelleBewegung.ino aus.
Programm IR_SchnelleBewegung
Wie arbeitet das Programm IR_SchnelleBewegung.ino
In diesem Programm benutzen wir die Funktion bewegung aus dem Programm Licht_Navigation.ino. Die Funktion enthält drei Übergabeparameter: speedLinks, speedRechts und msZeit. Beide speed Parameter liegen bei 200 für volle Vorwärtsbewegung beziehungsweise -200 für volle Rückwärtsbewegung und mit der Einstellung von msZeit auf einen Wert von 20, wird jede Bewegung in der Schleifenmethode loop() für 20ms ausgeführt.
Jetzt kommst du!
Aufgaben |
|