mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Absolute Positionsbestimmung 3m auf 5mm Raster


Autor: Jens (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Ich benötige ein paar Anregungen von euch.

Ich stehe vor folgendem Problem:

Ein Wagen bewegt sich auf einer ca 3m langen U-Profil. Angetrieben mit 
einem billigen DC-Getriebemotor + Zahnrad + Zahnstange.
Nun soll der Schlitten "wissen" wo er sich befindet...

Meine erste Idee war einfach die Zähne (aus Plastik) der Zahnstange via 
Gabellichtschranke zu zählen. Mit einem Referenzpunkt bekommt man dann 
die Posi des Wagens.

Hat einer von euch eine Idee die Position absolut (bzw 
Nullspannungsicher) zu erfassen? Es reicht eine Auflösung von 5mm aber 
genauer ist besser :-).

Platz für einen Strichcode ist auf dem Profil noch vorhanden (ca 50mm). 
Aber wie erfasse ich den dann? Irgendwie fällt mir dazu nix ein.

Oder kann man einfach das ganze über Hallsensoren erfassen, wie in der 
pdf? Nur halt selbstgebaut.

µC und Kleinscheiß ist vorhanden.
Kosten sollten nicht meine Hobbykasse sprengen. ;-)

Also wenn einer eine Idee hat, her damit.

Grüße Jens

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit sowas: http://de.wikipedia.org/wiki/Absolutwertgeber

So einen Code könntest du doch da anbringen und mit CNY70 o.ä. abtasten

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz interessant für dich (quasi genau das, was du brauchst): 
http://www.strippenstrolch.de/1-2-12-der-reflexkop...

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf den DC Motor bevor er ins Getriebe geht eine Lochscheibe drauf, dann 
kann man besser aufloesen. Oder allenfalls einen Schrittmotor. Bei 
beiden muss man eine Referenzfahrt machen und eine Nullposition 
anfahren.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde an deiner Stelle wie oben erwähnt einen Code aufbringen 
und mittels CNY70 abtasten. Bei deeinen 3000mm Weg und 5mm Auflösung 
benötigst du mindestens 10Bit dann hast du eine Auflösung von ca 3mm 
maximal. Sprich du baust 10 CNY70 ebeneinander und darunter machst du 
deine Striche auf die Schiene dann hast du immer sofort dein absoluten 
Wert.


lg

Autor: Gast4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im industriellen Umfeld mit Getriebe und Poti oder durch Auszuggeber 
z.B. v. TR-Elektronik.
http://www.tr-electronic.de/trgruppe/Produkte/sens...

Gast4

Autor: M. Köhler (sylaina)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum muss es denn absolut sein? Ginge denn nicht auch relativ? Das ist 
wesentlich einfacher zu realisieren, z.B. mit Inkrementalgeber. Da muss 
man zwar immer eine Referenzfahrt machen aber das kann man recht zügig 
erschlagen durch geschickten Aufbau.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank an alle für den Input.

Genau sowas wie den CNY70 hab ich gesucht. Davon erstmal ein paar holen 
und testen. Mal sehen ob das so klappt wie ich mir das vorstelle.

Zu Begin wollte ich ja auch relativ messen (ist ja auch deutlich 
einfacher und kostengünstiger). Wollte nur wissen ob einer hier eine 
günstige absolute Alternative zu Hand hat. Ich will ja nicht dumm 
sterben ;-).

lg

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem CNY70 gibts aber wahrscheinlich auch nur was Relatives. Der kann 
ja nur guggen, ob die Fläche auf die er schaut reflektiert oder nicht.

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:
> Mit dem CNY70 gibts aber wahrscheinlich auch nur was Relatives. Der kann
> ja nur guggen, ob die Fläche auf die er schaut reflektiert oder nicht.

Reicht doch. Einfach mehrere davon nebeneinander und anstatt eines 
Strichmusters eben Graycode.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jap ist klar. Bau aber zehn nebeneinander und einen absoluten Code auf 
die Bahn. Das heißt jede 3000mm/1024 ändert sich mindestens ein Pegel.

Morgen erstmal 4 bei conrad holen und ausprobieren.

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens wrote:
> Jap ist klar. Bau aber zehn nebeneinander und einen absoluten Code auf
> die Bahn. Das heißt jede 3000mm/1024 ändert sich mindestens ein Pegel.

Damit wirst du aber nicht glücklich werden. Bei jedem Schritt sollte 
sich genau ein Pegel ändern. Eben Graycode: 
http://de.wikipedia.org/wiki/Graycode

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat ein Graycode da soooo große Vorteile? Ansonsten könnte man auch 
relativ und absolut kombinieren: Einige absolute Messpunkte die markiert 
sind und von da aus dann relativ zählen.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das bringt nun nichts. Denn den Aufwand der Absolut Zaehlerei, die 
vielen Optosensoren haste eben doch.

Es gibt eigentlich nur eine Begruendung, mit absoluten Sensoren zu 
arbeiten : Eine Referenzfahrt ist nicht moeglich. Vom Problem her.
Falls die nun aber meglich waere, sollte man relativ arbeiten.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest relativ messen, mit Referenzfahrt. Diesen absoluten Messwert 
kannst du dann im spannungssicher abspeichern (zB wenn der Schlitten 
angehalten hat).
Somit kommst du um die Referenzfahrt nach jedem EInschalten herum.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wuerd ich so nicht machen. Wenn man an einem mechanischen Setup 
etwas verstellen moechte schaltet man ab. Daher sollte man auch nicht 
annehmen, dass die Position nach dem Einschalten noch dieselbe ist. 
Ausser man kann mit Vollgas in die Begrenzung/Endschalter donnern.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hehehe. Erstaunlich wie sich eure Ideen mit meinen eigenen decken.

Das mit dem Abspeichern geht leider nicht. Da die Posi des Wagen sich 
auch offline ändern kann.

Das mit den Kombinieren der beiden Möglichkeiten also Absolut + Relativ 
hab ich auch ins Auge gefasst, da die CNY70s mit 7*7mm doch recht breit 
sind (ähnliche Typen nur einen Tuck dünner) und für 10Stk der vorhandene 
Platz nicht ausreicht. D.h. es läuft wahrscheinlich auf 5 Reflexkoppler 
+ Inkrementenscheibe am Zahnrad hinaus. So kommt dann ca. jede 10cm eine 
absolute Position.

Grüße

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Jens (Gast)

>hab ich auch ins Auge gefasst, da die CNY70s mit 7*7mm doch recht breit
>sind (ähnliche Typen nur einen Tuck dünner) und für 10Stk der vorhandene
>Platz nicht ausreicht.

Kauf die bei Pollin & Co einen billigen CCD, damit kannst du mühelos 
einen 10..12 Bit Code lesen, mit 10..12mm Breite.
Kann man auch aus ne alten Scanner ausschlachten. Zylinderlinse nicht 
vergessen.

>+ Inkrementenscheibe am Zahnrad hinaus. So kommt dann ca. jede 10cm eine
>absolute Position.

Ich würde versuchen, irgendwo eine Art Etikettendrucker zu finden, mit 
dem man den GANZEN Codestreifen auf einmal drucken kann. Dann sind auch 
1mm kein Problem. Allerdings muss man aufpassen, dass der Masstab stimmt 
und das Band nicht gedehnt wird.

MFG
Falk

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur mal so eine Idee:

Du spannst diagonal entlang der Schiene einen Faden oder Draht. Als 
Sensor nimmst du eine Art Gabellichtschranke aus flächiger Lichtquelle 
und CCD-Zeile. Dann erreichst du bei 1024 Zellen in der Zeile auf 3 
Meter eine Auflösung von ca 3 mm.

Man könnte das System auch mit einer Look-Up-Table ausstatten, quasi 
anlernen und noch genauer machen ...

Frank

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:

> ... da die CNY70s mit 7*7mm doch recht breit sind (ähnliche Typen nur
> einen Tuck dünner) und für 10Stk der vorhandene Platz nicht ausreicht.

Wenn der Platz in vertikaler Richtung das Hauptproblem darstellt: Es
gibt auch Absolutwertgeber mit einer einzelnen Spur, bei denen die
Detektoren entlang dieser Spur angeordnet sind. In Längsrichtung mat man
meist mehr Platz. Das Prinzip ist hier dargestellt (Beispiel ganz
unten):

  http://hess-art.de/graf/grafik_2/GEB_Gebertypen.html

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das Prinzip ist hier dargestellt (Beispiel ganz
>unten):

>  http://hess-art.de/graf/grafik_2/GEB_Gebertypen.html

Hm.. Clever..

Nur wie findet man die richtige Codierung der Scheibe?

Und die Dekodierung wird wohl ne LookUp-Tabelle werden...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank an alle für die Infos

@falk
>Kauf die bei Pollin & Co einen billigen CCD, damit kannst du
>mühelos einen 10..12 Bit Code lesen

Interessant. Hab mich grade ein bisschen eingelesen in das Thema CCD 
steige aber nicht ganz durch. Bei Pollin mal reingeschnuppert und die 
ICs kommen mir irgendwie überdimensioniert vor... (geht los ab 
1200dpi/Farbe)
Kommt dann vor solch einen IC die Linse und kann man den mit einem 
Atmega ansteuern?
Mein HP-3in1 ist letzte Woche abgeraucht... würde sich ja anbieten :D

Könntest du das bitte ein bisl mehr ausführen. Den ersten Eindruck nach 
ist das Auslesen nicht so simpel. Aber sonst sehr interessant.

@frank
dein System versteh ich leider nicht. Bin wohl zu dumm...

@yalu
Nette Sache. Hab auch schon gedacht einfach 3*3 CNY70 als Block 
aufzubauen also so: (als Draufsicht)
------------------------------------------------- <--Profil
________
          |\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <--Zahnstange
          |________
  Wagen   |__|__|__|...XXX0X.........
          |__|__|__|...XX00X.........
          |__|__|__|...XX00X.........
__________| ^Sensorreihen  ^Codespuren
--------------------------------------------------
Und daraus dann die absolute Posi zu bekommen... Bin nur nicht 
weitergekommen als zu diesem Gedankenspiel  :)

@Lipi
Jap. Irgendwo muss dann dafür die Position hinterlegt sein.

Fazit:
-Morgen erstmal ein paar billige Reflexkoppler holen. Und mal 
ausprobieren.
-Übermorgen, wenn mir falk Mut gemacht hat, werde ich mich mal mit CCD 
beschäftigen.

Danke nochmals.

Gn8

Autor: Stefan Schütte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

hast Du schon mal daran gedacht die Position mit einer optischen Maus
zu ermitteln? In einer optischen Maus sitzt eine Kamera, die die
Oberfläche abscannt. Bei Lasermäusen kannst Du locker auf 2000dpi kommen
und die Verfahrgeschwindigkeit dürfte auch nicht das Problem sein.
In optischen Mäusen sitzen Chips, die gut 7000 Aufnahmen/s machen.
Das wird mit einer CCD-Kamera schwerlich im bezahlbaren Rahmen möglich
sein. Hergestellt werden diese optischen Maussensoren von Agilent.
Vielleicht hilft's
Stefan

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das wird mit einer CCD-Kamera schwerlich im bezahlbaren Rahmen möglich
>sein.

Und der Schlitten bewegt sich mit einer ähnlichen Geschwindigkeit?
Eine optische Maus spuckt auch nur relative Bewegungen aus (heb sie mal 
an und setze sie an einer anderen Stelle ab: Der Mauszeiger bewegt sich 
nicht, obwohl sich die Maus bewegt hat...

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest auch zwei reihen mit je 5 CNY machen (5x7mm= 35mm) und dann 
die Reihen versetzen ( um 3,5mm) dann hast du auch 10 Sensoren und 
benötigst nur 38,5mm Platz in der Breite.

Die Spuren von deim Code druckst du dann halt nur 3,5 statt 7mm Breit 
und halt entsprechend jeden zweiten versetzt damit du immer schön dein 
Wert bekommst.

Die Sensoren haben einen relativ kleinen Punkt den sie erfassen. Könnte 
bei genauer Ausrichtung sogar mit 3 versetzten Reihen klappen.

Zum Graycode: Wenn du Binärcode verwendest und sich mehrere Werte 
gleichzeitig ändern hat das den Nachteil wenn sich die Werte (durch 
Toleranzen) das sich die Werte eben nicht exakt genau gleichzeitig 
ändern und du in dem Punkt wenn sich die Werte ändern Sprünge 
reinbekommst. Wenn sich immer nur ein Wert ändert hast du höchstens ein 
Sprung von einer Einheit.

lg

Autor: Stefan Schütte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
=>STK500-Besitzer

Ja, das stimmt. Soll das Fahrzeug im Gelände fahren oder wie gross
soll die Bodenfreiheit sein? Eine Lasermaus kann man 0,5mm anheben
und sie arbeitet immer noch. Das ist ein Problem, das jedes optische
System hat, neben der Verschmutzungsempfindlichkeit.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens (Gast)

>ICs kommen mir irgendwie überdimensioniert vor... (geht los ab
>1200dpi/Farbe)

Naja, bissel viel. Die gibt es aber auch in S/W und kleiner.
Quelle?

>Kommt dann vor solch einen IC die Linse und kann man den mit einem
>Atmega ansteuern?

Ja. Wobei man hier ein Zylinderlinse nimmt, also ein "halber" Zylinder.

>Könntest du das bitte ein bisl mehr ausführen. Den ersten Eindruck nach
>ist das Auslesen nicht so simpel. Aber sonst sehr interessant.

So ein CCD ist eine Streifensensor mit ??? Punkten. Den kann man 
auslesen, hat jemand hier auch schon mal als Artikel gemacht.

Digitales PC-Spektrometer

Vorteil ist eben die geringe Grösse und hohe Auflösung.

MfG
Falk

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt optische Linearencoder von Avago, für die man keine zusätzliche 
Optik benötigt. Allerdings sind diese normalerweise zur relativen 
Positionsermittlung, d.h. zum Streifenzählen.

http://www.avagotech.com/pages/en/motion_control_s...

Autor: M. Köhler (sylaina)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich wrote:
...
> Zum Graycode: Wenn du Binärcode verwendest und sich mehrere Werte
> gleichzeitig ändern hat das den Nachteil wenn sich die Werte (durch
> Toleranzen) das sich die Werte eben nicht exakt genau gleichzeitig
> ändern und du in dem Punkt wenn sich die Werte ändern Sprünge
> reinbekommst. Wenn sich immer nur ein Wert ändert hast du höchstens ein
> Sprung von einer Einheit.
>
> lg

Nicht nur höchstens sondern genau einen Sprung. Weiterer Vorteil: Du 
weißt sogar beim Graycode, welcher Wert sich ändern wird, du kannst 
hierbei also eine Vorhersage machen. Wenn sich dann was anderes ändert 
weißt du, dass ein Fehler vorliegt. Der Graycode hat hierbei vielerlei 
Vorteile.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann könnte auch einen Widerstandsdraht über die gesamte Länge spannen 
und über einen Schleifer die Spannung abnehmen und A/D wandeln...

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>=>STK500-Besitzer

>Ja, das stimmt. Soll das Fahrzeug im Gelände fahren oder wie gross
>soll die Bodenfreiheit sein? Eine Lasermaus kann man 0,5mm anheben
>und sie arbeitet immer noch. Das ist ein Problem, das jedes optische
>System hat, neben der Verschmutzungsempfindlichkeit.

Es ging mir dabei darum, dass eine Computermaus auch nur relativ 
arbeitet.
Ein absolut arbeitendes System steckt doch in (Laser- oder Ultraschall-) 
Entfernungsmessern. Sowas könnte man vielleicht auch verbauen. Dazu gab 
es hier auch schon einen Thread.

Autor: BinGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem altem Kassettenrecorder?


Mit Casi Signal aufzeichnen: Linken Kanal feste Frequenz, rechter 
Wobbelfrequenz 30Hz- 10Khz (oder diverse Marker wenn die Wellenlänge 
nicht hinkommt).

Die Kassette abnudeln, Band auf die Strecke kleben.

Den StereoTonkopf ausschlachten (oder einen anderen nehmen) und an den 
uP hängen.

Mit dem linken Kanal die relative Strecke messen, mit dem Phasenwinkel / 
Nulldurchgängen rechts/links ... Positionsmarken ermitteln.

Autor: Frank B. (frankman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Seilzugpoti, bzw. Seilzugwegaufnehmer.
2. www.posic.com

Autor: Josef Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn alle Stricke reissen, dann könntest Du einen MULTITURN-Drehgeber 
von Heidenhain an den Motor flanschen. Beim Auslesen der Absolutposition 
über die Endat-Schnittstelle könnte ich Die helfen. 
huber_josef@freenet.de

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.