Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino Duo mit Pixy-Cam und 7" Touchmonitor
Hallo
Ich bin kompletter Anfänger und bin für ein Projekt in der "Findungsfase".
Für mein Projekt möchte ich gerne das Bild von der Pixy-Cam auf einen TFT Monitor übertragen. Ich habe dafür folgenden Touch-Monitor (https://eckstein-shop.de/70-MIT-Touchscreen-MD070SD-MCU-Bus-TFT-LCD-Display-Kompatibel-Arduino) gefunden. Die Größe des sichtbaren Kamerabereiches könnte bei 4x4 cm liegen. KEINE hohe Auflösung. 8bit Farben reichen vollkommen. Aktualisierung des Bildes jedes Sekunde reicht vollkommen. Neben der Kamera und dem TFT werden nach 2 Motoren inkl. Encoder sowie 2 Ausgänge geschaltet.
Mir wurde gesagt, dass der Arduino Duo für diese Aufgabe zu langsam ist. Hat jemand da Erfahrung?
Danke Martin
Hallo
Ich bin kompletter Anfänger und bin für ein Projekt in der "Findungsfase".
Für mein Projekt möchte ich gerne das Bild von der Pixy-Cam auf einen TFT Monitor übertragen. Ich habe dafür folgenden Touch-Monitor (https://eckstein-shop.de/70-MIT-Touchscreen-MD070SD-MCU-Bus-TFT-LCD-Display-Kompatibel-Arduino) gefunden. Die Größe des sichtbaren Kamerabereiches könnte bei 4x4 cm liegen. KEINE hohe Auflösung. 8bit Farben reichen vollkommen. Aktualisierung des Bildes jedes Sekunde reicht vollkommen. Neben der Kamera und dem TFT werden nach 2 Motoren inkl. Encoder sowie 2 Ausgänge geschaltet.
Mir wurde gesagt, dass der Arduino Duo für diese Aufgabe zu langsam ist. Hat jemand da Erfahrung?
Danke Martin
das geht sicher nicht - zumindest nach meiner Erfahrung.
Die Pixy gibt über SPI, I2C oder UART im Arduino-Betrieb nur einen erkannten BLOB nach dem anderen aus, samt Farbe, Position und Größe, das sind keine Bilder- oder Video-Frames:
bezogen auf eine Bildgröße von 320 x 200:
Signature (2 Bytes; Werte 1-7)
X-Position (2 Bytes; Werte 0-319)
Y-Position (2 Bytes; Werte 0-199)
Width (2 Bytes; Werte 1-320)
Height (2 Bytes; Werte 1-200)
Du kannst höchstens die erkannten Blobs nach ihren mitgelieferten Daten neu zusammensetzen und dann per TFT-Grafik-Zeichenfunktion wieder fürs TFT neu zusammenbauen, dann siehst du z.B. eine Ansammlung verschiedener farbiger Kreise, Ellipsen oder Vierecke auf dem TFT, je nach dem, wie du es darstellen willst.
Du siehst aber nie das Bild so, wie du es im Windows-Betrieb im PixyMon siehst, wo du die Farberkennung festlegen kannst. Wenn du das willst, brauchst du z.B. einen Raspberry Pi mit Linux und openCV Bilderkennungs-Software: der Raspi hat dafür 10000 mal so viel Speicher, [edit:] 10x so schnellen cpu Takt und 4 cpu Kerne.
ich weis du wolltest es nur überspitzt darstellen
10000 mal so viel Speicher, 1000x so schnellen cpu
mit 10000mal mehr Speicher kommst du zwar schon hin (10922.67) aber Linux samt Kernel braucht schon seinen Anteil
und einen 84GHz Quadcore möchte ich erst einmal sehen :P
er ist nur rund 14.3 mal schneller im Takt (ausgehend vom PRI3 @1200Mhz) hat aber spezielle Instruktionen an Board was eine RPi effektiver macht als einen "gewöhnlichen" Embedded Prozessor
wenn man als Rechengrundlage die 320x200 Pixel * 8bit nimmt kann der Due schon wegen des Taktes und der Seriellen Schnittstelle nur 1 Frame alle 6.1mS übertragen, außerdem müsstest du das Bild dann noch wieder an das Display übertragen, also * 2 plus Zwischenspeichern im RAM der zu klein dafür ist (500kB pro Bild VS 96kB RAM im Due) was ebenfalls nochmal so 4 Ordnungen Zeit kostet wenn das Format passt
HaWe hat schon recht, du erwartest ein wenig viel vom Due :(
stimmt, war Unsinn, es sind ja 84MHz beim Due statt rund 800-900 MHz beim Raspi
PS,
aber das eigentliche Problem ist, dass die Pixy überhaupt keine Frames an den Arduino liefert, sondern eben nur Blob-Daten.
Auch wenn man sie an den Raspi per USB anschließt, kann man mit der Python-Software nur Blob Daten erhalten, keine Bilder/Frames.
Hallo an alle.
Danke für die schnelle Rückinfo. Ich hätte gerne den Arduino (wegen der Schnittstellen für Motoren usw.) gerne als Lösung eingesetzt. Am liebsten als Standalone Lösung. Grundsätzlich benötige ich keinen externen TFT sondern könnte es auch mit einem PC und Piximon lösen. Eigentlich sollten die Mitarbeiter an der Maschine nur das Programm ablaufen lassen.
Ich versuche mal mein Projekt zu beschreiben. Ich hoffe wir finden eine Standalone-Lösung mit dem Arduino. Es geht NICHT um die mechanische Umsetzung. Diese ist soweit geklärt. Es geht rein um die Umsetzung der Software mit Elektronik.
Wir fertigen Designfolien für Folientastaturen. Diese müssen zur Weiterverarbeitung gelocht werden. Z.B. Könnten wir einen 6mm runden vollflächigen Kreis drucken in dem später ein 3mm Loch gestanzt wird. Probleme sehe ich, wenn der Kreis in unterschiedlichen Farben gedruckt wird. Zur Erklärung. Jede Folie einer Art hat die gleiche Farbe. Aber Folie A hat die Kreise in schwarz und Folie B hat die Kreise in rot. Denkbar sind natürlich auch alle anderen Farben. Die Kamera sowie das Lochungswerkzeug befinden sich auf einer beweglichen Achse. Der Abstand zwischen beiden muss vermessen und gespeichert werden. Der Ablauf ist wie folgt. Die Folie mit dem Kreis wird in den Sichtbereich der Kamera geschoben. nach der Erfassung des Kreises wird die Folie fixiert (geklemmt), der Mittelpunkt wird erfasst. Die Achse mit Kamera und Lochung wird um den gespeicherten Wert verfahren, das Loch wird gestanzt, die Achse fährt zurück. Dann kann Kreis und Loch geprüft werden. d.H. beide Kreise haben den selben Mittelpunkt und die Folie wird wieder freigegeben. Nun fängt es wieder von vorne an.
Wie löst man das Problem mit den unterschiedlichen Farben? Ich könnte mir 2 Tasten zum blättern vorstellen die einfach unterschiedliche Filter setzt und die gefundenen Kreise anzeigt. Ist so etwas machbar oder befinde ich mich auf dem Holzweg?
Sorry wenn ich etwas dümmlich frage. Ich habe keinen Arduino und auch keine Ahnung.
Danke für eure Hilfe. Martin
hallo,
du musst alle Farben, die erkannt werden sollen, erst per PixyMon manuell anlernen und speichern.
Wenn die PixyCam dann am Arduino läuft, erkennt sie die angelernten Farben per Farbcode (Signature).
Programmieren musst du das alles aber selber, da gibt es keine fertigen Lösungen - es sei denn, es übernimmt jemand für dich, wahrscheinlich am ehesten gegen Bezahlung, was auch sicher etwas aufwändiger wird, weil es professionellen Ansprüchen genügen muss.
Wenn du aber schon einen halbwegs fertigen Code hast, der nur noch ein paar Bugs hat, kann man dir indes sicher auch bei den Feinheiten hier im Forum helfen. 8)
Hallo
Unter http://5volt-junkie.net/pixy-arduino/ ist eine Beschreibung der übergabewerte. Damit sollte es möglich sein 2 Kreise auf dem Monitor darzustellen.
Danke Martin
Hallo
Unter http://5volt-junkie.net/pixy-arduino/ ist eine Beschreibung der übergabewerte. Damit sollte es möglich sein 2 Kreise auf dem Monitor darzustellen.
Danke Martin
ja, das sind die Basisfunktionen, die habe ich ja bereits ganz oben beschrieben.
PS:
ich habe einmal interessehalber kurz die Detektionsperfomance einer PixyCam getestet, das Ergebnis war, was Sensitivität und Selektivität angeht, aber äußerst enttäuschend. Auch schwanken die Ortskoordinaten eines detektierten Blobs so stark, dass ich momentan bezweifle, dass man mit diesen Daten exakte Löcher bohren kann, zumindest unter nicht super-optimalen Beleuchtungs- und Umgebungsverhältnissen:
http://www.mindstormsforum.de/viewtopic.php?f=78&t=9110
Hallo
Sorry. Hatte ich falsch verstanden.
Martin
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.