Benutzer-Werkzeuge

Webseiten-Werkzeuge


projektews2013:lagemaro:start:navi

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
projektews2013:lagemaro:start:navi [2014/03/07 19:17]
philippkueckes angelegt
projektews2013:lagemaro:start:navi [2016/01/21 12:45] (aktuell)
Zeile 1: Zeile 1:
-<file C++ Robo_Läuft.ino>+<file C++ Navigator.ino>
  
 +class Navigator {
 +  boolean messeEntfernung(int nummer) {
 +    // misst die Enfernung zwischen dem Roboter und dem momentan anzufahrenden Punkt
 +    if ((sqrt(sq(routenplaner.punktfolge.get(nummer).x-farbPunktFinder.blauposition.x)+sq(routenplaner.punktfolge.get(nummer).y-farbPunktFinder.blauposition.y)))<​20) {
 +      return true;
 +    } 
 +    // der momentan anzufahrende Punkt wird mit zwei Ellipsen makiert
 +    else {
 +      stroke(255, 0, 0);
 +      ellipse(routenplaner.punktfolge.get(nummer).x,​ routenplaner.punktfolge.get(nummer).y,​ 5, 10 );
 +      ellipse(routenplaner.punktfolge.get(nummer).x,​ routenplaner.punktfolge.get(nummer).y,​ 10, 5 );
 +      return false;
 +    }
 +  }
 +  void sendeDaten(int nummer) {
 +    boolean sinnvoll;
 +    // es sollen nur dann ein Wert gesendet werden, wenn die richtigen LEDs gefunden wurden. ​
 +    // wenn der Abstand zwischen den LEDs zu groß ist, kann das nicht stimmen
 +    if ((sqrt(sq(farbPunktFinder.gruenposition.y-farbPunktFinder.blauposition.y)+sq(farbPunktFinder.gruenposition.x-farbPunktFinder.blauposition.x)))<​50) {
 +      sinnvoll = true;
 +    }
 +    else {
 +      sinnvoll = false;
 +    }
 +    //float massstab= 4/​(sqrt(sq(farbPunktFinder.gruenposition.y-farbPunktFinder.blauposition.y)+sq(farbPunktFinder.gruenposition.x-farbPunktFinder.blauposition.x)));​
 +    //der Winkel wird berechnet
 +    if (farbPunktFinder.gruenposition.qualitaet==true && farbPunktFinder.blauposition.qualitaet==true&&​sinnvoll==true) {
 +      float beta = atan2((routenplaner.punktfolge.get(nummer).y-farbPunktFinder.blauposition.y),​ (routenplaner.punktfolge.get(nummer).x-farbPunktFinder.blauposition.x));​
 +      float gamma = atan2((farbPunktFinder.gruenposition.y-farbPunktFinder.blauposition.y),​ (farbPunktFinder.gruenposition.x-farbPunktFinder.blauposition.x));​
 +      float winkel=beta-gamma;​
 +      if (winkel>​PI) {
 +        winkel=winkel-2*PI;​
 +      }
 +      if (winkel<​-PI) {
 +        winkel= winkel+2*PI;​
 +      }
 +      //der Abstand wird berechnet
 +      float abstand= (sqrt(sq(routenplaner.punktfolge.get(nummer).y-farbPunktFinder.blauposition.y)+sq(routenplaner.punktfolge.get(nummer).x-farbPunktFinder.blauposition.x)))/​2.6;​
 +      //Abstand, Winkel und Information über den Stift werden an den Arduino gesendet ​
 +      OscMessage winkelMessage = new OscMessage("/​someFloat"​);​
 +      OscMessage abstandMessage = new OscMessage("/​someInt"​);​
 +      OscMessage stiftMessage = new OscMessage("​stift"​);​
 +
 +      stiftMessage.add(stift);​
 +      winkelMessage.add(winkel);​ // add a float to the osc message ​
 +      abstandMessage.add(abstand);​ // add a float to the osc message
 +      println("​send"​+winkel); ​
 +      println("​send"​+abstand);​
 +      println("​send stift "​+stift);​
 +      if (abstand>​2) {
 +        // send the message ​
 +        oscP5.send(winkelMessage,​ myRemoteLocation); ​
 +        delay(100);
 +        oscP5.send(abstandMessage,​ myRemoteLocation); ​
 +        delay(100);
 +        oscP5.send(stiftMessage,​ myRemoteLocation); ​
 +        delay(100);
 +      }
 +    }
 +  }
 +  // die festgelegten Werte über Winkel, Abstand und Stift werden an den Arduino gesendet
 +  void sende(float winkel, float abstand) {
 +    println("​sende winkel = "​+winkel);​
 +    println("​sende abstand = "​+abstand);​
 +    OscMessage winkelMessage = new OscMessage("/​someFloat"​);​
 +    OscMessage abstandMessage = new OscMessage("/​someInt"​);​
 +    OscMessage stiftMessage = new OscMessage("​stift"​);​
 +
 +    stiftMessage.add(stift);​
 +    winkelMessage.add(winkel);​ // add a float to the osc message ​
 +    abstandMessage.add(abstand);​
 +
 +    oscP5.send(winkelMessage,​ myRemoteLocation); ​
 +    delay(100);
 +    oscP5.send(abstandMessage,​ myRemoteLocation); ​
 +    delay(100);
 +  }
 +}
  
  
 </​file>​ </​file>​
projektews2013/lagemaro/start/navi.1394216240.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)