FRANZIS PC+ELEKTRONIK Jochen Ferger Masse 5V W «км AI1 AI2 AI3 AI4 AOut PCF8591 16 15 13 12 11 10 SCL 9 SDA MSR mit USB und Java Mit 152 Abbildungen
7 Inhaltsverzeichnis 1 Java-Grundlagen 11 1.1 Warum Java? 11 1.2 Benötigte Software - Installation 12 1.3 Erste Programmierversuche 18 1.4 Variablen und Grundstrukturen 22 1.4.1 Variablen 22 1.4.2 Schleifen und Entscheidungen 24 Die bedingte Entscheidung (if else) 24 Die kopfgesteuerte Schleife (while-schleife) 25 Die fußgesteuerte Schleife (do-while-schleife) 26 Die Zählschleife (for-schleife) 27 1.4.3 Berechnungen 28 Mathematische Standardoperationen 28 Vergleiche und logische Standardoperationen 28 1.4.4 Klammersetzung 29 Arrays/Felder 29 1.4.5 Bits und Bytes - Operationen am offenen System 31 UND 31 Bitweise UND-Verknüpfung 33 ODER-Verknüpfung 33 Nicht-Verknüpfung 34 1.4.6 Bytes verschieben 34 1.5 Clear Screen - ein erster Kontakt mit DLLs 36 1.6 Objektorientierung - Modellierung einer Klasse 38 1.7 Zugriff auf die parallele Schnittstelle 2 40 1.8 Dateien 43 1.9 Fehler abfangen 45 2 Tools 49 2.1 Gnuplot 49 2.2 Webserver-Internet Information Server und Apache mit XAMPP... 54 2.3 Speichern von Messdaten in einer MySQL-Datenbank 55 2.3.1 MySQL 55 2.3.2 Datenbankzugriff mit Java 56 2 Anmerkung: Die parallele Schnittstelle wird hier nicht weiter theoretisch behandelt. Informationen finden Sie im Internet sowie in der MSR-Reihe des Franzis Verlags.
8 Inhaltsverzeichnis 3 USB - seriell 60 3.1 Die serielle Schnittstelle 60 3.2 Der Adapter 61 3.3 Die Programmierhilfen (Communication API) 62 3.4 Steuern und Messen mithilfe des CompuLAB-Interfaces 65 3.5 Auslesen eines Multimeters 69 3.6 Verwendung eines programmierbaren Netzteils PSP 12010 77 4 Ansteuern von Geräten mit USB-Schnittstelle 82 4.1 Aufbau und Eigenschaften der Schnittstelle 82 4.2 Nativ, nicht naiv programmieren - oder ohne C++ geht's dann doch nicht 84 4.3 Programmierung einer nativen DLL am Beispiel des Vehnelt- USB-Interfaces 89 4.4 Testen, testen, testen 93 4.5 JNI-Programmierung mit Visual Studio 94 4.6 Variante 2 - eine JNI-DLL mit einer Universalbibliothek erstellen.. 100 5 Beispielprojekte 102 5.1 Das USB-Interface von Velleman 102 5.1.1 Beispielprogramm - Lauflicht mit Richtungswahl, Ausgabe von digitalen Signalen 106 5.1.2 Beispielprojekt- Einlesen des Zustandeseiner Gabellichtschranke... 107 5.1.3 Zählerauswertung 112 5.2 Die IO-Warrior-Serie 113 5.2.1 IO-Warrior 24 testen 114 5.2.2 Ein einfacher Fernbedienungstest 116 5.2.3 Word mit einer Fernbedienung starten - der RC5-Code 117 5.2.4 Mit dem IOW24 ein LCD-Display ansteuern 120 5.2.5 IO-Warrior 40 testen 124 5.2.6 Mit dem IOW40 ein universales 10-lnterface realisieren 125 Der l 2 C-Bus 125 Temperaturmessung mit dem LM75 126 PCF8591 128 Das komplette Analogboard 131 Das digitale Ausgangsboard 132 Das digitale Eingangsboard 134 Eine Java-Klasse für das Universalinterface 136 5.3 Das CompuLAB-USB-Interface 140 5.3.1 Einen Gleichstrommotor ansteuern 140 5.3.2 Einen Schrittmotor ansteuern 141 5.3.3 Motoransteuerung mit dem L293D 145
Inhaltsverzeichnis 9 5.3.4 Geschwindigkeitsregelung über die Pulsweitenmodulation 146 5.4 RedLab 1008 der Firma Meilhaus Electronic 150 5.4.1 Java-Zugriff auf das RedLab 151 5.4.2 Frequenzmessung mithilfe des Counters 153 5.4.3 Aufnahme einer Transistorkennlinie 155 6 Erweiterte Programmierung, Threads und Netzwerkkommunikation 159 6.1 Threads / 159 6.1.1 Polling versus Threads 159 6.1.2 Programm mit Threads 160 6.1.3 Beispielprojekt mit dem Velleman-Interface 162 6.1.4 Listener und die Verwendung eines Interfaces 164 6.1.5 Zeitgesteuerte parallele Abläufe verwirklichen - die Klassen TimerTask und Timer 166 6.1.6 Prozessorlast entschärfen mit Microsleep 167 6.2 Programmieren im Netzwerk - oder ich weiß, was mein Haus macht! 169 6.2.1 Grundlagen der Netzwerkprogrammierung 169 6.2.2 TCP/IP 170 6.2.3 Serversockets und Sockets 172 6.2.4 Well Known Ports 172 6.2.5 Serverprogrammierung 175 6.2.6 Ein Beispielprojekt in drei Versionen 177 Variante 1: ein einfacher Server 177 Variante 2: ein einfacher Webserver 179 Variante 3: ein Webserver mit Formularauswertung 182 6.2.7 Mails versenden 186 7 Grundlagen der objektorientierten Theorie - Begriffe und Programmierung grafischer Oberflächen 189 7.1 Grundbegriffe 189 7.1.1 Klassen 189 7.1.2 Konstruktoren 190 7.1.3 Objekte 192 7.1.4 Überladen von Methoden 193 7.2 Vererbung 193 7.2.1 Überschreiben von Methoden 194 7.2.2 Erstellen eigener Exceptions durch Vererbung 195 7.3 Schnittstellen/Interface 197 7.4 Erstellen von Programmen mit grafischen Oberflächen 198 7.4.1 Ein Beispiel zum CompuLAB-Interface 200
10 Inhaltsverzeichnis 8 Anhang 207 8.1 Stücklisten und Bestellmöglichkeiten 207 8.2 Quellen 210 8.3 Software 210 9 Sachverzeichnis 211