Programmübersicht von Team TUfatTUfly

Programmablauf

Das Hauptprogramm befindet sich in der TufatTuFly.ino die sich in dem TufatTufly 
Zipordner befindet.

Jedes Arduino Programm besteht aus den Zeilen 

void setup() {
}
void loop() {

}

Die setup() Funktion wird nur einmal zu Beginn ausgeführt. Anschließend wird 
die loop() Funktion in einer Endloschschleife aufgerufen.
In unserem Fall dient die setup() Funktion zur vollständigen Initialisierung der Aktoren 
und Sensoren .

void setup(){
  Serial.begin(19200);
  pinMode(13, OUTPUT);
 
  initAktoren();
  initSensoren();
 
  Serial.println("Setup complete - send 'w' to set a waypoint or 'r' to start flying");
 
  // Debug:
  setAktuellePosition(0,0,0);
  setFlugModus(0);
 
}
 
extern float drehungFehlerLPF;
 
unsigned long millisLast = 0;
 

Anschließend beginnt der eigentliche Teil des Programms. In der loop() Funktion 
werden zuerst Variablen für die Aktoren deklariert. Dann werden die Sensorwerte neu
ausgelesen und anschließend die Regelung ausgeführt. Die Werte werden für die
Analyse daraufhin ausgegeben.

void loop(){
 
  float drehungIst=0, motorLinks=0, motorRechts=0, height=150;
  int servoWert = 1500;
 
  kommunikation();
  leseSensoren(&drehungIst, &height);
  regelung(drehungIst, height, &motorLinks, &motorRechts, &servoWert);
  if(!getFlugModus()) {servoWert=1500;motorLinks=0;motorRechts=0;}
  setzeAktoren(servoWert, motorLinks, motorRechts);
 
  if(millis()-millisLast > 1000){
    millisLast = millis();
    float aktWPX, aktWPY, aktWPZ, aktPosX, aktPosY, aktPosZ;
    getAktuellePosition(&aktPosX, &aktPosY, &aktPosZ);
    getAktuellerWP(&aktWPX, &aktWPY, &aktWPZ);
    char buf[100];
    sprintf(buf, "D: %d (%+d), H: %d, ML: %d, MR: %d, S: %d, (%d/%d/%d)->(%d/%d/%d)",
    (int) (drehungIst*100), (int)(drehungFehlerLPF*100), (int)(height*100),
    (int)(motorLinks), (int)(motorRechts), servoWert,
    (int)(aktPosX*100), (int)(aktPosY*100), (int)(aktPosZ*100), (int)(aktWPX*100), (int)(aktWPY*100), (int)(aktWPZ*100));
    Serial.println(buf);
  }
 
}

 .