Technik

Webcam & Software

Philips PCVC690K (Vesta Pro Scan) USB Webcam
max. Auflösung 640x480 (VGA)

unter Linux (debian "woody" 3.0) mit Kernel-Modul pwc v.8.5

Eingesetzte (bzw. ausprobierte) Programme:

  •  Video4Linux: Kernel-Module, ohne die's nicht geht
  •  xawtv: DIE Video-/TV-Suite für Linux schlechthin (inkl. dem kleinen FTP-Upload-Proggi "webcam")
  •  camserv: Streaming server, sogar mit Proxyfunktion betreibbar
  •  ZoneMinder: Überwachungssystem mit Motion Detection und vielen anderen coolen Features
  •  Sehr gute Links rund um V4L und Programme

Drehfunktion

Einmal auf die verrückte Idee gekommen, die Webcam online drehbar machen zu können, ist mir das nun endlich auch geglückt. Hauptproblem: Zeit :-)

Der Aufbau:
Mit Hilfe der C-Control Station von Conrad Elektronik kann ich direkt einen Modellbau-Servo ansteuern und dessen Winkel gradgenau einstellen. Der Servo hat eine Stellweite von 120° und kann diesen kompletten Bereich innerhalb von nur 0,4 sec abfahren.

Bild rechts: C-Control Station, Webcam auf Servo und Spannungsregler (im Gehäuse)

Im Detail:
Um eine stabile Spannungsversorgung des Servos zu gewährleisten habe ich eine kleine Spannungsregler-Schaltung gebaut, die konstante 5 V aus einem angeschlossenen Steckernetzteil liefert. An diese 5 V sind sowohl der Servo als auch an einem Pullup-Widerstand die digitale Signalleitung, die von der C-Control Station kommt angeschlossen. Ausserdem braucht man eine Masseleitung zurück zur C-Control Station, damit die Signalleitung funzt.

Generell erhält ein Servo seine Information durch Impulse mit einer Amplitude von +5V, die als absolute Winkelangaben ausgewertet werden.
Die gesamte Periodendauer muss immer 20 ms betragen. Die Zeit, in der die Steuerleitung, in diesen 20 ms, High-Pegel aufweist bestimmt die Position des Servos.
Die Servopulse müssen auch mehrere Male wiederholt werden, und zwar mindestens solange bis die Zielposition erreicht ist.
Und genau diese Impulse kann die C-Control Station auf einem ihrer digitalen Ports ausgeben. Dazu sind noch ein kleines Programm in Basic bzw. ein Teil davon direkt in Assembler (der zeitrelevante Teil) nötig und schon kann die C-Control Station den Servo steuern.
Eine andere Möglichkeit wäre auch gewesen, den Assembler-Teil in einem IC, z.B. dem Servocontroller-Chip SD20 zu realisieren, aber das klappte bei mir leider nicht wie gewünscht.

Tja, und schliesslich der letzte Teil: Wie kann ich den Servo von einer Weboberfläche aus steuern? Dazu habe ich einfach das Basic-Programm auf der C-Control so angepasst, dass es den einzustellenden Winkel von der seriellen Schnittstelle einlesen kann. An meinen Webserver angeschlossen kann ich so mithilfe eines kleinen Perl-Skripts vom Webserver aus einen Winkel an die C-Control übertragen. Dieses Perlskript rufe ich von der Webseite dann einfach mit unterschiedlichen Parametern auf und kann so in verschieden grossen Schritten nach links und rechts navigieren.

 

 

 

03/2004, Berni Steiner