Gelöst haben wir das mit einem Raspberry Pi und einer passenden Kamera, die einfach auf das Board gesteckt wird. Die Halterungen die wir benötigt haben, haben wir mit unserem 3D drucker gedruckt. Die Teile stehe natürlich bei Thingiverse zum download


Die Kamera lässt sich auf Befehl mit 2 Servos in alle Richtungen schwenken und es lassen sich Fotos schießen.
Technik
Der Webcam Server ist in Node JS realisiert. Sobald auf das Bild zugegriffen wird, wird die Kamera ausgelöst, dass gerade erstellte Bild wird gespeichert und anschließend per http an den Client verschickt. Um den Webserver etwas komfortabler zu machen benutzen wir express.
Ansteuerung der Servos
Um die Position fest zu legen, zu der sich ein Servo bewegen soll wird eine Spannung von 5V und eine PWM am Signalpin des Servos benötigt. Die PWM sollte eine Periodendauer von 20ms haben. Die Position wird mit Hilfe der Up- und der Downtime codiert. Um in die eine Richtung zu drehen muss die Downtime 1ms und die Uptime 19ms sein. Die andere Richtung ist mit einer Downtime von 2ms und einer Uptime von 18ms zu erreichen.
Die Ansteuerung der PWM Pins erfolgt natürlich direkt über die GPIO Pins des Raspberry Pi's. Zuerst wollten wir die Ansteuerung direkt in Node JS implementieren. Leider ist Javascript nicht genau genug dafür. Die Lösung war ein einfaches C Programm, das mit den relevanten Parametern aufgerufen werden kann.
Zum Beispiel:
softpwm/pwm 15 300 1000 19000
PWM an Pin 15 für 300ms mit einer Downtime von 1000ms und einer Uptime von 19000ms.
Quelltext
Der aktuelle Quellcode wurde bei Bitbucket hochgeladen und kann dort eingesehen werden.
git clone https://bitbucket.org/master92/raspi-webcam-server-with-nodejs.git
Wer will kann die Kamera Live und in Farbe hier testen!
Von dem Prototypen kann man hier ein kurzes Video sehen, in dem die Achsen getestet werden.
Update 17.11.2013
Da die Tage immer kürzer werden ist es schnell so dunkel, das mit der Webcam nichts mehr zu erkennen ist. Die einzige bisherige Lösung war das Licht an zu lassen, nicht gerade sehr effizient. Also warum nicht das Licht auch über den Raspberry Pi einschalten?
Schon früher habe ich etwas ähnliches gebaut. Damals aber den Quellcode nicht selbst programmiert (http://www.homecontrol4.me/de/).
Die Idee ist, einfach einen 433Mhz Sender zu verwenden und mit der richtigen Sequenz eine handelsübliche Funksteckdose einzuschalten. Dazu habe ich die Sequenz der Originalfernbedienung mit Hilfe eines Oszis und einem 433Mhz Empfänger extrahiert.


Die Struktur ist recht einfach. Die Funksteckdose besitzt 10 DIP Schalter und kann ein und ausgeschaltet werden. Zuerst erfolgt die Auflösung der Steckdose. Danach das ein bzw. aus Signal.
1:‾‾‾_‾___
0:‾___‾___
Ein:‾‾‾_‾___‾___‾___
Aus:‾___‾___‾‾‾_‾___
Die Kurze Zeit entspricht immer 1/8 der Periodendauer, die Lange 3/8. Die Zeit zwischen den Sequenzen 31/8. Die Länge der Periode war in meinem Fall 2ms.
Um die Steckdosen einzuschalten habe ich ein kleines C Programm geschrieben (liegt beim restlichen Quelltext im Ordner 433). Damit kann ganz leicht eine Steckdose ein oder ausgeschaltet werden:
send 23 0 0 0 0 0 1 0 0 0 0 1
Parameter 1: GPIO Pin
Parameter 2-11: position der DIP Schalter
Parameter 12: Ein-/Ausschalten
über einen Flattr würden wir uns sehr freuen.
über Fragen und Anregungen freuen wir uns sehr!