ASURO mit US-Abstandssensoren und den zusätzlichen Funktionen aus ultrasonic.c (aus Lib 3). Mich würde interessieren, wie ihr das Bewegungsmuster optimiert habt, damit sich ASURO nicht ständig fest fährt? Hier meine aktuelle Version, mit der er sich schon ganz nett bewegt. Er kann sich jetzt allerdings noch nach hinten fest fahren. Da fehlt mir noch die richtige Idee.
Code:
#include "asuro.h"
#define MAXDIFF 80

int main(void)
{
  int abstand, abstand_alt, diff, zaehler=0;
  Init();
  abstand = Chirp();
   
  while(TRUE)
  {
    abstand_alt = abstand;
	abstand = Chirp();	++zaehler;
	diff = abstand - abstand_alt;
	
	if( (abstand>15) && (abs(diff)<MAXDIFF) )
	{
	  StatusLED(GREEN);
	  MotorDir(FWD, FWD);
	  MotorSpeed(150, 150);
	}
	else if( (abstand>10) && (abstand<=15) && (abs(diff)<MAXDIFF) )
	{
	  StatusLED(GREEN);
	  MotorDir(FWD, FWD);
	  MotorSpeed(100, 150);
	  Msleep(30);
	}
	else
	{
	  StatusLED(RED);
	  MotorDir(RWD, RWD);
	  MotorSpeed(150, 100);
	  Msleep(100);
	}
	
	if (zaehler > 400)
	{
		StatusLED(RED);
		BackLED(ON,ON);
	    MotorDir(RWD, RWD);
	    MotorSpeed(200, 250);
	    Msleep(10);
		BackLED(OFF,OFF);
	}
	if (zaehler > 405)
	{
		StatusLED(RED);
		BackLED(ON,ON);
	    MotorDir(RWD, RWD);
	    MotorSpeed(250, 200);
	    Msleep(10);
		BackLED(OFF,OFF);
				
		if(zaehler > 410)
		  zaehler = 0;
	}
  }
  return 0;
}