MovingEye
5. Eigenschaften und Bestandteile des Designs

5.1. Die Infrarot-Sensorik

Wie in den vorherigen Kapiteln erklärt wurde benutzen wir eine Infrarot-Sensorik, um die Position des gesunden Auges zu ermitteln. Doch bevor die verwendete Sensorik näher beschrieben wird, soll zunächst die folgende Frage geklärt werden:

5.1.1. Was ist infrarote Strahlung

Jeder Körper und jede Flüssigkeit mit einer Temperatur oberhalb des absoluten Null-punktes von -273.15 °C (=0 Kelvin) sendet an der Oberfläche, die für das menschliche Auge unsichtbare, infrarote Strahlung (engl. infrared radiation) aus.
Diese Strahlung ist der Bereich des Spektrums der elektromagnetischen Wellen von 750 nm bis 1 mm. Man unterscheidet die Infrarot-Strahlung in drei Hauptbereiche :
  1. nahes Infrarot : 750 nm - 300 nm
  2. mittleres Infrarot : 300 nm - 3000 nm
  3. fernes Infrarot : 3000 nm - 1 mm
Die optische Nachrichtentechnik benutzt die Wellenlänge im nahen Infrarot.

5.1.2. Die Sensorik

An dieser Stelle vernachlässigen wir den grundlegenden Bau eines Infrarot-Sensors und beschränken uns auf die detaillierte Erläuterung der Funktionsweise.
Nicht alle Körper senden gleich stark infrarote Strahlung ab. Die Intensität hängt einerseits von der Temperatur des Messobjektes und andererseits von der Beschaffenheit der Oberfläche sowie deren Material ab.
So senden zum Beispiel Objekte mit hohen Temperaturen mehr Infrarotstrahlen aus, als Objekte mit niedrigen Temperaturen. Des weiteren gilt, dass Objekte mit blanker, heller Oberfläche weniger Strahlung abgeben, als Objekte mit rauer, dunkler Oberfläche. Demnach sendet die schwarze Pupille mehr Infrarotstrahlung aus, als die Iris und der restliche Augapfel.
Somit kann der Infrarot-Sensor optimal die Position der Pupille erfassen. Auf die gleiche Weise ist es möglich die Pupillengröße zu ermitteln : je größer die Pupille ist, um so größer ist auch der "infrarote Fleck" den der Sensor zu messen hat. Somit kann zwi-schen weit geöffneter und fast geschlossener Pupille unterschieden werden.

Hat die Infrarot-Sensorik die aktuelle Position der Pupille ermittelt, übersendet sie die Daten (Koordinaten X, Y, Pupillengröße I) an den Prozessor im Kunstauge, was ebenfalls durch Infrarot-Signale geschieht. Die Infrarot-Signale übersenden Daten in binärer Form, da die Signale nur auf zwei Frequenzen gesendet werden. Dabei entspricht High der 1 und Low der 0. Somit werden unsere Daten also direkt übermittelt. Da wir diese nicht in ein anderes Datenformat umwandeln, sparen wir Zeit ein und steigern somit die Geschwindigkeit.
Abschließend soll hier noch kurz auf die Funktionsweise einer Infrarot-Diode und eines Infrarot-Detektors eingegangen werden :
Im allgemeinen ist die Infrarot-Übertragung zuverlässig, dennoch handelt es sich hier um eine Technik die eine Strahlung misst, die von nahezu jedem Körper ausgeht. Um eventuelle Störungen und Fehler-Signale zu vermeiden, sendet die Diode innerhalb ei-nes gesetzten Zeitintervalls ihr Signal mehrere Male, bevor es vom Detektor als gültig akzeptiert wird.

Dabei ist zu beachten, dass der Vorgang des Einlesens aufgrund der Wiederholung des Signals zeitverzögert wird. Diese Verzögerung beträgt jedoch weniger als eine Mikrosekunde.

5.2. Die ALU

Die ALU lässt sich in drei Bereiche einteilen :

- Komparatoren
- Subtrahierer
- Dekrementierer.

Die Steuereinheit greift auf die "arithmetischen Funktionen" der ALU zu. Über den Datenbus erhält die ALU die neuen Werte der Koordinaten. Aus dem Register 1 erhält die ALU die aktuellen Werte. Mit den Koordinaten und den von der ALU aufge-rufenen "arithmetischen Funktionen" werden dann die erforderlichen Berechnungen durchgeführt.
Nach Abschluss der Berechnungen der Koordinaten X,Y und I, werden dann die neuen Werte, die die ALU über den Datenbus erhalten hat, in das Register 1 gespeichert und stellen dann die aktuellen Werte dar.

5.2.1 Aufbau des Komparators

In der ALU befinden sich vier Komparatoren :

Mittels eines Komparators erfolgt ein bitweiser Vergleich, der von zwei Zahlen die grö-ßere und die kleinere Zahl ermittelt.
Die vom Komparator ermittelte Zahl wird an den Subtrahierer (Kapitel 5.2.2) so überge-ben, dass die kleinere Zahl von der größeren Zahl subtrahiert wird. Somit wird gewährleistet, dass bei der fortlaufenden Berechnung innerhalb der ALU kei-ne negativen Ergebnisse erhalten werden.

Zur Arbeitsweise des "Komparators a > b" (für 4-bit- und 2-bit-Zahlen):

Der Aufbau des Komparators basiert auf einem Vergleich der Bitstellen der beiden zu vergleichenden Zahlen.
Die aktuelle Koordinate sowie die neu geladene Koordinate werden miteinander vergli-chen. Dabei wird die aktuelle Koordinate als die Zahl a und die neu geladene Koordinate als b beschrieben. Bei 4-bit-Zahlen wird die aktuelle Koordinate durch die Bitzahl a0,a1,a2,a3 (bei 2-bit-Zahlen durch a0,a1) repräsentiert und die neu geladene Koordinate durch die Bitzahl b0,b1,b2,b3 (bei 2-bit-Zahlen durch b0,b1).
Im ersten Teil der Komparatorschaltung werden die Bitstellen der Koordinaten miteinan-der verglichen.

Der "Komparator a > b" für 4-bit-Zahlen ist so konzipiert, dass die Variable a schon vor Ermittlung eines "Komparatorergebnisses" als die größere der beiden Zahlen angese-hen wird. Im zweiten Teil der Schaltung wird dann überprüft, ob angegebene mögliche Kombina-tionen der Binärzahlen zutreffen oder nicht.
Ist eine Kombination wahr, dann ist klar, dass die als zweite betrachtete Zahl die größe-re Zahl ist und somit entsprechend an den Subtrahierer weitergegeben werden muss. Falls keine der Kombinationen wahr wird, dann ist die als erste Zahl betrachtete Zahl, die größere und wird entsprechend an den Subtrahierer geleitet (Kapitel 5.2.2).
Der "Komparator a > b" für 2-bit-Zahlen ist so konzipiert, dass die Variable a schon vor Ermittlung eines "Komparatorergebnisses" als die größere der beiden Zahlen angese-hen wird. Im zweiten Teil der Schaltung wird dann überprüft, ob angegebene mögliche Kombina-tionen der Binärzahlen zutreffen oder nicht.

Ist eine Kombination wahr, dann ist die als erstes betrachtete Zahl die größere Zahl und wird somit entsprechend an den Subtrahierer weitergegeben. Falls keine der Kombina-tionen wahr wird, dann ist die als zweite Zahl betrachtete Zahl, die größere und wird entsprechend an den Subtrahierer geleitet (Kapitel 5.2.2).
Der Unterschied zwischen "Komparator a > b" für 4-bit-Zahlen und dem "Komparator a > b" für 2-bit-Zahlen liegt darin, dass beim Komparator der 4-bit Zahlen eventuell eintre-tende Kombinationen negiert werden, um a > b zu ermitteln. Beim Komparator der 2-bit-Zahlen werden bei Erfüllung einer Kombination a und b dementsprechend weitergeleitet.

Zur Arbeitsweise des "Komparators a > 0" (für 4-bit- und 2-bit-Zahlen):

Die Arbeitsweise des "Komparators a > 0" ist identisch mit der des "Komparators a > b". Der Unterschied liegt darin, dass der b-Wert von Beginn an auf den Wert 0 gesetzt wird (bei 4-bit-Zahlen b0=0,b1=0,b2=0,b3=0 bzw. b0=0,b1=0 bei 2-bit-Zahlen). Dieser Kom-parator findet Einsatz in der Dekrementierer-Einheit Kapitel 5.2.3.

Komparator für 2 4-bit Zahlen.


Klicken Sie auf das Bild, um es zu vergrößern.

5.2.2 Aufbau der Subtrahierereinheit

In der ALU befindet sich eine Subtrahierereinheit, die zwischen den gesetzten Werten und den neuen Werten eine Differenz bildet. Mittels dieser Differenz werden die neuen Koordinaten für die Bewegungen des Motors ermittelt.
Die Subtrahierereinheit setzt sich aus zwei Subtrahierereinheiten zusammen :

Der Subtrahierer basiert auf der Verwendung eines entsprechend beschalteten 4-Bit-Addierers.

Der Algorithmus zur Ermittlung der Differenz von z = x - y :

1.) yn durch Invertierung aller Bits bilden. (Es gilt: y = b.)
2.) Die Summe aus x und yn bilden. (Es gilt: y = b, x = a.)
3.) 1 zu der ermittelten Summe hinzuaddieren, indem man c0=1 setzt.
      [Die Schritte 2 und 3 können auch vertauscht werden]
4.) Den Übertrag durch die Invertierung von cn. Dies ist das Vorzeichen v.

Verdeutlichung der Subtraktion :

5.2.2.1 Der Aufbau des Subtrahierers ohne Addierer-Blackbox :

Um zu gewährleisten, dass das Ergebnis des Subtrahierers immer positiv ist, definieren wir Subtrahierereinheiten für 4-bit-Zahlen (X-, Y-Koordinaten) und 2-bit-Zahlen (I-Koordinaten).
Eine Subtrahierereinheit besteht aus einem Komparator und einem Subtrahierer.

Die Subtrahierereinheit für 4-bit-Zahlen bzw. 2-bit-Zahlen: (*)

(*) Liegt eine Subtrahierereinheit bzw. ein Subtrahierer für 4-bit-Zahlen vor, so geht der Wert a über die Eingänge a0,a1,a2,a3 und der Wert b über die Eingänge b0,b1,b2,b3 in den Subtrahierer ein.

(*) Bei einer Subtrahierereinheit bzw. einem Subtrahierer für 2-bit-Zahlen geht der Wert a über die Eingänge a0,a1 und der Wert b über die Eingänge b0,b1 in den Subtrahierer ein. In der Variablen a ist der aktuelle Wert und in der Variablen b der neue Wert der zu be-arbeitenden Koordinate enthalten. Die Werte der beiden Variablen werden in einem Komparator (Kapitel 5.2.1) auf Gleich-heit und Größe verglichen.

Verwendung des Subtrahierers a > b (für 4-bit-Zahlen bzw. 2-bit-Zahlen):

Wenn der Fall a > b oder a = b eintritt, dann werden a und b in den "Subtrahierer a > b" geleitet und der Wert b wird vom Wert a subtrahiert. Im Blockschaltbild 5.2.2.1 (Der Aufbau des Subtrahierers ohne Addierer-Blackbox), wer-den a und b so in den Subtrahierer geleitet, dass b von a abgezogen wird.

Verwendung des Subtrahierers b > a (für 4-bit-Zahlen bzw. 2-bit-Zahlen):

Wenn b > a ist, dann wird das Signal aus dem Ausgang Y negiert und b und a werden in den "Subtrahierer b > a" geleitet. In diesen Subtrahierer werden b und a so geleitet, daß a von b abgezogen wird.

Die von den Subtrahierern ermittelte Differenz ist immer positiv, da durch den Kompa-rator vor Beginn der Subtraktion die größte der beiden Zahlen ermittelt wurde. Durch den Vorabvergleich auf die größte Zahl im Komparator, wird gewährleistet, dass das von uns festgelegte Datenformat, bestehend aus positiven Zahlen, gewahrt wird und aus der Subtraktion kein negatives Ergebnis folgen kann.

Zu den Ausgängen des Subtrahierers :

Die Subtrahierereinheiten besitzen 1 Ausgang, der in eine Dekrementierereinheit (Kapi-tel 5.2.3) führt.

5.2.3 Aufbau der Dekrementierereinheit

Die ALU beinhaltet unter anderem eine Dekrementierereinheit, die sich wiederum aus drei Dekrementierereinheiten zusammensetzt :

Der Dekrementierer basiert auf einer Subtrahiererschaltung, bei der von einem Wert a eine Konstante, in unserem Fall eine 1, subtrahiert wird.

Der Dekrementierer für X (4-bit-Zahlen)

Der Wert a geht durch die Eingänge a0,a1,a2,a3 in die Subtrahiererschaltung ein und die Zahl 1 durch die Eingänge b0=1,b1=1,b2=1,b3=1. Analog für den Dekrementierer für Y.

Der Dekrementierer für I (2-bit-Zahlen)

Der Wert a geht durch die Eingänge a0,a1 in die Subtrahiererschaltung ein und die Zahl 1 durch die Eingänge b0=1,b1=1.
Wir definieren Dekrementierereinheiten der Koordinaten X,Y und I, um eine zyklische Abarbeitung der Daten, die von der Motoreinheit (Kapitel 5.5) ausgeführt werden sollen, zu gewährleisten.

Zur Arbeitsweise der Dekrementierereinheit für 4-bit-Zahlen:

Der Aufbau der Dekrementierereinheit der Koordinaten X und Y ist äquivalent. Daher steht der Schaltplan der Dekrementierereinheit stellvertretend für die Einheit der Y-Koordinate. Der Wert X geht über die Eingänge a0,a1,a2,a3 in einen Komparator (Kapitel 5.2.1) und wird mit der Zahl 0 verglichen. Die Zahl 0 wird durch b0=0,b1=0,b2=0,b3=0 realisiert. Wenn der Wert a>0 ist, dann wird a in den Dekrementierer geleitet und um 1 minimiert. Der Wert a geht durch die Eingänge a0,a1,a2,a3 in die Subtrahiererschaltung ein und die Zahl 1 durch die Eingänge b0=1,b1=1,b2=1,b3=1.

Der Dekrementierer besitzt 2 Ausgänge :

Ein Ausgang gibt ein Signal an die Motorein-heit X (Kapitel 5.5), die somit die Information erhält, in welche Richtung die Bewegung ausgeführt werden soll. Ein zweiter Ausgang geht wieder in den Komparator. Dabei wird der um 1 minimierte Wert a wieder als Eingang a für den Komparator verwendet.

Die auf diese Art und Weise entstehende "Schleife" sowie der Dekrementierer, gewähr-leisten, dass die Motoreinheit eine der Differenz entsprechende Schrittanzahl durchführt. Der "Unterschied" zwischen dem Aufbau der Dekrementierereinheit X und der Dekre-mentierereinheit Y liegt allein im Eingang und Ausgang.

5.2.3. Die DekrementierereinheitEingang
Ausgang
für die X-Koordinatea=X | b=0
Motoreinheit X | Komparator
für die Y-Koordinatea=Y | b=0
Motoreinheit Y | Komparator

Zur Arbeitsweise der Dekrementierereinheit für 2-bit-Zahlen:

Der Aufbau der Dekrementierereinheit der I-Koordinate besteht wie die Dekrementierer X und Y aus einem Komparator und einem Dekrementierer. Diese sind allerdings für 2-bit-Zahlen konzipiert. Der Wert I geht über die Eingänge a0,a1 in einen Komparator (Kapitel 5.2.1) und wird mit der Zahl 0 verglichen. Die Zahl 0 wird durch b0=0,b1=0 realisiert.

Wenn der Wert a>0 ist, dann wird a in den Dekrementierer geleitet und um 1 minimiert. Der Wert a geht durch die Eingänge a0,a1 in die Subtrahiererschaltung ein und die Zahl 1 durch die Eingänge b0=1,b1=1.

Die Dekrementierereinheit der I-Koordinate hat ähnliche Ausgänge wie die Dekrementierereinheiten der 4-bit Zahlen.

DekrementierereinheitEingangAusgang
für die I-Koordinatea=I | b=0Motor I und Komparator


Klicken Sie auf das Bild, um es zu vergrößern.

5.3 Die Steuereinheit

Die Steuereinheit ist fest verdrahtet und wie folgt aufgebaut :

Die Steuereinheit besitzt einen Ein- und Ausgang zur ALU, um die sich dort befinden-den "arithmetischen Funktionen" aufzurufen und die Ergebnisse zu erhalten. Ein weiterer Ausgang führt ins Register 2. Dieser Ausgang wird dann durchlaufen, wenn es zur gewollten oder ungewollten Kontaktunterbrechung zwischen Infrarot-Sensorik und Prozessor kommt (Register , Kapitel 5.4.).

5.4 Die Register

Im Prozessor befinden sich 2 Register : Register 1 und Register 2. Register 1 besteht aus den drei "aktuellen Werten" der Koordinaten X (R0),Y (R1) und I (R2). In R0,R1 und R2 sind zu Beginn des Prozesses die Resetwerte von X, Y und I enthalten. Die Registerwerte werden von der ALU geladen, um die Verschiebung der Motorik zu berechnen. Nach erfolgreicher Durchführung werden dann die "neuen Wer-te", die von der ALU aus dem Datenbus ebenfalls zur Berechnung der Verschiebung der Motorik geladen wurden, in die Register R0, R1, R2 gespeichert.

Register 2 (Reset) besteht aus den drei Resetwerten der Koordinaten X,Y und I. Wenn es für längere Zeit zu einer Kontaktunterbrechung zwischen der Infrarot-Sensorik und dem Prozessor kommt, gewollt (durch Abnahme der Brille) oder ungewollt (durch Auftritt von Fehlern), greift die Steuereinheit auf das Register 2 zu und lädt die Reset-Werte. Auf diese Weise ist gewährleistet, dass bei Kontaktunterbrechung die Pupille nicht bei ihrer zuletzt aktuellen Position bleibt (und eventuell den Eindruck des Schielens vermit-telt), sondern eine neutrale Position im Zentrum des Auges einnimmt.

Die Werte der Koordinaten sind : X=7, Y=7 und I=01 (Kapitel 3, Datenformate).

5.5 Die Motoreinheit

Die Motoreinheit besteht aus Motorinterface I, Motorinterface II und einer Motorik.

Insgesamt existieren 3 Motoreinheiten, die sich allerdings nur im Aufbau der Motorik unterscheiden : die Motorik der X-Koordinate dreht sich nach rechts oder links, die Moto-rik der Y-Koordinate dreht sich nach oben oder unten und die Motorik der Pupille dreht sich nach rechts oder links und vergrößert bzw. verkleinert dabei die Größe der Pupille.

Der Signalempfang der Motoreinheit :

Die Werte von a und b werden im "Komparator a > b" verarbeitet. Ist a > b, wird ein Si-gnal an das Motorinterface I gesendet.

Wenn a < b ist, dann wird ein Signal an das Motorinterface II gesendet. Folgende Informationen erhält die Motorik der Motoreinheit über Motorinterface I : Je nach eingegangener Koordinate wird die Motorik auf Links- (bei X, I- Koordinaten) bzw. Untendrehen (bei Y-Koordinate) eingestellt. Motorinterface II : Je nach eingegangener Koordinate wird die Motorik auf Rechts- (bei X, I- Koordinaten) bzw. Obendrehen (bei Y-Koordinate) eingestellt. Die Werte a und b gehen je nach Komparatorergebnis in den Subtrahierer und von dort aus in eine Dekrementierereinheit (Kapitel 5.2.3). Der Dekrementierer der Dekrementie-rereinheit arbeitet mit der Differenz aus a und b und schickt der Motorik immer dann ein Signal, wenn der "Komparator a > 0" ein Signal sendet, der Wert also größer der 0 ist. Dann wird die Differenz um 1 minimiert und der Vorgang im "Komparator a > 0" fortge-setzt.

Wenn der Motor ein Signal vom Dekrementierer erhält, dann greift er auf Motorinterface I zu und überprüft, ob dort eine 1 steht. Wenn dies nicht der Fall ist, dann überprüft der Motor Interface II. Je nachdem in welchem Interface die 1 steht, wird die Motorik auf die jeweilige Richtung "eingestellt" und führt dann das vom Dekrementierer erhaltene Signal aus: Die Motorik realisiert einen Schritt in die entsprechende Richtung.

Nach Beendigung dieser Bewegung wartet die Motoreinheit auf weitere Signale. Wenn die Differenz nach (mehrmaligem) Durchlauf des Dekrementierers nicht mehr a > 0 ist, wird der Ausgang Y des Komparators negiert und ein Signal an das gerade ver-wendete Motorinterface gesendet. Die sich im Motorinterface befindende 1 wird dann zur 0 und die Motoreinheit wird somit zurückgesetzt (Reset).

Zum Aufbau der Motorik ist noch zu sagen, dass es zwei verschiedene Motoriktypen gibt. Die eine Motorik dreht sich nach rechts/links, oben/unten (jeweils die Motorik der X- und Y-Koordinaten) und positioniert auf diese Art den Mittelpunkt der Pupille. Die andere Motorik (die der Pupille) funktioniert wie folgt :
wenn sich der Motor nach rechts drehen soll, dann vergrößert sich die Pupille, wenn sich der Motor nach links drehen soll, dann verkleinert sich die Pupille.
Insgesamt kann die Pupille 4 verschieden Größen annehmen (00,01,10,11).

Veranschaulichung des Aufbaus der Motoreinheit :

4. CPU-Design
- Inhalt -
6. Einsatzbereitschaft


© by Andreas Hadel und Birgit Hadel
»www.Hadels.com«