Zeitmessung mit Java

Oftmals ist es wichtig, zwischen zwei Ereignissen die Zeit zu stoppen. Dazu dient die Klasse Stopwatch. Laut der Dokumentation kennt die Klasse nur zwei Methoden:

Method Summary
 int elapsed() 
          Return elapsed time in milliseconds
 void reset() 
          Reset watch to zero

 Zum Einen kann die Zeit in Millisekunden abgerufen werden, zum Anderen kann man die Uhr resetten, so dass sie wieder von vorne anfängt zu zählen.

 

Quelltext
import lejos.hardware.Button;
import lejos.hardware.lcd.LCD;
import lejos.utility.Delay;
import lejos.utility.Stopwatch;

public class MeinRoboter {
	Stopwatch stopUhr;

	MeinRoboter() { // Konstruktor
		stopUhr = new Stopwatch();
		stopUhr.reset();
	}

	public static void main(String[] args) {
		MeinRoboter m = new MeinRoboter();
		while (Button.ESCAPE.isUp()) {
			int zeit = m.stopUhr.elapsed();
			LCD.drawString(String.valueOf(zeit), 0, 4);

			if (Button.DOWN.isDown()) {
				m.stopUhr.reset();
			}

			Delay.msDelay(1000);
			LCD.clear();
		}
	}
	
}

Wie schnell ist unser Roboter?

Ws soll die Geschwindigkeit des Roboters bei unterschiedlichen Leistungen untersicht werden. 

Die Streckelänge zwischen zwei Markierungen ist bekannt. Es soll die Zeit gemessen werden, die der Roboter für diese Strecke braucht.

Überlegungen zum Quelltext

Der Quelltest orientiert sich am Linienzähler

  • Er muss zusätzlich mit einer Stopuhr versehen werden. Dies muss man im Konstruktor definieren
  • Wir brauchen noch zusätzliche Variablen für die zwei Zeiten t0 und t1 ( beide Integer) und einen Doublewert geschwindigkeit, diese können in der main-Routine angelegt werden.
  • Die Ausgabe der Geschwindigkeit geht über LCD.drawString(Double.toString(geschwindigkeit), 0, 0)
Quelltext

Versuch: Messung der Geschwindigkeit bei verschiedenen Leistungsstufen

Untersucht unterschiedliche Leistungsstufen: pro Stufe wird die Geschwindigkeit von Hand und mit Hilfe des Javaprogramms berechnet.

Versuch zu v=25

  1. Versuch 2. Versuch 3. Versuch Mittelwert  m/s 
von Hand          
vom EV3           

Versuch zu v=50

  1. Versuch 2. Versuch 3. Versuch Mittelwert  m/s 
von Hand          
vom EV3           

Versuch zu v=75

  1. Versuch 2. Versuch 3. Versuch Mittelwert  m/s 
von Hand          
vom EV3           

Versuch zu v=100

  1. Versuch 2. Versuch 3. Versuch Mittelwert  m/s 
von Hand          
vom EV3