Modul 2

Zurück zu Modul 1, vorwärts zu Modul 3.

Sensorkunde

Schliesst alle Sensoren die ihr besitzt an euren Roboter (kann auch nacheinander sein) und versucht die Werte mit einem Programm auszulesen. Ihr findet eine kurze Beschreibung zu den Sensoren auf dieser Seite.

Aber wie könnt ihr nun die Werte der Sensoren auslesen? Um fremden Programmiercode lesen zu lernen, schaut euch die Beispiele hier an. Unter den englischen Namen der Sensoren sind sowohl Header (.h) wie auch C-Code Beispiele (.c) abgelegt, welche die verschiedenen Sensoren auslesen.

Versucht den Code in euer Eclipse zu kopieren und so anzupassen, dass ihr ebenfalls eine Werte-Anzeige auf eurem EV3-Brick habt.

«100 cm Rennen»

Hier ist die Idee, dass der Roboter ähnlich wie die 100 m Sprinterin erst dann startet, sobald er etwas wahrnimmt. Wir wollen jedoch nicht einen lauten Knall hören, sondern eine Distanzänderung messen. Man kann sich das so überlegen, wie wenn eine Fahne vor dem Roboter «geschwenkt» wird.

Danach soll der Roboter möglichst exakt 100 cm, sprich 1 Meter fahren und stoppen. Legt einen Schwedenmeter aus, damit ihr seht, ob der Roboter gerade fährt und wie weit er kommt.

Baut ein Fahrgestell-Roboter mit einem Ultraschallsensor, welcher zur Fahrtrichtung hin zeigt. Nachfolgend findet ihr den Beispiel-Code für diese Anwendung. Nur die neuen Teile des Codes sind kommentiert.

#include <ev3.h>

int main(void)
{
	InitEV3();

	/*
	 * Setzt die Sensoren für IN_1 bis IN_4.
	 * In diesem Beispiel ist ein Ultraschallsensor an
	 * IN_1 angeschlossen, alle anderen IN sind leer.
	 */
	setAllSensorMode(US_DIST_MM, NO_SEN,NO_SEN,NO_SEN);

	/*
	 * Warte 100 Millisekunden solange der Ultraschall 
	 * mehr Platz als 10 cm vor sich sieht.
	 */
	while (readSensor(IN_1) <= 100) {
	{
		Wait(100);
	}

	/*
	 * «Start ist erfolgt». Systemsound wird abgespielt 
	 */
	PlaySound(SOUND_DOUBLE_BEEP);
	OnFwdReg(OUT_BC, 75);

	/*
	 * Warte bzw. fahre für 2900 Millisekunden (2.9 Sekunden) 
	 */
	Wait(2900);
	Off(OUT_BC);

	FreeEV3();
	return 0;
}

Bonusaufgaben

Aufgabe 3: Versucht den Startschuss mit anderen Sensoren zu imitieren. Beispielsweise mit einem Tastsensor oder sogar von Hand per IR (falls Sensoren vorhanden).

Aufgabe 4: Könnte man den Startschuss auch mit einer Taschenlampe bewerkstelligen? Wie würde da der Code aussehen?

Vorwärts zu Modul 3.