home sitemap

4. externes Interface


zurück zum Gameport

Grundlagen:
Externe Interfaces werden im Gegensatz zu internen Interfaces (Slot-Karten) über die Schnittstellen des Computers angeschlossen. Der Vorteil eines externen Interfaces liegt z.B. darin, dass man dieses auch mit einem Notebook benutzen kann. Beide Arten von Interfaces stellen weitere Schnittstellen zur Verfügung:

Schnittstellen an denen ein externes Interface angeschlossen werden kann:
Serielle, Parallele, USB

Wobei die Parallele nicht mehr bei allen Notebooks verbaut wird, gleiches könnte der Seriellen in der Zukunft auch passieren. Bei den Büro-Computer sieht dieses anders aus, da man dort in der Not auch diese Schnittstellen per Slot-Karte nachrüsten könnte. Bei der Wahl der Schnittstelle mit der das Interface an den Computer angeschlossen werden soll, sollte man sich seine Computer und Notebooks anschauen und ggfs. die Schnittstelle aussuchen, die überall vorhanden ist. Hat man dann noch die Wahl, weil zum einen für die Aufgabe es mehrere Interfaces gibt und zum anderen mehr als eine Schnittstelle gemeinsam genutzt werden kann, dann gibt es immer noch Preisunterschiede.

Interfaces und deren Ein- und Ausgänge:
- (digitale) Ein- und Ausgänge
Hiermit fragt man einen Eingang ab oder setzt einen Ausgang.
Schalter, digitale Sensoren, Motoren usw.

- analoge Ein- und Ausgänge (letztere hat der normal Computers nicht)
Hiermit fragt man die Voltgröße eines Stromes ab.
analoge Sensoren (Temperatur usw.)

Achtung: Hat der Sensor ein Output-Signal (Vout) zwischen 0 und 5V, dann sollte der analoge Eingang des Interfaces dieses oder mehr verarbeiten können. Bei Abweichungen in der Voltgröße zwischen dem Vout und dem analogen Eingang können Operationsverstärker helfen. Braucht man nur einen Teilbereich des Vout, so kann ein einfacher Widerstand zwischen Sensor und Eingang helfen: Ich habe einen IR-Distanz-Sensor, der laut Datenblatt Vout-Werte zwischen 0 und 2,4V liefert. Im Einsatz (ich messe nur Distanzen zwischen 0 und 160mm) liegen seine Werte zwischen 1,1 und 2,4V. Verträgt nun der analoge Eingang nur 0 - 2V, dann kann ein Widerstand das o.g. Intervall von Vout nach unten verlagern.

z.B.:
R=U/I mit R=Widerstand in Ohm, U= Spannung in Volt und I= Stromfluss in Ampere
U=U_ist-U_soll
R=(2,4-1,1)/0,03=43,33 Ohm

Bei den analogen Eingängen werden über A/D-Wandler (analog-digital) die gemessenen Spannungen (Volt) eines Sensors in einen Bit-Wert übertragen. Hier drin ist die Auflösung zu sehen, mit der der Wandler die verschiedenen Spannungen "abtasten" kann:
- 8Bit = 2^8 = 256
- 10Bit = 2^10 = 1024
- 16Bit = 2^16 = 65536
usw.

Nun nehmen wir an, dass das Interface Eingangsspannungen von 0 -5V mit 8Bit auflöst, der Sensor eine Distanz ab 100 und bis zu 800mm messen kann (der Sensor nimmt Gegenstände nur richtig wahr, wenn sie mindestens 10cm und maximal 80cm entfernt sind) und er dabei Sannungen zwischen 2,4 und 0 Volt ausgibt. Wir gehen auch davon aus, dass das Interface und der Sensor sehr genau arbeiten.
Dann könnten man Entfernungen innerhalb der o.g. Distanz mit einer Auflösung von 5,7mm messen. D.h., ob ein Gegenstand eine Entferung von 5,7mm, 8,0mm oder 11,3mm hätte, würde nicht gemerkt. Bei 10Bit würde die Auflösung schon bei 1,4mm sein. Dies ist schon recht genau, geht aber noch genauer.

Man könnte jetzt auf die Idee kommen, sich gleich ein externes Interface kaufen, dass viele analoge und digitale Ports (Ein/Ausgänge) mit einer hohe Bit-Auflösung hat und dabei noch ein großes Spannungsintervall abdeckt. Wenn man immer nur Dinge ausprobieren will und nie etwas fest aufbaut und länger benutzt, dann ist dies sicherlich richtig. Die Preise von externen Interfaces gehen bei wenigen Euros (< 30) los und enden bei mehreren hunderten Euros. Man kann also mit dem o.g. Wissen seine Ideen sehr sparsam umsetzen.

- IR-Diode
Bring ein externes Interface eine IR-Diode mit, so kann diese zum senden oder empfangen sein. Letzteres ist häufiger. I.d.R. ist dann auch ein Wandlerbaustein auf dem Interface, der die IR-Signale "RC5" konform in einen Bit-Wert wandelt, dem man bequem auslesen kann, um seinem Programm (Musikabspieler) eine Fernbedienung zu spendieren.

einige externe und auch interne Interfaces:

Hier möchte ich keine Liste führen, da ich die Verfügbarkeit und die Preisentwicklung nicht ständig aktualisieren kann. Daher 2 Tips:
1. in der Suchmaschine der eigenen Wahl "elektronik" eingeben
2. auf der Seite der eigenen Wahl "delphi","messkarte" oder "analog messen" eingeben
"delphi" gibt bei einigen sehr gute Ergebnisse, bei den anderen jedoch trotz Volltextsuche nicht, da sind die anderen Suchbegriffe sinnvoll.

Ein nicht ausdrücklich für Delphi angebotenes Interface habe ich an Delphi angebunden:
- 8kanaliges 10-Bit-Datenerfassungssystem:
Schnittstelle: seriell
analoge Eingänge: 8
Messbereich: 0-5V/DC
mitgeliefertes Programmbeispiel: Basic
Bezugsquelle: 10 BIT DATENERFASSUNGSSYSTEM - BST (Conrad Electronic)
Ansteuerung unter Delphi mit der PSseri.dll siehe Programmbereich

Hier noch ein Interface u.a. mit einer IR-Diode :
- IO-Warrior24:
Schnittstelle: usb
digitale Ein- /Ausgänge: 16
Besonderheiten: IR-Diode (RC5) und IIC-Bus für LCD-Display mitgeliefertes Programmbeispiel: Delphi
Bezugsquelle: IO-Warrior24 Code Mercenaries Hard- und Software GmbH


Anwendungsbeispiel:
Wir hatten bei den vorherigen Schnittstellen einige Anwendungsbeispiele:
Eingänge und Ausgänge lesen und setzen, Dioden an-ausschalten, Schalter abfragen, Motoren (schwache und starke mit eigenem Stromkreis) steuern, Temperatur messen, Licht messen usw. Jetzt werden wir eine Entfernung messen:

Entfernung messen:
Hardware:
- 8kanaliges 10-Bit-Datenerfassungssystem (siehe oben)
- Distanzsensor (siehe Suchmaschine im www "GP2D12")
- Klingeldraht
- 15 PIN D-SUB Stecker (männlich) für den Gameport
- serielles Kabel zum verlängern der seriellen Schnittstelle
- eine serielle Schnittstelle
- einen Gameport am Computer (alternativ 5V Netzteil)
Geschätzte Hardwarekosten ca. 60 Euro, wenn die Schnittstellen am Computer vorhanden sind.

Das Interface bezieht seinen Strom von der seriellen Schnittstelle (12V). Es kann eine Spannung zwischen 0 und 5Volt mit 1024 Unterschieden messen. Das Interface hat 8 Eingangsleitungen und einen Massepin. Der Sensor braucht 5V, den bekommt er vom Gameport (PIN1 = 5V Phase und Pin4 = Masse). Alternativ kann hier auch ein Netzteil mit 5V/DC benutzt werden. Der Sensor hat drei PINs (Vo=Vout, GND=Masse, Vcc=5Volt Stromversorgung). Dem Sensor liegt ein Datenblatt bei bzw. man kann dieses downloaden. Ein Fehler im Anschluß wird den Sensor zerstören! Bitte den Aufbau mit den Unterlagen zum Interface und zum Sensor vergleichen, ich kann mich irren oder verschreiben, ich hafte nicht für Schäden, die durch meine Beschreibung entstehen!

Man verbindet den PIN1 des Gameports mit dem Vcc-PIN des Sensors, den PIN 4 des Gameports mit dem Masse-PIN des Interfaces und dem GND-PIN des Sensors sowie den Vo-PIN des Sensors mit dem 1Kanal-PIN des Interfaces. Dann steckt man alles zusammen (das Interface über ein Kabel in die COM1 und den 15PIN-SUB-D-Stecker in den Gameport) und startet den Computer.


Die Abbildung zeigt das Interface, den Sensor,eine Schachtel und eine 10cm Abstandslinie.

Das Programmbeispiel "8kanaliges 10-Bit-Datenerfassungssystem" im Programmbereich mit der PSseri.dll (siehe Programmbereich) in Delphi aufrufen. Wenn alles o.k. ist, dann werden jetzt Voltgrößen angezeigt. In Abhängigkeit von der Referenzspannung des Gamports (ob 5,0V oder 4,98V) werden alle Entfernungen wie folgt gemessen:
Der Sensor funktioniert zwischen 10 und 80cm. Wobei 10cm für mich 0 ist.
0 cm = 2,42V
1 cm = 2,27V
2 cm = 2,11V
3 cm = 1,98V
...
16cm = 1,07V
usw.

Wie man sieht, entsteht eine leicht gekrümmte Gerade, wenn man in ein Koordinatensystem auf x die cm und auf y die Voltgrößen einzeichnet. Der Verlauf ist aber recht linear. So kann man mit einer Geradengleichung, die eine leichte Korrekturgröße bekommt (bei größeren x soll die Gerade weniger nach unter) die o.g. Voltgrößen in eine Entfernung umrechnen. Alternativ kann man auch eine Auswertungstabelle anfertigen, die alle paar cm einen Volt-Wert gegenüberstellt und zwischen den beiden nächsten Werten interpoliert.


Jetzt werden wir eine Batterie messen:

Batterie messen:
Hardware:
- 8kanaliges 10-Bit-Datenerfassungssystem (siehe oben)
- serielles Kabel zum verlängern der seriellen Schnittstelle
- eine serielle Schnittstelle
Geschätzte Hardwarekosten ca. 40 Euro, wenn die Schnittstelle am Computer vorhanden ist.

Das Interface bezieht seinen Strom von der seriellen Schnittstelle (12V). Es kann eine Spannung zwischen 0 und 5Volt mit 1024 Unterschieden messen. Das Interface hat 8 Eingangsleitungen und einen Massepin. Wir stecken das Interface über ein Kabel in die COM1 und starteten den Computer.

Das Programmbeispiel "8kanaliges 10-Bit-Datenerfassungssystem" im Programmbereich mit der PSseri.dll (siehe Programmbereich) in Delphi aufrufen. Jetzt halten wir eine 1,5V (AA) Batterie mit ihrer Minus-Seite an den Massepin des Interface und den Kanal1 an die Plus-Seite der Batterie. Wenn alles o.k. ist, dann werden jetzt Voltgrößen angezeigt.



weiter zum Kapitel 5: Schlussbetrachtung