mikrocontroller.net

Forum: FPGA, VHDL & Co. Algorithmus für Postionserkennung.


Autor: Robert T. (robert0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gibt es einen bekannten Algorithmus, welcher aus 2-3 Sensoren. Die 
Position auf z.B. einer Schiene erkennen kann? Die Schiene wird wohl 
Stanzlöcher haben und diese werden dann ausgelesen. Ich versuche jetzt 
gerade ein Algorithmus zu implementieren welcher aus 2-3 Drehgebern 
innerhalb weniger Schritte nach links oder rechts die aktuelle Position 
weiss. Habt ihr da einen Tip für mich?

Autor: Tom Ekman (tkon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

vielleicht hilft dir folgendes weiter:
http://de.wikipedia.org/wiki/Gray-Code#Anwendungen

Wie lange ist den deine Schiene?

Autor: Robert T. (robert0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke mal das die Schiene so 30 cm lang sein wird. Ich hatte gedacht 
ich mache darauf ein Schlitzraster für 2 Sensoren (Lichtschranke) und 
daraus wird dann die Laufrichtung und Zähler generiert. Jetzt sollen 
noch 1 oder 2 zusätzliche Schlitzraster hinzukommen, aus denen man (über 
einen Code) die aktuelle Position angeben kann.

Wäre das machbar, wenn ich auf der gesamten Länge einen Graycode über 3 
Schlitzreihen zu implementieren und diese dann auszulesen? Das muss ich 
mir mal aufzeichnen. Danke für die Anregungen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wäre das machbar, wenn ich auf der gesamten Länge einen Graycode über
> 3 Schlitzreihen zu implementieren und diese dann auszulesen?
Du willst die Position absolut erfassen?
Welche Auflösung brauchst du? Eher 1 cm oder 1 mm?

> einen Graycode über 3 Schlitzreihen ...
Auch ein Gray-Code mit 3 Bits hat nur 8 Zustände  :-/

Autor: Robert T. (robert0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eher 1mm Auflösung, und ja ich will die absolute Position erfassen (also 
wo sich die Schiene(Schlitten) nach dem anschalten und kurzer Bewegung 
befinden). Bei den 3 Schlitzreihen habe ich eher an eine Codierung 
gedacht. 1 Schlitzreihe generiert über 2 Sensoren den Graycode für 
Rechts-Links und Zähler. Und die anderen beiden Schlitzreihen beinhalten 
dann eine Codierung. Da muss ich jetzt aber noch dran tüffteln. Ich 
überlege ob ich eine Art Bitmuster erzeugen soll, woran man dann nach 
nach ein paar Schritten die Position erkennt. Eventuell könnte ich drei 
4-Bit-Graycodes dafür benutzen. Da fällt mir aber noch keine passende 
Codierung ein. Für Anregungen bin ich jederzeit Dankbar.

Autor: Klugscheisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>nach dem anschalten und kurzer Bewegung befinden

Bei entsprechende Wahl des Kodes braucht es keine Bewegung.

Allerdings ist es richtig, das man wiederrum, wenn man eine Bewegung 
voraussetzt, einen Code erfinden kann, der einem die Position gibt. Wie 
lang darf denn die Bewegung sein? Bei 30cm und 1mm Auflösung (also 300 
Positionen) entsprechend 9 Bit. Also neun Millimeter Weg bei einem 
Sensor, 5 bei zweien und so weiter.

Mir scheint Deine Verwendung des Begriffes Schlitzreihe 
erklärungsbedürftig.

Um etwa nur die Bewegungsrichtung zu erkennen braucht man zwei Sensoren 
und zwei Strichreihen auf einer Schiene. Damit wäre auch eine relative 
Position erkennbar. Da passt irgendwie nicht 2 Sensoren mit einer 
Schlitzreihe zusammen.

Der Name des Codes fällt mir gerade nicht ein. War so eine Methode eine 
Folge von Zahlen aus einem Menge so anzuordnen, das keine Wiederholungen 
auftreten. War hier auch mal Thema.

Autor: Klugscheisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde die Bezeichnung von dem Code gerade nicht.

Es ging dabei darum, aus sagen wir mal, den Zahlen 0 bis 9, eine Sequenz 
zu erzeugen, in der alle n-stelligen Kombinationen, aber ohne 
Wiederholung vorkommen. Wie hiess denn das nochmael? Weiss das jemand?

Autor: Klugscheisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aah. Jetzt habe ichs: "De Bruijn Sequenzen"

Autor: Robert T. (robert0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich eine Schlitzreihe habe kann ich mit 2 Sensoren die 
Richtung auslesen.

##  ##  ##  ##  ##  ##  ##  ##  ##  ##
1 2

1 und 2 sind die Sensoren und # ist jeweils ein Auslesepunkt. Durch 
diese Anordnung (versetzt) wird jetzt ein Graycode erzeugt. 
"Schlitzreihe" soll halt einfach ein Metallstreifen mit durchgestanzten 
Schlitzen sein oder eine ähnliche Vorrichtung.

De Bruijn Sequenzen werde ich mir jetzt erstmal anschauen. Vielen Dank.

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.