Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Richten Sie Ihr RPI ein
- Schritt 2: Kamera an RPI anschließen
- Schritt 3: Audio einrichten und testen
- Schritt 4: Bewegungserkennung einrichten, um Sounddatei abzuspielen
- Schritt 5: Zusätzliche Kommentare
Video: Sprechende Santa Blasform - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-31 10:15
In diesem Projekt wird erklärt, wie Sie eine Dekoration erstellen, die eine Sounddatei abspielt, wenn jemand vorbeigeht. Dies kann leicht mit einem Computer erreicht werden, auf dem das Motion-Programm und einer Art Kamera ausgeführt werden kann. In diesem Fall habe ich eine 20 große Weihnachtsmann-Blasform verwendet. Ich habe meinen Raspeberry PI mit dem Kameramodul in meinem Garagenfenster eingerichtet und auf die Weihnachtsmann-Blasform gerichtet. Ich habe einen aktiven Außenlautsprecher in der Blasform versteckt und ein 25-Fuß-Aux-Kabel angeschlossen für den Außeneinsatz vom PI bis zu diesem Lautsprecher bewertet. Ich habe das Motion-Programm auf dem Pi eingerichtet, um eine Ho Ho Ho-Sounddatei abzuspielen, die nach Weihnachtsmann klingt, wenn eine Bewegung mit der Kamera erkannt wird. Es ist ziemlich einfach und macht viel Spaß.
Der Kauf der spezifischen Materialien, die ich hier verwendet habe, würde wahrscheinlich etwa 100 US-Dollar mit Versand kosten. Ich würde das nicht ausgeben, wenn ich nicht all diese Materialien ungenutzt herumliegen hätte. Dies kann mit jedem Computer, jeder Kamera und jedem Lautsprecher funktionieren, sodass es viel billiger ist, wenn Sie diese Dinge kaufen müssen.
Lieferungen
-
Ein Computer, auf dem das Motion-Programm installiert ist
Ich habe einen Raspberry PI (RPI) 3 Modell B verwendet
- An Computer angeschlossene Kamera oder Netzwerkkamera
- Jede Kamera, die das Motion-Programm verwenden kann
- USB-Kamera
- Netzwerkkamera
- Ich habe dieses Kameramodul verwendet, das direkt an das RPI angeschlossen wird
-
Ein Lautsprecher für den Außenbereich
- Über Aux-Port verbinden
- USB
- Ich habe dieses Sony SRS-XB01 verwendet
-
Eine Dekoration wie Blasform, wirklich alles
Ich habe eine Weihnachtsmann-Blasform verwendet, die dieser sehr ähnlich ist
Schritt 1: Richten Sie Ihr RPI ein
Dieser Schritt ist hier hauptsächlich für absolute Anfänger. Dieses Video erklärt, wie man einen Raspberry PI (RPI) besser einrichtet, als ich es könnte. Ich würde auch empfehlen, wie im Video, einen Wireless USB, eine Tastatur + Maus und einen externen Monitor für die Einrichtung anzuschließen. Nach der Einrichtung betreibe ich meine in meiner Garage ohne Tastatur + Maus und externen Monitor, aber ich belasse den WLAN-Dongle, damit ich per SSH hinein und neu starten und / oder Änderungen vornehmen kann.
Schritt 2: Kamera an RPI anschließen
Folgen Sie den Anweisungen, um Ihre Kamera für Ihr RPI einzurichten. Ich habe das Kameramodul von Adafruit Industries verwendet.
- Stecken Sie das Flachbandkabel des Kameramoduls in den Kameraanschluss zwischen dem Ethernet-Anschluss und dem HDMI-Anschluss und sichern Sie ihn, wobei die dünnen Kontakte zum HDMI-Anschluss und das blaue Band zum Ethernet-Anschluss zeigen.
-
Wenn Sie einen Monitor angeschlossen haben und die Benutzeroberfläche (Xserver) ausführen, führen Sie das Raspberry Pi-Konfigurationstool aus
Wenn Sie SSH von einem anderen Computer in das rpi übertragen, führen Sie rasp-config in Ihrem Terminal aus - wodurch eine Terminal-Benutzeroberfläche gestartet wird
- Aktivieren Sie in Raspberry Config auf der Registerkarte Schnittstellen die Kamera.
- Speichern Sie das RPI und starten Sie es neu.
- Führen Sie beim Neustart den folgenden Befehl in einem Terminal aus. Sowohl erkannt als auch aktiviert sollten als = 1 zurückgegeben werden
vgencmode get_camera
Ihr PI Camera Modul sollte jetzt funktionieren
Online-Anleitung
Schritt 3: Audio einrichten und testen
Anfangs habe ich für dieses Projekt einfach ein Aux-Kabel vom PI zu einem kleinen batteriebetriebenen Lautsprecher geführt. Das hatte zufällig eine Menge statischer Aufladungen und die Batterien waren schnell leer. Stattdessen habe ich ein USB-Gerät angeschlossen, das den Ton verstärkt, und das Aux-Kabel vom Aux-Ausgangsanschluss zu einem wetterfesten Außenlautsprecher mit Strom versorgt. Dies entfernte die statische Aufladung und war lauter und es gab keine Batterien, um die man sich Sorgen machen musste. Das USB-Gerät wurde von meinem RPI automatisch erkannt, ohne dass Treiberinstallationen erforderlich waren.
PI OS wird mit einem Programm namens aplay geliefert, aber ich bevorzuge das Play-Programm der Sox-Software-Distribution, daher installieren diese Anweisungen Sox und verwenden den Play-Befehl.
Sox installieren
Führen Sie in einem Terminal auf dem RPI die folgende Antwort mit Ja auf alle Eingabeaufforderungen aus:
sudo apt-get install sox
Testton
Laden Sie eine kompatible Audiodatei von kleiner Größe herunter und speichern Sie sie auf Ihrem Computer. Ich habe santaho3.mp3 verwendet, das in meinem Pi-Home-Verzeichnis gespeichert ist. Um den Sound zu testen, verbinden Sie Ihren Lautsprecher mit dem RPI und führen Sie diesen Befehl aus:
santaho3.mp3 abspielen
- Wenn Sie die Sounddatei in Ihrem Lautsprecher abspielen hören, funktioniert Ihr Sound
-
Möglicherweise müssen Sie den Ton intern von HDMI auf Analog umstellen.
Anleitung hier
-
Wenn Sie ein USB-Soundgerät verwenden, erstellen Sie in Ihrem Home-Verzeichnis eine Datei namens.asoundrc
- Geben Sie den Inhalt unten ein und starten Sie ihn neu, beginnen Sie mit dem Audiotest
-
pcm.!Standard {
HW-Karte 1 eingeben } ctl.!default { HW-Karte 1 eingeben }
Schritt 4: Bewegungserkennung einrichten, um Sounddatei abzuspielen
Eine Software namens Motion ermöglicht die Einrichtung einer oder mehrerer Kameras zum Ausführen eines Befehls, wenn eine Bewegung in der/den Kameraansicht(en) erkannt wird. Es ist relativ einfach einzurichten und funktioniert ziemlich gut. Es kann auch Dateien aufzeichnen, wenn Bewegungen erkannt werden, eine Website für jede Kamera oder eine einzelne Website für alle Kameras konfigurieren und Server zum Ansehen von Live-Streams der Kameras streamen. Dieses Projekt benötigt nur die Erkennungs- und Befehlsauslösefähigkeit, aber ich habe einen Streaming-Server eingerichtet, um auch einen Live-Stream sehen zu können.
Motion installieren
Führen Sie in einem Terminal auf dem RPI den folgenden Befehl aus und beantworten Sie alle Eingabeaufforderungen mit Ja. Warten Sie, bis er abgeschlossen ist
sudo apt-get install motion
Nehmen Sie sich jetzt die Zeit, den neu hinzugefügten Bewegungsbenutzer der Audiogruppe hinzuzufügen, damit er die Berechtigung hat, Ton abzuspielen, indem Sie den folgenden Befehl eingeben
usermod -a -G Audio-Bewegung
Bewegung zur Erkennung konfigurieren
Wir bearbeiten die Bewegungskonfigurationsdatei, um die Audiodatei abzuspielen, die wir im Schritt Audio einrichten heruntergeladen haben, wenn sie eine Bewegung auf der Kamera erkennt, und starten Bewegung als Dienst, damit sie dies bei jedem Neustart des RPI fortsetzt.
Bearbeiten Sie in einem Terminal die Datei /etc/motion/motion.conf als Superuser
sudo nano /etc/default/motion
Bearbeiten Sie in einem Terminal die Datei /etc/motion/motion.conf als Superuser
sudo nano /etc/motion/motion.conf
Nehmen Sie die folgenden Änderungen vor und speichern Sie sie. Viele davon sind Standardeinstellungen. Ich denke, in meinem Fall haben die mmal_xxx-Einträge keine Wirkung, aber ich lasse sie, falls sie jemand braucht - sie schaden auch nicht. Diese Konfiguration erkennt Bewegungen auf der Kamera in 40-Sekunden-Intervallen, zeichnet keine Bilder oder Videos auf und richtet einen Webserver und Streaming-Server für die Kamera ein, die mit einer Standardauthentifizierung mit Benutzernamen und Passwort geschützt sind.
Dämon an
process_id_file /var/run/motion/motion.pid
setup_mode off logfile /var/log/motion/motion.log log_level 6 log_type all videodevice /dev/video0 v4l2_palette 17 input -1 norm 0 frequency 0 power_line_frequency -1 drehen 0 flip_axis keine width 320 height 240 framerate 2 minimum_frame_time 0 netcam_keepalive off netcam_tolerant_check off rtsp_uses_tcp on mmalcam_name vc.ril.camera auto_brightness off Helligkeit 0 Kontrast 0 Sättigung 0 Farbton 0 Roundrobin_Frames 1 Roundrobin_Skip 1 Switchfilter off Threshold 500 Threshold_tune off noise_level 22 noise_tune on desspeckle_filter EedDl smart_mask_speed 0 lightswitch_capmotion 0 minimum_motion 0_movture event 0 minimum_motion 0_movture event 0 output_pictures off output_debug_pictures off quality 75 picture_type jpeg ffmpeg_output_movies off ffmpeg_output_debug_movies off ffmpeg_bps 400000 ffmpeg_variable_bitrate 0 ffmpeg_video_codec mp4 ffmpeg_duplicate_times_lapse_lapse_us_interval_time_lapse_lapse_timeflapse_interval_time_lapse_lapse_timeflapse_interval_time_lapse_lapse_timeflapse_interval_time_lapse_lapse_ apshot_interval 0 locate_motion_mode off locate_motion_style box text_right %Y-%m-%d\n%T-%q text_changes off text_event %Y%m%d%H%M%S text_double off target_dir /var/lib/motion snapshot_filename %v- %Y%m%d%H%M%S-Schnappschuss Bilddateiname %v-%Y%m%d%H%M%S-%q Filmdateiname %v-%Y%m%d%H%M%S Zeitrafferdateiname %Y%m%d-timelapse ipv6_enabled off stream_port 8481 stream_quality 80 stream_motion off stream_maxrate 1 stream_localhost off stream_limit 0 stream_auth_method 1 stream_authentication: webcontrol_port 8480 webcontrol_localt track_off webcontrol_html_output on webcontrol_authentication_jo 0_tracke_step_jo off_angle 10 quiet on on_event_start /usr/bin/play -q --multi-threaded /var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null
Kopieren Sie die Audiodatei in die Sounddatei in das Motion-Home-Verzeichnis und ändern Sie die Berechtigungen dafür, damit Motion sie besitzt, aber alle sie lesen können
sudo cp /home/pi/santaho.mp3 /var/lib/motion/mtn_dtct_ntfy.mp3
sudo chown motion /var/lib/motion/mtn_dtct_ntfy.mp3
sudo chmod a+r /var/lib/motion/mtn_dtct_ntfy.mp3
Starten Sie das RPI-Gerät neu. Nach dem Booten ausführen
sudo systemctl status motion.service
Die Ausgabe sollte eine Zeile enthalten, die besagt:
Aktiv: aktiv (läuft) seit
Wenn Sie sehen, dass diese Bewegung ausgeführt wird. Wenn nicht, überprüfen Sie /var/log/motion für Details. Versuchen Sie, Folgendes auszuführen:
sudo systemctl start motion.service
Bewegungserkennung und Tonwiedergabe testen
Fast fertig. Sie müssen nur überprüfen, ob eine Bewegung erkannt wird und der Ton abgespielt wird, wenn dies der Fall ist.
Gehen Sie in einem Terminal wie folgt vor, um angehängten Text an die Protokolldatei anzuzeigen
tail -f /var/log/motion
Jetzt:
- Langsam mit etwas vor der Kamera winken
- Die Protokolldatei sollte ausgeben, dass eine Bewegung erkannt wurde
- Hoffentlich wird die Sounddatei über den Lautsprecher abgespielt
- Wenn dies der Fall ist, platzieren Sie den RIP in einem Fenster mit dem Kameraobjektiv in Richtung der zu erkennenden Bewegung
- Platzieren Sie den Außenlautsprecher in oder in der Nähe der Dekoration
- Wenn Leute vorbeigehen, werden sie begrüßt
Fehlerbehebung
Wenn die Dinge nicht funktionieren
-
Überprüfen Sie, ob die Kamera funktioniert, indem Sie Folgendes ausführen:
- Raspistille -o test.jpg
- ls -l test-j.webp" />
-
Überprüfen Sie, ob das Audio funktioniert, indem Sie es ausführen
- spielen /var/lib/motion/ mtn_dtct_ntfy.mp3
-
wenn die Sounddatei nicht gehört wird
- Überprüfen Sie, ob das Ausgabegerät Ihr Lautsprecher-Setup ist (analog oder USB)
- überprüfe die Lautstärke
- Überprüfen Sie die Berechtigungen für die Sounddatei haben 3 'r's in der Berechtigungszeichenfolge (z. B. rw*rw*rw*)
-
Wenn alles andere fehlschlägt, ist die Bewegung möglicherweise nicht richtig eingerichtet
Wenn dies der Fall ist, sollten einige Online-Suchen helfen, da es viel Hilfe gibt
Schritt 5: Zusätzliche Kommentare
Zufällige Sounddateien abspielen
Wenn der gleiche Sound immer wieder abgespielt wird, gelangweilt, mischen Sie ihn auf!
-
Speichern Sie mehrere verschiedene Sounddateien mit demselben Namen, aber einem fortlaufenden numerischen Suffix:
soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,
-
Ändern Sie den Eintrag /etc/motion/motion.conf on_event_start wie folgt
on_event_start play -q --multi-threaded soundFile`shuf -i 1-5 -n 1`.mp3 2>/dev/null
- Beenden und speichern Sie die Datei
-
Starten Sie den Bewegungsdienst neu
sudo systemctl neustart motion.service
- Der Teil `shuf -i 1-5 -n 1` (das sind Backticks) fügt eine Zufallszahl von 1 bis 5 in den abgespielten Dateinamen ein
- Wenn nun eine Bewegung erkannt wird, wird eine von 5 Sounddateien abgespielt
Sprechen statt Spielen
Eine weitere lustige Variante besteht darin, eine Text-to-Speech-Funktion einzurichten und den Computer einen Satz zu Passanten sprechen zu lassen. Ich verwende gerne das MaryTTS als Motor. Richten Sie den Mary TTS-Server ein und starten Sie ihn und ändern Sie die oben erwähnte on_event_start-Zeile, um etwas an den marry tts-Server zu senden (z. B. marytts/bin/marytts-submit-text "Hello friend")
Verwenden von IP-Netzwerkkameras (drahtlos oder anderweitig)
Das Bewegungsprogramm kann mit der netcam_url und anderen verschiedenen netcam_xxx-Einstellungen problemlos vernetzte IP-Kameras unterstützen. Eine einfache Online-Suche sollte liefern, was benötigt wird.
Bluetooth
Wenn Ihr RPI über integriertes Bluetooth verfügt oder Sie ein USB-Bluetooth-Gerät installiert haben, können Sie den Lautsprecher über Bluetooth verbinden und das Kabel loswerden.
Beschränken Sie die Bewegungserfassung auf einen kleineren Bereich
Eines der Probleme, die ich mit diesem Setup hatte, war, dass Sträucher und Bäume sowie Autolichter die Bewegung zu leicht auslösten. Das Bewegungsprogramm verfügt über Einstellungen dafür, wie viele Bilder sich ändern müssen, bevor eine Bewegung ausgelöst wird, und berücksichtigt Rauschen und deren Verwendung. Ich habe es noch nicht ausprobiert, aber ich denke, ich brauche Einstellungen, die es auch ermöglichen, einen bestimmten Bereich der Kameraansicht für die Bewegungserkennung zu definieren. Dies sollte es ermöglichen, einen Bereich direkt in der Nähe der Dekoration zu definieren, um das Abspielen der Sounddatei auszulösen.