Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
techniken:ps3eye [2013/11/28 15:00] fbonowski |
techniken:ps3eye [2018/11/27 17:06] (aktuell) SabidJFejzula |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Unter Windows ===== | + | ====== Unter Windows ====== |
- | Treiber runterladen und installieren: | + | ===== Update vom Update: ===== |
- | [[http://codelaboratories.com/get/cl-eye-driver/]] | + | |
+ | Importiert die Library PS3Eye über Sketch>Library importieren>Library hinzufügen. Dann schaut euch die Beispiele unter Datei>Beispiele>Contributed Librarys an. | ||
+ | |||
+ | ===== Neue Anleitung hier: (Veraltet) ===== | ||
+ | |||
+ | Treiber für Windows gibts es hier: [[https://www.isis.tu-berlin.de/2.0/mod/resource/view.php?id=134766]] | ||
+ | |||
+ | Die Zuverlässigste Library für Processing kommt aus einer alten Version des SDK (die neuen laufen nicht mehr unter Windows mit 64Bit): [[https://www.isis.tu-berlin.de/2.0/mod/resource/view.php?id=134767]] Der in der .zip Datei enthaltene Ordner muss ins Dokumente/Processing/libraries Verzeichnis entpackt werden. | ||
+ | |||
+ | Die Library braucht zusätzlich eine .dll Datei:[[https://www.isis.tu-berlin.de/2.0/mod/resource/view.php?id=134768]] Diese muss irgendwohin, wo ihr sie wiederfindet. Dieser Pfad muss dann in das Processing-Programm eingetragen werden, damit die .dll auch gefunden wird. | ||
+ | ==== Ein Beispielprogramm ==== | ||
+ | <file Java ps3Eye.ino> | ||
+ | // Ein Beispielprogramm zur Verwendung der CL_Eye Multicam Library (Felix Bonowski, 2014 , public domain) | ||
+ | |||
+ | import cl.eye.*; // verwende die CLEyeMulticam Library | ||
+ | |||
+ | CLCamera myCamera; // Ein Object vom Typ CLCamera mit dem Namen myCamera - es repräsentiert die Kamera in unserem Programm. | ||
+ | PImage myImage; // Ein Object vom Typ PImage mit dem Namen myImage - wir verwenden es, um die Bildaten von der Kamera grafisch anzuzeigen. | ||
+ | |||
+ | int cameraWidth = 640; | ||
+ | int cameraHeight = 480; | ||
+ | int cameraRate = 60; // Die Bildwiederholfrequenz, mit der wir aufnehmen wollen. | ||
+ | |||
+ | void setup() { | ||
+ | size(640, 480); // mache das Fenster genau so groß wie das Bild | ||
+ | CLCamera.loadLibrary("C:\\CLEyeMulticam.dll"); // Hier müsst ihr den Pfad angeben, an dem ihr eure CLEyeMulticam.dll liegen habt! | ||
+ | |||
+ | myCamera=getPS3EyeInstance(); // Alles, was wir tun müssen, um die Kamera in Gang zu setzen ist in einer eigenen Funktion, die uns eine laufende Kamera zurückgibt. | ||
+ | myImage = createImage(cameraWidth, cameraHeight, RGB); // initialisiere das Bild, so dass die Kameradaten darin Platz haben | ||
+ | frameRate(100); | ||
+ | } | ||
+ | |||
+ | void draw() { | ||
+ | myCamera.getCameraFrame(myImage.pixels, 1000 ); // kopiere die Daten des nächsten Kamerabildes in den Pixelspeicher des Bildes myImage. Warte höchsten 1000ms auf ein neues Bild | ||
+ | myImage.updatePixels(); // nachdem die pixel in myImage geändert wurden, müssen wir diese Funktion aufrufen, damit sie auch angezeigt werden. | ||
+ | image(myImage, 0, 0); // zeichne das Bild in die obere linke Ecke des Fensters. | ||
+ | } | ||
+ | |||
+ | //Diese Funktion übernimmt die Einrichtung der Kamera | ||
+ | CLCamera getPS3EyeInstance() { | ||
+ | |||
+ | CLCamera myCamera=new CLCamera(this); // Erzeuge ein neues KameraObjekt | ||
+ | myCamera.createCamera(0, CLCamera.CLEYE_COLOR, CLCamera.CLEYE_VGA, cameraRate); //stelle Farbe, Auflösung und Bildwiederholrate ein. | ||
+ | |||
+ | myCamera.startCamera(); // Beginne mit dem Aufnehmen | ||
+ | |||
+ | // Schalte die Automatische Belichtung und den Weißabgleich aus (das hilft, die Farben im Bild konstant zu halten) | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_AUTO_GAIN, 0); | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_AUTO_EXPOSURE, 0); | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_AUTO_WHITEBALANCE, 0); | ||
+ | |||
+ | // Stelle manuell die Belichtungszeit und den ISO (gain) ein. | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_GAIN, 10); //[0, 79] | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_EXPOSURE, 511); //[0, 511] | ||
+ | |||
+ | // Stelle den Weißabgleich auf einen neutralen Wert. | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_WHITEBALANCE_RED, 128);//[0, 255] | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_WHITEBALANCE_GREEN, 128);//[0, 255] | ||
+ | myCamera.setCameraParam(CLCamera.CLEYE_WHITEBALANCE_BLUE, 128);//[0, 255] | ||
+ | |||
+ | return myCamera; // Gib das fertige Kameraobjekt zurück. | ||
+ | } | ||
+ | |||
+ | </file> | ||
+ | |||
+ | |||
+ | ===== Update: Diese folgende Anleitung ist obsolet, und steht hier nur noch der Vollständigkeit halber: ===== | ||
+ | |||
+ | Unter Windows ist ein spezieller Treiber nötig, der dafür aber auch einen Haufen nützlicher Funktionen bietet. | ||
+ | Folgende Schritte sind notwendig: | ||
+ | |||
+ | ==== Treiber runterladen und installieren: ==== | ||
+ | Ladet den Treiber Installer auf [[http://codelaboratories.com/get/cl-eye-driver/]] herunter, führt ihn aus und folgt den Instruktionen... | ||
+ | |||
+ | ==== Processing Library installieren: ==== | ||
+ | Für die Verwendung der Library hat Thomas Diewald eine Library geschrieben und ins Netz gestellt. Ihr findet sie hier: | ||
- | Processing library installieren: | ||
[[http://thomasdiewald.com/processing/libraries/diewald_PS3/]] | [[http://thomasdiewald.com/processing/libraries/diewald_PS3/]] | ||
+ | Auf der Seite sind auch die für die Installation nötigen Schritte beschrieben. | ||
+ | |||
+ | ==== Auf 64bit Systemen: Processing patchen ==== | ||
Unter Windows 7 auf 64bit Systemen gibt es ein Problem mit der aktuellen Java-Version. | Unter Windows 7 auf 64bit Systemen gibt es ein Problem mit der aktuellen Java-Version. | ||
Die Lösung: Ein altes Java aus einer alten Processing Version in eure Installation "transplantieren". | Die Lösung: Ein altes Java aus einer alten Processing Version in eure Installation "transplantieren". | ||
Zeile 12: | Zeile 89: | ||
[[http://thomasdiewald.com/processing/app/temp/]] | [[http://thomasdiewald.com/processing/app/temp/]] | ||
- | Die alte Version ist auch auf den USB-Sticks im Kurs, ihr braucht sie nicht herunterzuladen | + | Die alte Version ist auch auf den USB-Sticks im Kurs, ihr braucht sie nicht herunterzuladen. |
+ | |||
+ | ==== Los gehts! ==== | ||
+ | |||
+ | Ob alles geklappt hat, mit dem Processing Beispiel //**Contributed Libraries/diewald_PS3/basicCapture**// ausprobieren. | ||
+ | Das Beispiel startet die Kamera und kopiert in jedem "draw" Zyklus die aktuellen Videodaten in ein Bild vom Typ [[http://processing.org/reference/PImage.html|PImage]], welches es auf dem Bildschrim anzeigt. In der Processing Referenz steht, wie Ihr an die Pixeldaten kommt. | ||
+ | |||
+ | |||
+ | ====== Unter Mac ====== | ||
+ | ToDo.. | ||
+ | |||
+ | ====== Unter Linux====== | ||
+ | ToDo.. |