PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Farbwechsel erkennen



Snakedog
04.08.2013, 17:15
Hi ! ich versuche ein System zu entwickeln das mittels einer Kamera Farbwechsel an einem bestimmten punkt ( ca 0,5cm² Fläche) erkennt und auswertet. Ich möchte also ausgewertet haben wie oft sich die Farbe an dieser bestimmten stelle gewechselt hat. Die wechsel finden sehr schnell statt,also die farbe ist immer nur kurz sichtbar ( ca. 0,05 bis 0,1s). Ist sowas möglich ?

redround
04.08.2013, 17:44
möglich ist grundsätzlich erstmal alles :-)

Wie viele Farben willst Du denn erkennen? Bei wenigen aber dafür sehr unterschiedlichen Farben geht das theoretisch sogar ohne Kamera. Wenn Du aber schon eine Kamera dran hast, must halt ein Standbild aufnehmen und den RGB-Wert ausgewählter Pixel ermitteln. Je mehr Du schaffst um so besser. Davon bildest Du dann den Mittelwert und hast mit ziemlicher Sicherheit Deine Farbe erkannt (+/- ein paar RGB Werte). Wichtig dabei ist, Fremdlichtquellen und andere (optisch) Störeinflüsse möglichst zu vermeiden.

Um es in der erforderlichen Zeit zu schaffen kannst Du halt ggf. wenige Pixel nehmen oder mehr Rechenpower rein packen.

Snakedog
04.08.2013, 18:08
Ich möchte, dass ein mechanischer schalter betätigt wird sobald an einer definierten stelle ( ca 0,5cm² Fläche) ein farbwechsel stattfindet( zwischen 2 sehr unterschiedlichen farben), der wie gesagt nur seeehr kurz ist. Das ganze in Echtzeit d.h. zwischen farbwechsel und mechanischer schalter in neuer position sollen nur µm liegen. Der Schalter braucht nur eine geringe auslenkung

redround
04.08.2013, 18:16
und wo liegt nun genau Dein Problem? das Vorgehen habe ich oben ja schon beschrieben. In einem anderen Forum hast Du ja auch schon den Tipp mit dem Farb-Sensor bekommen. So lange wir aber nicht wissen, was als Hardware zur Verfügung steht, können wir Dir aber auch keine weiterführenden Tipps geben. Es macht halt einen Unterschied, ob die Kamera z. B. an einem Windows-Rechner hängt oder ob Du quasi auf der gründen Wiese eine komplette Steuerung auf Mikrocontroller-Basis entwickeln willst.

Snakedog
04.08.2013, 18:33
Mein Problem ist, dass ich keine Ahnung davon habe wie das zu realisieren ist, ich weiß nicht wie Sensoren arbeiten bzw. wie ich diesen Sensor mit einem mechanischen schalter etc verbinde. Gibt es dazu Literatur die du mir empfehlen kannst ?
Das ganze könnte ruhig an einem windows rechner laufen. Ich gehe davon aus das es dort am schnellsten läuft ? Eine Steuerung auf Mikrocontroller-Basis wäre grundsätzlich aber auch möglich, sofern dies vorteile gegenüber einem Windows Rechner hätte
Ob Kamera oder Sensor ist mir im Grunde egal, ich hab mir das einfach mal mit einer Kamera vorgestellt in meiner Unerfahrenheit.

redround
04.08.2013, 18:45
dann musst Du erstmal die Rahmenbedingungen festlegen. Dass die Farbe immer nur sehr kurz zu sehen ist haben wir schon mal. Auch die Größe der zu überwachenden Fläche ist klar. Dann wäre die nächste Frage: wie viele unterschiedliche Farben gibt es und wie stark unterscheiden sie sich? Auch hier ist es wieder ein Unterschied, ob Du 10 verschiedene Grün-Töne unterscheiden musst oder nur genau einen Rot- und einen Blau-Ton. Wichtig ist dann auch wie homogen ist die Farbe auf dem zu erkennenden Objekt verteilt und wie exakt wird die Farbe dort reproduziert? Je gleichmäßiger die Farbverteilung ist und je exakter sie bei jedem zu erkennenden Objekt wiederkehrt um so einfach ist die Erkennung ... je ungleichmäßiger desto schwieriger.

Dann sind so Fragen wichtig wie: ist sichergestellt, dass immer nur eine einzige Farbe im Erkennungsfenster ist oder können (aus Versehen) auch mal zwei unterschiedliche Farben in den "Sichtbereich" des Sensors kommen?

Wie "flexibel" muss das System sein? Können später andere Farben hinzukommen oder ist die Farbpalette abschließend fixiert?

Erst wenn man diese (und einige andere Parameter, die mir im Moment noch nicht eingefallen sind ;-) ) kennt, kann man entscheiden, wie man das umsetzen könnte.

Snakedog
04.08.2013, 19:03
Danke für deine Geduld ;)

Es gibt nur 2 unterschiedliche Farben, die sich stark voneinander unterscheiden. Grün und Grau
Die Farbe ist gleichmäßg auf dem Objekt verteilt.
Die Grüne farbe bewegt sich durch den Bereich des Farbsensors durch, d.h. zu beginn und ende des durchgangs sieht man beide farben.
Das System muss nicht flexibel sein, die farben werden sich auf absehbare Zeit nicht ändern

redround
04.08.2013, 19:06
ich lese ja auf dem anderen Forum auch mit ;-) ... deshalb würde ich einen ganz anderen Weg vorschlagen: mit einer Lichtschranke einfach das Fallen einer Kugel erkennen und dann die Klappe öffnen. Da kannst auf den ganzen Farb-Gedöns verzichten ... es sei denn, Du willst die Kugeln auch noch sortieren

Für das Öffnen der Klappe kannst Du einfach einen Hub-Magneten verwenden.

Wenn Du das Rohr selbst verändern darfst, wäre auch ein leichtgängier Taster denkbar, den man direkt am Rohr montiert und der von der Kugel dann betätigt wird.

Egal ob Lichtschranke oder Taster, könnte man das mit einem einfachen Microcontroller realisieren. Das hätte den Vorteil, dass Du später einfach mit Hilfe der Programmierung die Zeiten anpassen kannst (wann wird die Klappe geöffnen, wie lange sie offen stehen soll und ab wann es bei einer nachfolgenden Kugel Sinn macht, sie gleich geöffnet zu lassen).

Snakedog
04.08.2013, 19:20
alles klar, das hört sich wirklich viel einfacher an :)
wie funktioniert dann die verbindung zwischen lichtschranke und dem hubmagneten ?
das wird warscheinlich nicht so leicht sein wenn man keine ahnung von der materie hat... falls du mir dazu ein buch o.ä. empfehlen kannst wäre das super

redround
04.08.2013, 19:42
dafür gibt's verschiedene Möglichkeiten. Einen Hubmagneten kann man elektronisch zum Beispiel über einen Transistor steuern. Das Problem ist dann nur noch, dass Du die Klappe ja ne Weile geöffnet haben musst, nachdem die Kugel schon durch ist. Also brauchst Du noch was für die Verzögerung. Das kann man entweder mit einem Widerstand und einem Kondensator machen oder halt eben gleich alles per Mikrocontroller. Das wäre in meinen Augen die flexiblere Methode. Auf dem anderen Forum ;-) gibt es links oben einen Link "AVR" und dort ein "AVR Tutorial". Das ist für den Einstieg in die Mikrocontroller-Entwicklung eigentlich ganz ok.

Ggf. kann es aber auch einfacher sein, auf fertige Module zurück zu greifen. Dafür gibt es verschiedene Lösungen. Eine, die mir für den von Dir benötigten Ansatz ganz gut gefällt ist zum Beispiel der sog. Digispark. Das ist eine fertige kleine Platine mit Mikrocontroller drauf. Programmiert wird das Ding in einer recht einfachen Sprache direkt per USB ... Du brauchst also nicht wie bei anderen Controllern oft eine spezielle Hardware für die Programmierung. Zusätzlich gibt es dazu eine Relais-Platine, die einfach auf die Basisplatine gesteckt wird. Damit kannst Du dann Deinen Hubmagneten steuern. Bei der Lichtschranke kommt es darauf an, welche Du nimmst. In aller Regel sind dafür aber auch nicht viel mehr als ein oder zwei Widerstände notwendig, um sie mit dem Digispark zu verbinden. Beim Digispark gibt es auch eine Zusatzplatine für Infrarot-Empfänger und ggf. -Sender. Damit könntest Du dann ganz einfach die Lichtschranke bauen und würdest für alles mehr oder weniger vorgefertigte Komponenten verwenden können. Alles in allem wären das Hardware-Kosten in Höhe von rund 25-30 Euro plus 10 Euro für den Hubmagnet. Dazu brauchst Du dann noch ein Netzteil für die Stromversorgung.

Wenn Du das ganze "zu Fuß" - also Sprich mit Einzelteilen auf einer Lochstreifenplatine - zusammen lötest, wirds ggf. etwas billiger aber auch (arbeits-)aufwändiger und lernintensiver ;-)

Frank E.
10.08.2013, 19:18
FÜr jemanden, der keine Ahnung hat ist mein Vorschlag evtl. etwas "oversized", aber ich würde das so machen: Lichtschranke, Arduino Nano, Mini-Digitalservo plus zwei Potis (deren Stellung über den ADC ausgewertet wird), um Verzögerungs- und Öffnungszeit einzustellen ...