# Scanner



## DexXxtrin (20. November 2009)

Hallo zusammen

Ich möchte ein Projekt starten und habe dazu noch ein paar Fragen.
Es geht um folgendes:
Ein CCD-Sensor (128px x 1px) soll eine Oberfläche, welche durchgezogen wird "scannen".  Die Daten werden dann an eine uP geschickt und der vergleicht die Werte mit gespeicherten. Wenn die Oberfläche gleich ist, wird eine Funktion ausgelöst ansonste geschieht nichts.
Nun meine Fragen:
1.)	Was für ein uP wäre dafür gut geeignet?
2.)	Wenn der Gegenstand über den Sensor gezogen wird, ist die Geschwindigkeit nicht immer gleich, was bedeutet die Werte fallen nicht immer gleich aus. Wie kann ich nun vorgehen, dass dies bei dem Vergleich berücksichtigt wird? Gibt es das spezielle Alogrithmen?

Wenn etwas nicht klar ist einfach nachfragen 

Vielen Dank


----------



## hela (20. November 2009)

zu 1.:
Dafür wäre ein µP/µC gut geeignet, der den Anforderungen der Augabenstellung gewachsen ist.
Welche Anforderungen das nun sind, das weiß man eigentlich erst wenn alle Teilaufgaben gelöst sind - also nicht gleich als erstes.

zu 2.:
Da dein "Scanner" ein 128px x 1px großes Abbild macht, musst du einfach nur den Weg messen, den _"der Gegenstand über den Sensor gezogen wird"_, damit du nach jedem Pixel einen neuen Leseprozess auslösen kannst.


----------



## DexXxtrin (25. November 2009)

1.) Was verstehst du unter Teilaufgaben? (es müsste einer aus der Familie der PICs sein)

2.) Da hast du mich glaubs nicht richtig verstanden...
Mein Problem ist es, dass mit einer konstanten Abtastrate die Bilder eingelesen werden. Wenn jetzt also der Gegenstand schneller gezogen wird entstehen andere bilder, als wenn diese langsam rübergezogen wird. Meine Frage ist nun, wie ich so etwas abfangen kann? Und wie vergleicht man am besten Oberflächen, damit man diese wieder erkennt?


----------



## hela (25. November 2009)

1.) Ich habe keine Ahnung wie dein "CCD-Sensor" aussieht. Das könnte ein ausgelötetes Modul oder auch eine kommerzielle Zeilenkamera sein. Dementsprechend ergeben sich ganz unterschiedliche *Teilaufgaben* bis man eine Pixelzeile als Daten aus irgend einem Anschluß herausschieben kann.

2.) Das Problem ist mir schon bewußt: Wenn du diese Daten mit einem Oberflächenmuster vergleichen möchtest, dann brauchst du m.E. ein lückenloses Abbild der "_Oberfläche, welche durchgezogen wird_". Ansonsten wird man es wohl kaum mit dem Muster vergleichen können. Du musst also beim Scanvorgang sicherstellen, dass das zu scannende Objekt nicht schneller über den Zeilensensor bewegt wird als eine Bildzeile von deiner Technik ausgegeben werden kann. Andererseits muss bei langsamer Objektbewegung die Ausgabe einer neuen Datenzeile genau dann getriggert werden, wenn das zu scannende Objekt einen Weg von einem Pixel zurückgelegt hat. Deshalb ist m.E. eine Wegmessung notwendig. Bei einfachen Handscannern (ich hatte auch mal einen) wird die "Wegmessung" beispielsweise über eine Hartgummiwalze realisiert und wenn man zu schnell wurde, dann hatte man schwarze Streifen im Bild 



DexXxtrin hat gesagt.:


> Und wie vergleicht man am besten Oberflächen, damit man diese wieder erkennt?


Das ist ein Problem der Objekterkennung, davon habe ich leider herzlich wenig Ahnung und kann dir deshalb darauf auch nicht antworten.
_________________________
Edit: Oder ist dein Vergleichsmuster auch nur 128x1px groß?


----------

