Title: Installation
1Installation
Programmierung der seriellen Schnittstelle
- Viele Messgeräte verfügen über eine serielle
Schnittstelle, insbesondere um die Messdaten zur
weiteren Bearbeitung an einen Computer zu senden
- Messgeräte, Modems, Anlagen (z.B. Heizungen),
Roboter, usw. können auch über die
serielle Schnittstelle konfiguriert und
gesteuert werden
- Die Übertragung erfolgt bitweise seriell nach
der RS-232-Norm, welche die folgenden
Parameter verwendet Baudrate, Anzahl Datenbit,
Anzahl Stopbit, Parity und Handshake-Modus
- Für die Programmierung benötigt man eine
geeignete Klassenbibliothek. Für Java ist
diese nur für Windows als Teil der
Java-Distribution erhältlich. Für andere
Plattformen verwendet man am besten Third-Party
Software. Seit langem etabliert hat sich SerialIo
(www.serialio.com)
- Eine solche Distribution enthält einerseits die
Klassenbibliothek als jar-Datei mit einer
zugehörigen Java-Dokumentation (als JavaDoc) und
einem nativen Treiber, der direkt auf die
Betriebssystem- Ressourcen zugreift (unter
Windows ein DLL, unter Mac ein jnilib). Diese
müssen in ein bestimmtes, in der
Installationsanleitung beschriebenes Verzeichnis
kopiert werden
- Die jar-Datei und das JavaDoc-Verzeichnis werden
in der verwendeten IDE wie andere
Klassenbibliotheken (z.B. für ch.aplu.turtle)
angegeben.
Das tönt sehr trocken, einmal installiert, hat
man aber viel Freude an der Kommunikation
zwischen einem intelligenten Computer (dem
Programm, das wir schreiben) und dem externen
Gerät.
s. Buch S. 535ff
2Terminal-Emulator
Typische Anwendung Terminal-Emulator
- Jede Tastatureingabe wird als Einzelzeichen an
das angeschlossene Gerät übermittelt
- Jedes Zeichen, welches das externe Gerät an den
Computer sendet, wird in einem Terminal- Fenster
angezeigt
- Als Test-Gerät eignet sich gut ein Modem, mit
dem man mit dem Hayes-Befehlssatz kommuniziert
- Beispiel unter Verwendung von Serialio
STerminal.java
- Serielle USB-Adapter können auf dem Mac wie
unter Windows problemlos eingesetzt werden
3Metex
Einlesen von Messwerten von einem Messgerät
- Das Messgerät übermittelt die Daten gemäss dem
Hersteller-Protokoll
- Einfacher Fall Der Computer sendet irgend ein
Zeichen und das Messgerät sendet aus
diesem Anlass den letzten Messwert als
ASCII-String zurück
- Die Schnittstelle der Messgeräts wird eventuell
mit den Handshake-Leitungen gespiesen.
Diese müssen daher einen vorgegeben Pegel
aufweisen (low oder high)
- Beispiel unter Verwendung von Serialio
SMetex.java
4Gruppenarbeit 1
Inspirationen für die Gruppenarbeit 1
1. Zwei Computer (Mac und Windows!) über die
serielle Schnittstelle verbinden und mit mit
STerminal trotz unterschiedlichen Plattformen
freundlich chatten
2. Die Messwerte vom Metex-Gerät periodisch
ablesen (Periode gt 500 ms) und (in einem
GPanel) grafisch darstellen Anleitung Für
Periode Thread.currentThread().delay()
verwenden Lösungsvorschlag in SUebung2.java und
Mex.java Variante Messwerte in einem GPanel
als Grossanzeige darstellen Anleitung Für
Periode LoResAlarmTimer verwenden, Font-Beispiel
new Font("Helvetiva", Font.PLAIN,
96) Lösungsvorschlag in SUebung3.java
5Simulationen
Simulationen
- Computer-Simulationen spielen in allen
Naturwissenschaften eine ausserordentlich grosse
Rolle
- Simulationen sollten im Unterricht nie ein
einfaches Realexperiment ersetzen
- Oft benötigen Simulationen animierte Grafik und
ein exaktes Timing
- Im Package ch.aplu.util gibt es darum
- HiResTimer, bzw. HiResAlarmTimer (bis J2SE V1.4
wird Java3D verwendet )
- LoResTimer, bzw. LoResAlarmTimer (getTime() aus
dem Java-API verwendet)
- TimerEvent, der periodisch ausgelöst wird
- Beispiel vertikaler Wurf TimeEx2.java
s. Buch S. 222
6Gruppenarbeit 2
Inspirationen für die Gruppenarbeit 2
2. Ausgehend vom Programm TimeEx2.java simulieren
Sie den schiefen Wurf a) ohne
Luftwiderstand b) mit Luftwiderstand
(Reibungskraft prop v2)
Anleitung Folgende Werte haben sich bewährt
final double dt 0.1 // Zeitinterval in s
final double g 9.81 // Fallbeschleunigung
in m/s2 final double m 8.8e-3 // Masse in
kg final double rho 1.06e-3 //
Reibungskoeffizient in Ns2/m2 //
Anfangsbedingungen final double x0 0 //
Anfangsposition final double y0 0 final
double v0 10 // Anfangsschnelligkeit im
m/s final double alpha 40 // Abschusswinkel
in Grad Koordinatensystem im GPanel x -1..11
y -6..6)
Lösungsvorschlag in Wurf.java bzw. Ballistik.java
7Simulationen
Sound
- Es liegt auf der Hand, den Computer mit
Soundkarte zu musikalisch/physikalischen Demonstr
ationen und Messungen einzusetzen
Overtonewww.aplu.ch/overtone
Virtuelles Instrument www.aplu.ch/webstart
- Schwebungen der Obertöne bei der Quint der
Wohltemperierten Stimmung (C-G)
- Schwebungen bei gleichen Tönen der beiden
Tonleitern (G auf beiden)
8Gruppenarbeit 3
Inspirationen für die Gruppenarbeit 3
1. Man studiere das Kapitel 35 Sound und führe
die dort besprochenen Programme aus
2. Man ändere das Programm ClipPlayer.java so ab,
dass es eine fest vorgegebene wav-Datei abspielt
. (Anleitung der Konstruktor der Klasse File
kann den Dateinamen übernehmen.) Lösungsvorschla
g in WbzClipPlayer.java
9JControl
JControl Eingebettetes Java-System
- Java Control Unit 8-bit Microcontroller mit
(abgemagertem) JRE und Flash-Speicher
- Parallel-Port, RS-232-Port, 8-Kanal-Analog-Digita
lwandler
- Grafik-Display 128x64 pixel mit
Instrumenten-Bibliothek
- Entwicklungsumgebung (IDE) für PC (Compilieren
und Download)
- Entwicklungsplatine mit 5 Tasten, Buzzer,
Spannungsregler und RS-232-Schnittstelle
10Sensor-Interfaces
Sensor-Interfaces
- Industrieinterfaces sind universell und billig
- Verbindung mit serieller Schnittstelle (event.
über USB-Adapter)
- Eigene Programmierung (universell, aber
arbeitsintensiv)
- Nicht nur Messung, sondern auch Steuerung von
Geräten (Motoren, usw.)