PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Incremental-drehscheiben selber bauen?



Zachso
26.07.2007, 15:41
Hi Leute!

ich hatte die idee inkrementa-Drehscheiben selber zu bauen. dabei gibt es wohl zwei möglichkeiten, die erste ist mit einem CNY70 und einem schmitt-trogegr wie im wiki ud die zweite wäre wohl mit einer alten kugelmaus, die frage die ich mir nun stelle ist: wie?

ginge es denn theoretish mit einer kugelmaus so dass man die sensorwerte der beiden achsen abgreifen könnte und so eine gerade fahrt garantierne könnte?

ich würde mir ja acuh einfach welche mit gabellichtschranken kaufen aber das ist doch etwas teuer.

mfg, zachso

mare_crisium
26.07.2007, 21:56
Zachso,

das Selbermachen von Codescheiben und der zugehörigen Schaltung ist gar nicht schwer. Auf den beiden angefügten Fotos ist eine Scheibe mit 45mm Durchmesser für einen groben Neigungswinkel-Messaufnehmer mit der (zugegebenermassen sehr provisorischen Schaltung zu sehen. Ist alles selbstgemacht und funktioniert einwandfrei.

Wenn's Dich interessiert, kann ich mehr darüber schreiben, wie ich die Scheiben mache.

mare_crisium

Zachso
27.07.2007, 10:09
ja es ineressiert mich sehr. wie es aussieht hast du die codierscheibe aus einer platine geätzt? und warum sind die felder versetzt? würde das ganze auch an einer achse funktionieren? warum 3 CNY70? reicht einer nicht? hast du einen schaltplan, wenn möglich mit wiederstandswerten? wie genau ist das ganze und wie lichtempfindlich?

fragen über fragen... wäre ab sehr nett wenn du zumindest einige beantworten könntest. der aufbau sieht zumindest recht funktionstüchtig aus, das hast du ja auch geschrieben.

achso, eine frage noch: bis wie viele U/min kann die scheibe drehen so dass die messung noch halbwegs exakt bleibt? und würde es nicht mehr sinn machen die kupferflächen entweder schwarz zu machen oder sich ein blatt papier auszudrucken wo das ganze schwarz/weiß drauf ist so dass ein größerer kontrast entsteht?

danke schonmal, mfg, zachso

user529
27.07.2007, 12:07
mit einem sensor kannst du die bewegung feststellen, aber nicht die richtung in die gedreht wird.cny hat einen gewissen sensorbereich, unter dessen durchmesser er nicht unterscheiden kann ob das jetzt ein oder zwei teilflächen sind. wenn du sie jetzt aber aufteilst und einen weiteren sensor hinzunimmst kannst du die inkrementengröße halbieren.

ich mache meine immer aus einer overhead folie und einer lichtschranke aus einer maus, funktioniert auch recht gut

Zachso
27.07.2007, 15:16
gut, also die zwei verschiedenen Drehscheiben auf einer dienen also der Drehrichtungserkennung, aber mir ist jetzt nicht klar wie das funktionieren soll, gibts dazu nicht ne keleine Beschreibung oder könnte das mal jemand erklären? das wäre sehr schön,

mfg, zachso

Stone
27.07.2007, 15:58
Also nennen wir den äußeren Bereich mal 1 und den inneren 2 .
Wenn die Scheibe sich rechts rum dreht spricht der Sensor vom 1 zuerst an und dann erst der 2. dreht sich die Scheibe nun links rum spricht der 1 Sensor zuerst an.
Durch den Versatz des Ansprechens weis man die Drehrichtung.
Jetzt verständlicher ?

MfG Matthias

user529
27.07.2007, 16:10
wird die scheibe nun gedreht erhältst du bei einem sensor eine abfolge von 010101 usw. damit kannst du ergennen wie weit gedreht wurde, aber nicht in welche richtung, und nicht ob die richtung geändert wurde.
dazu verwendet man nun einen zweiten sensor bei dem das signal um 90° versetzt ist.
vorwärts:
sensor A: 0110011001
sensor b: 1100110011

rückwerts:
sensor A: 100110011
sensor b: 110011001

jetzt zählst du nicht nur die impulse, sondern schaust auch welches signal "vorne" liegt und kannst daraus auch die drehrichtung erkennen

http://de.wikipedia.org/wiki/Inkrementalgeber
http://www.heise.de/ct/04/22/236/default.shtml

Zachso
27.07.2007, 16:47
ja, ich glaube das habe ich jetzt so weit gerafft, vielen dank euch! solche odometrie finde ich sehr interessant, nur leider mechanisch gar nicht so einfach aber ich werd mich mal dran machen wenigstens eine versuchsachse mit einer odometriescheibe zu bauen, vielen dank.
die Fragen aus meinem zweiten post sind damit zwar leider immer noch net geklärt aber ich hoffe das kommt noch ;)

mfg, Zachso

mare_crisium
27.07.2007, 21:06
Zachso,

ja, die Scheibe ist aus einer ganz normalen, einseitig photopositiv beschichteten Platine geätzt. Ich habe mich selbst darüber gewundert, dass der CNY71 auf den Unterschied zwischen blankem Kupfer und kupferfreien Flächen stärker reagiert, als wenn ich eine bedruckte Transparentfolie mit dahinter gelegter Alufolie verwende. Man kann den Kontrast bestimmt noch verstärken, indem man die Kupferflächen ganz dünn verzinnt und die kupferfreien Flächen mit schwarzer Tusche einfärbt.

Die Auswertung des Codes ist Dir jetzt ja bekannt. Nur noch einen Tip: Statt zwei Strichkränze zu verwenden, kannst Du auch genausogut zwei um 90° versetzte CNY71 verwenden ;-?. Um das zu erproben, habe ich in meinem Aufbau drei davon verbaut: Zwei um 90° versetzte auf demselben Radius und einen für den inneren Sektorkranz.

Der Abstand zwischen Oberkante CNY und Scheibe sollte nicht viel grösser als 1mm sein. Andernfalls werden die Signale der Sektoren überflüssig stark verschliffen.

Die Anzahl der Sektoren ist so klein, weil ich die Sektoren breiter als 1mm haben will. Dann schalten die CNY sicher. Wenn Dur mehr Sektoren brauchst, weil Du eine bessere Winkelauflösung willst, dann musst Du den Durchmesser grösser machen. Die Sektorenzahl ist schlussendlich ein Kompromiss zwischen der maximal möglichen Grenzfrequenz (siehe unten) und der gewünschten Winkelauflösung.

Wie schnell das Ganze drehen kann, ohne das Impulse "verloren" gehen (also im Grunde die Bandbreite des CNY71) habe ich noch nicht ausprobiert. Das Datenblatt von Vishay schweigt sich dazu aus. Ähnliche Typen, z.B. der SFH9202 (Datenblatt bei Osram herunterzuladen), hat eine Schaltzeit von 30microSekunden. Grob geschätzt solltest Du

Umdrehungszahl = 10^6/(2*10*30*Anzahl_Sektoren)

sicher erreichen können (der Faktor Zehn im Nenner ist reiner Sicherheitsfaktor, der Faktor 2 kommt von den zwei Flanken pro Sektor).

Die Schaltung ist hier schon mehrfach beschrieben worden; ich finde in der Eile den Thread aber nicht mehr (kann, bitte, jemand aushelfen?). Bei mir funktioniert's übrigens sogar auch ohne Schmitt-Trigger allein mit dem internen Pull-up Widerstand an den AVR-Ports.

Über die Herstellung schreibe ich bald mehr, jetzt muss ich erstmal meinen neuen Computer und MS-Vista in Betrieb nehmen, puh!

Bis bald,

mare_crisium

sigo
30.07.2007, 16:57
Nur nochmal zu den Maussensoren. Die sind natürlich auch nicht uninteressant. Die Gabellichtschranken sind ja schon dabei.
Bei diesen (und den meisten klassischen Inkrementalgebern) hat die Scheine nur eine Lochreihe und dafür sind die beiden Sensoren um eine 1/4 Periode (1/4 des Abstands von Loch zu Loch). Dadurch erzielt man dann die gleiche Signalfolge wie in der sehr anschaulichen und sehr kreativen Lösung von Mare_crisium.

@Mare_crisium: Dein Name ist ja schwer im Trend. Nach 30 Jahren Pause scheint sich ja nun alle Welt wieder brennend für den Mond zu interessieren.

Sigo

jwarta
11.08.2007, 10:56
Warum eigentlich so kompliziert ? Mit einem Magneten und dem Hall-IC von austriamicro funktioniert das ganze viel einfacher und der mechanische Aufbau ist auch viel leichter umzusetzen.

-> http://www.austriamicrosystems.com/03products/20_rotary_encoders.htm

mare_crisium
13.10.2007, 00:24
Gut Ding will Weile haben...

In der Zwischenzeit habe ich mit dem CNY70 weiter experimentiert und verwende seither die angehängte gegengekoppelte Schaltung. Die erzeugt einen guten Kontrast zwischen Pertinax- und Cu-Flächen und begrenzt auch etwas den Stromverbrauch. Vorgesehen ist auch ein Schutzwiderstand, der verhindert, dass die LED durchgeschossen wird, wenn der Ausgang aus Versehen mal Erdpotential zu sehen bekommt. Mit dem Ausgangssignal gehe ich direkt auf einen Port-Pin am ATMega8. Fremdlicht stört nur, wenn's wirklich sehr intensiv ist und direkt auf den CNY fällt. Bei meiner Mechanik passiert das aber nicht, weil der Abstand zur Sektorscheibe nur 1mm beträgt. - Danke auch an Sigo, der mich bei der Entwicklung der Schaltung beraten hat.

mare_crisium.

Edit: Anhang gelöscht wg. Upload-Quota

mare_crisium
15.10.2007, 22:00
Für Interessierte sind im der angehängten pdf-Datei ein paar Muster für Sektorscheiben zum Abbelichten.

mare_crisium

Edit1: Attachment gelöscht, um meine upload-Quote zu drücken. Bei Interesse, bitte, PN an mich schicken.

oberallgeier
06.12.2007, 17:58
Hallo alle,

hier sind die verwendeten Sensoren, z.B. der CNY70, ja relativ gross.

Ich will so etwas Ähnliches machen, nur deutlich kleiner. Ich will die Drehzahl eines Elektromotörchens messen, nmax ca. 50 000 /min, also max. etwa 800/sec (so eine Art Propeller, der bei einer Umdrehung zweimal durch die Lichtschranke fährt - daher die doppelte Motorfrequenz 1600 .. 1700 Hz). Das geht von der zeitlichen Auflösung mit den AVR´s, hoffe ich (auch wenn ich das noch nicht gemacht hatte). Problematisch ist für mich der Einbauraum - ich will/muss das in einem Miniservo unterbringen. Da habe ich nur ein paar Kubikmillimeter Platz. Derzeit denke ich an eine SMD-LED kingbright-LED0402ROT, etwa 650 nm, und dazu ein HAMAMATSU-Lichtsensor S7815, beste Empfindlichkeit ebenfalls bei 650 nm und einer relativ hohen Ansprechgeschwindigkeit.

Ok, ich hatte schon an Hallsensoren gedacht - die sind aber recht gross - und ich habe Angst, dass mir der Magnet davonfliegt, denn auswuchten kann ich das Teil nicht :(. Derzeit scheint mir diese Lichtschrankenlösung das Optimum zu sein.

Geht das so? Habe ich da eine Chance?
Gibt es dazu eine bessere Möglichkeit?
Danke im Voraus

H.A.R.R.Y.
13.12.2007, 14:51
Hi, versuch es mal mit Gabelkopplern anstelle CNY70. Die haben meist sehr schmale Schlitzblenden und erlauben feinere Strukturen auf den Scheiben. Pertinax läßt Infrarotlicht fast 100%ig durch, die Cu-Flächen wirken als 100% IR-Sperre. Mit FR4-Basismaterial ist die Durchlässigkeit immer noch gut genug für so etwas.

Die Signalfrequenz (800/s = 800Hz) sollte problemlos mit den Standardschaltungen funktionieren. Je nach Anzahl der Segmente wird die Frequenz drastisch ansteigen und dann könnte es sein, daß der Phototransistor mit ein paar Kniffen schneller gemacht werden muß.

Als Unterbrecher kann eventuell eine Schlitzscheibe aus einer Maus fungieren, dann gibt es auch IREDs und passende doppelte Empfänger dazu. Einige sind klein genug für Montage in so einem Servo-Gehäuse.

Gruß H.A.R.R.Y.

oberallgeier
13.12.2007, 19:58
Hallo, H.A.R.R.Y.,

vielen Dank für den Hinweis - das ist wohl genau das, was ich gesucht hatte. Gibts bei CSD für "eine Mark". Nur , da muss ich wieder Transistoren dran löten und so Dinge, mit denen ich mich nicht so richig (genauer: garnicht) auskenne. Aber da suche ich mal nach ner Schaltung oder ich muss jemanden suchen der mir dabei weiter hilft.

Jedenfalls schon mal vielen Dank.

Die Auflösung ist gut - wohl über 10 kHz. Und das Ding ist richtig klein.

H.A.R.R.Y.
14.12.2007, 13:35
1,2V für den AVR-Eingang?
Bist Du sicher, das das nicht die Durchlaßspannung der IR-LED ist? Der Hub am Transistor sollte durchaus 5V betragen können. Die Schaltung von mare_crisium (weiter oben) könnte auch mit diesen Teilen arbeiten.

Und das Du Dich nicht mit Transistoren auskennst, kann ich gar nicht glauben. Wie kommst Du sonst mit den AVRs zurecht?

oberallgeier
14.12.2007, 19:14
1,2V ... die Durchlaßspannung der IR-LED ist?Ich sagte doch, dass ich mich nicht auskenne :( noch dazu auf Englisch :( - aber Du hast recht. Bei CSD steht "Forward Voltage..1,2 V" und dazu sagt der LEO-ende "Durchlassspannung" - das wusste ich vorher nicht - hatte auch leider nicht nachgeguckt :(. Im Datenblatt steht bei maximum ratings dann blos forward current 50 mA und reverse voltage 6V.


Und das Du Dich nicht mit Transistoren auskennst, kann ich gar nicht glauben. Wie kommst Du sonst mit den AVRs zurecht?Na ja, auskennen kann man das bisschen wirklich nicht nennen. Aber ich bemühe mich.

Übrigens habe ich gestern mit einem uralten Modellbau-Motor, einer schnell gestrickten, paddelähnllichen Blende -auf ein Zahnrad mit 2Komponentenkleber aufgeklebt- , einem SFH-300+10kOhm+5V und (m)einer Tischlampe als Sender auf dem Oszilloskop ein rechteckÄHNLICHes Signal bekommen bis etwas 1,5 ms Takt. Mehr gab der Motor nicht her bei voll aufgedrehtem Netzteil (max 15 V). Das Signal war dann irgendwie kapp über 4V und etwa 0,5 V. Wenn die kleine Gabellichtschranke ähnlich funktioniert, könnte ich die ja direkt an den AVR legen. Und der SFH zieht dabei dann weniger als 0,4 mA :). Aber ich hab nur knapp 5mm x 5mm x 5mm - da müsste ich den falten - und hätte noch kein Licht.

Danke nochmal für die Hilfe.

IRQ
16.12.2007, 12:02
Ich bin auch gerade dabei so einen Encoder zu bauen. Werde dazu einen CNY37 verwenden (ähnlich dem CNY70 nur als Gabellichtschranke). Der wird auseinandergesägt, damit das Plexiglas-Rad dazwischen passt. Bin man gespannt, wie das funktioniert. Richtungsbestimmung ist damit natürlich nicht möglich, dazu muss man halt ein Register im µC abfragen...

Habe hier im Forum auch angehängte Schablone gefunden (kann man im Texteditor bearbeiten), die wird auf Folie gedruckt und aufs Rad geklebt

oberallgeier
16.12.2007, 12:26
Ja, den kenn ich (Datenblatt und so) - der ist für meine Bedürfnisse etwas zu gross.

Die Drehrichtung kann/könnte man erkennen, wenn man zwei Schranken nimmt, die etwas versetzt sind und dann die Signale mit zeitlichem Verzug bringen. Aber die Abfrage des Port ist natürlich einfacher. Voraussetzung ist aber, dass der Motor nicht im Schubbetrieb arbeitet.