MINT - Unterricht  mit  Arduino und anderen

Der Robino II soll so ausgestattet werden, dass er selbstständig einer schwarzen Linie folgen kann. Um das zu realisieren, wird das Fahrgestell des Robino I verwendet und der US-Sensor durch Sensor-Module wie in der Abbildung rechts ersetzt.

 

Ein solches Modul besteht aus einer infrarotes Licht aussendenden und einer lichtempfindlichen Diode. Die beiden Dioden sind voneinander abgeschirmt. Das ausgestrahlte Licht kann so die Fotodiode nicht direkt, sondern nur durch Reflexion erreichen. Aus diesem Grund wird der Sensor zur Fahrbahn hin ausgerichtet. Die Intensität der Reflexionen hängt von unterschiedlichen Bedingungen ab wie dem Abstand vom Untergrund, ob er glänzend, hell oder dunkel ist und wie stark das Umgebungslicht ist.

 

Bewährt hat sich, die Sensor-Module in einem Abstand von etwa 1 cm  von der Reflexionsfläche anzuordnen. Die Linie, die dem Robino die Fahrtrichtung vorgeben soll, muss etwa 2 cm breit und darf nicht glänzend sein. Als besonders geeignet haben sich 19 mm breites schwarzes Gewebeklebeband (Tesa 4651) oder gleichbreite Streifen aus schwarzem Tonpapier erwiesen. Eine ca. 100 x 150 cm große Holztafel genügt, um einen Testparcour zu erstellen.

Um die Sensoren an den Arduino anbinden zu können, werden neben den beiden Modulen Widerstände von 100 Ohm und 10 Kiloohm benötigt. Hier der Schaltplan: 

 

Die Anschlüsse zum Arduino können an der folgenden Zeichnung und der Programmierung unten nachvollzogen werden:

 

 

So sieht das fertige Aufbau aus:

 

Und das ist der Programmcode:

int IRsensor1=2; 
int IRsensor2=4;
int mot1=10; 
int mot2=12;

void setup() {
   pinMode(mot1, OUTPUT);    
   pinMode(mot2, OUTPUT);
   pinMode(IRsensor1, INPUT);
   pinMode(IRsensor2, INPUT);

   digitalWrite(IRsensor1, HIGH);

   digitalWrite(IRsensor2, HIGH);

}

int sensorState=0;


void loop(){

sensorState = digitalRead(IRsensor1);

if (sensorState == LOW) {

   digitalWrite(mot2, HIGH);

}

else {

   digitalWrite(mot2, LOW);

}

sensorState = digitalRead(IRsensor2);

if (sensorState == LOW) {

   digitalWrite(mot1, HIGH);

}

else {

   digitalWrite(mot1, LOW);

}

}

Stellt man das Gefährt so auf die Linie, dass beide Sensoren auf die hellen Bereiche links und rechts neben dem Pfad ausgerichtet sind, laufen beide Motoren und er Roboter fährt geradeaus. Kommt der linke Sensor über Schwarz, wird der Motor auf dieser Seite angehalten und das Fahrzeug nach links gelenkt. Entsprechendes gilt für den rechten Sensor. Kommt er über Schwarz, wird der rechte Motor gestoppt und das Fahrzeug nach rechts gelenkt. Lässt man Roboter schräg auf den Pfad zusteuern, wird er die Linie zwischen seine Räder nehmen und dann auf Kurs bleiben. Wenn er genau im rechten Winkel auftrifft, wird er stoppen.

Wer Lust auf mehr hat, dem sei der "Robino-Maze-Solver" empfohlen, der sich in einem Labyrinth von Kreuzungen, Abzweigungen und Sackgassen orientieren und einen Weg zum Ziel oder zurück zum Ausgang finden kann. Die Anleitung dazu findet sich hier: Download

 



Die Infrarot-Sensoren gibt es im Eckstein-Shop, Artikel-Nr. SE10004.