Werbung
Erfahren Sie, wie Sie mit einem Raspberry Pi eine fernsichtbare Schwenk- und Neige-Überwachungskamera erstellen. Dieses Projekt kann an einem Morgen mit nur den einfachsten Teilen abgeschlossen werden. Hier ist das Endergebnis:
Was du brauchst
- Raspberry Pi 2 oder 3 mit Micro SD Karte
- Arduino UNO oder ähnliches
- 2 x Mikro- oder Mini-Hobby-Servos
- USB-Webcam
- Anschlussdrähte von Stecker zu Stecker
- Anschlussdrähte von Stecker zu Buchse
- Verschiedene Kabelbinder
Aufbau der Überwachungskamera
Befestigen Sie mit der mitgelieferten Schraube ein Servohorn (die kleinen Plastikformen) an jedem Servo. Die besondere Form spielt keine Rolle, obwohl je größer desto besser. Ziehen Sie die Schraube nicht zu fest an.
Verwenden Sie nun Kabelbinder, um ein Servo im rechten Winkel am anderen zu befestigen. Eine davon ist Schwenken (von links nach rechts), während die andere geneigt ist (auf und ab). Es spielt keine Rolle, wer was macht, es kann im Code angepasst werden.
Schließen Sie zum Schluss Ihre Webcam an eines der Servos an. Sie könnten hierfür Kabelbinder verwenden, obwohl meine Webcam mit einem Clip geliefert wurde, der an der Unterseite festgeschraubt war. Ich entfernte diesen und benutzte die Schraube, um ihn am Horn zu halten. Aus Stabilitätsgründen können Sie das gesamte Rig an einem Koffer oder einer Box befestigen. Ein einfacher Karton macht den Trick ganz gut. Sie könnten ein ordentliches quadratisches Loch schneiden und ein Servo bündig mit der Oberfläche montieren. Ein Kabelbinder ist jedoch ausreichend.
Ein Wort zu Webcams
Nicht alle USB-Webcams werden gleichermaßen erstellt. Schließen Sie Ihre Webcam an den USB-Anschluss Ihres Pi an und führen Sie den folgenden Befehl aus:
lsusb
Dieser Befehl zeigt Informationen zu allen an den Pi angeschlossenen USB-Geräten an. Wenn Ihre Webcam hier nicht aufgeführt ist, können Sie einen USB-Hub mit Stromversorgung ausprobieren und den Befehl wiederholen. Wenn die Webcam immer noch nicht erkannt wird, müssen Sie möglicherweise eine kaufen kompatible Webcam.
Servo-Setup
Während Servos beängstigend und komplex erscheinen mögen, sind sie wirklich einfach zu verbinden. Servos arbeiten mit Pulsweitenmodulation (PWM), mit der digitale Systeme analoge Signale imitieren können. PWM-Signale sind im Wesentlichen ein schnelles EIN-AUS-Signal. Ein Signal, das EIN oder HOCH ist, wird unter Verwendung des Arbeitszyklus beschrieben. Der Arbeitszyklus wird als Prozentsatz ausgedrückt und beschreibt, wie lange das Signal eingeschaltet ist. Ein PWM-Signal mit einem Tastverhältnis von 25% ist 25% der Zeit eingeschaltet und die restlichen 75% ausgeschaltet. Das Signal ist zu Beginn nicht EIN und dann für immer AUS, es wird regelmäßig über einen sehr kurzen Zeitraum gepulst.
Servos warten auf diese Impulse und handeln entsprechend. Die Verwendung eines Tastverhältnisses von 100% entspricht „normalem“ 5 V und 0% entspricht Masse. Machen Sie sich keine Sorgen, wenn Sie die Funktionsweise von PWM nicht vollständig verstehen. Sie können dennoch Servos steuern (Extreme Electronics ist ein guter Ort, um mehr zu erfahren).
Es gibt zwei Möglichkeiten, PWM zu verwenden - Hardware oder Software. Hardware-PWM bietet häufig eine geringere Latenz (wie lange zwischen dem Servo, der den Befehl empfängt, und dem Bewegen) als Software-PWM, jedoch verfügt der Pi nur über einen Hardware-PWM-fähigen Pin. Externe Schaltkreise Es stehen mehrere Hardware-PWM-Kanäle zur Verfügung. Ein einfacher Arduino kann diese Aufgabe jedoch auch übernehmen, da er über mehrere Hardware-PWM-Pins verfügt.
Hier ist die Schaltung:
Überprüfen Sie die Pinbelegung für Ihren Pivariieren sie geringfügig zwischen den Modellen. Sie müssen herausfinden, wie Ihre Servos verkabelt sind. Servos benötigen drei Drähte, um sie zu steuern, die Farben variieren jedoch geringfügig:
- Rot ist positiv, verbinden Sie dies mit Pi + 5v
- Braun oder Schwarz ist negativ, verbinden Sie dies mit GND auf dem Pi
- Orange oder Weiß ist ein Signal. Verbinden Sie dieses mit den Arduino-Pins 9 und 10
Arduino Setup
Neu bei Arduino? Fang hier an Erste Schritte mit Arduino: Ein Leitfaden für AnfängerArduino ist eine Open-Source-Plattform für das Prototyping von Elektronik, die auf flexibler, benutzerfreundlicher Hardware und Software basiert. Es richtet sich an Künstler, Designer, Bastler und alle, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen .
Sobald die Servos verbunden sind, öffnen Sie die Arduino IDE auf Ihrem Computer und laden Sie diesen Testcode hoch. Vergessen Sie nicht, die richtige Karte und den richtigen Port aus dem auszuwählen Werkzeuge> Platine und Extras> Port Menüs
#umfassen // Importiere die Bibliothek Servo servoPan, servoTilt; // Servoobjekte erstellen. int servoMin = 20, servoMax = 160; // Grenzen von Servos definieren void setup () {// Servos auf PWM-fähigen Pins einrichten servoPan.attach (9); servoTilt.attach (10); } void loop () {for (int i = servoMin; i servoMin; --i) {// Servos vom Maximum zum Minimum verschieben servoPan.write (i); servoTilt.write (i); Verzögerung (100); // 100ms warten} }
Wenn alles in Ordnung ist, sollten Sie sehen, wie sich beide Servos langsam hin und her bewegen. Beachten Sie, wie "servoMin" und "servoMax" als 20 und 160 Grad (anstelle von 0 und 180) definiert sind. Dies liegt zum Teil daran, dass diese billigen Servos nicht in der Lage sind, die vollen 180 Grad genau zu bewegen, und auch daran, dass die physische Größe der Webcam die Nutzung des gesamten Bereichs verhindert. Möglicherweise müssen Sie diese für Ihr Setup anpassen.
Wenn sie überhaupt nicht funktionieren, überprüfen Sie noch einmal, ob der Stromkreis richtig verdrahtet ist. Breadboards können manchmal auch in der Qualität variieren. Erwägen Sie daher, zur Überprüfung in ein Multimeter zu investieren.
Die Servos sind fast zu mächtig für die Arduino, um sie mit Strom zu versorgen, daher werden sie vom Pi angetrieben. Die 5V Schiene auf dem Pi ist begrenzt auf 750 mA, die für den gesamten Pi bereitgestellt werden, und der Pi zieht ungefähr 500 mA, so dass 250 mA für den übrig bleiben Servos. Diese Mikroservos verbrauchen ungefähr 80 mA, was bedeutet, dass der Pi zwei davon verarbeiten kann. Wenn Sie mehr Servos oder größere Modelle mit höherer Leistung verwenden möchten, müssen Sie möglicherweise ein externes Netzteil verwenden.
Laden Sie nun den folgenden Code auf das Arduino hoch. Dadurch werden eingehende serielle Daten abgehört (seriell wie in Universal Seriennummer Bus oder USB). Der Pi sendet diese Daten über USB an das Arduino und teilt ihm mit, wohin die Servos bewegt werden sollen.
#umfassen // Importiere die Bibliothek Servo servoPan, servoTilt; // Servoobjekt erstellen. String data = ""; // Eingehende Befehle speichern (Puffer) void setup () {// Servos auf PWM-fähigen Pins einrichten servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Seriell mit 9600 bps starten (Geschwindigkeit) } void loop () {while (Serial.available ()> 0) {// Wenn Daten vorhanden sind char singleChar = Serial.read (); // Lies jedes Zeichen if (singleChar == 'P') {// Verschiebe pan servo servoPan.write (data.toInt ()); data = ""; // Puffer löschen} else if (singleChar == 'T') {// Neigungsservo verschieben servoTilt.write (data.toInt ()); data = ""; // Puffer löschen} else {data + = singleChar; // Neue Daten anhängen}} }
Sie können diesen Code testen, indem Sie den seriellen Monitor öffnen (oben rechts> Serieller Monitor) und einige Testdaten senden:
- 90P
- 0P
- 20T
- 100T
Beachten Sie das Format der Befehle - einen Wert und dann einen Buchstaben. Der Wert ist die Position des Servos, und der Buchstabe (in Großbuchstaben) gibt das Schwenk- oder Neigungsservo an. Da diese Daten seriell vom Pi übertragen werden, kommt jedes Zeichen einzeln durch. Das Arduino muss diese "speichern", bis der gesamte Befehl übertragen wurde. Der letzte Buchstabe gibt nicht nur das Servo an, sondern lässt den Arduino auch wissen, dass dieser Befehl keine Daten mehr enthält.
Zum Schluss trennen Sie Ihr Arduino vom Computer und Stecken Sie es über den üblichen USB-Anschluss in den Raspberry Pi.
Pi Setup
Jetzt ist es Zeit, den Pi einzurichten. Zuerst, Installieren Sie ein Betriebssystem So installieren Sie ein Betriebssystem auf einem Raspberry PiHier erfahren Sie, wie Sie ein Betriebssystem auf Ihrem Raspberry Pi installieren und Ihr perfektes Setup für eine schnelle Notfallwiederherstellung klonen. Weiterlesen . Verbinden Sie die Webcam und das Arduino mit dem Pi USB.
Aktualisieren Sie den Pi:
sudo apt-get update. sudo apt-get upgrade
Bewegung installieren:
sudo apt-get install motion
Motion ist ein Programm für das Streaming von Webcams. Es übernimmt das gesamte schwere Heben und kann sogar Aufzeichnungen und Bewegungserkennungen durchführen (versuchen Sie es Aufbau eines Motion Capture-Sicherheitssystems Erstellen Sie ein Motion Capture-Sicherheitssystem mit einem Raspberry PiVon den vielen Projekten, die Sie mit dem Raspberry Pi erstellen können, ist das Motion Capture-Sicherheitssystem eines der interessantesten und dauerhaft nützlichsten. Weiterlesen ). Öffnen Sie die Motion-Konfigurationsdatei:
sudo nano /etc/motion/motion.conf
Diese Datei bietet viele Optionen zum Konfigurieren von Motion. Einrichtung wie folgt:
- Daemon ein - Führen Sie das Programm aus
- Framerate: 100 - Wie viele Frames oder Bilder / Sekunde gestreamt werden sollen
- stream_localhost off - Ermöglicht den Zugriff über das Netzwerk
- Breite 640 - Breite des Videos, passen Sie es an Ihre Webcam an
- Höhe 320 - Höhe des Videos, passen Sie es an Ihre Webcam an
- stream_port 8081 - Der Port, an den das Video ausgegeben werden soll
- output_picture off - Speichern Sie keine Bilder
Dies ist eine ziemlich große Datei, daher möchten Sie sie möglicherweise verwenden STRG + W. nach Zeilen suchen. Wenn Sie fertig sind, drücken Sie STRG + X. und bestätigen Sie dann zum Speichern und Beenden.
Bearbeiten Sie nun eine weitere Datei:
sudo nano / etc / default / motion
Setzen Sie "start_motion_daemon = yes". Dies ist erforderlich, um sicherzustellen, dass Motion ausgeführt wird.
Finden Sie jetzt Ihre IP-Adresse heraus:
ifconfig
Dieser Befehl zeigt die Netzwerkverbindungsdetails für den Pi an. Schauen Sie sich die zweite Zeile an, inet addr. Möglicherweise möchten Sie eine statische IP-Adresse festlegen (Was ist eine statische IP? Was ist eine statische IP-Adresse? Hier ist, warum Sie keinen brauchenEine statische IP-Adresse ändert sich nie. Dynamische IP-Adressen ändern sich. Wir erklären, warum Sie keine statische IP-Adresse benötigen. Weiterlesen ), aber notieren Sie sich vorerst diese Nummer.
Starten Sie nun Motion:
sudo service motion start
Sie können Motion stoppen oder neu starten, indem Sie "Start" in "Stop" oder "Neustart" ändern.
Wechseln Sie zu Ihrem Computer und navigieren Sie über einen Webbrowser zum Pi:
http://xxx.xxx.x.xx: 8081
Wobei xxx.xxx.x.xx die Pi-IP-Adresse ist. Der Doppelpunkt gefolgt von einer Zahl ist der Port, der zuvor eingerichtet wurde. Wenn alles in Ordnung ist, sollten Sie den Stream von Ihrer Webcam sehen! Versuchen Sie sich zu bewegen und sehen Sie, wie die Dinge aussehen. Möglicherweise müssen Sie die Helligkeits- und Kontrasteinstellungen in der Konfigurationsdatei anpassen. Möglicherweise müssen Sie die Webcam fokussieren - einige Modelle haben einen kleinen Fokusring um das Objektiv. Drehen Sie dies, bis das Bild am schärfsten ist.
Erstellen Sie auf dem Pi einen Ordner und navigieren Sie hinein:
mkdir Überwachungskamera. CD-Überwachungskamera /
Installieren Sie jetzt Twisted:
sudo apt-get install python-twisted
Twisted ist ein in Python geschriebener Webserver, der auf Befehle wartet und dann entsprechend handelt.
Erstellen Sie nach der Installation ein Python-Skript, um Befehle auszuführen (verschieben Sie die Servos).
sudo nano servos.rpy
Beachten Sie, dass die Dateierweiterung ".rpy" anstelle von "py" lautet. Hier ist der Code:
# Importieren Sie die erforderlichen Dateien. Seriennummer importieren. aus twisted.web.resource importieren Resource # Setup Arduino mit der richtigen Geschwindigkeit. versuchen Sie: arduino = serial. Seriell ('/ dev / ttyUSB0', 9600) außer: arduino = serial. Serielle Klasse ('/ dev / ttyUSB1', 9600) MoveServo (Ressource): isLeaf = True def render_GET (self, request): try: # Wert senden über seriell zum Arduino arduino.write (request.args ['value'] [0]) gibt 'Success' zurück, außer: return 'Failure' resource = MoveServo ()
Starten Sie nun den Webserver:
sudo twitd -n web -p 80 --path / home / pi / security-cam /
Lassen Sie es uns aufschlüsseln - "-p 80" gibt den Port (80) an. Dies ist der Standardport für Webseiten. "–Pfad / home / pi / security-cam /" weist Twisted an, den Server im angegebenen Verzeichnis zu starten. Wenn Sie Änderungen an den Skripten im Ordner "security-cam" vornehmen, müssen Sie den Server neu starten (STRG + X. zum Schließen den Befehl erneut ausführen).
Erstellen Sie nun die Webseite:
sudo nano index.html
Hier ist der Webseitencode:
Nutzen Sie die DIY Überwachungskamera
Ändern Sie "PI_IP_ADDRESS" (zweimal verwendet) in die echte IP-Adresse Ihres Pi (raspberrypi.local sollte auch funktionieren, wenn Sie das neueste Raspian verwenden). Starten Sie den Webserver neu und navigieren Sie dann von Ihrem Computer zum Pi, ohne den Port angeben zu müssen. Sie sollten in der Lage sein, nach links und rechts zu schwenken und den Videostream zu sehen:
Hier hast du es. Ihre eigene Pan and Tilt-Netzwerkkamera. Wenn Sie Ihre Webcam dem Internet aussetzen möchten, denken Sie daran Betrachten Sie die Gefahren 5 Gefahren, die beim Richten Ihrer Überwachungskameras zu beachten sindEs ist wichtig, sorgfältig zu überlegen, wo Sie Ihre Kameras positionieren und auf welche Teile Ihres Hauses Sie sie richten. Die Sicherheit ist wichtig, aber auch die Wahrung Ihrer Privatsphäre. Weiterlesen - Dann schauen Sie hinein Port-Weiterleitung Was ist Port Forwarding und wie kann es mir helfen? [MakeUseOf erklärt]Weinen Sie innerlich ein wenig, wenn Ihnen jemand sagt, dass ein Problem mit der Portweiterleitung vorliegt und Ihre glänzende neue App deshalb nicht funktioniert? Auf deiner Xbox kannst du keine Spiele spielen, deine Torrent-Downloads lehnen ab ... Weiterlesen Damit weiß Ihr Router, wohin eingehende Anforderungen gesendet werden sollen. Sie könnten hinzufügen eine externe Stromversorgung 3 Raspberry Pi-Akkus für tragbare ProjekteEin Raspberry Pi-Akku kann aus einem normalen Pi einen tragbaren Computer machen. Sie benötigen eine dieser Batterielösungen, um loszulegen. Weiterlesen und Wi-Fi-Adapter für ein wirklich tragbares Rig.
Hast du mit einer Webcam und einem Pi etwas cooles gemacht? Lass es mich in den Kommentaren wissen, ich würde es gerne sehen!
Joe hat einen Abschluss in Informatik von der University of Lincoln, UK. Er ist ein professioneller Softwareentwickler, und wenn er keine Drohnen fliegt oder Musik schreibt, macht er oft Fotos oder produziert Videos.