f E M O R A L

Raspberry Pi LiveCam


VON MORITZ, ALEX, FELIX, ERSTELLT AM 22.10.2013, ZULETZT GEÄNDERT VON MORITZ AM 05.03.2014


Da wir seit neustem die CNC Fräse und den 3D Drucker auf dem Dachboden haben und wir nicht immer nach oben laufen wollten, um zu sehen wie weit der Fortschritt ist, wollten wir eine gute Lüsung finden eine Kamera dort zu installieren, über die wir uns auf dem Dachboden umsehen können.
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

Raspberry Pi mit Servos an der Decke befestigt Raspberry Pi mit Servos an der Decke befestigt

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.
no tooltip no tooltip
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!


Über jegliche Fragen und Anregungen freuen wir uns sehr!
>>>E-Mail

Natürlich freuen wir uns auch über eine kleine Spende, um weiter diese Webseite betreiben zu können.