Also Bilder und Arduino kannst du wieder vergessen.
Bei Arduino kann man fertige Biliotheken nutzen und kommt ohne großen
Aufwand schnell zu einem Ergebnis, aber eben nur wenn es fertigen
Quellcode für alles gibt und man das Zeug nur noch zusammenfügen muss.
So ein kleiner AVR Atmega328 mit seinen 2kbyte SRAM wird kein noch so
kleines Kamera-Bild in den Speicher laden können. Selbst einer der
größeren AVR Controller hat da keine vielen Möglichkeiten. Der Aufwand
wäre extrem groß, das ist so als wolle man mit einem Spielzeugbagger ein
Haus abreißen.
Wenn du kein Jahr für die Einarbeitung hast und auch irgend wann zu
einem Ziel kommen willst, dann hole dir so einen RaspBerryPi (oder auch
die Zero-Version davon könnte ausreichen), programmiere in C++ oder
Python, lass dir einfach ein Bild von der Kamera übergeben (gute
Beispiele im Netz und viel Support bei Fragen) und wende dort dann
bekannte Routinen an (Sobel-Filter um de Rand zu finden) und dann mit
der Rand-Information gerade Linien erkennen zu können und daraus dann
das Muster eines Lego-Bausteins erkennen zu können.
Du wirst trotz all dieser Rechenpower vielleicht nicht mal 1 Bild pro
Sekunde abarbeiten können!
(ein RaspBerryPi Zero braucht 1,1W wenn die Kamera aktiv ist und noch
mal zusätzliche 0,4W wenn der CPU zu 100% ausgelastet ist)
Ein Pi4 wäre da schon angebracht, Bildverarbeitung benötigt nicht wenige
Ressourcen und Rechenpower.
Mache es dir vor allem nicht so unglaublich schwer. Den Sobel-Filter
willst du auch nicht selbst programmieren, das gibt es fertig in den
OpelCV-Bibliotheken.
Um ein Objekt ordentlich bestimmen zu können brauchst du auch eine
möglichst gute Auflösung. Je besser das Bild, desto einfacher ist es
einen Kreis irgend wo zu erkennen.
Bei dem RaspBerryPi gibt es so ein rundes
Kamera-Linse-Fokus-Einstell-Dingens, damit kannst du den Fokus gut
einstellen (fix-fokus) und das Bild damit scharf stellen.
Ein paar Tipps:
- An deiner Stelle würde ich es aber erst ein mal an deinem Laptop
probieren bevor du dich in Arbeit stürzt die für dich unbekannt ist, wo
es unbekannte Probleme gibt.
- Es gibt OpenCV als gut nutzbaren Ansatzpunkt für die Bilderkennung.
- Jetzt solltest du erst mal eine grafische Oberfläche schaffen (mit C#)
um dir die Resultate der Bildverarbeitung anschauen zu können.
- Eine normale Webcam reicht erst mal völlig aus um das alles zu
probieren.