Wie geht das "Lese" ?
Mir fehlt derzeit eigentlich nur noch der Infrarotsensor, also das von dir beschriebene "Lese Linie".... nur wie geht das? Der Rest klappt soweit.
Code:#include "qfixMiniBoard.h" #include "qfixLCD.h" const int SENSOR3 = 3; int SENSOR1 = 1; int SENSOR2 = 2; int SENSOR = 0; MiniBoard robot; LCD lcd; #define geradeaus 0 #define linksDrehung 1 #define rechtsDrehung 2 #define hindernis 85 #define freieSicht 150 // Wenn der Robo etwas nach links fährt, aber dann gegen das Hindernis, ist dieser Wert zu klein #define True 1 #define False 0 int main() { int abstand=0; //int infrarot= 0; unsigned char drehrichtung = geradeaus; // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM unsigned char schonNachLinksAusgewichen = False; while(1) { abstand = robot.analog(1); //infrarot = robot.analog(3); if( drehrichtung == geradeaus) { robot.motors(-250,-250); //geradeaus fahren if( abstand < hindernis) { if(schonNachLinksAusgewichen == False) drehrichtung = linksDrehung; else drehrichtung = rechtsDrehung; } } if( drehrichtung == linksDrehung ) { robot.motors(-200, 200); // nach links drehen if( abstand >= freieSicht ) { robot.motors(250,250); msleep(500); schonNachLinksAusgewichen = True; //msleep(500); //if( infrarot > 185){ //robot.motors(100,-100); //msleep(500); } } if( drehrichtung == rechtsDrehung ) { robot.motors(200, -200); // nach rechts drehen if( abstand >= freieSicht ) { robot.motors(250,250); msleep(500); schonNachLinksAusgewichen = False; //msleep(500); //if( infrarot > 185){ //robot.motors(-100,100); // Er ist zwar schon mal nach links ausgewichen, aber inzwischen auch schon rechtsrum, also wieder von vorne } } } }







Zitieren
Lesezeichen