Ideen zum Bau eines Zeilensensors

Ich möchte eine Reihe von Objekten (Breite und Höhe) erkennen, wenn sie eine Art Liniensensor in einer Förderlinie passieren. Etwa so (Querschnitt):

Sensoridee

Ich bin mir nicht sicher, wo ich anfangen soll ...

  1. Welcher Sensortyp ist der richtige für dieses Szenario?
  2. Irgendwelche Gedanken darüber, wie man einen solchen Sensor in ein Arduino-Board integriert?
  3. Wenn Ihnen nichts einfällt, welchen anderen Ansatz würden Sie empfehlen?
Woraus bestehen die Objekte, die Sie wahrnehmen?
und was ist der minimale / maximale Abstand zwischen den Objekten und dem Sensor?
Welche Art von Auflösung, sowohl in der Höhe als auch in der Länge, müssen Sie erreichen? Können Sie die Bewegung des Förderers überwachen/messen?
Anmerkungen zur Zeichnung. Cleveres Diagramm für die Ausgabe: +1. Aber warum sind die vertikalen 6 cm dreimal kleiner als die horizontalen 6 cm?

Antworten (4)

Es sind unzählige Zeilenscan-Lösungen verfügbar, von Kameras mit Cameralink-Schnittstellen und mit Ethernet-Schnittstellen für 6.000 US-Dollar bis hin zu Sensoren von etwa 8 verschiedenen Herstellern.

Da Sie jedoch Arduino erwähnen, gehe ich davon aus, dass:

1) Dies ist ein einmaliges Projekt - es gibt keine Erwägung, etwas zu entwerfen

2) Sie möchten so wenig wie möglich ausgeben.

Typischerweise ist das beste (billigste) Ergebnis die Verwendung eines sogenannten CIS-Moduls (Contact Image Sensor), das die niedrigsten Kosten darstellt, die Sie erhalten können. Der beste Ort, um diese zu bekommen, ist, einen sehr günstigen Scanner zu kaufen und die Eingeweide herauszureißen und ihn wiederzuverwenden, er hätte dann eine USB-Schnittstelle zu Ihrem Arduino. Dies hätte die Lichter und alles, was Sie brauchen.

Das grundlegende Problem Ihrer Zeichnung ist, dass es keine Optik gibt. Sogar das CIS-Modul des Scanners hat einige Lenslets innerhalb des Arrays, aber sie bilden nur sehr nahe am Array selbst ab. Mit der Zeichnung, wie sie gezeigt wird, wirst du nur eine Unschärfe bekommen. Vielleicht würde es funktionieren, einen Scanner zu bekommen, der einige Linsen enthält. Einige der High-End-Modelle verwenden keine CIS-Module, sondern Linsen und CCDs.

Die andere Alternative besteht darin, einen kleineren Abschnitt des CIS-Arrays zu verwenden und ihn hinter ein SLR-Objektiv (35 mm - tonnenweise gebrauchte verfügbar) zu stellen. Die meisten maschinellen/industriellen Bildgebungslösungen verwenden aus Gründen der Verfügbarkeit tendenziell ähnliche Objektivtypen wie diejenigen, die für Spiegelreflexkameras verwendet werden. Wenn Sie eine Linsenlösung verwenden, müssen Sie einen viel höheren Abstand haben (Abstand der Linse zum Objekt).

Wie würde dies die Höhe erkennen?
Sie können quantifizieren, wie scharf etwas ist, indem Sie z. B. einen Laplace- oder Gauß-Filter (LoG) filtern

Wie wäre es mit einem IR-Zeilensensor ? Dadurch erhalten Sie eine analoge Spannung, die in den ADC auf dem Arduino-Board eingelesen werden kann. Wenn ich dein Diagramm richtig verstehe, sollte es reichen.

Sie könnten einen Infrarot-Abstandssensor wie dieses Modell von Sharp oder einen Ultraschall-Abstandssensor wie das Ping Board ausprobieren . Abhängig von Ihrem Budget können Sie viele hochauflösende Sensoren erhalten.

Es ist nicht erforderlich, viele von ihnen nebeneinander zu platzieren, um eine höhere Auflösung zu erzielen. Er kann den Sensor mit einem Motor und einigen Mechaniken aus einem alten Drucker bewegen lassen.

Wenn Sie versuchen, mit einem Ad-hoc zu gehen. Ich vermute, dass Sie bei einer Reichweite von 6 cm die Breite der Überlappung der UltraSonic- oder IR-Sensoren als Problem empfinden werden. Sie können ein billiges Laser-Maßband mit dem folgenden Add-On verwenden , um eine Verbindung zu Ihrem Arduino herzustellen. Abhängig von Ihren Kosten und Update-Anforderungen. Möglicherweise müssen Sie entweder mehrere Laser haben oder Sie könnten ein Servo (oder etwas) ansteuern, um den Spiegel zu scannen und die Messpunkte zu scannen. Möglicherweise möchten Sie einen weiteren langen flachen Spiegel über dem Bereichsbereich, um Tangentialfehler zu eliminieren (minimieren).