Also eine neue Skizze habe ich jetzt doch nicht mehr gemacht, denn auf Wikipedia habe ich einen guten Artikel (mit Skizze) gefunden: Lasertriangulation
Dort wird zwar alles nur relativ oberflächlich beschrieben, und auch die Skizze zeigt keine (für uns ggf. relevanten) Details, aber die brauchen wir eh erst im späteren Verlauf.
Je nach Verfahren ist die Auswertung mit einem µC durchaus möglich...Für all die Anwendungen mit Bildauswertung ist aber immer ein PC erforderlich, oder?
Oder gibt es auch Möglichkeiten, die es einem Controller ermöglichen, die Daten zu nutzen?
Bei der von uns zur Zeit favorisierten Lasertriangulation z.B. geht das, da die Auswertung recht simpel ist. Voraussetzung ist allerdings ein Kameramodul, daß sich vernünftig an einen µC anschließen lässt (digitale Schnittstelle, die unkomprimierte Daten liefert ... kein USB!).
Mal ein Beispiel mit moduliertem Laser:
(Annahme: die Kamera liefert das aktuell aufgenommene Bild zeilenweise Pixel für Pixel)
1. Laser abschalten
2. Nächstes Bild in einem Puffer als Dunkelbild ablegen
3. Laser einschalten
4. Vom aktuellen Kamerapixel das entsprechende Pixel des Dunkelbilds subrahieren
5. Wenn der resultierende Wert größer ist, als das bisherige Maximum der aktuellen Zeile: als neues Maximum übernehmen (es wird also eine Variable für den aktuellen Maximalwert und eine für die zugehörige X-Position benötigt)
6. Am Ende der Zeile: Maximalwert mit Schwelle vergleichen (groß genug? dann weiter)
7. Abstandswert aus Lookup-Tabelle ablesen (X-Position des Maximums als Index für LUT)
8. Maximalwert auf 0 setzen und weiter mit der nächsten Zeile (4.)
Kurz gesagt: Außer einer Subtraktion und einem Vergleich pro Pixel, hat der µC nicht wirklich viel zu tun ... er muss nur schnell genug sein (ein Pixel muss ausgewertet sein bevor das nächste kommt).
Für einen ATmega könnte das evtl. knapp werden, aber ein ARM Cortex M3 oder vergleichbarer µC dürfte bei halbwegs vernünftigen Auflösungen und Frameraten genug Leistung bieten.
Aternativ könnte die Verarbeitung aber auch in einem CPLD oder FPGA erfolgen, da die durchzuführenden Operationen recht simpel sind. Der könnte dann direkt die fertigen Abstandswerte ausspucken, was die Datenrate auf µC Seite erheblich reduziert.
Lesezeichen