PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verwendung einer PC-Maus als Inkrementalgeber



clupus
26.01.2006, 20:59
Hallo allerseits,

ich brauche für eine Positionssteuerung einen Inkrementalgeber. Ich habe mich mal ein bisschen erkundigt und die Dinger sind (mit Scheibe) z.T. recht bis sehr teuer. Eine PC-Maus, wo ja auch 2 Inkrementalgeber drin sind, kostet da schon weniger.

Meine Fragen:

1.) Wie genau ist ein solcher Geber? Theoretisch kann es zwar sein, dass er einen Zahn etwas zu breit hat, aber das müsste sich doch auf die ganze Umdrehung ausgleichen, oder?

2.) Wie kann man so ein Ding ansteuern? Ich meine, kann man das Ding einfach rauslöten, und dann steht da drauf, wieviel Spannung wo anzulegen ist/wo das Signal rauskommt?

MfG
Christian

xanadu
27.01.2006, 10:21
Hallo Christian,

PS/2 Mäuse wollen eine Versorgungsspannung von 5V haben. Da es ziemlich viele verschieden IC's gibt, sie in den Dingern verbaut sind, bleibt eigentlich nichts anderes als ein Reverse Engineering. Ist zwar eine Menge Arbeit, dafür hat man aber einen Zähler, der auch dann keinen Impuls verschläft, wenn der µC beschäftigt ist.

Die Verbindung zum µC wird über zwei Leitungen hergestellt (CLOCK und DATA).

Mehr zum Thema "Auslesen einer PS/2-Schnittstelle findest du unter: https://www.roboternetz.de/phpBB2/viewtopic.php?t=15744

Die Auflösung ist IMHO für einen Inkrementalgeber im Bereich der Odometrie hoch genug, Verluste beim Zählen hab ich bisher nicht festgestellt.

Gruß,
Xanadu

Manf
27.01.2006, 10:30
1.) Wie genau ist ein solcher Geber? Theoretisch kann es zwar sein, dass er einen Zahn etwas zu breit hat, aber das müsste sich doch auf die ganze Umdrehung ausgleichen, oder?36 Zähne habe ich gezählt. Die sind sehr sauber und gleichmäßig. Damit kann man bei 2Phasen Abstastung 144 Schritte erzeugen.
Manfred

clupus
27.01.2006, 16:53
OK, ich werd mich mal ein bisschen einlesen.

clupus
12.02.2006, 23:39
[...]
Die Verbindung zum µC wird über zwei Leitungen hergestellt (CLOCK und DATA).

Mehr zum Thema "Auslesen einer PS/2-Schnittstelle findest du unter: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=15744
[...]

Hallo nochmal,

ich habe den Artikel, den du mir angegeben hast, hier vor mir liegen. Das Protokoll hab ich gefressen. (Hoffe du verzeihst mir, wenn ich für meine Steuerung mich ein bisschen an deinem Code anlehne O:))

Ich hab aber dennoch ein kleines Problem:
Ich sehe ehrlich gesaght nicht durch, wie die genaue Daten-Syntax ist. Wenn ich jetzt also von meiner Maus wissen will, ob sich in Y-Richtung was getan hat, und wenn was (Schritte, Richtung?), wo finde ich die Wert? Diese Information muss ja irgendwie codiert in den Rückgabewerten stehen. Wie kann ich sie extrahieren?

Muss ich eigentlich die Maus vor der Verwendung initalisieren?

MfG
Christian

xanadu
13.02.2006, 17:03
Hi,

ja, du musst die Maus initialisieren. Ich hab mal meinen aktualisierten Code im anderen Thread (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=15744) gepostet .

Du darfst ihn gerne verwenden ;-)

Gruß,
Chris[/url]

clupus
13.02.2006, 21:42
Jetzt aber doch noch meine Frage: Wo hast du das alles her? Ich meine, es ist zwar schön und gut, was du da schreibst, aber ich weiß ehrlich gesagt nicht, was ich ihr (der Maus) damit genau sage. Die Frage ist z.B. was kann man alles für "Resolutions" einstellen. Welche Werte kann ich ihm dann geben?

Wo kann man das denn nachlesen. Das würde mich (rein interessehalber) auch privat interessieren.

MfG
Christian

xanadu
14.02.2006, 09:38
Wo hast du das alles her?

Ehmmm, ja, hier stehts: http://www.computer-engineering.org/ps2protocol/

(Ist ein gern genannter Link, ich hatte das als bekannt vorausgesetzt ;-) )

Chris

clupus
14.02.2006, 17:09
Nein, tut mir Leid, den Link kannte ich nocht nicht.

Jetzt meine Frage: Mit Resolution kann ich ja die Auflösung einstellen (in Impulse des Zählers pro mm Mausbewegung). Richtig?

Ich will ja eigentlich nicht eine Strecke messen, sondern eine Drehung. Ist es also so, dass bei 8 counts/mm für jeden Zahn einen Impuls erhält? Oder gilt da ein anderer Umrechnugsfaktor?

MfG
Christian

xanadu
14.02.2006, 19:25
Natürlich gelten die Streckenangaben nür für passend designte Encoderscheiben. Für uns ist die Anzahl der Zählererhöhungen entscheidend. Ich hab das mal ausgemessen. Jeder "Zahn" besteht ja sozusagen aus zwei Farbwechseln (hell->dunkel und dunkel->hell).

Bei 8 counts/mm erzeugt jeder Übergang zwei Impulse, jeder Zahn also 4 Zählerschritte. Bei 4 counts ist jeder Übergang ein Impuls, also zwei pro Zahn und bei 2 counts/mm zählen nur Wechsel von dunkel nach hell.

Da meine Encoderscheibe relativ grob war, habe ich mich zu Resoultion 2 (4 counts/mm) entschieden.

Hintergrundinfos bekommst Du auch, wenn du mal die Suchfunktion des Forums mit dem Begriff "Quadratur*" benutzt.

Gruß,
Chris

clupus
14.02.2006, 20:35
Nein, ich glaube wir reden aneinander vorbei.

Wenn ich eine andere Maus habe und diese nun ein anderes Speichenrad hat (64 Schritte), dann macht das Rad bei 1 mm Bewegung theoretisch mehr Schritte als ein Rad mit z.B. 32 Schritten. (Doppelt so viele um genau zu sein)

WIe kann man das ausgleichen? Mein Problem: Wenn ich einen Drehwinkel messen will, muss ich beachten, dass ich nicht messen kann, was genau eine Umdrehung ist. Wenn ich ihm jetzt 8 cnt/mm einstelle, wiß ich nicht, ob er mir auch wirklich 64 zählt, oder z.B. nur 60 (Korrekturfaktor!)

MfG
Christian

xanadu
14.02.2006, 20:40
Entscheidend sind doch die Impulse. Die count/mm kommen doch nur aus der PS/2-Maus Spezifikation. Je nach eingestellter Resolution wird der Quadraturdecoder anders eingestellt (siehe oben), der Rest ist Sache deiner Encoderscheibe und eines Taschenrechners.

Oder ich verstehe das Problem nicht.

Chris

clupus
14.02.2006, 21:28
Ich gehe davon aus, dass ich die Orginalencoderscheibe der Maus verwende. Zudem muss ich das Ding per µC einlesen und die Daten verarbeiten.

MfG
Christian

xanadu
14.02.2006, 21:51
Okay, dann musst du die Encoderscheibe analysieren. Wenn sie 60 Teilungen hätte, dann würde jeder Zahn 6 Grad bedeuten. Bei Resolution 2 hättest du dementsprechend je Impuls 3 Grad.

Gruß,
Chris