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
}
}
}
}
Lesezeichen