C-control und Computermaus

 In fast jeder Kiste mit Computer-Müll lässt sich eine mehr oder minder funktionsfähige mechanische Computermaus ausgraben. Das folgende kleine Projekt hat zum Ziel, die Funktionsweise einer mechanischen Computermaus zu beleuchten und zugleich auch aufzuzeigen, dass so ein Relikt sehr vielseitig im Zusammenspiel mit einer C-Control eingesetzt werden kann. Als mögliche Anwendungsgebiete können Distanzmessungen und Drehzahlmessungen in Betracht gezogen werden.

 

Grundlegendes zur mechanischen Computermaus:

An der Unterseite der Maus befindet sich eine Kugel, welche bei Bewegung zwei senkrecht zueinander stehende Achsen antreibt. Am Ende jeder Achse befindet sich ein Zahnrad oder eine Lochscheibe. Bei Bewegung der Kugel werden also auch Zahnrad oder Lochscheibe in Bewegung versetzt. In unmittelbarer Nähe dieser Rädchen sitzen jeweils zwei LEDs und zwei Fototransistoren. Der Lichtstrahl  von den LEDs zum Phototransistor wird bei Bewegung der Rädchen dauernd unterbrochen. Das ganze Prinzip der Bewegungserkennung beruht auf der Erkennung und Auswertung der Sequenz unterbrochener Lichtstrahlen.

Im Detail sieht das folgendermaßen aus: ein LED/Fototransistor Paar dient der Bewegungserkennung, das andere zum Erkennen der Richtung, also ob sich das Rädchen nach vorne oder nach hinten dreht. Diese Aufgabentrennung ist nicht strikt an jeweils ein bestimmtes Paar gebunden, sondern kann beliebig zugeteilt werden. Das Erkennen der Bewegung ist relativ einfach. Jedes Mal wenn der Fototransistor vom Licht ins Dunkel kommt oder umgekehrt ändert sich die Spannung an seinem Ausgang. Das heißt also, bei jeder Spannungsänderung hat sich das Rädchen um eine Mindesteinheit weitergedreht. Die Bewegung kann aber in zwei Richtungen erfolgen. Wie wird nun die Bewegungsrichtung erkannt? Das geschieht dadurch, dass die beiden Paare LED/Fototransistor Phasenverschoben angeordnet sind, d.h. sobald ein Paar vom Licht ins Dunkel kommt ist das andere Paar noch gerade in der Mitte zwischen zwei Schlitzen. Das Ganze lasst sich etwas leichter verstehen, wenn man den Spannungsverlauf am Ausgang der beiden Fototransistoren beobachtet:

 

 Nehmen wir an, die obere Linie steht für den Spannungsverlauf am Fototransistor des Bewegungsmelders. Betrachten wir nun den Verlauf von links nach rechts: jedes Mal, wenn die Spannung von hoch auf tief abfällt liegt die Spannung am anderen phasenverschobenen Fototransistor (dem Richtungsanzeiger) auf hoch. Nun schauen wir uns die Sache in umgekehrter Richtung, also von rechts nach links an: jedes Mal, wenn jetzt die Spannung von hoch auf tief abfällt liegt die Spannung am anderen Fototransistor auf tief. Es genügt also, bei jedem Wechsel des Bewegungsmelders von hoch auf tief zugleich den Spannungszustand des Richtungsanzeigers zu erheben und schon weiß man, ob die Bewegung in die eine oder die andere Richtung verläuft.

Um uns von der Sache selbst zu überzeugen, hier ein kleiner Versuchsaufbau mit der C-Control.

 

 

C-Control und Computermaus:

Zuerst zur Hardware. Natürlich braucht es zuerst einmal eine mechanische Maus, die für das Vorhaben geopfert werden kann.  Nach dem Öffnen kann das Innenleben erkundet werden. Ich weiß nicht, ob alle Mäuse einen genormten Aufbau haben, bei meiner sah die Sache jedenfalls folgendermaßen aus: an den vier mit den Buchstaben A bis D gekennzeichneten Füßchen des Chips liegt die Ausgangsspannung der insgesamt vier Fototransistoren der zwei Rädchen an. Für unseren Versuch begnügen wir uns mit einem Rädchen, es reicht also, jeweils ein dünnes Kabel an die beiden Füßchen A und B anzulöten. Das andere Ende dieser Kabel müssen wir zu zwei AD Ports der C-Control führen. Dann braucht die Maus noch eine Stromversorgung und glücklicherweise scheinen 5V genau das Richtige zu sein. Im Bild ist ersichtlich, wo an der Steckverbindung 5V und Masse angelegt werden müssen. Die Zufuhr der Versorgungsspannung kann natürlich direkt vom 5V Pin der C-Control erfolgen. Sind die Verbindungen richtig gelegt, kann’s auch schon losgehen. C-Control per seriellem Kabel mit einem PC verbinden, C-Control starten und am richtigen Rädchen drehen: und schon kann man bei eingeschaltenem Terminalprogramm beobachten, wie ein Zähler sich nach oben oder unten bewegt, gerade in welche Richtung wir das Rädchen eben drehen.

Natürlich erreicht man bei dieser Anwendung bald die Grenzen der möglichen Drehgeschwindigkeiten, also als Tacho für Schumi’s Ferrari würde es sich kaum eignen. Allerdings könnte die Sache durch eine Assembler-Routine wesentlich beschleunigt werden. Leider kenne ich mich bei Assembler noch nicht gar so gut aus, aber vielleicht kann das ja sonst wer programmieren. Ich würde so einen Beitrag von außen natürlich gerne hier auf dieser Seite unterbringen.

 

 

 

Hier noch die erforderliche Software:

 

‚**************************************************************************

'Distanzmessung mit Eingeweiden einer Computer-Maus

'Fototransistor gibt Pegel von ca. 0,3V (Low) bis ca. 1,5V (High)

‚**************************************************************************

 

define x AD[1]        'Fototransistor 1 (Bewegung)

define y AD[2]        'Fototransistor 2 (Richtung)

define grenzwert1 byte   'Mindestwert für Zustand Hoch

define grenzwert2 byte   'Höchstwert für Zustand Tief

define addendum word    'was beim Zaehler dazu oder weg kommt (+1 oder -1)

define zaehler word

 

 

zaehler=0

print zaehler

grenzwert1= 50

grenzwert2= 30

 

#loop

  if x>grenzwert1 then goto zaehlschleife  'bei Erreichen des Zustands Hoch wird der Zaehler aufgerufen

  goto loop

 

  #zaehlschleife

    if y>grenzwert1 then addendum=1 else addendum=(-1)  'falls der Richtungsweiser auf Hoch ist, wird 1 addiert sonst 1 subtrahiert

    zaehler=zaehler+addendum

    print zaehler  'zaehlstand ueber serielle Schnittstelle an PC uebergeben

    wait x<grenzwert2  'warten, bis sich das Raedchen wieder etwas weiterdreht

    goto loop

‚***************************************************************************