Remotely Controlled Laboratories (RCLs)
Transcription
Remotely Controlled Laboratories (RCLs)
Remotely Controlled Laboratories (RCLs) Technik-Tutorial der RCLs des RCL-Portals http://rcl.physik.uni-kl.de Arbeitsgruppe Didaktik der Physik an der Technischen Universität Kaiserslautern Juni 2011 2 INHALTSVERZEICHNIS 0 Warum ein Tutorial zur RCL-Technik? .............................................................. 4 1 Technische Konzeption ...................................................................................... 4 1.1 Einführung ............................................................................................................ 4 1.2 Wahl der RCL-Technik .......................................................................................... 8 2 Lokal gesteuertes RCL ..................................................................................... 13 2.1 2.1.1 2.1.2 2.1.3 Interface ...............................................................................................................13 Mikrocontroller .....................................................................................................13 Basisschaltung und Erweiterungsschaltungen .....................................................15 Programmierung des Mikrocontrollers ..................................................................17 2.2 Hyperterminal.......................................................................................................20 2.3 2.3.1 2.3.2 Positionieren von Objekten ..................................................................................21 Hybrid-Schrittmotoren ..........................................................................................21 Schrittmotorsteuerung und Positionierungsmechanik ...........................................24 3 Ferngesteuertes RCL ........................................................................................ 26 3.1 RCL-Server ..........................................................................................................26 3.2 3.2.1 3.2.2 Laborseite ............................................................................................................28 Steuerung des RCLs über das Bedienfeld ...........................................................28 Videoübertragung im Webcamfeld .......................................................................30 3.3 Standard-Lernumgebung .....................................................................................31 4 ANHANG ............................................................................................................ 33 4.1 4.1.1 4.1.2 Interface in Basisschaltung ..................................................................................34 Schaltplan und Bauteilliste ...................................................................................34 Bestückung der Platine ........................................................................................35 4.2 4.2.1 Erweiterungsschaltungen .....................................................................................39 Übersicht..............................................................................................................39 3 4.2.2 4.2.2.1 4.2.2.2 4.2.2.3 4.2.3 4.2.4 TMC222-Modul zur Schrittmotorsteuerung ...........................................................41 Schaltplan und Bauteilliste ...................................................................................41 Bestückung der Platine ........................................................................................41 Quellcode des Mikrocontroller-Programms ..........................................................42 Geschaltete Spannungsquellen und Verbraucher ................................................43 Steuerung von Gleichstrommotoren .....................................................................43 4.3 4.3.1 4.3.2 4.3.3 4.3.4 Quellcodes zum RCL Elektronenbeugung............................................................45 Mikrocontroller-Programmierung ..........................................................................45 PHP-Programmierung ..........................................................................................49 Bedienfeld der Laborseite ....................................................................................51 Webcamfeld der Laborseite .................................................................................52 4.4 4.4.1 4.4.1.1 4.4.1.2 4.4.2 4.4.2.1 4.4.2.2 Entwicklungsumgebungen zur Mikrocontroller-Programmierung ..........................53 AVR-Studio 4.18 ..................................................................................................53 Installation............................................................................................................53 Konfiguration ........................................................................................................54 BASCOM 1.11.9.8 Demoversion ..........................................................................55 Installation............................................................................................................55 Konfiguration ........................................................................................................57 4.5 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 Installation und Konfiguration von Programmen auf dem RCL-Server ..................57 Einrichten des Internet-Zugangs ..........................................................................58 Paket XAMPP 1.7.4 .............................................................................................58 Videoserver webcamXP 5 Private ........................................................................60 Terminalprogramm Hyperterminal ........................................................................62 Fernwartungssoftware TeamViewer 6 Host ..........................................................65 4.6 4.6.1 4.6.2 4.6.3 4.6.4 Selbstbau eines elementaren RCLs .....................................................................67 Hard- und Software ..............................................................................................67 Bestückung der Platine ........................................................................................67 Lokal gesteuertes RCL.........................................................................................68 Ferngesteuertes RCL ...........................................................................................70 4 0 Warum ein Tutorial zur RCL-Technik? Dieses Tutorial zur Technik von RCLs des RCL-Portals ist eine überarbeitete und ergänzte Fassung eines ersten Tutorials 1 aus 2006. Gründe ein Tutorial zur RCL-Technik anzubieten sind: Am Selbstbau von RCLs interessierten Schülern, Studierende, Dozenten und Lehrkräften soll das Tutorial einen Einstieg in die RCL-Technik bieten. Insbesondere soll Staatsexamenskandidaten in Physik, die ein RCL entwickeln wollen, die Einarbeitungszeit in die Technik der RCLs des RCL-Portals verkürzt werden. In mündlicher Form ist Technik nur schwer vermittelbar. Der Umfang an technischen Fähigkeiten (Programmierung in HTML/PHP und einer weiteren Programmiersprache, Elektronikkenntnisse zu Mikrocontrollern, Sensoren und Aktoren) und Fertigkeiten (Bestückung der Platine des Interface, mechanischer Aufbau eines RCLs) zur Realisation eines RCLs ist groß. Zu wenige RCL-Interessierte verfügen über alle Fähigkeiten und Fertigkeiten. Das Tutorial soll dazu anregen sich die notwendigen technischen Fähigkeiten anzueignen. Das Tutorial führt in die technische Konzeption der RCLs des RCL-Portals ein und die Wahl der RCL-Technik wird begründet. In zwei Schritten "Lokal gesteuertes RCL" (→ 2) und "Ferngesteuertes RCL" (→ 3) wird die Realisation eines RCLs am Beispiel des RCLs Elektronenbeugung beschrieben. Wer selbst ein eigenes elementares und kostengünstiges RCL ohne physikalische Geräte bauen möchte, findet dazu im Anhang eine in den gleichen zwei Schritten strukturierte Anleitung (→ 4.6). Der Anhang enthält weitere Anleitungen und ergänzende Informationen. An den entsprechenden Stellen des Tutorials wird darauf verwiesen. 1 1.1 Technische Konzeption Einführung Abb. 1 veranschaulicht das Prinzip von RCLs: Abb. 1: 1 Vgl. Tutorial Selbstbau eines RCLs. Prinzip von RCLs. 5 Ein Besucher an einem quasi beliebigen Ort A kann über das Internet mit einem Experiment an einem quasi beliebigen Ort B experimentieren. Dazu stellt ein RCL-Server auf dem Computer des Besuchers eine Webseite bereit, von der aus der Besucher das Experiment über Aktoren fernsteuern und über Sensoren Fernmessungen durchführen kann. Den Datenaustausch zwischen RCL-Server und Experiment und die Steuerung des Experiments übernimmt ein Interface. Per Webcam erhält der Besucher auf der Webseite visuelle Rückmeldungen zu durchgeführten Aktionen und Veränderungen im Experiment. Am Beispiel des RCLs Elektronenbeugung wird in die technische Konzeption der RCLs des RCL-Portals eingeführt. Abb. 2 zeigt den prinzipiellen Aufbau eines RCLs aus RCL-Server, Interface und Experiment: Abb. 2: Aufbau eines RCLs am Beispiel des RCLs Elektronenbeugung. Das Experiment Elektronenbeugung ist ein Standardversuch mit Hochspannungsnetzgerät 2 und Elektronenbeugungsröhre 3. Eine Webcam, Interface und RCL-Server erweitern den Versuch zum RCL. Die nummerierten Kabelverbindungen in Abb. 2 haben folgende Funktionen: Kommunikation zwischen RCL-Server und Interface über serielle Schnittstellen (1), 12 V-Spannungsversorgung des Interface vom Steckernetzteil (2), geschaltete Netzspannung des Hochspannungsnetzgeräts (3), Steuerung der Ausgangsspannung des Hochspannungsnetzgeräts bzw. der Beschleunigungsspannung über das Interface (4), Heizspannung für Glühkathode der Elektronenkanone (5), Beschleunigungsspannung für die Elektronenkanone (6), USB-Anschluss der Webcam am RCL-Server (7) und Internetanschluss des RCLServers (8). Um ohne störendes Fremdlicht mit der Webcam das Beugungsmuster auf dem Szintillationsschirm beobachten zu können, befindet sich das gesamte Experiment im Betrieb unter einem Verdunklungskasten. 2 Vgl. LD Didactic, Hochspannungsnetzgerät 10 kV. 3 Vgl. LD Didactic, Elektronenbeugungsröhre. 6 Das RCL Elektronenbeugung kann auf dem RCL-Portal nach der Wahl des Menüpunkts RCLs aufgerufen werden. Die Wahl des Menüpunkts Labor aus der Standard-Lernumgebung ruft die Laborseite des RCLs in Abb. 3 auf: Abb. 3: Laborseite des RCLs Elektronenbeugung in einem Webbrowser. Im Bedienfeld kann die Glühkathode der Elektronenkanone mit dem Button Elektronenröhre einschalten eingeschaltet werden. Durch Eingabe von Werten zwischen 0 und 4,3 kV kann eine variable Beschleunigungsspannung an die Elektronenkanone angelegt, das auf dem Szintillationsschirm entstehende Beugungsmuster im Webcamfeld beobachtet und mit dem Button Screenshot das Webcambild auf dem Computer gespeichert werden. Die Realisation eines RCLs erfolgt in zwei Schritten. Als lokal gesteuertes RCL kann das Experiment ohne Internetzugang vom RCL-Server aus gesteuert werden, als ferngesteuertes RCL kann mit dem RCL zusätzlich weltweit über das Internet experimentiert werden. Abb. 4 zeigt dazu das Blockdiagramm der für alle RCLs einheitlichen Funktionsgruppen von RCLServer, Interface und Experiment. Pfeile zwischen den Funktionsgruppen geben Kommunikations- oder Abhängigkeitsrichtungen an: 7 Abb. 4: Funktionsgruppen von RCL-Server, Interface und Experiment eines RCLs. Lokal gesteuertes RCL Damit das Experiment fernbedienbar wird, muss der Versuchsaufbau mit Sensoren (z. B. für Temperatur), Aktoren (z. B. Schrittmotor) oder anderen gesteuerten Geräten (z. B. Hochspannungsnetzgerät in Abb. 2) ausgestattet werden. Das Interface besteht aus einer für alle RCLs identischen Basisschaltung und aus RCL-spezifischen Erweiterungsschaltungen (→ 2.1.2) für die Sensoren, Aktoren und gesteuerten Geräte. Wichtigster elektronischer Baustein der Basisschaltung ist ein programmierbarer Mikrocontroller (→ 2.1.1) zur Steuerung des Experiments. Für die Programmentwicklung wird eine Entwicklungsumgebung auf dem RCL-Server oder alternativ auf anderen Computern verwendet (→ 2.1.3). Die Programmübertragung vom RCL-Server auf den Mikrocontroller erfolgt über einen USB-ISP-Programmer und die ISP-Schnittstelle des Mikrocontrollers (→ 2.1.3). Danach werden die in Abb. 4 gestrichelt dargestellten Funktionsgruppen und Verbindungen nicht weiter benötigt und das RCL kann lokal über ein Terminal (→ 2.2) gesteuert werden werden. Ferngesteuertes RCL Um auf das RCL weltweit zugreifen zu können, wird auf dem RCL-Server ein Webserver installiert und ein Internetzugang benötigt (→ 3.1). Befehle von der Laborseite wie z. B. Parametereingaben, werden von einem PHP-Programm interpretiert und über die RS232Schnittstelle (alternativ über USB-Seriell-Adapter) des RCL-Servers an die RS232Schnittstelle des Mikrocontrollers zur Ausführung an das Experiment übermittelt. In umgekehrter Richtung werden über das PHP-Programm vom Mikrocontroller Zustände des Experiments oder Messergebnisse an die Laborseite übermittelt (→ 3.2.1). Zur Übertragung von Videobildern einer oder mehrerer Webcams, die visuelle Rückmeldungen über den Zustand des Experiments geben, wird ein Videoserver eingesetzt (→ 3.2.2). Der RCLServer stellt Besuchern außer der dynamisch generierten Laborseite auch die statischen Webseiten der Standard-Lernumgebung (← 1.1, Abb. 2) des RCLs bereit (→ 3.3). 8 1.2 Wahl der RCL-Technik Es existiert eine nur schwer im Detail zu überblickende und zu beherrschende Vielzahl von Hard- und Softwaretechnologien (Interfaces und Programmiersprachen), um ein Experiment über das Internet fernbedienbar zu machen. Im Folgenden wird die Wahl der Technik von RCLs des RCL-Portals begründet: Interface Zu Beginn des RCL-Projekts war es naheliegend auf vorhandene technische Lösungen zum Interface zurückzugreifen: Das RCL Elektronenbeugung wurde zunächst mit dem Power-Cassy 4 und dem Sensor-Cassy 5 von Leybold zur Steuerung und Messung der Beschleunigungsspannung betrieben. Der heutige Preis für beide Komponenten zusammen liegt bei ungefähr 1700 €. Ein Datenaustausch zwischen dem RCL-Server und dem Sensor-Cassy wurde über das Common Gate Interface (CGI) realisiert. Bei den nicht mehr existierenden Versionen der RCLs Beugung und Interferenz und Computertomographie wurde das Intelligent Interface 6 von Fischertechnik eingesetzt: Für 130 € wurden 4 umpolbare, kurzschlussfeste digitale Ausgänge mit 0,25 A Dauerbelastbarkeit für Gleichstrommotoren, Elektromagneten oder Lampen geboten. Digitale Sensoren wie z. B. Taster konnten an 8 digitale Eingänge angeschlossen werden. Für Potentiometer, Temperatur- oder Helligkeitssensoren mit variablem Widerstand als Ausgangsgröße waren 2 analoge Eingänge mit Eingangswiderstand zwischen 0 und 5 kΩ und einer Abtastrate von 50 Hz verfügbar. Programmiert werden konnte das Interface mit C++, Visual Basic oder als Einstieg in die Technik des Programmierens mit der graphisch orientierten Programmiersprache LLWin. Ein nutzerspezifisches im RAM des Interface gespeichertes Programm ging ohne Spannungsversorgung verloren. Die Nachteile dieser Interfaces wie zu hohe Kosten, zu geringe Flexibilität beim Anschluss von Sensoren und Aktoren - insbesondere von Schrittmotoren - und zu geringe Messraten wurden erst durch das programmierbare Eigenbau-Interface (→ 2.1) für ungefähr 50 € (→ 4.1) und eine modular gestaltete, an das jeweilige RCL anzupassende, PHPBasisprogrammierung (→ 4.3.2) gelöst. Zur Programmierung des Interface wird ein USBISP-Programmer für ungefähr 30 € benötigt. Software für RCL-Server, Mikrocontroller und Standard-Lernumgebung Tab. 1 enthält eine Übersicht der Programme für den RCL-Server und einem weiteren Computer. Die Links führen auf die Webseite zum Download des Programms und Preise sind angegeben. Auf Installation und Konfiguration von Programmen wird in den einzelnen Abschnitten des Tutorials eingegangen: 4 Vgl. LD Didactic, Power-Cassy. 5 Vgl. LD Didactic, Sensor-Cassy. 6 Vgl. Fischertechnik, Intelligent Interface, nicht mehr lieferbare Art.-Nr. 30402 bei Knobloch GmbH. 9 Typ Hersteller, Name und Version Betriebssystem und Terminal Microsoft, Hyperterminal in Windows XP Professional unter Start/Programme/Kommunikation/Hyperterminal Preis Microsoft, Windows XP Professional mit Service Pack 3 RCL-Server Webserver und PHP Videoserver RCL-Software Fernwartung- und Desktop-Sharing* Virenscanner* Computer Webeditor* Entwicklungsumgebungen für Mikrocontroller ATmega16 Apache Friends, XAMPP 1.7.4 für Windows, Installer-Version Moonware Studios, webcamXP 5 Free (eine Videoquelle) Moonware Studios, webcamXP 5 Private (bis zu 5 Videoquellen) Tab. 1: 44,95 € Technische Universität Kaiserslautern, RCL-Ordner htdocs - TeamViewer GmbH, TeamViewer 6 Vollversion* - Avira, AntiVir Personal Notepad++ team, Notepad++ 5.9 - ATMEL, AVR-Studio 4.18 - Sourceforge, WinAVR - MCS Electronics, BASCOM-AVR Demoversion (maximal 4 kB Programmcode) - MikroElektronika, MikroPascal Pro for AVR Fernwartung- und Desktop-Sharing* - The PHP Group, PHP 5.3.1 (enthalten in XAMPP 1.7.4) MCS Electronics, BASCOM-AVR Vollversion Webeditor ≈ 20 € 89 € ≈ 140 € Notepad++ team, Notepad++ 5.9 Adobe, Dreamweaver CS5.5 7 ≈ 115 €* TeamViewer GmbH, Teamviewer 6 Vollversion - Programme für den RCL-Server und für weiteren Computer zur Prgrammierung des Mikrocontrollers, Webseitenerstellung und Fernwartung (* optionale Programme, Links führen auf Webseite zum Download, Stand Juni 2011). Für den RCL-Server wird als stabiles Betriebssystem Windows XP Professional eingesetzt. Microsoft vertreibt seit Dezember 2008 Windows XP nicht mehr, Sicherheitspatches werden noch bis April 2014 bereitgestellt, ein Bezug ist z. B. über Ebay 8 möglich. Das Hyperterminal-Programm zur Kommunikation mit dem Interface ist Teil von Windows XP Professional. Vom Open-Source-Paket XAMPP wird der Apache Webserver und der PHP-Interpreter eingesetzt. Da in der Regel bei RCLs zwei Webcambilder über das Internet übertragen werden müssen, ist der Videoserver webcamXP 5 nicht kostenlos. Im RCL-Ordner htdocs befindet sich die Basissoftware, die noch an das zu realisierende RCL anzupassen ist. Ein kostenloser Virenscanner wie z. B. Antivir Personal ist erfahrungsgemäß ausreichend. Als Fernwartungssoftware für den RCL-Server wird Teamviewer empfohlen. Es genügt der Teamviewer Host, weil vom RCL-Server kein Remote-Zugriff auf den Computer erfolgen muss. Für kleinere Arbeiten an der RCL-Software oder der Standard-Lernumgebung während der Fernwartung sollte ein kostenloser Webeditor wie z. B. Notepad++ installiert werden. Auf einem weiteren Computer kann zur Programmierung des Mikrocontroller eine Entwicklungsumgebung für folgende Programmiersprachen installiert werden: Mit dem AVRStudio kann in Assembler und nach der Installation von WinAVR in C bzw. C++ programmiert werden. Für Einsteiger wird eine Programmierung in Basic mit BASCOM-AVR empfohlen. Falls der Programmcode größer als 4 kB ist, muss die Vollversion erworben wer7 Vgl. Adobe, Dreamweaver CS5.5. 8 Vgl. Ebay, Windows XP Professional. 10 den. Eine Programmierung in Pascal ist für ungefähr 140 € mit dem Pascal-Compiler von MikroElektronika möglich. Mit Notepad++ steht ein kostenloser und guter Webeditor zum Erweitern der PHPBasissoftware und zum Erstellen von Webseiten der Standard-Lernumgebung bereit. Als professionellerer Editor kann z. B. Dreamweaver verwendet werden. Für die Fernwartung des RCL-Servers muss auf dem zugreifenden Computer die Vollversion von Teamviewer installiert werden. Die gewählte Hard- und Software für RCLs bietet folgende Vorteile: Geringe Hard- und Softwarekosten Interface mit Erweiterungsschaltungen (≈ 70 €), USB-ISP-Programmer (≈ 30 €), AVRStudio zur Programmierung in C (0 €), Betriebssystem Windows XP Professional (≈ 20 €), webcamXP 5 für ein Webcambild (0 €) können zusammen für 120 € erworben werden. Mit einem nicht mehr benötigtem, älteren Computer, Tastatur und Maus (0 €), einem ausgedientem Monitor (0 €), einer einfachen USB-Webcam (≈ 20 €) und der Positionierungsmechanik eines nicht mehr benötigten, älteren Scanners (0 €) kann ein RCL schon ab 140 € realisiert werden. Einfache Adaptierbarkeit des Interface und der PHP-Basissoftware an das Experiment Der Mikrocontroller des Interface kann frei programmiert werden. Mit der Aufteilung der Schaltung des Interface in eine für alle RCLs gleiche Basisschaltung und RCL-spezifische Erweiterungsschaltungen (→ 2.1.2) ist das Interface leicht an das Experiment anpassbar. Durch die im Mikrocontroller integrierten Peripheriebausteine genügen meist wenige Bauelemente und die unterschiedlichsten Mess- und Steuergrößen können verarbeitet werden. Die PHP-Basissoftware braucht nur um wenige Programmblöcke erweitert zu werden. Einfacher Zugang zu Ressourcen der RCL-Technik Die weite Verbreitung des Mikrocontrollers ATmega16 im Hobbybereich korrespondiert mit einem umfangreichen, kostenlosen Informationsmaterial zur Hardware und Software des Mikrocontrollers im Internet. In Tab. 2 sind unter Mikrocontroller Links zu Datenblättern, Portalen und Foren mit praxisnahen Lösungen für Probleme der MikrocontrollerProgrammierung zusammengestellt. Ein stärker strukturiertes Erlernen der Funktionen und Programmierung von AVR-Mikrocontrollern ist über die genannten Tutorials im Internet und Bücher möglich. 11 Ressource Mikrocontroller Mikrocontroller mega16A, Mikrocontroller Summary Kurzbeschreibung ATmega16A Ausführliches und zusammenfassendes Datenblatt des Mikrocontrollers ATmega16 www.microcontroller.net Portal für Mikrocontroller RoboterNETZ Portal für Robotik, Mikrocontroller und Elektronik AVR-Tutorial Tutorial zur AVR-Familie auf microcontroller.net BASCOM-AVR Online-Hilfe zur Entwicklungsumgebung BASCOM-AVR myAVR Mikrocontrollerlösungen für Ausbildung und Selbststudium BASCOM-Forum Forum von MCS BASCOM RoboterNETZ-Forum Forum von RoboterNETZ myAVR-Forum Forum von myAVR AVR-Forum Forum von Atmel Roland Walter: AVR Mikrocontroller LehrBuch zur Programmierung von AVR-Mikrocontrollern mit Basic buch Günter Schmitt: Mikrocomputertechnik mit Buch zur Programmierung von AVR-Mikrocontrollern in AssembControllern der Atmel AVR-RISC-Familie ler und C Claus Kühnel: Programmierung der AVR Buch zur Programmierung von AVR-Mikrocontrollern in BASRISC Mikrocontroller mit BASCOM-AVR COM-AVR (Basic) Schrittmotoren Elektronik HTML/PHP Frank Sichla: Schaltungssammlung Mikro- Buch mit praktischen Anwendungsschaltungen und Einsatzmöglichkeiten von Mikrocontrollern controller und USB SELFHTML Portal zum Erstellen von Webseiten mit HTML SELTPHP Portal zum Programmieren von Webseiten mit PHP PHP Entwicklerseite von PHP Kleines Tutorial PHP-Tutorial PHP-Handbuch PHP-Handbuch reichelt elektronik Elektronikversand Conrad Elektronikversand ELV Elektronik Elektronikversand Datasheet Catalog.com Datenbank für Datenblätter elektronischer Bauelemente Datasheet Archive Datenbank für Datenblätter elektronischer Bauelemente Pegelwandler Max232 für serielle SchnittDatenblatt des ICs Max232 von Texas Instruments stelle Spannungsregler L7805 Datenblatt des ICs L7805 von STMicroelectronics Schrittmotormodul TMC222 Datenblatt des ICs TMC222 von Trinamic Minebea Hybrid Stepping Motors Datenblätter von 12 Hybrid-Schrittmotoren Trinamic Stepper Motors Datenblätter und Bezugsquellen von 6 Hybrid-Schrittmotoren reichelt elektronik Großes Angebot an Schrittmotoren Quality Motors Auf TMC-Module und -ICs abgestimmte Schrittmotoren Nanotec Schrittmotor-Animation Animation von unipolarem und bipolarem Schrittmotor Nanotec Glossar Glossar mit Erklärungen zu wichtigen Begriffen aus der Schrittmotor-Antriebstechnik Erich Rummich: Elektrische SchrittmotoBuch zum Erwerb von Kenntnissen zum Aufbau und zur Funktiren und -antriebe- Funktionsprinzip- Beonsweise von Schrittmotoren triebseigenschaften - Messtechnik Tab. 2: Ressourcen zur Realisation eines RCLs. Die seit 1996 zunehmende Bedeutung der kostenlosen Skriptsprache PHP und das Wachstum des Internets korrespondieren mit einer Zunahme an kostenlosem Informationsmaterial zur PHP/HTML-Programmierung. Neben den unter PHP/HTML in Tab. 2 genannten Ressourcen sind wegen des großen Marktes keine Bücher zu PHP genannt. Die teuren und schnell veraltenden Bücher sollten in Bibliotheken geliehen werden. Unter Elektronik sind in Tab. 2 Links zum Versandhandel elektronischer Bauelemente, zu Datenbanken mit Datenblättern elektronischer Bauelemente und zu Datenblättern der wichtigsten ICs des Interface zu finden. Unter Schrittmotoren sind Links zu Schrittmotoren 12 wichtiger Anbieter zusammengestellt, die über den Elektronikhandel leicht bezogen werden können. Das Buch von Erich Rummich erklärt Zusammenhänge zwischen Bauform und Funktionsweise von Schrittmotoren, die über Informationen zu Schrittmotoren im Tutorial (→ 2.3.1) gegebenen Informationen hinausgehen. Programmierung des Mikrocontrollers in Basic Besonders die Möglichkeit der Programmierung des Mikrocontrollers in der Hochsprache Basic (← 1.2, Tab. 1, Bascom AVR) erleichtert den Einstieg in den Selbstbau von RCLs. Darüber hinaus besteht analog zur PHP-Programmierung die MikrocontrollerProgrammierung aus einer an das jeweilige RCL lediglich anzupassenden Basisprogrammierung (→ 4.3.1). Betriebssystemunabhängigkeit Das Interface kommt ohne betriebssystemspezische Treiber aus. PHP und HTML sind betriebsystemunabhängige Sprachen. Der Apache Webserver XAMPP ist außer für Windows für die Betriebssysteme Linux, Mac OS X und Solaris 9 erhältlich. Wartung von Programmierung und Interface Änderungen der PHP/HTML-Programmierung können leicht über einen Fernzugriff auf den RCL-Server vorgenommen werden. Da der PHP/HTML-Quellcode im RCL-Betrieb stets in einer lauffähigen Form vorliegt, führen Wechsel von Personen die Zugriff auf die Programmierung haben nicht zu Ausfällen des RCLs. Änderungen und Reparaturen an den Ergänzungsschaltungen des Interface können aufgrund des Lochrasteranteils der Platine (→ 4.1.2) leicht durchgeführt werden. Zerstörungssichere Versuchskomponenten Versuchskomponenten sind durch die Programmierung des Mikrocontrollers vor Fehlbedienungen des RCLs geschützt. Da der Mikrocontroller die Zulässigkeit von Parameterwerten überwacht, ist kein Missbrauch des Experiments durch Dritte möglich. Abstürze des RCL-Servers führen nicht zu undefinierten Zuständen des Experiments, weil der Mikrocontroller das Experiment steuert. In der Lebensdauer stärker begrenzte Versuchskomponenten wie z. B. die Elektronenbeugungsröhre beim RCL Elektronenbeugung (← 1.1, Abb. 2) können durch eine programmierte Standby-Funktion des Mikrocontrollers bei Nichtgebrauch ausgeschaltet werden. Keine Installation von Zusatzsoftware Besucher benötigen zum Experimentieren mit RCLs lediglich einen kostenlos verfügbaren Webbrowser wie z. B. die auf Funktionsfähigkeit für die RCLs getesteten Internet Explorer, Opera, Firefox, Safari oder Konquerer mit aktivierter Javaskript-Funktion. Es muss keine weitere Zusatzsoftware installiert werden. Eine alternative technische Lösung für RCLs ist LabVIEW (Laboratory Virtual Instrument Engineering Workbench) von National Instruments (NI) 10. LabVIEW ist eine sehr umfangreiche, 9 Apache friends, XAMPP. 13 mittlerweile als Industriestandard geltende, grafische Programmierumgebung zum Messen, Steuern und Regeln von Systemen. Über umfangreiche Treiber-Bibliotheken lassen sich fast alle gängigen mit einer entsprechenden Schnittstelle ausgestatteten Geräte in LabVIEW einbinden. LabVIEW wurde als technische Lösung im RCL-Projekt aus mehreren Gründen nicht eingesetzt: Besucher müssen einmalig vor dem Experimentieren mit RCLs die LabVIEW Run-Time Engine 11 installieren. Es existieren nur wenige Schulgeräte mit den erforderlichen Schnittstellen. Die Kosten von ungefähr 1300 € für die Basisversion und ungefähr 2800 € für die Vollversion sind zu hoch. LabVIEW ist für die zu entwickelnden RCLs bzw. die Zielgruppe aus Schülern und Studierende überdimensioniert. Der Nachbau von RCLs durch interessierte Schüler und Studierende wäre aus Kosten und Anforderungsgründen nur schwer möglich. Trotz der graphischen Programmieroberfläche von LabVIEW müssen im Programmcode immer noch Anpassungen in der speziell für LabVIEW entwickelten Programmiersprache G vorgenommen werden. Die Einarbeitung in LabVIEW ist vom Zeitaufwand und den Anforderungen her mindestens genauso hoch wie die für Mikrocontroller- und PHP-Programmierung. Eine mit fertigen LabVIEW-Elementen gestaltete Laborseite ist nicht unbedingt nutzerfreundlicher als eine mit PHP/HTML erstellte Laborseite. 2 2.1 2.1.1 Lokal gesteuertes RCL Interface Mikrocontroller Zentrales Bauelement des Interface ist ein ATMEL AVR 8-bit RISC Mikrocontroller ATmega16. Dieser enthält im Vergleich zu einem Mikroprozessor außer dem Prozessor auch periphere Module wie z. B. Speicher, digitale und analoge Ein- und Ausgänge oder Timer für Zusatzfunktionen. Dadurch kommen Anwendungen von Mikrocontrollern wie z. B. RCLs meist mit wenigen zusätzlichen Bauelementen aus. Tab. 3 enthält eine Übersicht der wichtigsten Features des Mikrocontrollers zum Prozessor, zur Programmierung und Datenspeicherung, zu peripheren Modulen und erläutert einige Fachbegriffe: 10 Vgl. National Instruments. 11 Vgl. National Instruments, LabVIEW Run-Time Engine. 14 Feature Erläuterung ATMEL: US-amerikanischer Hersteller von Mikrocontrollern Prozessor AVR: Familie von Mikrocontrollern 8 bit: Breite des internen Datenbusses des Mikrocontrollers ATMEL AVR 8 bit RISC Mik- RISC steht für Reduced Instruction Set Computer (Rechner mit reduziertem Befehlsrocontroller ATmega16 satz): Designphilosophie von Mikrocontrollern mit Befehlssatz aus möglichst einfachen Befehlen und höherer Effizienz des Prozessors ATmega: Eine der Mikrocontroller-Serien von ATMEL 16 steht für 16 kB Flash-ROM: Größe des Programmspeichers des Mikrocontrollers 131 Befehle mit 1-2 Taktzyk- Die ATmega-Serie besitzt unter den Mikrocontroller-Serien von ATMEL den größten len/Befehl Befehlssatz. Die meisten Befehle benötigen zur Ausführung nur einen Taktzyklus. Programmierung und Datenspeicherung Variabel wählbare Taktfre- Ein externer Schwingquarz legt die Schwingungsfrequenz einer Oszillatorschaltung quenzen bis zu 16 MHz und damit die Taktfrequenz des Mikrocontrollers fest. ISP steht für In System Programming: Der Mikrocontroller kann ohne aus der Schaltung entfernt zu werden programmiert werden. Es wird kein teures Programmiergerät, sondern nur ein Programmieradapter benötigt. ISP über SPI-Bus in 16 kB SPI steht für Serial Peripheral Interface (Serielles Peripheres Interface): Nach dem Master-Slave-Prinzip arbeitender synchroner serieller Datenbus zur Kommunikation Flash-ROM Programmzwischen digitalen Schaltungen Speicher Flash-ROM: Kann zur Speicherung des Programmcodes ca. 1000-mal neu beschrieben/gelöscht - geflashed - werden, aber beliebig oft gelesen werden. Daten bleiben auch ohne Versorgungsspannung erhalten EEPROM steht für Electrically Erasable Programmable Read Only Memory (Elektrisch löschbarer und programmierbarer Nur-Lese-Speicher): Nichtflüchtiger Speicher, der beliebig oft gelesen und mindestens 100000 mal beschrieben werden kann. Kann z. B. zum Speichern von Messwerten und Konfigurationsdaten verwendet und über ISP programmiert werden. 512 B EEPROM 1 kB internes SRAM SRAM steht für Static Random Access Memory: Flüchtiger Speicher der beliebig oft gelesen und beschrieben werden kann. Wird z. B. zur Speicherung von Variablen und des Stacks verwendet. 32 programmierbare Ein- und Der Mikrocontroller ist 40-polig. Davon können 32 Pole entweder als Ein- oder AusAusgänge gang programmiert werden. Periphere Module Zwei 8-bit- und ein 16-bit- Die vom Quarzoszillator gesteuerten Timer erlauben z. B. präzise Zeitmessungen Timer mit Vorteilern und Veroder Interrupts bei bestimmten Zählerständen. Die maximalen Zählerstände sind bei gleichs-Modus 8 bit 255 und bei 16 bit 1023. Vorteiler erlauben eine Verringerung der Zählrate. Programmierbare USART USART steht für Universal Synchronous/Asynchronous Receiver Transmitter: Serielle Schnittstelle, die zur Datenübertragung zwischen Mikrocontroller und Computer benutzt wird. I2C Interface I2C ist ein synchroner, serieller Zweidraht-Bus mit einer Daten- und einer Taktleitung zur Kommunikation zwischen ICs. Nach dem Master-Slave-Prinzip kann ein Master bis zu 128 Slaves ansprechen. Die Übertragungsrate liegt im Standard-Mode bei 100 kbit/s. Externe und interne Interrupts Interrupts unterbrechen das Hauptprogramm des Mikrocontrollers, um kurzfristige und zeitkritische Verarbeitungen durchzuführen. Externe Interrupts werden durch am Mikrocontroller angeschlossene Hardware gesteuert, interne Interrupts durch die Programmierung des Mikrocontrollers. 4 PWM-Ausgänge PWM steht für Pulse Width Modulation (Pulsweitenmodulation): Timer stellen an 4 Ausgängen Rechteckimpulse der Dauer t und Unterbrechungsdauer T-t mit variablem Tastverhältnis t/T zur Verfügung. ADC steht für Analog to Digital Converter (A/D-Wandler): Integrierte Schaltung, die analoge Eingangsspannung U e in digitale Ausgangsspannung (Zahl) umwandelt. 8 10-bit ADC 10-bit: Auflösungsvermögen des A/D-Wandlers. Kleinster auflösbarer Spannungsunterschied ist (U e,max - U e,min )/210. Tab. 3: Features des Mikrocontrollers ATmega16. 15 2.1.2 Basisschaltung und Erweiterungsschaltungen Abb. 5 zeigt am Beispiel des RCLs Elektronenbeugung die Platine des Interface mit den Funktionsgruppen 1 - 5 der Basisschaltung und den Funktionsgruppen 6 und 7 der Erweiterungsschaltungen (← 1.1, Abb. 4): Abb. 5: Platine des Interface des RCLs Elektronenbeugung. Abb. 6 zeigt den dazugehörigen Schaltplan mit den Nummern der Funktionsgruppen und die Pinbelegung des Mikrocontrollers ATmega16: Abb. 6: Schaltplan des Interface des RCLs Elektronenbeugung (links) und Pinbelegung des Mikrocontrollers ATmega16 (rechts). 16 Basisschaltung Die Spannungsversorgung (1) des Interface erfolgt über ein Universal-Steckernetzteil mit der Betriebsspannung U b = 12 V. Eine Diode SB140 schützt die Elektronik des Interface vor falscher Polung der Spannungsversorgung. Der Spannungsregler L7805 wandelt die Betriebsspannung am Hohlstecker in eine Gleichspannung von 5 V für die Spannungsversorgung der elektronischen Bauelemente des Interface um. Die Betriebsspannung kann im Interface auch direkt zur Ansteuerung von Relais oder zur Spannungsversorgung kleinerer Motoren verwendet werden. Bei Bedarf kann unter Beachtung der Kühlung des L7805 das Interface mit höheren Betriebsspannungen z. B. für stärkere Schrittmotoren betrieben werden. Die nicht hinreichend stabile und temperaturabhängige Frequenz des internen RCOszillators im Mikrocontroller (2) kann bei Verwendung der USART zu Problemen führen. Daher wird ein externer 11,0592 MHz Schwingquarz (3) eingesetzt. Der IC MAX232 ist ein Pegelwandler, der die 0V/+5 V-Signale der seriellen Schnittstelle (4) des Mikrocontrollers an die ±12 V-Signale der seriellen Schnittstelle des Computers anpasst. Über den ISP-Stecker kann der Mikrocontroller programmiert werden (5). Das Interface in der Basisschaltung kann im Selbstbau angefertigt werden (→ 4.1). Erweiterungsschaltungen Nur die wenigsten Aktoren, Sensoren, gesteuerte Geräte und Bauelemente eines RCLs lassen sich direkt vom Mikrocontroller ansteuern. Beim RCL Elektronenbeugung wird die Heizspannung der Elektronenkanone mit einem Relais zum Schalten der Netzspannung des Hochspannungsnetzgerätes ein- und ausgeschaltet (6). Liefert der Mikrocontroller am Port PA0 die Spannung 5 V (high), so wird die Kollektor-Emitter-Strecke des Transistors BC 337 niederohmig, fast die gesamte Betriebsspannung U b = 12 V fällt über dem Relais ab und es fließt ein Strom durch das Relais. Die Diode 1N4001 schützt den Transistor vor Induktionsspannungsspitzen beim Ein- und Ausschalten der Spule im Relais. Am Steuereingang des Hochspannungsnetzgeräts kann durch Anlegen einer Steuerspannung U S zwischen 0 V und 5 V die Beschleunigungsspannung der Elektronenkanone zwischen 0 und 4,3 kV im belasteten Zustand bei eingeschalteter Glühkathode variiert werden. Die analoge Steuerspannung U S erzeugt ein 8-bit Digital-Analog-Wandler PCF8591, der über den I2C-Bus des Mikrocontrollers (Ports PC0 und PC1) mit Binärcodes zwischen 0 und 255 angesteuert wird (7). Die Ausgangsspannung des D/AWandlers liegt in 256 Stufen zwischen 3,70 mV und 4,97 V. Dieser Schaltung wurde der Vorzug gegenüber der Erzeugung einer Steuerspannung mit Hilfe eines der Pulsweitenmodulationsausgänge des Mikrocontrollers gegeben, weil der Programmieraufwand geringer und die Steuerspannung keine Restwelligkeit aufweist. Eine Übersicht zu Erweiterungsschaltungen für Sensoren und Aktoren (→ 4.2.1) zeigt die Anpassungsfähigkeit des Interface an die unterschiedlichsten Experimente. 17 2.1.3 Programmierung des Mikrocontrollers Im Folgenden wird die Programmstruktur des Mikrocontroller-Programms und die Übertragung des Programmcodes in den Mikrocontroller beschrieben: Programmstruktur Der Mikrocontroller ist mit einem Programm (Firmware) ausgestattet, um die Aufgaben des Interfaces abzuarbeiten. Hierzu zählen im Wesentlichen Programmteile zur Kommunikation mit dem RCL-Server und zur Steuerung des Experiments, da das Interface eine Schnittstelle zwischen Experiment und RCL-Server darstellt. Weitere Programmteile sind beispielsweise zur Initialisierung des Versuchsaufbaus und der Steuerparameter sowie zur Konfiguration des Interfaces realisiert. Abb. 7 zeigt ein Flussdiagramm der Programmteile zur Kommunikation mit dem RCL-Server und zur Steuerung des Experiments: Abb. 7: Flussdiagramm der Programmierung des Mikrocontrollers. Der Programmteil zur Kommunikation mit dem RCL-Server besteht im Wesentlichen aus einer Schleife, die unablässig auf Steuerzeichen des RCL-Servers wartet, diese gegebenenfalls empfängt und auswertet. Soll mittels eines empfangenen Steuerzeichens der Versuchsaufbau angesteuert werden, wird vom Kommunikations-Programmteil eine entsprechende Anweisung für den Steuerungs-Programmteil generiert. In der Schleife werden auch Antworten wie z. B. Messergebnisse des Steuerungs-Programmteils entgegengenommen und an den RCL-Server ausgegeben. Der Kommunikations-Programmteil kann Kommandos mit und ohne Parameter entgegennehmen und verarbeiten. So lassen sich einfache Befehle wie Start und Stopp eines Motors, aber auch speziellere Anweisungen wie "Messe über den Bereich von a nach b mit einer Schrittweite c" ausführen. Auch Messergebnisse oder Statusinformationen in Form einzelner Daten wie Zahlen oder Listen können vom Kommunikations-Programmteil an den RCL-Server übertragen werden. Ferner übernimmt der KommunikationsProgrammteil auch den Austausch von Konfigurationsdaten für das Interface, beispiels- 18 weise Motorparameter oder Zeitvorgaben für eine Standby-Funktion. Schließlich gibt der Kommunikations-Programmteil auch Fehlermeldungen an den RCL-Server aus, etwa bei einem Fehlerzustand im Experiment oder bei fehlerhaften Anweisungen des Besuchers bzw. des RCL-Servers. Im Programmteil zur Steuerung des Experiments erfolgt die Ansteuerung von Aktoren und das Auslesen von Sensoren mittels elektronischer Aus- und Eingänge (Ports) des Mikrocontrollers. Gegebenenfalls sind zwischen den Ports des Mikrocontrollers und dem Experiment Erweiterungsschaltungen erforderlich (← 2.1.2, Erweiterungsschaltungen). Der Steuerungs-Programmteil ist als Interrupt-Routine implementiert. Interne Zeitgeber des Mikrocontrollers rufen den Programmteil zyklisch z. B. alle 1 oder 10 Millisekunden auf, wobei die zuvor beschriebene Schleife des Kommunikations-Programmteils kurzzeitig für die Abarbeitung des Steuerungs-Programmteils unterbrochen wird. Hierdurch wird die Steuerung als Real-Time-Prozess 12 ausgeführt und es können insbesondere zeitkritische Steueraufgaben mit einer Auflösung von ungefähr 1 - 10 ms zuverlässig erledigt werden. Ferner ist im Mikrocontroller und dem Programm ein sogenannter Watchdog installiert, der das Programm bei einem Programmabsturz automatisch neu startet. Der Watchdog als elektronische Baugruppe im Mikrocontroller führt einen Neustart des Mikrocontrollers (Reset) durch, sofern er nicht mehr über das Programm in vorgegebenen Zeitintervallen angesteuert wird. Je nach RCL gibt es noch weitere Interrupt-Routinen, die unabhängig vom Zeittakt des Mikrocontrollers auf externe Ereignisse wie z. B. Ausgangsspannungsänderungen eines Sensors reagieren. Damit kann besonders schnell auf Erfordernisse des Experiments reagiert oder es können Zeitmessungen mit einer Genauigkeit von ungefähr 10-6 s durchgeführt werden. Im Anhang (→ 4.3.1) ist der Pascal-Quellcode für den Mikrocontroller des RCLs Elektronenbeugung verfügbar. Programmübertragung Nach der Kompilierung des Assembler-, Basic-, C+-, C++- oder Pascal-Programms liegt eine Hexadezimaldatei vor, die vom Computer in den Mikrocontroller übertragen werden muss (Flashen des Programms). Zur Programmübertragung muss das AVR-Studio installiert und konfiguriert sein (→ 4.4.1). Abb. 8 zeigt wie die Programmübertragung durchgeführt wird: 12 Real-Time bedeutet hier, dass die maximale Dauer eines Vorgangs vorhersehbar und gewährleistet ist, dass eine Steueraufgabe nach einer vorhersehbaren Zeit abgeschlossen ist. 19 Abb. 8: Programmübertragung zwischen Computer und Mikrocontroller im Interface des RCLs Elektronenbeugung über USB-Seriell-Adapter und ISPProgrammer. Das Interface braucht nicht mit dem Experiment verbunden zu sein. Auch Erweiterungsschaltungen innerhalb oder außerhalb des Interface müssen nicht mit dem Mikrocontroller verbunden sein. Das Interface ermöglicht über die ISP-Schnittstelle die Programmierung mit einem preisgünstigen ISP-Programmer ohne ein teureres Experimentierboard 13. Zur Übertragung des Programms muss in folgenden Schritten vorgegangen werden: (1) Spannungsversorgung des Interface zur Sicherheit unterbrechen, weil beim Verbinden mehrpoliger Steckerverbindungen es zu Kurzschlüssen kommen kann. (2) 10-poligen ISP-Stecker des ISP-Programmers an die ISP-Schnittstelle des Interface anschließen. (3) ISP-Programmer an die serielle Schnittstelle oder über USB-Seriell-Adapter an die USB-Schnittstelle des Computers anschließen. (4) Spannungsversorgung des Interface wieder herstellen. (5) AVR-Studio unter Start/Programme aufrufen und nach Abb. 9 in der Registerkarte Program unter Flash die zu übertragende Hexadezimal-Datei z. B. Elektronenbeugung.hex auf der Festplatte auswählen und Program wählen. 13 Vgl. ATMEL STK 500 Entwicklerkit bei Reichelt Elektronik. 20 Abb. 9: Übertragung der Hexadezimaldatei Elektronenbeugung.hex in den Mikrocontroller. (6) Spannungsversorgung des Interface unterbrechen, ISP-Programmer vom Interface trennen, AVR-Studio beenden und den ISP-Programmer vom Computer trennen. 2.2 Hyperterminal Nach der Programmübertragung kann das Experiment über das konfigurierte Hyperterminal (→ 4.5.4) lokal gesteuert werden. Mit dem Hyperterminal können als Text eingegebene Befehle oder Abfragen an den Mikrocontroller gesendet oder von diesem empfangen werden. Der Computer muss wie bei der Programmübertragung mit dem Interface per Null-ModemKabel über die serielle Schnittstelle oder einen USB-Seriell-Adapter verbunden sein. Das Interface muss an die Versorgungsspannung anschlossen sein, braucht aber nicht mit dem Experiment verbunden zu sein. Abb. 10 zeigt nach Eingabe von ? und von param? im Hyperterminal die Befehlsliste des Mikrocontrollers für das RCL Elektronenbeugung: 21 Abb. 10: Befehlsliste des Mikrocontrollers im Hyperterminal für das RCL Elektronenbeugung. Tab. 4 gibt Erläuterungen zur Befehlsliste: Befehl/Abfrage Erläuterung DA x Am Eingang des D/A-Wandlers wird die Zahl x (0 - 255) im Binärcode angelegt und die Ausgangsspannung des Hochspannungsnetzgeräts bzw. die Beschleunigungsspannung der Elektronenkanone eingestellt On/Off Hochspannungsnetzgerät und Glühkathode der Elektronenkanone einoder ausschalten. Beim Einschalten wird die Steuerspannung des Interface am Hochspannungsnetzgerät auf ≈ 0 V einstellt Standby Ausgabe der eingestellten Standbyzeit von 300 s setSB x Standbyzeit einstellen next Standby in Ausgabe der verbleibenden Standbyzeit (254 s) bis das Experiment ausgeschaltet wird. Eine negative Standbyzeit gibt die Zeit seit dem Ablauf der Standbyzeit an Power On Delay Ausgabe der Verzögerungszeit (2 s) bis das Hochspannungsnetzgerät/Elektronenbeugungsröhre nach dem Ausschalten oder nach Ablauf der Standbyzeit erneut eingeschaltet werden kann setPOD x power on enabled in Tab. 4: Verzögerungszeit einstellen Ausgabe wie lange Hochspannungsnetzgerät nicht eingeschaltet werden kann. Zeiten unter 0 bedeuten, dass Power-On-Delay-Zeit ablaufen ist Erläuterung der Befehle in Abb. 10. 2.3 Positionieren von Objekten In fast allen RCLs des RCL-Portals außer den RCLs Elektronenbeugung und Oszilloskop müssen Objekte rotatorisch oder translatorisch positioniert werden. Eingesetzt werden Hybrid-Schrittmotoren als Aktoren, eine Schrittmotorsteuerung von Trinamic als Erweiterungsschaltung (TMC222-Modul), die Positionierungseinheit ausgedienter Flachbrett-Scanner und ein Referenz-Taster als Sensor. 2.3.1 Hybrid-Schrittmotoren Abb. 11 zeigt den vereinfachten schematischen Aufbau eines zweiphasigen Schrittmotors mit getrennten magnetischen Kreisen des Stators und einem permanent magnetisierten zweipoligen Rotor (Polpaarzahl 1): 22 Abb. 11: Funktionsprinzip von Schrittmotoren: Unipolare (links) und bipolare Schaltung (rechts) von Schrittmotoren mit Bestromungstabellen für Voll- und Halbschrittbetrieb. Dargestellt ist der Schritt 0. Der Rotor verfügt bei der dargestellten Polreihenfolge S-S-N-N des Stators über eine stabile Stellung, bei einer hypothetischen (magnetische Monopole) Polreihenfolge N-S-N-S gäbe es mit diesem Aufbau des Stators nur instabile Stellungen des Rotors. Um den Rotor in Bewegung zu setzen, muss die Polreihenfolge S-S-N-N im oder entgegen den Uhrzeigersinn (Rechts- oder Linksdrehung) weitergeschaltet und der Rotor vom magnetischen Schrittfeld mitgenommen werden. Die magnetische Polarität eines magnetischen Kreises lässt sich entweder durch zwei Spulen konstanter elektrischer Polarität mit unterschiedlichem Wicklungssinn (herstellungstechnisch zu aufwendig), durch eine Spule mit Mittelanzapfung und konstanter elektrischer Polarität der beiden Teilspulen (unipolare Schaltung) oder durch eine Spule mit wechselnder elektrischer Polarität (bipolare Schaltung) realisieren. In Abb. 11 sind dazu die elektrischen Beschaltungen und die Bestromungstabellen für eine Rechtsdrehung des Rotors dargestellt. Für eine Linksdrehung des Rotors muss die Schrittfolge in umgekehrter Reihenfolge durchlaufen werden. Es wird zwischen Vollschrittbetrieb (graue Zeilen der Tabellen) mit Schrittwinkel 90° bzw. Schrittzahl 4 und Halbschrittbetrieb (alle Zeilen der Tabellen) mit Schrittwinkel 45° bzw. Schrittzahl 8 unterschieden. Beim Vollschrittbetrieb werden immer beide magnetische Kreise bestromt und die N-S-Polachse des Rotors nimmt nur Stellungen zwischen den Statorpolen 23 an. Beim Halbschrittbetrieb wird zwischen den Vollschritten nur einer der magnetischen Kreise bestromt und die N-S-Polachse des Rotors kann zusätzlich 4 Stellungen in Richtung der Statorpole einnehmen. Der Hybrid-Schrittmotor ist die am häufigsten vertretene Bauform von Schrittmotoren. Abb. 12 zeigt den Aufbau eines Hybrid-Schrittmotors: Abb. 12: Aufbau eines Hybrid-Schrittmotors für unipolare und bipolare Schaltung. Daten: Schrittwinkel 1,8°, max. Drehmoment 15,5 Ncm. Der Stator besteht aus zwei Strängen mit je 4 in Reihe geschalteten Spulen. Der Wicklungssinn der Spulen ist in beiden Strängen so, dass sich die Polfolge N-S-N-S über den Umfang ergibt. Beide Stränge zusammen ergeben unabhängig von der Stromrichtung eine Polfolge N-N-S-S-N-N-S-S über den Umfang. Ein zweipoliger Rotor (Polpaarzahl 1) kann im Vollschrittbetrieb 4 Stellungen annehmen. Der Rotor des Hybridschrittmotors besteht aber aus axial magnetisierten Permanentmagneten, deren Polpaarzahl durch axial versetzte weichmagnetische Zahnscheiben auf 50 erhöht wurde. Dadurch erhöht sich die Schrittzahl auf 4 ⋅ 50 = 200 und der Schrittwinkel verkleinert sich auf 360°/200 = 1,8°. Um stabile Rotorstellungen zu erhalten, müssen die Statorsegmente ebenfalls gezahnt ausgeführt werden. Ein solcher Hybrid-Schrittmotor vereint die Vorteile des Reluktanz- und des permanenterregten Schrittmotors: Ein kleiner Schrittwinkel wird durch das von Reluktanzschrittmotoren bekannte Prinzip der Erzeugung einer Vielzahl von Polen des Rotors durch Zahnscheiben erzielt. Ein hohes Drehmoment wird durch das von permanenterregten Schrittmotoren bekannte Prinzip der Ausführung des Rotors als Permanentmagnet erzielt. Aufgrund der bifilaren Wicklung besteht jede Statorwicklung aus zwei Teilspulen und der Schrittmotor kann in unipolarer (alle 6 Anschlüsse verwendet) und bipolarer Schaltung (nur 4 Anschlüsse verwendet, gemeinsamer Anschluss der Teilspulen bleibt unverwendet) wie in Abb. 12 dargestellt verwendet werden. 24 Schrittmotoren erlauben nicht nur das Bewegen, sondern innerhalb der Leistungsgrenzen (keine Schrittverluste) auch ein genaues Positionieren von Objekten. Bei bekannter Schrittzahl auf einer gemessenen Strecke oder Schrittzahl für den Vollwinkel können ausgehend von einer Referenzstellung Objekte translatorisch oder rotatorisch positioniert werden. 2.3.2 Schrittmotorsteuerung und Positionierungsmechanik Im Folgenden wird die bei allen RCLs mit Schrittmotoren eingesetzte Schrittmotorsteuerung, die Mechanik zur translatorischen Positionierung von Objekten und die Funktionsweise eines Referenztasters beschrieben: Schrittmotorsteuerung Abb. 13 zeigt das Blockschaltbild und das im Selbstbau herstellbare TMC222-Modul (→ 4.2.2.1, → 4.2.2.2) mit dem IC TMC222 von Trinamic zur Steuerung bipolarer 2-phasiger Hybrid-Schrittmotoren: Abb. 13: Blockschaltbild (links) und Platine des TMC222-Moduls (rechts) mit IC TMC 222 auf der Lötseite der Platine. Der IC TMC222 enthält ein I2C-Interface zum Anschluss an den I2C-Bus des Mikrocontrollers (Ports PC0 und PC1). Die 10 kΩ-Pull-up-Widerstände heben die Takt- (SCL, clock) und Datenleitung (SDA, data) auf ein Potential von 5 V. Der IC TMC222 enthält einen Motortreiber für Spulenströme bis zu 800 mA und einen Motor-Controller zur Steuerung der Spulenströme. Ein Vorteil des TMC-Moduls ist der relativ geringe Programmieraufwand für den Mikrocontroller (→ 4.2.2.3), da der IC TMC222 nach Übergabe der Steuerungsparameter (Drehrichtung, Drehzahl, …) vom Mikrocontroller die Ansteuerung des Schrittmotors übernimmt. Der IC TMC222 unterstützt das Beschleunigen und Abbremsen des Schrittmotors, enthält einen Schrittpositionszähler und unterstützt Mikrostepping (variable Spulenströme zur elektronischen Verkleinerung des Schrittwinkels und größerer Laufruhe). 25 Falls in RCLs Gleichstrommotoren mit höheren Drehzahlen als Schrittmotoren benötigt werden, kann eine andere Erweiterungsschaltung (→ 4.2.4) eingesetzt werden. Positionierungsmechanik und Referenz-Taster Die Mechanik zur rotatorischen Positionierung von Objekten kann meist kostengünstig selbst oder durch Personal in einer Werkstatt angefertigt werden. Abb. 14 zeigt eine kostengünstige Lösung zur translatorischen Positionierung von Objekten: Abb. 14: Positionierungseinheit eines FlachbrettScanners. Schrittmotor (1), Getriebe (2), Linearführung (3), Antriebsriemen (4) und ergänzter Referenz-Taster (5). Falls der geometrische Aufbau und die geforderte Positionierungsgenauigkeit des RCLs es zulassen, kann die Schrittmotor-Positionierungs-Einheit ausgedienter FlachbrettScanner zur translatorischen Positionierung von Objekten verwendet werden. In Einzelfällen wie dem RCL Weltpendel kann die Positionierungsmechanik auch selbst angefertigt werden. Der Referenz-Taster in Abb. 14 wird eingesetzt, um abzufragen, ob ein vom Schrittmotor bewegtes Objekt die Position des Tasters erreicht hat und um diese Position zu referenzieren. Ohne eine solche Referenzierung kann die Positionierung eines Objekts langfristig ungenau werden. So kann z. B. beim RCL Weltpendel das Auftreffen der Kugel auf den Magneten zum Überspringen von Schrittmotorstellungen führen. Der Zustand des Referenz-Tasters in Abb. 15 wird z. B. über den Port PA0 des Mikrocontrollers abgefragt: Abb. 15: Referenz-Taster zum referenzieren der Position des bewegten Objekts. 26 Zu Problemen können undefinierte Zustände der Eingänge des Mikrocontrollers führen, wie sie beim Prellen, dem zeitlich begrenzten schwingen eines Tasters beim Öffnen oder Schließen entstehen. Abhilfe schafft ein passend dimensionierter, parallel zum Taster geschalteter Kondensator: Bei geöffnetem Taster ist der Kondensator aufgeladen. Beim Schließen hält der Kondensator die Spannung über die Schwingphase trotz kurzzeitig wieder geöffnetem Schalter noch aufrecht. Analoges gilt für den Übergang vom geschlossenen zum geöffneten Taster. 3 3.1 Ferngesteuertes RCL RCL-Server Für den Betrieb eines RCLs wird ein RCL-Server benötigt (← 1.1). Vorausgesetzt wird, dass bei einem neuen Computer alle notwendigen Treiber (Ethernet, Video, Audio, …) zum Betrieb der Hardware des Computers und Windows XP Professional mit Service Pack 3 installiert sind. Ein Benutzerkonto braucht nicht angelegt zu werden. Der RCL-Server benötigt einen Internetzugang mit statischer IP-Adresse und Uploaddatenrate von mindestens 200 kbit/s (DSL 2000) für die flüssige Wiedergabe von Bewegungen in Webcambildern. Die statische IP-Adresse wird von der Institution am Standort des RCLs vergeben oder kann von Privatpersonen bei einem Provider beantragt werden. Mit folgenden Schritten wird der RCL-Server eingerichtet: Internetzugang einrichten (→ 4.5.1) und im Browser testen Checken, ob die Windows Firewall aktiviert ist Virenschutzproramm Avira Antivir Personal herunterladen (← Tab. 1), installieren und aktualisieren Über Windows Update alle Updates von Windows XP Professional installieren Fernwartungssoftware TeamViewer 6 Vollversion (← Tab. 1) herunterladen und auf dem RCL-Server und dem eigenen Computer installieren (→ 4.5.5). Webeditor Notepad++ herunterladen, installieren und aktualisieren (← Tab. 1) Videoserver WebcamXP 5 herunterladen und installieren (→ 4.5.3) Paket XAMPP herunterladen und installieren (→ 4.5.2). Verknüpfungen mit den Dateien ../xampp/htdocs/apache_start.bat und ../xampp/htdocs/apache_stop.bat auf dem Desktop oder in der Schnellstartleiste erstellen und Webserver mit erstgenannter Verknüpfung starten. Webserver durch Eingabe von 127.0.0.1 oder localhost ins Adressfeld des Browsers testen. Bei erfolgreichem Test werden die im Ordner ../xampp/htdocs abgelegten Webseiten von XAMPP dargestellt. Statische IP-Adresse des RCL-Servers im Browser eines anderen Computers mit Internetzugang eingegeben. Bei erfolgreichem Test werden die Webseiten von XAMPP dargestellt. In der Datei ../xampp/php/php.ini unter Resource Limits die max_execution_time mit dem Windows-Editor von 60 auf 300 erhöhen und die 27 Datei speichern, damit PHP bei Befehlen mit längerer Ausführungsdauer keine Fehlermeldung liefert. Ordner ../xampp/htdocs mit den Webseiten von XAMPP in ../xampp/htdocs_xampp umbenennen und für spätere Testzwecke nicht löschen. RCL-Ordner htdocs herunterladen (← Tab. 1), extrahieren und in das Verzeichnis ../xampp verschieben. Abb. 16 zeigt die Struktur des RCL-Ordners htdocs: Abb. 16: Struktur des RCL-Ordners htdocs. RCL-spezifisch anzupassende Dateien sind grau hinterlegt. Der geöffnete Ordner Labor enthält alle PHP- und HTML-Dateien bzw. Programmierungen für die Funktionalität des Bedienfelds der Laborseite (← 1.1, Abb. 3). An das RCL anzupassen sind die portalsprachenunabhängigen Dateien config.php und experiment.php sowie für jede Portalsprache die Dateien default.conf und experiment.tpl in den Ordnern eng, fra, ger und ita: Datei config.php: Zeit bis zum automatischen Logout beim Experimentieren mit dem RCL eintragen Datei experiment.php: PHP-Basisprogrammierung um die RCL-spezifische PHPProgrammierung erweitern (→ 4.3.2) Datei default.conf: Name des RCLs (z. B. Elektronenbeugung) in jeder Portalsprache eingetragen Datei experiment.tpl: HTML-Basisprogrammierung um RCL-spezifische Ein- und Ausgabefelder erweitern (→ 4.3.3) 28 3.2 Laborseite 3.2.1 Steuerung des RCLs über das Bedienfeld Das Bedienfeld der Laborseite (← 1.1, Abb. 3) wird von der Dateien index.php und experiment.tpl erzeugt. Befehle wie das Anklicken von Buttons, Eingaben und Auswahl aus Listen werden in ein HTML-Formular mit Formularfeldern in der Datei experiment.tpl geschrieben. Die Daten werden von der PHP-Datei experiment.php ausgewertet und über die serielle Schnittstelle dem Mikrocontroller-Programm zur Steuerung des Experiments übergeben. Die Dateien experiment.php und experiment.tpl wurden getrennt angelegt, um Code und Design zu trennen und nur das Design in der Datei experiment.tpl an die Portalsprache anpasst werden muss. Tab. 5 enthält Ausschnitte der HTML-Datei experiment.tpl (→ 4.3.3), der Datei experiment.php (→ 4.3.2) und des Mikrocontroller-Programms (→ 4.3.1) für das RCL Elektronenbeugung: 29 experiment.tpl Code mit Erläuterung 18,21: Tag <form></form> definiert ein Formular. 18: Attribut "action" legt fest, dass Formulardaten in der Datei "index.php" verarbeitet werden. Übertragen werden eine Session-ID ($sid), um exklusiven Zugriff des jeweilgen Besuchers zu sichern und ($portal), um die vom Besucher gewählte Sprache beizubehalten. "post" ist eine Übertragungsmethode zwischen Browser und Webserver und gibt die die vom Besucher gewählte Aktion zum Ansteuern des Experiments an die Datei experiment.tpl weiter. 20: Erzeugt im Bedienfeld den Sendebutton ("submit") mit der Aufschrift "Elektronenröhre einschalten" ("value"). 19: Unsichtbares Feld ("hidden") mit Variablennamen "action" und Wert "RöhreAn". Der Variablenname "action" stimmt nur zufällig mit "action" in Zeile 18 überein. experiment.php 24: 37: Die Funktion wird als Eventhändler bezeichnet, weil je nach übergebener Aktion - siehe Zeile 19 in experiment.tpl - die entsprechenden Anweisungen (case) ausgeführt werden. Für den Fall, dass die Variable "$action" den Wert "RöhreAn" hat, wird die Funktion "power_on()" aufgerufen. Quellcode Mikrocontroller 59: Schreibt in die Logdatei "log.txt" den Text "RöhreAn". 60,61: Öffnet den in der Datei config.php zentral gespeicherten Com-Port an den das Interface angeschlossen ist oder gibt Fehlermeldung "Can not access file system" im Bedienfeld aus, falls der Com-Port sich nicht öffnen lässt. 62: Sendet die Zeichenfolge "On" und "chr(13)" (entspricht der Betätigung der Return-Taste im Hyperterminal) an den Mikrocontroller. 63: Schließt serielle Schnittstelle. 166: 167: 168: 169: 171: Tab. 5: Wird über die serielle Schnittstelle der Befehl "on" empfangen und ist das Einschalten zulässig (Zeiten für PowerOnDelay und Standby abgelaufen), dann … Hochspannungsnetzgerät einschalten Der DA-Wandler PCF8591 wird unter seiner Adresse PCF8591 = 01001000 angesprochen. Parametereinstellungen mit 01000000 und Ausgangsspannung auf 0 V einstellen Setzt Standby auf vorgegebene Standbyzeit zurück Gibt Meldung aus, wie lange PowerOnDelay noch dauert. Übertragung des Befehls "Elektronenröhre einschalten" vom Bedienfeld zum Experiment. 30 Anhand der Erläuterungen der Programmcodes können die Abläufe zwischen dem Drücken des Buttons "Elektronenröhre einschalten" und dem Einschalten der Elektronenbeugungsröhre oder der Eingabe einer Beschleunigungsspannung und dem Anlegen einer Beschleunigungsspannung verfolgt werden. Über das Bedienfeld können nur die von der Datei experiment.tpl bereitgestellten Befehle "on" und "da" der insgesamt implementierten Befehle (→ 2.2, Abb. 10) aufgerufen werden. 3.2.2 Videoübertragung im Webcamfeld Zur Aufnahme von Livebildern des Experiments können USB-Webcams und IP-Kameras (Netzwerkkameras) eingesetzt werden. Teurere IP-Kameras müssen eingesetzt werden, wenn die Kamera wie z. B. beim RCL Roboter im Labyrinth zu weit vom Computer entfernt ist oder eine besonders lichtempfindliche Kamera aus der Überwachungstechnik wie z. B. beim RCL Millikan-Versuch benötigt wird. W-LAN-Kameras kommen zum Einsatz, wenn Bilder von einem beweglichen Objekt aus, wie z. B. beim RCL Roboter im Labyrinth, übertragen werden sollen. Das Videoserverprogramm webcamXP 5 erkennt beim Aufrufen automatisch an den RCLServer angeschlossenen USB-Webcams. Vor dem Kauf einer IP-Kamera ist zu prüfen, ob das Modell unterstützt wird. 14 IP-Kameras müssen im Kontextmenü der Videoquelle konfiguriert werden. Abb. 17 zeigt das Webcambild einer USB-Webcam vom Szintillationsschirm der Elektronenbeugungsröhre: Abb. 17: Webcambild des Szintillationsschirms der Elektronenbeugungsröhre einer USB-Webcam in webcamXP 5 beim RCL Elektronenbeugung. 14 Vgl. Moonware Studios, webcamXP, IP-cameras for webcamXP. 31 Zum Einbinden des Webcambilds in die Laborseite des RCLs wird die laborsprachenabhängige Datei video.htm (→ 4.3.4) in den Ordnern eng, fra, ger und ita verwendet. Standardmäßig werden zwei Webcambilder und Screenshots unterstützt, der Code für weitere Webcambilder kann durch copy and paste hinzugefügt werden. Unter den Technologien Java, Javaskript, Flash und Windows Media für die Wiedergabe eines Livestreams auf eine Webseite wurde Javaskript gewählt, weil die anderen Technologien die Installation des Java Runtime Environments (JRE), des Flash- oder Windows Media Players durch den Besucher eines RCLs voraussetzen. Die Wiedergabe des Livestreams mit einem Java-Applet startet zudem erst verzögert nachdem das Applet geladen ist und verfügt über eine zu geringe Wiedergabegeschwindigkeit. 3.3 Standard-Lernumgebung Bestandteil der Entwicklung eines RCLs ist die Erstellung einer Standard-Lernumgebung zum RCL. Abb. 18 zeigt exemplarisch für die deutschen Webseiten im Ordner ger das Menü (← 1.1, Abb. 3) und die Dateistruktur der Standard-Lernumgebung: Abb. 18: Deutschsprachiges Menü und Dateistruktur der Standard-Lernumgebung. RCL-spezifisch anzupassende Dateien sind grau hinterlegt. Die englischen Dateinamen introduction.htm, setup.htm, … im Ordner ger korrespondieren mit den deutschen Menüpunkten. Wird das RCL unter dem Menüpunkt RCLs des RCLPortals aufgerufen, dann ruft die Frameset-Datei index.htm die Dateien menü.htm und introduction.htm auf und das Menü wird zusammen mit der Webseite Einstieg dargestellt. Die Wahl weiterer Menüpunkte ruft jeweils die korrespondiere Datei im Ordner auf. Bei Wahl des Menüpunkts Labor werden mit der Frameset-Datei laboratory.htm die Dateien video.htm für das Webcamfeld und die Datei labor/index.php für das Bedienfeld aufgerufen. 32 Im Ordner ../docs/material werden alle Dokumente für die Webseite Material, im Ordner ../docs/others die Dokumente anderer Webseiten abgelegt. Im Ordner ../docs/originals sind die Originale von Dokumenten wie z. B. Word-Dateien und der verwendeten Bilder abgelegt. Grafikdateien der Webseiten Einstieg, …, Auswertung, …, Betreuung werden in gleichnamigen Ordnern wie z. B. ../images/analysis abgelegt. Bei sprachenunabhängigen Grafikdateien wird unter dem Dateinamen abbx.*, bei sprachenabhängigen unter dem Dateinamen abbx_lan.* mit lan = eng, fra, ger und ita gespeichert. Analoges gilt für die als gif-Grafiken forx.gif oder forx_lan.gif zu speichernden Formeln. Originale von Bildern werden im Ordner ../images/originals abgelegt. Die Webseite zur Datei htdocs/index.htm enthält zum lokalen Aufrufen der Standard-Lernumgebung Links zu den vier Index-Dateien in den Ordnern eng, fra, ger und ita. Die Stylesheet-Datei htdocs/rcl_style.css enthält die Styles der Webseiten. In der Regel werden Standard-Lernumgebungen der RCLs des RCL-Portals von verschiedenen Personen erstellt. Fehlende Gestaltungs- und Formatierungsregeln führen zu einem uneinheitlichen, inattraktivem Erscheinungsbild des RCL-Portals. Tab. 6 gibt einen Überblick der wichtigsten Gestaltungs- und Formatierungsregeln: Element Richtlinien Die Webseiten Einstieg, Aufbau, Aufgaben, Diskussion, Material und Support enthalten vorgegebene Gliederungspunkte, teilweise mit ausgeführten Überschriften. Gliederung Die umfangreicheren Webseiten Theorie und Auswertung enthalten ein Inhaltsverzeichnis mit internen Links zu Gliederungspunkten. Zwischen Punkten der ersten Gliederungsebene (1., 2., …) ist ein zweizeiliger Abstand (<p> </p><p> </p>), zwischen Punkten der zweiten (1.1, 1.2, …) und Punkten der nur falls unbedingt notwendig dritten 1.1.1, 1.1.2, …) Gliederungsebene ein einzeiliger Abstand zu wählen. Nach Abbildungen und Tabellen folgt ein einzeiliger Abstand zum nachfolgenden Text. Keine internen Links zwischen den Webseiten der Lernumgebung. Links Externe Links werden prinzipiell in einem neuen Browserfenster geöffnet (blank). Alle Abbildungen erhalten fortlaufend beginnend mit 1 nummerierte Abbildungsunterschriften der Form Abb. x: … . Abbildung Tabellen Abbildungen sind möglichst spachenunabhängig, d. h. ohne Texte in der Abbildung zu erstellen. Zur Beschriftung können z. B. Zahlen verwendet werden, die in der Abbildungsunterschrift oder im Text erläutert werden. Tabellen werden in jeder Webseite fortlaufend beginnend mit 1 nummeriert Tabellen sind zu zentrieren, Rahmenstärke 1. Formeln sind nicht als Textzeichen oder Grafik im laufenden Text einzufügen, sondern stets zentriert in einer eigenen Zeile als gif-Grafik. Formeln Zum Erstellen der Formel-Grafiken eignet sich z. B. der Formel-Editor MathType 15 mit der AuflösungsEinstellung 120 dpi für Internet/Gif. Formeln brauchen im Rahmen des begrenzten Umfangs der Webseiten nicht nummeriert zu werden. Größensymbole Griechische Größensymbole und mathematische Symbole sind nicht als Grafiken im laufenden Text, sondern als HTML-Code einzufügen. Eine Zeichenreferenz findet sich bei Selfhtml. 16 Styles Zur Formatierung der Webseiten werden aus der Stylesheet-Datei nur die drei Styles Überschrift für die Überschriften, Bildunterschrift für Abbildungs- und Tabellenunterschriften und Tabellentext für Texte in Tabellen benötigt. Tab. 6: Richtlinien zur Gestaltung und Formatierung der Standard-Lernumgebung. Detailliertere Informationen zum Layout der Standard-Lernumgebung können dem RCLOrdner und dem Erscheinungsbild der Webseiten von RCLs in Browsern entnommen werden. 15 Vgl. Design Science, MathType. 16 Vgl. Selfhtml, HTML-Zeichreferenz. 33 4 ANHANG 34 4.1 Interface in Basisschaltung 4.1.1 Schaltplan und Bauteilliste Abb. 19 zeigt den Schaltplan der Basisschaltung des Interface und Tab. 7 die dazugehörige Bauteilliste: Abb. 19: Basisschaltung des Interface. Anzahl Kurzbeschreibung des Bauteils Best.-Nr. bei Reichelt electronic Einzelpreis in € 1 Epoxyd-Platine (190x112 mm) mit Anteil Lötpunktraster (Spezialanfertigung) - ≈ 10 1 1 Epoxyd-Fotoplatine, einseitig, 160x100 mm, 1,5 mm, 35 µm Epoxyd-Lochrasterplatine, 160x100 mm, 1,5 mm, 35 µm BEL 160x100-1 UP 832EP 1,70 4,20 1 1 Hohlstecker-Einbaubuchse, gewinkelt, Lötfahnen, 2,1 mm 2 1 D-SUB-Stecker, 9-polig, gewinkelt, RM 9,4 3 1 Schottky Diode, DO41, 40 V, 1 A 4 1 Draht von abgeschnittenem Beinchen aus Pos.-Nr. 3 5 1 6 Nr. 0 HEBW 21 0,18 D-SUB ST 09EU 0,29 SB 140 0,08 - - IC-Sockel, 16-polig, superflach, gedreht, vergoldet GS 16P 0,29 1 IC-Sockel, 40-polig, superflach, gedreht, vergoldet GS 40P 0,61 7 1 2x10-pol.-Stiftleiste, gerade, RM 2,54 SL 2X10G 2,54 0,07 8 1 Metallschichtwiderstand, 100 kΩ Metall 100k 0,082 9 1 Elektrolytkondensator, 10x16 mm, 470 µF, RM 5,0 mm RAD 470/25 0,06 10 1 Elektrolytkondensator, 6,3x11 mm, 100 µF, RM 2,5 mm RAD 100/16 0,04 11 5 Elektrolytkondensator, 5x11 mm, 10 µF, RM 2,0 mm RAD 10/35 0,04 12 2 Keramik-Kondensator 33 pF Kerko 33p 0,06 13 3 Vielschicht-Keramikkondensator, 100 nF, 20 % Z5U-2,5 100n 0,04 35 14 1 Standardquarz, Grundton, 11,0592 MHz 15 1 Spannungsregler, 1 A positiv, TO-220 16 1 Kühlkörper für Gehäuse TO-220, 9,9K/W 17 1 Zylinderkopfschraube, Schlitz, M3, 10 mm für Kühlkörper 18 2 Sechskantmutter, M3 für Kühlkörper 19 1 Stecker-Schaltnetzteil, 12 V, 2250 mA 20 1 RS232-Driver, DIL-16 21 1 ATmega AVR-RISC-Controller, DIL-40 11,0592-HC49U-S 0,18 µA 7805 0,28 V FI356 0,66 M3x10mm 1,60 SK M3 0,01 MW 3IP25GS 11,50 MAX 232 CPE 0,41 ATmega16-16 DIP 4,20 22 3 10-poliger Wannenstecker, RM 2,54, stehend (optional) WSL 10G 0,09 23 1 14-poliger Wannenstecker, RM 2,54, stehend (optional) WSL 14G 0,14 24 1 40-polige Stiftleiste 1-reihig, gerade, RM2,54 (optional) SL 1x40G 2,54 0,23 25 1 Kunststoffgehäuse 198,2x112,4x76,0 mm (Serientyp 202) - ≈ 10 € 26 1 D-SUB Nullmodem-Kabel, 9-pol., BU/BU, 3 m AK 143 1,55 27 x DIN-Einbaubuchse, 5-pol., Schraubver., 360° (optional) DIO-50W EMS 1,85 28 x DIN-Einbaubuchse, 8-polig, Schraubversch., 270° (optional) DIO-80SN EMS 1,80 29 x Pfostenstecker, 10-polig, mit Verrieglung, gew. (optional) PSL 10W 0,28 30 x Klemmleiste, RM 2,54, Öffnungshebel, 8-polig (optional) Wago 233 2,20 Tab. 7: Bauteilliste mit Bestellnummer und Einzelpreisen der Bauelemente bei Reichelt electronic (Stand 23.10.2010). Anhand der Bauteilliste in können die elektronischen Bauelemente der Basisschaltung (← Tab. 7, Nr. 0 – 21, optional Nr. 22 - 24) bei Reichelt electronic bestellt werden. Das Gehäuse des Interface (← Tab. 7, Nr. 25) sollte vom Hersteller HAGOTECH GmbH bezogen werden. Weiterhin wird ein Nullmodemkabel (← Tab. 7, Nr. 26) zur Verbindung des Interface mit dem Computer benötigt. Sensoren und Aktoren des Experiments können mit optionalen Steckverbindern (← Tab. 7, Nr. 27 - 30) und entsprechende Kabelverbindungen an das Interface angeschlossen werden. Die Nummern 0 - 25 stimmen mit der angegebenen Bestückungsreihenfolge auf der Platine überein. Das Interface kostet in der Basisschaltung ca. 50 €. 4.1.2 Bestückung der Platine Abb. 20 zeigt zur Bestückung der Platine benötigte Werkzeuge: Abb. 20: Werkzeuge zur Bestückung der Platine des Interface. 36 Lötkolben mit feiner Spitze in Meisselform 2 mm oder Lötstation (1) Lötzinnabsauger zum Entfernen von Lötzinn (2) Nasser Schwamm zum Reinigen der Spitze des Lötkolbens (3) Lötzinn mit Durchmesser 0,8 - 1,0 mm (4) Flachspitzzange zum Biegen von Anschlüssen der Bauelemente (5) Seitenschneider zum Kürzen der Beinchen von Bauelementen (6) Multimeter zum Prüfen der Funktionsfähigkeit der Schaltung (7) Sekundenkleber zur Befestigung von Bauelementen Kleine Bohrmaschine z. B. von Dremel und 0,8 mm Bohrer oder dünne Rundfeile zum Weiten von Löchern auf der Platine des Interface Abb. 21 zeigt die Platine des Interface von der Lötseite in der Spezialanfertigung der Elektronik-Werkstatt an der Technischen Universität Kaiserslautern und in der Selbstbauvariante (← Tab. 7, Nr. 0). Abb. 22 zeigt das Platinenlayout: Abb. 21: Platine des Interface von der Lötseite als Spezialanfertigung (links) und der Selbstbauvariante (rechts). Abb. 22: Layout zur Herstellung des geätzten Teils der Platine in der Selbstbauvariante. 37 In der Selbstbauvariante kann anhand des Platinenlayouts eine selbst geätzte Platine für die Basisschaltung auf einer Platine im Europakartenformat hergestellt und diese in der Länge gekürzt werden. Eine gekürzte Lochrasterplatine bildet den zweiten Teil der Platine. Mit den optionalen vier Wannensteckern (← Tab. 7, Nr. 22 - 23) oder den vier Stiftleisten (← Tab. 7, Nr. 24) an den Ports des Mikrocontrollers können leicht elektrische Verbindungen zum Rasterteil der Platine herstellt werden. Abb. 23 zeigt die fertig bestückte Platine mit den Nummern aus Tab. 7: Abb. 23: Bestückte Platine des Interface mit nummerierten Bauelementen. Tab. 8 beschreibt das Einlöten der elektronischen Bauelemente anhand der Nummern aus Tab. 7 und in der angegebenen Reihenfolge: Nr. Bauelement Beschreibung des Einbaus 0 Spezialanfertigung und Selbstbauvariante der EpoxydharzPlatine Wenn die Lötbeine nicht durch die Löcher der Platine passen, die Löcher mit einer runden Schlüsselfeile aufweiten. Stromversorgungsbuchse mit Sekundenkleber vor dem Festlöten auf der Platine fixieren, da diese mechanischen Belastungen durch das Einstecken und Herausziehen des 12 V -Steckers ausgesetzt ist. 1 Stromversorgungsbuchse – Hohlstecker 2,1 mm Wahlweise kann die 2,5 mm-Version der Buchse verwendet werden. RS232 Datenstecker mit Sekundenkleber vor dem Festlöten auf der Platine fixieren, da dieser mechanischen Belastungen durch das Einstecken und Herausziehen des Null-Modem-Kabels ausgesetzt ist. 2 Alle Beinchen und Befestigungsstifte zur höheren Stabilität anlöten. RS232 Datenstecker 3 Ein Ring an einer Seite der Diode (hier links, weiß) zeigt die Durchlass- bzw. Sperrrichtung der Diode an. Die Position des Ringes entspricht der Position des Balkens im Schaltungssymbol. 38 Auf der Platine muss der Ring auf der von der Stromversorgungsbuchse abgewandten Seite liegen. Diode – SB140 4 Vor dem Einlöten des 40-poligen IC-Sockels (Nr. 5) muss eine Drahtbrücke unter diesem eingelötet werden. Dazu können die abgeschnittenen Beinchen der bereits eingelöteten Diode (Nr. 3) verwendet werden. Drahtbrücke Die 16-polige und 40-polige IC-Fassungen besitzen eventuell eine Markierung für Pin1 (z. B. Kerbe in der Stirnseite, Punkt, Pfeil…) als Hilfe für das richtige Einstecken der ICs. Die Markierungen müssen bei beiden Fassungen nach oben, also zum nächstliegenden Rand der Platine, zeigen. Die ICs unbedingt noch nicht einstecken. 5 6 IC-Fassungen Die doppelreihige ISP-Stiftleiste dient der Programmierung des Mikrocontrollers mit dem AVR-ISP-Programmer (ISP steht für In System Programming). ISP-Stiftleiste auf 2 x 5 Stifte kürzen und mit den kurzen Beinchen einlöten, so dass auf die langen Stifte der AVR-ISP-Programmer gesteckt werden kann. 7 ISP-Stiftleiste Den 100 kΩ-Widerstand rechts neben der ISP-Stiftleiste einlöten. 8 Widerstand 100 kΩ Bei den verwendeten Elektrolyt-Kondensatoren ist die Polung zu beachten (langes Beinchen = Plus-Pol). Weiterhin ist auf den Kondensatoren ein weißer Streifen mit "Minus"-Zeichen aufgedruckt. Die Kondensatoren sollten eine Spannungsfestigkeit von mindestens 16 V, besser 25V besitzen. Auf der Kupferseite der Platine zeigt die Form der Lötaugen die Polung an: Rundes Lötauge = Plus, quadratisches Lötauge = Minus. 9 Der 470 µF Kondensator wird mit dem weißen Streifen in Richtung Stromversorgungsbuchse direkt unter diese montiert. 10 Der 100 µF Kondensator sitzt direkt unter der 16-poligen IC-Fassung. Sein weißer Streifen (Minus-Pol) zeigt in Richtung der Stromversorgungsbuchse. 11 Vier der 10 µF Kondensatoren werden links neben der 16-poligen IC-Fassung montiert. Deren Polung ist wie folgt: Unterster Kondensator Minus nach oben, nächster Kondensator Minus nach unten, die beiden oberen Kondensatoren mit Minus nach oben. Elkos Ein weiterer 10 µF Kondensator wird rechts neben die 16-polige IC-Fassung gelötet. Sein "Minus-Streifen" zeigt nach unten. Die Beschriftung 104 bedeutet 10e4 pF = 100 nF. 12 Die beiden 33 pF-Kerkos (Keramik-Kondensatoren) werden direkt nebeneinander rechts neben die 16-polige IC-Fassung gelötet. 13 Zwei 100 nF-Kondensatoren werden unter dem 470 µF-Elko eingelötet, ein weiterer mittig an der linken Seite der 40-poligen IC-Fassung. Keramik-Kondensatoren Als Quarz wird ein 11,0592 MHz-Typ verwendet. Bei dieser Frequenz ist eine fehlerfreie Kommunikation über RS232 mit 9600 Baud möglich. Für den ATmega16 können Quarze bis 16 MHz eingesetzt werden. Details siehe Datenblatt. 14 Der Quarz wird direkt rechts neben die beiden 33 pF-Kerkos gelötet. Die Orientierung des Quarz spielt keine Rolle. Quarz Der Spannungsregler L7805 erzeugt eine stabilisierte Spannung von 5 V. Es muss ein Kühlkörper zur Wärmeabfuhr vom Spannungsregler verwendet werden. 15 17 Wärmeleitpaste L7805 18 Schraube 16 Beinchen 1. Mutter Platine Löten 2. Mutter Kühlkörper Vor dem Einlöten zwischen Spannungsregler und Kühlkörper etwas Wärmeleitpaste aufgetragen. Beide Bauteile fest mit einer Schraube M3x10 und einer 1. Mutter verschrauben. Dann den Spannungsregler einlöten, um 90° abzubiegen, das überstehende Gewinde durch das vorgesehene Loch stecken und alles mit einer 2. Mutter auf der Platine befestigen. 39 Spannungsregler L7805, Kühlkörper und Montage Funktionskontrolle vor dem Einsetzen des Mikrocontrollers Polung der Elektrolyt-Kondensatoren (Elkos) prüfen. Sind alle Beinchen angelötet? Hat das Lötzinn an den Beinchen und der Platine guten Kontakt? Sind eventuell zwei benachbarte Beinchen unbeabsichtigt durch Lötzinn verbunden? Alle Lötverbindungen nochmals genau z. B. mit einer Lupe prüfen. 19 Probeweise das Stecker-Netzteil an die Buchse anschließen: Am 100 nFKondensator links mittig der 40-poligen IC-Fassung müssen 5 V anliegen. Versorgungsspannung unbedingt wieder von der Platine trennen. Steckernetzteil Die Nuten auf den ICs am linken Rand müssen nach oben zeigen, d. h. Pin1 ist bei beiden ICs in der Abbildung links unten und auf der Platine oben links. Manchmal passen die Beinchen der ICs nicht in die Fassung, weil die Fassung scheinbar zu schmal ist. Dann den IC seitlich mit einer Beinchen-Reihe flach auf den Tisch legen, den IC-Körper links und rechts greifen und Beinchen durch leichten Druck biegen. Einzelne verbogene Beinchen vorsichtig mit einer kleinen Flachzange richten. 20 21 ICs MAX232 und ATmega16 Wannenstecker an den vorgesehenen Stellen mit der Nut gegen Verpolung in Richtung des näherliegenden Platinenrands einlöten. 22 23 Die Abbildung rechts zeigt die PinBelegung der Wannenstecker. Wannenstecker 10- und 14-polig 40-pol. Stiftleiste in 4 jeweils 8-polige Stücke zerteilen und einlöten. 24 Stiftleiste 8-polig In der Selbstbauvariante der Platine (Nr. 0) vor dem Einsetzten der Platine in das Gehäuse passend positionierte Kunststoffstege am Gehäuseboden festkleben. 25 Kunststoffgehäuse Tab. 8: Bestückung der Platine des Interface mit Bauelementen. 4.2 Erweiterungsschaltungen 4.2.1 Übersicht In Tab. 3 sind von RCLs des RCL-Portals Sensoren und Aktoren mit den dazugehörigen Erweiterungsschaltungen zusammengestellt. Da alle RCLs obligatorisch über mindestens eine Webcam verfügen, sind diese unter den Sensoren nicht aufgeführt. Die wenigen Erweiterungsschaltungen für Sensoren sind unter Sensoren in Klammern aufgelistet. Unter Aktoren werden außer elektro-mechanischen Wandlern auch gesteuerte Geräte oder Bauelemente verstanden. Anzeigeinstrumente sind unter Aktoren nur aufgeführt, wenn sie direkt vom Interface gesteuert werden. Mit * gekennzeichnete Erweiterungsschaltungen befinden sich außerhalb des Interface. 40 RCL Beugung und Interferenz I Beugung und Interferenz II Sensoren Referenz-Taster 4 Referenz-Taster Lichtsensor Elektronenbeugung Fotoeffekt 2 Referenz-Taster Photozelle Halbleiterkennlinien und Referenz-Taster Halbleiterkennlinien - Schülerprojekt Heißer Draht 4 Endtaster 4 Drehgeber Kurzschlusssensor Lichtgeschwindigkeit Drehimpulsgeber 2 Taster an Enden der Eisenbahnstrecke Maut Infrarot-Sensor Millikan-Versuch 2 Referenz-Taster Optische Computertomographie 2 Referenz-Taster 2 Lichtsensoren Optische FourierTransformation 2 Referenz-Taster Oszilloskop Radioaktivität* Roboter im Labyrinth 4 Referenz-Taster Geiger-MüllerZählrohr Infrarot-Sensor 2 Referenz-Taster Rutherfordscher Halbleiterdetektor Streuversuch (Impulsformer**) Weltpendel Windkanal Aktoren Schrittmotor (Rotation) Erweiterungsschaltungen für Aktoren Schrittmotorsteuerung Laser-Modul Geschaltete Spannungsversorgung 4 Schrittmotoren (Translation) 4 Schrittmotorsteuerungen 5 Laser-Module Geschaltete Spannungsversorgung LED für Position des Lichtsensors Geschaltete Spannungsversorgung LED für Linealbeleuchtung Geschaltete Spannungsversorgung Hochspannungsnetzgerät Geschaltete Spannungsversorgung Hochspannungsnetzgerät Steuerung der Hochspannung 2 Schrittmotoren (Rotation) 2 Schrittmotorsteuerungen Quecksilberdampflampe Geschaltete Spannungsversorgung der Drossel für Quecksilberdampflampe Schrittmotor (Rotation) Schrittmotorsteuerung Oszilloskop Geschaltete Spannungsversorgung Oszilloskop Instrumentenverstärker für X- und Y-Ablenkung Multimeter Steuerung Spannungs- oder Stromanzeige 4 Gleichstrommotoren 4 Treiber Zweifarbige LED Steuerung der LED-Farbe 2 Schrittmotoren 2 Schrittmotorsteuerungen Oszilloskop Geschaltete Spannungsversorgung Motor der Lokomotive Steuerung des Ein- und Ausschaltens und der Bewegungsrichtung Gleichstrommotor Geschaltete Spannungsquelle 2 IR-Fernbedienungen Spannungsregler 2-stellige 7-Segmentanzeige LED-Treiber* 2 Schrittmotoren 2 Schrittmotorsteuerungen Lichtquelle (LED) für MillikanKondensator Geschaltete Spannungsversorgung Airbrush-Kompressor Geschaltete Spannungsversorgung Magnetventil Geschaltete Spannungsversorgung Millikan-Kondensator Gesteuertes Hochspannungsmodul Schrittmotor (Rotation) Schrittmotorsteuerung Schrittmotor (Translation) Schrittmotorsteuerung 2 Laser-Module 2 geschaltete Spannungsversorgungen 2 Schrittmotoren (Translation) 2 Schrittmotorsteuerungen Laser-Modul Geschaltete Spannungsversorgung Oszilloskop Geschaltete Spannungsversorgung Signalgenerator Steuerung der Signalart 2 Schrittmotoren (Translation) 2 Schrittmotorsteuerungen 2 Schrittmotoren (Rotation) 2 Schrittmotorsteuerungen 4-stellige 7-Segment-Anzeige Treiber** Elektromagnet Geschaltete Spannungsversorgung 2 Schrittmotoren 2 Schrittmotorsteuerung Infrarot-Sender Treiber 2 Schrittmotoren (Rotation) 2 Schrittmotorsteuerungen 4-stellige 7-Segment-Anzeige Treiber* Referenz-Taster Lichtsensor der Lichtschranke (Impulsformer**) Temperatursensor Schrittmotor (Translation) Schrittmotorsteuerung Elektromagnet Geschaltete Spannungsversorgung Laser der Lichtschranke Geschaltete Spannungsversorgung Referenz-Taster Schrittmotor (Translation) Schrittmotorsteuerung 41 Dehnungsmessstreifen (Wheatstonesche Brücke, Messverstärker, Multimeter) Tab. 9: Gebläsemotor Geschaltete Spannungsversorgung und Ansteuerung mit Pulsweitenmodulation Anemometer Geschaltete Spannungsversorgung Multimeter Geschaltete Spannungsversorgung Sensoren, Aktoren und Erweiterungsschaltungen der RCLs des RCL-Portals. 4.2.2 TMC222-Modul zur Schrittmotorsteuerung 4.2.2.1 Schaltplan und Bauteilliste Abb. 1 zeigt die Beschaltung des TMC222 von Trinamic auf dem TMC222-Modul: Abb. 24: Beschaltung des TMC222 von Trinamic. Anhand der Bauteilliste in Tab. 10 können die elektronischen Bauelemente des TMC222Moduls bei Reichelt electronic bestellt werden. Ein TMC222-Modul kostet ungefähr 10 €. Best.-Nr. bei Reichelt electronic Einzelpreis in € BEL75X100-1 0,96 TMC 222 SI ≈7 Elektrolytkondensator, 8x11 mm, Rm 3,5 mm, 100 µF/35 V RAD 100/35 0,04 Tantal-Kondensator, Rm 2,5, 1,0 µF/35 V Tantal 1,0/35 0,14 2 Vielschicht-Keramikkondensator 220 nF, 20 % Z5U-2,5 220N 0,11 5 3 Vielschicht-Keramikkondensator 100 nF, 20 % Z5U-2,5 100N 0,04 6 2 Metallschichtwiderstand 1,00 kΩ Metall 1,00K 0,082 Nr. Anzahl Kurzbeschreibung des Bauteils 0 1 Epoxyd-Fotoplatine, einseitig, 75x100 mm, 1,5 mm, 35 µm 1 1 Integrierter TMC-Schrittmotor-Controller 2 1 3 1 4 7 1 1x36pol. Stiftleiste, gewinkelt, Rm 2,54 SL 1X36W 0,27 8 1 1x36pol. Buchsenleiste, gerade, Rm 2,54 BL 1X36G 0,25 Tab. 10: Bauteilliste mit Bestellnummer und Einzelpreisen der Bauelemente bei Reichelt electronic (Stand 23.10.2010). 4.2.2.2 Bestückung der Platine 42 Abb. 25 zeigt die fertig bestückte Platine mit den Nummern aus Tab. 10: Abb. 25: Bestückte Platine des TMC222-Moduls mit nummerierten Bauelementen. Die Platine (35 mm x 30 mm) kann anhand des Layouts in Abb. 26 hergestellt werden. Der IC TMC222 wird auf der Lötseite der Platine aufgelötet. Das TMC222-Modul kann mit der Stiftleiste (← Tab. 10, Nr. 7) in eine Buchsenleiste (← Tab. 10, Nr. 8) auf die Platine des Interface gesteckt werden. Abb. 26: Platine des TMC222-Moduls von der Lötseite (links) und Layout. 4.2.2.3 Quellcode des Mikrocontroller-Programms Im Folgenden ist ein mit Bascom (← 1.2, Tab. 1, Entwicklungsumgebungen) erstelltes Beispiel-Programm zur Ansteuerung des Schrittmotormoduls TMC222 durch den Mikrocontroller ATmega16 angegeben: $regfile = "m16DEF.dat" $crystal = 11059200 $baud = 9600 '****Definitionen:**** Config Scl = Portc.0 Config Sda = Portc.1 Const Adress = &B11000000 Const GetFullstatus1 = &B10000001 Const Resetpos = &B10000110 Const Motorparameter = &B10001001 Const Setposition = &B10001011 Dim Puffer(10) As Byte 'Taktleitung 'Datenleitung 'I2C Adresse des TMC222 'Kommando des TMC222 'Kommando des TMC222 'Kommando des TMC222 43 '****Programm:**** I2csend Adress , GetFullstatus1 I2creceive Adress , 7 , Ack Puffer(1) = Motorparameter Puffer(2) = 255 Puffer(3) = 255 Puffer(4) = &B11110011 Puffer(5) = &B01110001 Puffer(6) = &B00010000 Puffer(7) = 0 Puffer(8) = &B00001100 I2csend Adress , Puffer(1) , 8 'GetFullstatus1 (Initialisierung des TMC222) 'Daten in Puffer auslesen 'puffer auffüllen 'nicht belegt 'nicht belegt '1111:irun; 0011:ihold '0111:vmax; 0001:vmin '000:securepos(bit10-8); 1:shaft; '0000:acceleration 'securepos(bit7-0) '000:nicht belegt; 0:accshape; 11:stepmode; 00:nicht belegt I2csend Adress , Resetpos 'aktuelle Position auf 0 setzen Puffer(1) = Setposition Puffer(2) = 255 Puffer(3) = 255 Puffer(4) = &B01111111 Puffer(5) = &B11111111 I2csend Adress , Puffer(1) , 5 'Motor bewegen 'nicht belegt 'nicht belegt 'position(bit 15-8) 'position(bit 7-0)´ End 4.2.3 Geschaltete Spannungsquellen und Verbraucher Die Ausgänge des Mikrocontrollers dürfen nur mit Strömen kleiner als ungefähr 20 mA belastet werden. Verbraucher mit einer Stromlast größer als 20 mA können daher nicht direkt an den Mikrocontroller angeschlossen werden. Abb. 27 zeigt links eine Schaltung zum Schalten eines Verbrauchers wie z. B. des Relais und rechts eine Schaltung mit dem IC ULN2803A zum Schalten mehrerer Verbraucher wie z. B. Glühlampen: Abb. 27: Erweiterungsschaltungen zum Schalten eines (links) oder mehrerer Verbraucher (rechts). Zu beachten ist, dass der Transistor BC337 maximal 800 mA schalten kann und für größere Ströme andere Transistoren verwendet werden müssen. 4.2.4 Steuerung von Gleichstrommotoren 44 Sollen Gleichstrommotoren zum Bewegen von Objekten mit dem Mikrocontroller gesteuert werden, dann eignet sich dazu der in Abb. 28 dargestellte, beschaltete IC L293D: Abb. 28: Beschaltung des L293D zum Steuern zweier Gleichstrommotoren. Mit Pin 1 = Pin 9 = 1 (High) können zwei Gleichstrommotoren M1 und M2 (Versorgungsspannung U M < 36 V, Spulendauerstrom I M < 600 mA) unabhängig voneinander ein- und ausgeschaltet sowie in der Drehrichtung über die Ports PA0 und PA1 für M1 und PA2 und PA3 für M2 gesteuert werden. Z. B. gilt mit PA0 = PA1 = 0 (M1 ausgeschaltet), PA0 = 1 und PA1 = 0 (M1 dreht sich), PA0 = 0 und PA1 = 1 (M1 dreht sich in Gegenrichtung). 45 4.3 Quellcodes zum RCL Elektronenbeugung 4.3.1 Mikrocontroller-Programmierung Die hervorgehobenen Abschnitte des Quellcodes in Pascal sind spezifisch für das RCL Elektronenbeugung, alle anderen Teile sind für alle RCLs identisch: 46 47 48 49 4.3.2 PHP-Programmierung Die hervorgehobenen Abschnitte des Quellcodes in Pascal sind spezifisch für das RCL Elektronenbeugung, alle anderen Teile sind für alle RCLs identisch: 50 51 4.3.3 Bedienfeld der Laborseite Tab. 11 erläutert die Funktion der Blöcke im Quellcode: Zeilen Funktion 1 Datei "default.conf" einbinden 2 Datei "head.tpl" einbinden 5 - 11 Ausgabe der verbleibenden Experimentierzeit 18 - 21 Button zum Einschalten der Elektronenbeugungsröhre 28 - 30 Eingabefeld für die Beschleunigungsspannung 37 Rückmeldung zur eingegebenen Beschleunigungsspannung 42 Datei "foot.tpl" einbinden Tab. 11: Funktion der Programmblöcke in der Datei experiment.tpl. 52 4.3.4 Webcamfeld der Laborseite In Tab. 12 ist die Funktion der Programmblöcke und die Anpassungen der Vorlage an das RCL Elektronenbeugung beschrieben: Zeilen Funktion Anpassung RCL Elektronenbeugung Titelangabe erscheint als Tabulatorbeschriftung in Name des RCLs eintragen Browsern 5 11 - 15 16 - 20 Zwei Javascripts zum getrennten Aufrufen zweier Po- Javascript 1 die IP-Adresse eintragen pup-Fenster mit dargestelltem Webcambildern 1 und 2 Javascript 2 auskommentiert, weil nicht benötigt 24 - 40 42 - 60 Zwei Javascripts zum Aktualisieren der Webcambilder Javascript 2 auskommentiert, weil nicht benötigt 1 und 2 67 - 71 79 - 83 Aufrufen des ersten Webcambilds der Webcams 1 und Webcambild 2 auskommentiert, weil nicht benötigt 2 beim Aufrufen der Datei 72 - 78 84 - 90 Buttons zum Aufrufen der Screenshots der Webcam- Button 2 auskommentiert, weil nicht benötigt bilder 1 und 2 91 - 95 Zeile der Tabelle zum Eintragen von Informationen, die Text in Zeile der Tabelle geschrieben sich auf die Webcambilder oder den Versuch beziehen Tab. 12: Funktionen der Codeabschnitte in der Datei "video.htm" und Anpassung der Vorlage an das RCL Elektronenbeugung. 53 4.4 Entwicklungsumgebungen zur Mikrocontroller-Programmierung Im Folgenden wird die Installation und Konfiguration des AVR-Studios 4.18 und der Bascom 1.11.9.8 Demoversion beschrieben. Alle Anleitungen sind zeilenweise von links nach rechts zu lesen. 4.4.1 AVR-Studio 4.18 4.4.1.1 Installation Auf der Webseite von ATMEL Register AVR Studio 4.18 (build 684) anklicken und Registrierungsformular ausfüllen. Danach die Datei AvrStudio4.18Setup herunterladen. Durch Doppelklick auf den Dateinamen die Installation starten: "Ausführen" wählen. "Next" wählen. "I accept …" und "Next" wählen. Installationsordner und "Next" wählen. 54 "Install/upgrade …" und "Next" wählen. "Install" wählen. Die Installation beginnt. "Finish" wählen. 4.4.1.2 Konfiguration AVR Studio 4.18 in Windows XP Professional unter Start/Programme aufrufen: Startfenster mit "Cancel" schließen. Unter Tools/Program AVR "Auto Connect" wählen. 55 Im eingeblendeten Fenster auf der Registerkarte "Main" als Device "ATmega16" und als Programming Mode "ISP mode" wählen. In der Registerkarte "Fuses" alle Häkchen und Auswahlfelder wie angegeben wählen. Dann "Program" wählen. Optional kann Signatur gelesen werden. 4.4.2 BASCOM 1.11.9.8 Demoversion 4.4.2.1 Installation Auf der Webseite von Bascom unter Bascom AVR Demo die Zip-Datei setupdemo.exe heruntergeladen. Durch Doppelklick auf den Dateinamen die Installation starten: "Next" wählen. "I accept the agreement" und "Next" wählen. 56 "Next" wählen. Installationsordner eingeben und "Next" wählen. Eintrag im Start-Menü eingeben und "Next" wählen. "Next" wählen. "Yes, restart the computer now" und "Finish" wählen. 57 4.4.2.2 Konfiguration Bascom AVR in Windows XP Professional unter Start/Programme zum Einstellen der Parameter des Mikrocontrollers und des Terminals aufrufen: Options/Compiler/Chip wählen. Einstellungen wie im Bild vornehmen und "OK" wählen. Unter Options/Communication Einstellungen wie im Bild vornehmen und "OK" wählen. 4.5 Auf der Registerkarte "Communications" Einstellungen wie im Bild vornehmen und "OK" wählen. File/New wählen. Unter Tools/Terminal emulator das Terminal aufrufen und "?" eingeben. Die Befehlsliste des RCLs Elektronenbeugung wird angezeigt. Installation und Konfiguration von Programmen auf dem RCL-Server Im Folgenden wird der Download, die Installation und die Konfiguration von Programmen auf dem RCL-Server unter Windows XP Professional beschrieben. Alle Anleitungen sind zeilenweise von links nach rechts zu lesen. Die Installation der Programme sollte in der angegebenen Reihenfolge erfolgen. 58 4.5.1 Einrichten des Internet-Zugangs LAN-Verbindung unter Start/Systemsteuerung/Netzwerkverbindungen aufrufen: Internetprotokoll (TCP/IP) und "Eigenschaften" wählen. Folgende IP-Adresse verwenden wählen, IP-Adressen eingeben und "OK" wählen. 4.5.2 Paket XAMPP 1.7.4 Unter apache friends - xampp für windows und XAMPP Windows 1.7.4 "Installer" anklicken und Datei "xampp-win32-1.7.4-VC6-installer.exe" speichern. Durch Doppelklick auf die Datei die Installation starten: Sprache und "Ok" wählen. "Ok" wählen. 59 "Weiter" wählen. Zielverzeichnis mit "Durchsuchen" wählen oder eingeben. Apache nicht als Dienst installieren.. "Fertig stellen" wählen. "Ja" wählen. Zum Starten des Apache Webservers das Control Panel unter Start/Programme/XAMPP 1.7.3 for Windows mit "Start" starten. Anstelle von "Start" erscheint "Running". Zum Beenden des Apache Webservers "Stop" wählen. Zum Beenden des Control Panels "Exit" wählen. 60 4.5.3 Videoserver webcamXP 5 Private Auf der Webseite von Moonware Studios unter webcamXP 5.5.x.x die Datei wlite550 herunterladen. Durch Doppelklick auf den Dateinamen die Installation starten: "Ausführen" wählen. "I Agree" wählen. "Next" wählen. Außer webcamXP 5 brauchen keine weiteren Komponenten installiert zu werden. Den vorgeschlagenen Ordner und "Install" wählen. "Finish" wählen. 61 WebcamXP unter Start/Programme aufrufen. Zugesandte Lizenz-Daten in das eingeblendete Fenster eingeben und "Register" wählen. Beim Starten des Programms stellt webcamXP automatisch eine Verbindung zu den am Computer angeschlossenen Webcams her. Nach dem Start ist "Überwachen" gewählt. Durch Rechtsklick mit der Maus auf das Videofenster wird zu jeder Videoquelle ein Kontextmenü angezeigt. Wird kein Videobild dargestellt das Kontextmenü aufrufen, Art der Videoquelle wählen (hier USB) und unter den erkannten Videoquellen (hier USB-Videogerät) die gewünschte wählen. Das Videoformat muss für eine passende Darstellung auf der Laborseite auf 320 x 240 eingestellt sein. Ist das nicht der Fall im Kontextmenü unter "Video Format" einstellen. In gleicher Weise kann eine zweite Videoquelle hinzugefügt werden. In der Registerkarte Web / Broadcast kann unter "Broadcast (HTTP)" der Videoserver mit "Ausschalten" gestoppt und mit "Aktivieren" gestartet werden. Zur Zielwahl des Webservers (131.246.237.167 - Internet, D16W3X3J - Computer, 127.0.0.1 - Local Host) Videoserver stoppen und einstellen. Videoserver wieder starten. 62 4.5.4 Terminalprogramm Hyperterminal Hyperterminal in Windows XP Professional unter Start/Programme/Zubehör/Kommunikation aufrufen: Name der neuen Verbindung - z. B. Interface - eingeben und "OK" wählen. Die Verbindung zwischen Computer und Interface wurde über einen USB-Seriell-Adapter hergestellt. Dann erscheinen zwei zusätzliche Einträge (Motorola Comp Modem und COM5) in der Liste. Prinzipiell muss eine COMxVerbindung gewählt werden. Eigenschaften von COM 5 wie im Bild einstellen und "OK" wählen. Datei/Eigenschaften aufrufen und "ASCII-Konfiguration" wählen. 63 Haken bei "Eingegebene Zeichen lokal ausgeben (lokales Echo)" setzen, um eingegebenen Zeichen im Hyperterminal zu sehen. Bei funktionsfähiger Verbindung erscheint nach Eingabe von "? Return" die Befehlsliste des Interface. Durch Aufrufen von Datei/Speichern die erstellte Verbindung z. B. auf dem Desktop speichern. Dadurch braucht die Verbindung nicht immer wieder von neuem konfiguriert werden. Nach Aufrufen von Datei/Beenden die bestehende Verbindung mit "Ja" beenden. 64 Wurde ein falscher COM-Port gewählt, reagiert das Interface auf die Eingabe "? Return" nicht. Hyperterminal dann beenden. Der COM-Port kann dann nicht unter Datei/Eigenschaften im Hyperterminal, aber unter "Eigenschaften" des Kontextmenüs der Datei "Interface.ht" in der Registerkarte "Verbinden mit" geändert werden. Dann "OK" wählen und erneut Verbindung testen. 65 4.5.5 Fernwartungssoftware TeamViewer 6 Host Auf der Webseite von Teamviewer GmbH unter "Für unbeaufsichtigte Server: TeamViewer Vollversion" die Datei "TeamViewer_Setup-wq" herunterladen. Das Programm muss auf dem RCL-Server und dem Computer, der auf den RCL-Server zugreifen soll, installiert werden. Durch Doppelklick auf die Datei die Installation starten: "Ausführen" wählen. "Weiter" wählen. Für die private, nicht kommerzielle Nutzung ist Teamviewer kostenlos. Beide Häkchen setzen und "Weiter" wählen. privat / nicht-kommerziell und "Weiter" wählen. 66 "Ja" un "Weiter" wählen. "Weiter" Computername und Kennwort für den Zugriff auf den RCLServer oder den eigenen Computer vergeben. Kenn wort notieren. Ein Teamviewerkonto ist nicht erforderlich. Kann auch später noch eingerichtet werden. ID für den Computer auf dem das Programm installiert wird für Zugriff notieren. Das Programm wird gestartet. Standardmäßig voreingestellt ist der Start des Programms beim Start des Betrienssystems. 67 4.6 Selbstbau eines elementaren RCLs 4.6.1 Hard- und Software Auch ohne gleich ein vielleicht teures physikalisches Experiment zu steuern, lässt sich mit wenigen Bauelementen ein elementares RCL realisieren. Von einer Webseite im Internet sollen eine Leuchtdiode (LED) ein- oder ausgeschaltet sowie der Zustand der Leuchtdiode und eines Tasters abgefragt werden. An Hard- und Software werden benötigt: 1 Low-Current-LED, 5 mm, 2 mA; 1 Widerstand 1,8 kΩ; 1 Taster und optional zwei 10polige Wannenstecker mit ungefähr 10 cm passendem Flachbandkabel und Buchsen Interface in Basisschaltung, Null-Modem-Kabel, 12 V DC Steckernetzteil (← 1.) Installierte Bascom-Demo-Version (← 4.2) AVR ISP-Programmer mit 10-poligem Programmierkabel Installiertes und konfiguriertes AVR Studio 4.18 (← 4.1) Installiertes Paket XAMPP (← 5.2) Texteditor wie z. B. Notepad in Windows XP Professional Konfigurierte Hyperterminalverbindung (← 5.4) 4.6.2 Bestückung der Platine Abb. 29 zeigt zur Orientierung für das Einlöten der Bauelemente die fertig bestückte Platine des Interface: Abb. 29: Mit elementarem RCL bestückte Platine des Interface. LED mit Vorwiderstand und der Taster sind rechts neben dem Mikrocontroller im Lochrasterbereich aufgebaut und über Wannenstecker und Flachbandkabel mit dem Port A des Mikrocontrollers verbunden (die drei Bauteile rechts neben dem ATmega16 werden nicht benötigt). Tab. 13 erläutert die Schritte zur Bestückung der Platine des Interface: 68 Nr. Schaltung Erläuterung µC PortA.0 (PIN40) LED rot 1K8 1 Die Leuchtdiode (LED) mit dem Pluspol (langes Beinchen) an PortA.0 (PIN40 oben rechts) des Mikrocontrollers anlöten. An das kurze Beinchen einen 1,8kΩ Widerstand löten, dessen anderes Ende mit der Masse (GND) verbinden. µC PortA.1 (PIN39) 2 Taster Den Taster mit PortA.1 (PIN39 = 2. Beinchen von oben rechts) und Masse (GND) verbinden. Belegung des 10-poligen Wannensteckers: 1 2 3 3 Draufsicht 1: GND (Masse), im Foto oben links 2: +5 V 3: PortA.0 4: PortA.1 ... 10: PortA.7, im Foto unten rechts Tab. 13: Schritte zum Aufbau des elementaren RCLs. 4.6.3 Lokal gesteuertes RCL Nachfolgend ist der Basic-Programmcode des Mikrocontrollers zur Steuerung und Abfrage der LED und des Tasters angegeben: 01 $regfile = "m16DEF.dat" 'Microcontroller ATmega16 02 $crystal = 11059200 '11.0592MHz Quarz 03 $baud = 9600 'Baudrate 04 05 '---[ Variables ]--------------------------------------------------------------06 Dim Rs232kommando As String * 10 'erst Befehlspuffer, dann Kommando 07 Dim Parameter As String * 10 'Parameter 08 Dim Str_pos As Byte 'Position von Leerzeichen, zur Trennung von Kommando und Parameter 09 10 '---[ Initialisierung ]--------------------------------------------------------11 Ddra.0 = 1 'PortA.0 als Ausgang für LED 12 Porta.0 = 0 'LED aus 13 Ddra.1 = 0 'PortA.1 als Eingang für Taster 14 Porta.1 = 1 'Pull-Up aktivieren 15 16 '---[ Main program loop ]------------------------------------------------------17 Do 'Start der Endlos-Schleife 18 19 If Ischarwaiting() = 1 Then 'Zeichen über RS232 empfangen? 20 Input Rs232kommando 'neues Kommando lesen 21 Parameter = "" 'Parameter initialisieren 22 Str_pos = Instr(rs232kommando , " ") 'Leerzeichen im Kommando suchen 23 If Str_pos > 0 Then 'falls Leerzeichen, dann in Kommando+Parameter zerlegen: 24 Incr Str_pos 'Str_pos soll jetzt auf 1.Zeichen des Parameters zeigen 25 Parameter = Mid(rs232kommando , Str_pos ) 'Parameter = Teilstring nach Leerzeichen 26 Parameter = Ucase(parameter) 'in Grossbuchstaben umwandeln, damit unabhängig von Schreibweise 27 Str_pos = Str_pos - 2 'Str_pos soll jetzt auf letztes Zeichen des Kommandos zeigen 28 Rs232kommando = Left(rs232kommando , Str_pos)'Kommando = Teilstring vor Leerzeichen 29 Rs232kommando = Ucase(rs232kommando) 'in Grossbuchstaben umwandeln, damit unabhängig von Schreibweise 30 End If 31 32 Select Case Rs232kommando 'Eventhandler: Interpretation der Kommandos 33 Case "?" : Print "Hilfe:" 'Hilfeseite anzeigen 34 Print "LED on - LED einschalten" 35 Print "LED off - LED ausschalten" 36 Print "LED? - zeigt Status der LED an" 37 Print "SW? - zeigt Status des Schalters an" 38 69 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 Case "LED" : If Parameter = "ON" Then Porta.0 = 1 End If If Parameter = "OFF" Then Porta.0 = 0 End If 'LED schalten Case "LED?" : If Porta.0 = 0 Then Print "LED aus" Else Print "LED an" End If 'Status der LED ausgeben Case "SW?" : If Pina.1 = 1 Then Print "Taster offen" Else Print "Taster geschlossen" End If 'Status des Schalters ausgeben Case Else : Print ">" ; Rs232kommando ; "< ungueltiger Befehl - weitere Infos mit ?" End Select 59 60 61 End If 62 63 Loop 64 65 End 'Info bei ungültigen Eingaben 'Endlos-Schleife: Springe zu "Do" 'wird nie erreicht! Der erste Teil des Programms (Zeilen 1 - 15) enthält die Systemparameter, Variablen und Initialisierung der Ein- und Ausgänge. Der zweite Teil enthält ab Zeile 17 das Hauptprogramm, in dem Benutzereingaben über die serielle Schnittstelle empfangen, interpretiert und in entsprechende Anweisungen umgesetzt werden. Tab. 14 erläutert den Programmcode detaillierter: Zeilen Erläuterung 1-3 Diese Angaben teilen dem Compiler (Bascom) mit, welcher Prozessor eingesetzt wird, wie schnell dieser getaktet (Quarz) ist und mit welcher Übertragungsgeschwindigkeit die Kommunikation über die serielle Schnittstelle (RS232) mit dem PC erfolgen soll. 6-8 Es werden drei Variablen genutzt. Die Eingabe über die serielle Schnittstelle wird in "rs232kommando" gespeichert. Es wird ein Text der Form "Kommando <Leerzeichen> Parameter" erwartet, so dass die Variable "Parameter" denselbigen aufnimmt. Die Variable "str_pos" wird für die Trennung von Kommando und Parameter benötigt. Mit dem Befehl ddrP.X (ddr = data direction) wird festgelegt, ob ein Beinchen als Ausgang (=1) oder als Eingang (=0) arbeiten soll. Der ATmega16 besitzt 32 Ein-/Ausgänge, die in vier Ports (P=A..D) zu je 8 Pins (X=0..7) unterteilt sind. ddrA.0 = 1 legt also das 1. Beinchen (Pin 0) von PortA als Ausgang (=1) fest. Mit dem Befehl PortA.0 =1 kann dieser 11 - 14 Pin dann durch Zuweisen von 1 oder 0 an- bzw. ausgeschaltet werden. Im Datenblatt erfahren Sie, welches der 40 Beinchen des Mikrocontrollers wie bezeichnet wird (Pin-Belegung). Wird ein Beinchen als Eingang verwendet (ddrA.1 = 0), können Sie optional einen so genannten Pull-Up-Widerstand aktivieren (PortA.1=1) oder deaktivieren (PortA.1=0). Auch hierzu sollten Sie sich unbedingt mit dem Datenblatt vertraut machen. 17, 63 Das "Hauptprogramm" besteht aus einer Endlosschleife, d. h. der Mikrocontroller verrichtet ununterbrochen seinen "Job", so lange er mit Strom versorgt wird. Falls ein Zeichen über die serielle Schnittstelle empfangen wurde, wird dieses und alle folgenden gelesen. Anschlie19 - 30 ßend wird geprüft, ob der empfangene Text von der Form "Kommando <Leerzeichen> Parameter" ist, so dass er gegebenenfalls in ein Kommando und einen Parameter zerlegt werden kann. 32 - 59 Dieser Abschnitt wird mit "Event-Handler" bezeichnet. Hier wird auf die Kommandos (Events) reagiert und die entsprechenden Schritte ausgeführt, z.B. schalten LED, je nach Wert der Variablen "Parameter" an- bzw. ausschalten. 46, 52 In beiden Zeilen wird ein Wert eines Ports abgefragt. Unterschiedlich ist, dass in Zeile 46 der Status eines Ausgangs abgefragt wird (porta.0) und in Zeile 52 der Zustand eines Eingangs (pina.0). Die Anweisung IF porta.0 = 0 THEN prüft (hier ist "=" ein Vergleich und KEINE Zuweisung!), ob zuletzt die LED ausgeschaltet (Zuweisung porta.0 = 0) wurde. Die Anweisung IF pina.1= 1 THEN liest den Status eines Eingangs. Hier kann festgestellt werden, ob der Eingang über den internen Pull-UP-Widerstand auf +5V liegt (pina.1 liefert 1) oder ob der Schalter den Eingang mit Masse (0V) verbindet (pina.1 liefert 0). Tab. 14: Erläuterung des Mikrocontroller-Programmcodes für elementares RCL. 70 In Bascom AVR eine neue Datei erzeugen (File/New), den Programmcode ohne Kommentare eingeben und mit Program/Compile (F7) eine Hexadezimaldatei erzeugen. Die Hexadezimaldatei mit dem AVR-Studio und dem AVR-ISP-Programmer in den Mikrocontroller schreiben (← 2.2.2, Programmübertragung). Nach dem Verbinden von Computer und Interface per Null-Modem-Kabel kann durch Eingabe von ? in das konfigurierte Hyperterminal die Befehlsliste in Abb. 30 aufgerufen werden: Abb. 30: Aufgerufene Befehlsliste im Hyperterminal. Durch Eingabe von "LED on" oder "LED off" kann die LED ein- und ausgeschaltet, "LED?" zeigt den Status der LED und "sw?" den Status des Tasters an. Alternativ zum Hyperterminal kann auch das Terminal in BASCOM unter Tools/Terminal Emulator verwendet werden (← 4.2.2). 4.6.4 Ferngesteuertes RCL Zum Ansteuern des Interfaces und zum Bedienen des Versuchsaufbaus über das Internet wird eine Webseite benötigt, die dem Benutzer alle Bedienelemente des Experiments zur Verfügung stellt: Der Benutzer benötigt anklickbare Buttons im Webbrowser. Der Webserver muss die Information, welcher Button gedrückt wurde empfangen und ein entsprechendes Kommando über die serielle Schnittstelle an das Interface senden. Beide Schritte sind im nachfolgenden PHP/HTML-Quellcode zusammengefasst: 01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 02 <html> 03 <head> 04 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 05 <title>elementares RCL</title> 06 </head> 07 08 <body> 09 <?php 10 if (isset($_POST['Kommando'])){ //wurde bereits Kommando gesendet? 11 if( ! ( $handle = fopen( 'COM1:', 'w+' ) ) ) //Schnittstelle öffnen 12 { 71 13 throw new Exception( 'Can not access serial port', 2 ); //ohne Erfolg? 14 } 15 fwrite( $handle, $_POST['Kommando'] .chr( 13 ) ); //Befehl an Interface senden 16 switch ( $_POST['Kommando'] ){ //Antwort von Interface auswerten: 17 case 'LED?': { $tmp = fgets( $handle ); //Echo von Interface ignorieren 18 $antwort = fgets( $handle ); //Antwort des Interfaces 19 echo 'Antwort: '.$antwort; //Ausgabe auf Webseite 20 break; //switch verlassen 21 } 22 case 'SW?' :{ $tmp = fgets( $handle ); //Echo von Interface ignorieren 23 $antwort = fgets( $handle ); //Antwort des Interfaces 24 echo 'Antwort: '.$antwort; //Ausgabe auf Webseite 25 break; //switch verlassen 26 } 27 } 28 29 fclose( $handle ); //Schnittstelle schließen 30 } 31 else { 32 `mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off`; //Schnittstellenparameter setzen 33 } 34 35 ?> 36 37 <h3>Befehl senden:</h3> 38 <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> 39 <input type="hidden" name="Kommando" value="LED ON" > 40 <input type="submit" value="LED anschalten" > 41 </form> 42 <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> 43 <input type="hidden" name="Kommando" value="LED OFF" > 44 <input type="submit" value="LED ausschalten" > 45 </form> 46 <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> 47 <input type="hidden" name="Kommando" value="LED?" > 48 <input type="submit" value="LED abfragen" > 49 </form> 50 <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> 51 <input type="hidden" name="Kommando" value="SW?" > 52 <input type="submit" value="Taster abfragen" > 53 </form> 54 </body> 55 </html> Den Quellcode in den Texteditor kopieren und im Ordner htdocs von XAMPP z. B. unter rcl.php speichern. HTML-Dateien mit PHP-Code (Zeilen 9-35) müssen mit der Erweiterung php gespeichert werden, damit der Apache Webserver zwischen HTML-Seiten mit und ohne PHP-Code unterscheiden kann. Den installierten Apache Webserver starten (← 4.5.2) und im Adressfeld des Webbrowsers die IP-Adresse http://127.0.0.1/rcl.php aufrufen. Das Bedienfeld des elementaren RCLs in Abb. 31 wird im Browserfenster angezeigt: 72 Abb. 31: Laborseite des elementaren RCLs. Im Bedienfeld kann die LED an- und ausgeschaltet sowie der Status von LED und Taster abgefragt werden.