Hausaufgaben9 Lösung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
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