Die erste echte Einbindung in ein Programm ist denkbar einfach.
Im Beispielprogramm "Example_10_Move2" für die M256_WiFi findet sich ab Zeile 324 das Modul "ACS Event Handler". Es scheint, als wäre das Programm ursprünglich für die M32 Platine geschrieben, denn es sind drei "Sound-Anweisungen" da drin, die auskommentiert sind. Siehe hier:
Code:
/**
 * ACS Event Handler
 */
void acsStateChanged(void)
{
	if(obstacle_left && obstacle_right)
		statusLEDs.byte = 0b100100;
	else
		statusLEDs.byte = 0b000000;
	statusLEDs.LED5 = obstacle_left;
	statusLEDs.LED4 = (!obstacle_left);
	statusLEDs.LED2 = obstacle_right;
	statusLEDs.LED1 = (!obstacle_right);
	updateStatusLEDs();
	if(obstacle_left && obstacle_right)
	{
//		sound(160,20,0);
	}
	else
	{
//		if(obstacle_left)
	//	sound(120,10,0);
	//	if(obstacle_right)
	//	sound(140,10,0);
	}
}
Diese Sound Anweisungen kann man einfach durch writeChar1(xxx) ersetzen und fertig ist die Laube!
Code:
/**
 * ACS Event Handler
 */
void acsStateChanged(void)
{
	if(obstacle_left && obstacle_right)
		statusLEDs.byte = 0b100100;
	else
		statusLEDs.byte = 0b000000;
	statusLEDs.LED5 = obstacle_left;
	statusLEDs.LED4 = (!obstacle_left);
	statusLEDs.LED2 = obstacle_right;
	statusLEDs.LED1 = (!obstacle_right);
	updateStatusLEDs();
	if(obstacle_left && obstacle_right)
	{
		writeChar1(254);	// Wow sound
	}
	else
	{
		if(obstacle_left)
		writeChar1(221);	// Beep left
		if(obstacle_right)
		writeChar1(222);	// Beep right
	}
}
Im Ergebnis ist der RP6 nun ziemlich "redselig", während er durch die Gegend kurvt. Das erinnert schon sehr an R2D2 (die Gattin nervt es schon!)

Statt der Töne könnte er natürlich Wörter oder Sätze von sich geben, aber dann wäre das ständige Gequassel wohl gar nicht zu ertragen

Gruß Uwe