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>&nbsp;</p><p>&nbsp;</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.