Hausaufgaben9 Lösung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „---- → zurück zum Hauptartikel: Linienverfolger kalibrieren“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
'''Linienverfolger''' | |||
<div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088"> | |||
<pre> | |||
/* Bibliotheken hinzufügen */ | |||
#include "AlphaBot.h" // Arduino Bibliothek für die Motoren einbinden | |||
#include "TRSensors.h" // Tracker Sensor Bibliothek | |||
AlphaBot Alf = AlphaBot(); // Instanz des AlphaBot wird erzeugt | |||
TRSensors trs = TRSensors(); // Instanz des Sensors wird erzeugt | |||
#define NUM_SENSORS 5 // 5 Tracker Sensoren, Daten via I2C | |||
unsigned int Messwerte[NUM_SENSORS]; // Meswert Array wird angelegt | |||
void setup() { | |||
// put your setup code here, to run once: | |||
Serial.begin(9600); // Achtung hohe Geschwindigkeit für den seriellen Monitor | |||
KalibriereLinienVerfolger(); // kalibrierung des Linienverfolgers | |||
Serial.println("SETUP beendet"); | |||
} | |||
void loop() { | |||
unsigned int position = trs.readLine(Messwerte); | |||
Serial.println(position); // Istwert ausgeben | |||
/* 2-Punkt-Regler */ | |||
if (position > 2000) { | |||
Alf.MotorRun(0, -80); // VZW um vorwärts zu fahren | |||
} | |||
else { | |||
Alf.MotorRun(-80, 0); | |||
} | |||
} | |||
void KalibriereLinienVerfolger() { | |||
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); | |||
} | |||
</pre> | |||
</div> | |||
---- | ---- | ||
→ zurück zum Hauptartikel: [[AlphaBot:_Linienverfolger_kalibrieren|Linienverfolger kalibrieren]] | → zurück zum Hauptartikel: [[AlphaBot:_Linienverfolger_kalibrieren|Linienverfolger kalibrieren]] |
Aktuelle Version vom 14. Mai 2022, 11:08 Uhr
Linienverfolger
/* Bibliotheken hinzufügen */ #include "AlphaBot.h" // Arduino Bibliothek für die Motoren einbinden #include "TRSensors.h" // Tracker Sensor Bibliothek AlphaBot Alf = AlphaBot(); // Instanz des AlphaBot wird erzeugt TRSensors trs = TRSensors(); // Instanz des Sensors wird erzeugt #define NUM_SENSORS 5 // 5 Tracker Sensoren, Daten via I2C unsigned int Messwerte[NUM_SENSORS]; // Meswert Array wird angelegt void setup() { // put your setup code here, to run once: Serial.begin(9600); // Achtung hohe Geschwindigkeit für den seriellen Monitor KalibriereLinienVerfolger(); // kalibrierung des Linienverfolgers Serial.println("SETUP beendet"); } void loop() { unsigned int position = trs.readLine(Messwerte); Serial.println(position); // Istwert ausgeben /* 2-Punkt-Regler */ if (position > 2000) { Alf.MotorRun(0, -80); // VZW um vorwärts zu fahren } else { Alf.MotorRun(-80, 0); } } void KalibriereLinienVerfolger() { 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); }
→ zurück zum Hauptartikel: Linienverfolger kalibrieren