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:
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) { // sound(160,20,0); } else { // if(obstacle_left) // sound(120,10,0); // if(obstacle_right) // sound(140,10,0); } }
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!)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 } }![]()
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







Zitieren

Lesezeichen