|
|
|
\\ Learning\ Codekit\ Code & Interaction 2 |
|
| CodeKit - Code & Interaktion 2 (Only available in german) |
| ThermoVideo - Die Temperatur steuert das Video
|
|
Mit dem » Vernier LabPro-Meßcomputer
können unterschiedliche Sensoren an den seriellen Port (nur PC) angeschlossen werden. Die Kommunikation mit einer Java-Applikation erfolgt über das Erweiterungspaket "comm.jar", die "communication API" von Sun für Windows-Betriebssysteme. Leider steht für Macintosh-Rechner diese Erweiterung nicht zur Verfügung.
|
Für die Java-Applikation "ThermoVideo" wird ein LabPro, ein Temperatur-Sensor und die korrekte Installation der "commAPI" vorausgesetzt (siehe › Installation). "ThermoVideo" misst die Raumtemperatur und steuert mit dem Messwert die Abspielgeschwindigkeit eines Videos. Wird der Sensor erhitzt, läuft das Video schneller. Eingetaucht in Eiswasser kann die Bewegung vollständig "eingefroren" werden. Die gemessene Temperatur wird als Abspielgeschwindigkeit in den entsprechenden Bereich umgerechnet.
|
LabPro-Thermometer anschließen |
Verbinden Sie den LabPro-Computer mit dem seriellen Port Ihres PCs (com1) und schließen Sie den Temperatursensor an "channel 1" des Messcomputers an:
|
| LabPro - Messcomputer und Temperatursensor (Vernier)
|
|
Achten Sie darauf, dass die Geräte ausgeschaltet sind, bevor Sie die Stecker verbinden. Der LabPro Messcomputer wurde von der Firma Vernier ursprünglich zur Verwendung im Schulunterricht entwickelt. Eine Vielzahl von Sensoren aus den unterschiedlichsten Bereichen (Physik, Biologie, Chemie) steht zum Experimentieren bereit. Das CodeKit-Programmarchiv bietet Java-Klassen für die meisten LabPro-Sensoren zur Ansteuerung und Auswertung aus einer Applikation heraus
(» Liste der Sensoren).
Auf diese Weise können Interaktionen für die Ansteuerung von Grafik, Sound oder Bewegtbild genutzt werden.
|
"ThermoVideo" herunterladen und starten |
Um die Java-Applikation innerhalb der Entwicklungsumgebung NetBeans starten zu können, werden folgende Dateien benötigt
(» Download [ZIP | 14,7 MB]):
|
Die Dateien finden sich auch im CodeKit-Archiv unter der Rubrik "VideoControl". Die ausführbare Java-Applikation ist "ThermoVideo", die Klassen "VideoPlayer" und "Temperature" sind zum Abspielen eines Videos bzw. zur Ansteuerung und Auswertung des Temperatursensors geeignet. "Quicktime" unterstützt alle gängigen Video-Formate (z.B. .mov, .avi, etc.), nicht jedoch die Komprimierung "mpeg2". Laden Sie die Dateien in Ihr Arbeitsverzeichnis und installieren Sie die Erweiterungen "qtjava.zip" und "comm.jar" (siehe › Installation).
|
Starten Sie die Applikation "ThermoVideo". Die Led am LabPro-Messcomputer zeigt den laufenden Messvorgang an, das Video wird gestartet. Testen Sie, ob die Abspielgeschwindigkeit zunimmt, wenn der Sensor erwärmt wird.
|
| | |
Die Java-Applikation "ThermoVideo" benutzt zum Abspielen eines Videos das CodeKit-Medienobjekt "VideoPlayer". Der Dateiname des Videos wird beim "Instanziieren" des "VideoPlayer"-Objektes angegeben: Der LabPro-Sensor "Temperature" wird im Java-Code einfach instanziiert: › VideoPlayer starten Es dauert einen Moment, bis der Messcomputer die richtigen Werte liefert (Setup). Eine Schleife wartet, bis die Werte von Null verschieden sind und speichert den ersten "gemessenen" Wert in der Variable "initTemp" ab: › Temperatursensor aktivieren Um danach die Temperatur auslesen zu können, benutzt man die Methode "getTemperature": › Initialisierung Die Temperatur wird in einer Variable "temp" gespeichert und in die neue Abspielgeschwindigkeit "speed" des Videos umgerechnet: › Auslesen des Sensors Beachten Sie, dass die Umrechnung nicht ganz trivial ist. Es wird als Ausgangspunkt die zuerst gemessene Temperatur (beim Start der Applikation: "tempInit") mitverwendet. Um negative Werte zu vermeiden, wird das Quadrat "temp*temp" bzw. "tempInit*tempInit" gebildet. › Berechnung der neuen Abspielgeschwindigkeit Nehmen Sie einen Taschenrechner und berechnen Sie ein paar Werte! Welche Geschwindigkeit ergibt sich, wenn die Anfangstemperatur 22.0 Grad und die aktuelle Temperatur 25.6 Grad ist? Schließlich wird die neue Abspielgeschwindigkeit eingestellt: › ThermoVideo: Neue Geschwindigkeit setzen Die Run-Methode dieser Applikation wird als Loop ausgeführt, d.h. es wird immer wieder eine Temperatur gemessen, einen Moment gewartet, die neue Geschwindigkeit berechnet und schließlich an das "VideoPlayer"-Objekt gesendet. Zur Übersicht, hier noch einmal die gesamte Run-Methode von "Thermo-Video": › Kontinuierliche Messung und Steuerung durch einen Java Thread
|
| | |
Übung 1: Eigenes Video Speichern Sie ein eigenes Video im Arbeitsverzeichnis und ändern Sie den Source-Code entsprechend ab.
|
Übung 2: Geschwindigkeitsberechnung Ändern Sie das Programm "ThermoVideo" so ab, dass die Abspielgeschwindigkeit zunimmt, wenn die Temperatur fällt (entgegengesetztes Verhalten wie in der Original-Applikation). Wie müssen Sie die Neuberechnung der Variable "speed" modifizieren?
|
Übung 3: Zufallsgeschwindigkeit Diese Übung können Sie insbesondere auch dann durchführen, wenn Sie keinen LabPro-Messcomputer haben. Ersetzen Sie die Temperatursteuerung durch eine Zufallsvariable.
|
Hinweis 1: Entfernen Sie zuerst alle Komponenten, die etwas mit der Temperaturmessung zu tun haben.
|
Übung 4: Experts only! Ersetzen Sie die Temperatursteuerung in "ThermoVideo" durch eine Maus-Interaktion, indem Sie die passenden Methoden und Befehle aus der Java-Applikation "SoundMixer" einfügen.
|
|
|
|
|
© 2004-2009 Fraunhofer IAIS.MARS and the authors |