Aus Raspberry Pi Geek 09/2025

Webcam-Stream per RasPi ins Netz stellen (Seite 3)

Hier gibt es definitiv noch viel Verbesserungspotenzial. Das Ansteuern des zweiten Servos ist noch nicht implementiert, eine Fehlerbehandlung fehlt komplett, und das Layout der HTML-Seite fällt rudimentär aus. Es bleiben viele kleine Funktionen, die Sie selbst schrittweise implementieren und verbessern können. Um den Server zu starten, müssen Sie sich im virtuellen Environment befinden und das Kommando python server.py auf der Konsole absetzen.

Listing 5

server.py

from flask import Flask
import pigpio
import time
pwm = pigpio.pi()
pwm.set_mode(17, pigpio.OUTPUT)
pwm.set_PWM_frequency(17, 50)
pos=1500
app = Flask(__name__)
@app.route('/')
def hello_world():
  page =        '<HTML><BODY>'
  page = page + '<iframe src="http://<RASPI-IP/URL>:8889/stream/1" width="800px" height="600px"></iframe><BR>'
  page = page + '<TABLE width="800px"><TR><TD><BUTTON type="button" onclick="servo(1)">Links</TD>'
  page = page + '    <TD><BUTTON type="button" onclick="servo(2)">Rechts</TD></TABLE>'
  page = page + '<SCRIPT>'
  page = page + 'function servo(url) { console.log(url);'
  page = page + 'const xhttp = new XMLHttpRequest();xhttp.open("GET", url, true);xhttp.send();'
  page = page + '}</SCRIPT>'
  page = page + '</BODY></HTML>'
  return page
@app.route('/1')
def l():
  global pos
  pos=pos+50
  pwm.set_servo_pulsewidth(17, pos)
  return ''
@app.route('/2')
def r():
  global pos
  pos=pos-50
  pwm.set_servo_pulsewidth(17, pos)
  return ''
if __name__ == '__main__':
  app.run(debug=True,host="0.0.0.0")

Es brummt

Servomotoren fahren abhängig von der Signallänge eine bestimmte Position an. Im Inneren stecken ein Poti für die Positionsermittlung sowie eine Regelelektronik, die den Motor steuert.

Bei den meisten Servos kommt hier traditionelle Analogtechnik zum Einsatz. Gelegentlich ist die Regelung oder Mechanik nicht in der Lage, die Position zu erreichen, die der Signallänge entspricht. In einem solchen Fall fängt die Regelung an zu schwingen. Dadurch wechselt der Motor ständig die Richtung und fängt an zu brummen. Um das zu verhindern, ermitteln Sie empirisch, bei welchen Signallängen der Motor (noch) nicht brummt.

Mitunter rufen aber auch mechanische Widerstände das Brummen hervor. Alles in allem ist das keine schlimme Sache, allerdings reagiert die Kamera mit massiver Fehlfokussierung darauf.

Fazit

Mit einer aktuellen Anleitung und ein wenig Aufwand ist es gar nicht so schwer, den Kamera-Stream des Raspberry Pi auf einer Webseite darzustellen (Abbildung 4).

Abbildung 4: Die fertig aufgebaute Webcam.

Abbildung 4: Die fertig aufgebaute Webcam.

Eine wichtige Komponente in einem solchen Setup stellt allerdings ein gut funktionierender Mediaserver dar. Wir haben uns für MediaMTX entschieden, weil der Server sehr viele Möglichkeiten bietet und ohne zusätzliche Software funktioniert. Zugegebenermaßen haben wir nur einen Bruchteil der von MediaMTX gebotenen Funktionen verwendet. Wenn Sie tiefer in das Thema einsteigen möchten, lesen Sie sich die Anleitung bei Github genau durch. (tle)

Der Autor

Martin Mohr erlebte die komplette Entwicklung der modernen Computertechnik live mit. Nach dem Studium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte seine alte Liebe zur Elektronik wieder.

Glossar

RTSP

Das Real Time Streaming Protocol (RTSP) wurde zum Übertragen von kontinuierlichen Datenströmen entwickelt. Dabei kann es sich um Audio- oder Videodaten, Messwerte von Sensoren oder ähnliche Daten handeln.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben