Test: Pixy Cam (cmuCam5) an Arduino

Atmel, PIC, VEX, Fischertechnik

Moderator: Moderatoren

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5232
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Test: Pixy Cam (cmuCam5) an Arduino

Beitragvon HaWe » 9. Feb 2018 16:33

Test: Pixy Cam (cmuCam5) an Arduino:

(Die Original-Websites sind IMO extrem unübersichtlich strukturiert und quer-verlinkt.
Hier die entsprechenden Schritte in einer mehr oder weniger geradlinigen Reihenfolge:)

Einrichtung, Installation:

Start:
Übersicht: http://cmucam.org/projects/cmucam5
Wiki Startseite: http://cmucam.org/projects/cmucam5/wiki/Hooking_up_Pixy_to_a_Microcontroller_(like_an_Arduino)

Treiber- und Lib-Download & Installation
Website:http://cmucam.org/projects/cmucam5/wiki/Latest_release
Pixy noch nicht anschließen.
Download PixyMon version (Installer) : http://cmucam.org/attachments/download/1246/pixymon_windows-2.0.9.exe
Docs: http://cmucam.org/projects/cmucam5/wiki/Installing_PixyMon_on_Windows_Vista_7_or_8
Start Installer.
Nach Installation: Pixy per USB an Computer anschließen

PixyMon starten:
lokales Startmenü->Programme->PixyMon
Versionen unter Help->About:
PixyMon version 2.0.9
Pixy firmware version 2.0.19 general build (queried)
Falls neue FW benötigt:
Pixy firmware 2.0.19 : http://cmucam.org/attachments/download/1317/pixy_firmware-2.0.19-general.hex
Docs: Pixy firmware installation docs: http://cmucam.org/projects/cmucam5/wiki/Uploading_New_Firmware

farbiges Objekt anlernen:
http://cmucam.org/projects/cmucam5/wiki/Teach_Pixy_an_Object_2
Wähle ein farbiges Objekt zum Farben-Anlernen.
(Nach Anschließen warten, bis vordere LED aus ist.)
Button oben an der Pixy gedrückt halten
Nach ~1sec leuchtet die vordere LED in verschiedenen Farben - wenn sie rot leuchtet, dann Button loslassen.

Das farbige Objekt ca. 15-25 cm zentral vor die Linse halten. Erkennung im PixyMon kontrollieren. Wenn Region erkannt, erneut kurzer Button-Klick.

Anm:
Im "Raw Mode" (Fleisch-Symbol) oder "Cooked mode" (Koch-Symbol) werden Farben trainiert (am besten: Action->set Signature 1..7 mit Zeichenwerkzeug zum Markieren der exakten Farbbereiche)
Helligkeit oder Farben können eingegrenzt oder erweitert werden über Einstellungen (File->Configure oder Zahnrad) -> Schieberegler
Farbcodes speichern/laden unter File->save/load Pixy parameters

Nur über mode "default program" (Haus-Symbol) werden die Daten an Arduino gesendet, sonst nicht!
Man kann im laufenden Betrieb beliebig zwischen den modes umschalten!


Besonderheiten zu "color codes" (Farb-Gruppen):
http://cmucam.org/projects/cmucam5/wiki/Using_Color_Codes
Training im "Raw Mode" (Fleisch-Symbol)!


Pixy mit Arduino verbinden:
wieder hier: http://cmucam.org/projects/cmucam5/wiki/Hooking_up_Pixy_to_a_Microcontroller_(like_an_Arduino)
Standard-Methode ist Anschluss des Steckers am 6-poligen Arduino-SPI-Header.


Arduino libraries and examples

Download Arduino libraries+examples: http://cmucam.org/attachments/download/1157/arduino_pixy-0.1.7.zip
docs: http://cmucam.org/projects/cmucam5/wiki/Hooking_up_Pixy_to_a_Microcontroller_(like_an_Arduino)
(Anm.: auf dieser Seite finden sich auch die links zu lego-, Raspi- und Python-Treiber/Libs)

Lib installieren wie bei Arduino üblich.

Arduino Sketch Programm laden

Example code auswählen (hello_world.ino ist Standard für SPI).
Pixy in "default program mode" umschalten.

Upload + Serial Monitor öffnen. Jetzt werden die erkannten Farb-Blöcke nacheinander nach Farb-Signatur ausgegeben.

Code: Alles auswählen

Detected (Anzahl ges.):
block 0: sig: 1(-7) x: ...  y: ... width: ...height: ...
block 1: sig: 1(-7) x: ...  y: ... width: ...height: ...
block 2: sig: 1(-7) x: ...  y: ... width: ...height: ...
...



Weitere Interface-/Anschluss-Möglichkeiten (UART, I2C):
http://cmucam.org/projects/cmucam5/wiki/Porting_Guide

Interface-Header: 10-polig - die letzten 4 Pins sind per Standardkabel nicht verbunden
http://i74.photobucket.com/albums/i241/ ... c8d289.jpg
Anschlussstecker an Arduino-SPI Header nur 6-polig
SPI und UART lassen sich mit dem mitgelieferten 6-poligen Flachbandkabel verwenden (SPI allerdings auch nur eingeschränkt),
für I2C benötigt man ein neues, spezielles, 10-poliges Kabel
(nicht im Lieferumfang, keine Bezugsquelle angegeben! :no: )


Beurteilung:

Unsinnig und kritisch:
- die Pixy wird per i2c als Slave betrieben, trotzdem hat sie eingebaute Pullups auf +5V:
Pullups aber hat üblicherweise nur der i2c Master, nicht irgendein Slave (wichtig bei 3.3V MCU sowie ohne oder mit eingebauten, insb. hochohmigen Master-MCU-Pullups)!
- SPI läuft ohne SS-Pin, daher Konflikte und Störungen mit weiteren SPI-Geräten (TFT, SD).
- Kein Beispielcode verfügbar, wie man Pixy mit SPI und SS-Pin verwendet, um weitere SPI Geräte zusätzlich anschließen zu können!

Beurteilung der Detektions-Leistung:
- Farbenerkennung nur in der Nähe in farbneutraler Umgebung, ansonsten extreme Störung durch "ähnliche" Hintergrund- oder Umgebungsfarben
(Beispiel: orange, pink oder magenta gegenüber rot, violett gegen blau, cyan gegen grün, beige oder hautfarben gegen gelb oder orange)
- Farben wie die Lego-Standard-Farben blau + grün werden extrem schlecht erkannt, wenn die Beleuchtung nicht absolut optimal ist (keine Spiegelungen und indirektes, sehr helles Licht von allen Seiten)
- Farbobjekte in Entfernung von über 2m werden ebenfalls sehr schlecht und unzuverlässig erkannt, ganz besonders gilt das für Color Code-Erkennung
- sehr schlecht detektierte+selektierte Color Code Labels, extrem verrauscht: Farbcode Labels wie 1-2-3 werden häufig als 1-2 oder 2-3 verstümmelt, verschwinden komplett, oder erscheinen auch als 1-2-3-1 Artefakte, daher können sie im Programm dann überhaupt nicht zugeordnet werden (im Cooked Mode scheinbar OK, im Default Programm per Arduino dann aber völlig fehlerhaft)
- sehr schlechte Trennung nebeneinander stehender Color Code Labels, oft fälschlich als nur 1 großer Block fehlinterpretiert statt 2er getrennter
- keine Möglichkeit, die "Farben" schwarz und/oder weiß anzutrainieren, daher keine Chance für Rubik's Cube oder Verfolgung schwarzer Linien
- keine Formenerkennung (Rechtecke vs. Kreise, Dreiecke, Pfeile etc. oder sogar Gesichter)
- völlig ungeeignet, um Altagsgegenstände in einer normalen Wohn-Umgebung eindeutig zu detektieren (Cocacola-,Fanta-, Bier- oder Wein-Flaschen, Tassen, Gläser, Stuhl- oder Tischbeine, und z.B. ein diagonal liegender Buntstift erscheint nicht als schmales Rechteck sondern als großes Quadrat, genau wie ein Buch, ein Karton oder ein Ball).
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Zurück zu „allgemeine / Nicht-Lego-Robotik und Elektronik“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss