Beispiel #1
0
int main(int argc, char **argv) {

	Motor_init();
	Sensor_init();
	Button_init();
	Compass_init();
	
	turnCount = 0;
	
	while(1) {
		int front = (Sensor_getDistance(Sensor_FRONT_LEFT) +
					Sensor_getDistance(Sensor_FRONT_RIGHT)) / 2;
		
		while(front > 20) {
			if(Compass_inRange(startDir, 15, 180))
				Motor_steerLeft(0.9);
			else if(Compass_inRange(startDir, 180, 45))
				Motor_steerRight(0.9);
			else
				Motor_forward();
		}
		
		hugObstacle();
	}
	
	Motor_cleanUp();
	Sensor_cleanUp();
	Button_cleanUp();
}
int8_t initSensors(){

	int8_t err1 = Accelerometer_init();
	int8_t err2 = Compass_init();
	int8_t err3 = Gyroscope_init();
	err3 = getGyroCalibrationOffset();

	if (err1) {
		return err1;
	}
	if (err2) {
		return err2;
	}
	if (err3) {
		return err3;
	}
	return NO_ERR; //dont know how to return multiple errors
}