AlphaBot: Linienverfolger kalibrieren
Zur Navigation springen
Zur Suche springen
Autor: Prof. Dr.-Ing. Schneider
Inhalt des 9. Termins
- Ich stelle Euch den Sensor "Linienverfolger" vor.
- Wir kalibrieren den Sensor.
- Wir lesen die Messwerte ein.
- Wir programmieren einen 2-Punkt-Regler, um einer Linie zu folgen.
Quelltext
Kalibrierung
/* Sensorbibliothek hinzufügen */ #include "TRSensors.h" #define NUM_SENSORS 5 /* Die Sensoren 1..5 sind an die analogen Eingänge 0..4 angeschlosse */ TRSensors trs = TRSensors(); // Handle zum Sensor /* Einmalige Systeminitialisierung */ void setup() { Serial.begin(9600); // Init für serielle Ausgabe mit 9600 Baud Serial.println("Kalibrierung startet für 10s..."); for (int i = 0; i < 400; i++) // make the calibration take about 10 seconds { trs.calibrate(); // reads all sensors 10 times } Serial.println("Kalibrierung beendet"); // Ausgabe der Minimalwerte während der Kalibrierung for (int i = 0; i < NUM_SENSORS; i++) { Serial.print(trs.calibratedMin[i]); Serial.print(' '); } Serial.println(); // Ausgabe der Maximalwerte während der Kalibrierung for (int i = 0; i < NUM_SENSORS; i++) { Serial.print(trs.calibratedMax[i]); Serial.print(' '); } Serial.println(); delay(1000); Serial.println("SETUP beendet"); } /* Main Schleife */ void loop() { unsigned int Messwerte[NUM_SENSORS]; // Meswert Array unsigned int position = trs.readLine(Messwerte); for (unsigned char i = 0; i < NUM_SENSORS; i++) { Serial.print(Messwerte[i]); Serial.print('\t'); } Serial.println(position); }
Hausaufgaben bis zum 10. Termin
- Bastelt Euch einen Rundkurs.
- Folgt der Linie auf dem Rundkurs.
- Ist eine Fahrt in beide Richtungen möglich?
Hinweise:
- Einen Artikel zum Linienverfolger findet Ihr hier.
- Die Jumper von Block F müssen alle links gesetzt sein.
Musterlösung
→ zurück zum Hauptartikel: Projekt Alf