Inhoudsopgave:
- Benodigdheden
- Stap 1: Stel uw RPI in
- Stap 2: Bevestig de camera aan RPI
- Stap 3: Audio instellen en testen
- Stap 4: Bewegingsdetectie instellen om geluidsbestand af te spelen
- Stap 5: Aanvullende opmerkingen
Video: Pratende kerstman blaasvorm: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-31 10:23
Dit project legt uit hoe je een decoratie maakt die een geluidsbestand afspeelt als er iemand langsloopt. Dit kan eenvoudig worden bereikt met een computer die het Motion-programma kan uitvoeren en een of andere camera. In dit geval gebruikte ik een 20 hoge kerstman blaasvorm. Ik zette mijn Raspeberry PI met de cameramodule in mijn garageraam en richtte hem op de kerstman blaasvorm. Ik verborg een actieve buitenspeaker in de blaasvorm en ik gebruikte een 25ft aux-kabel geschikt voor gebruik buitenshuis van de PI tot deze luidspreker. Ik heb het Motion-programma op de Pi ingesteld om een Santa klinkend Ho Ho Ho-geluidsbestand af te spelen wanneer het beweging detecteert met behulp van de camera. Het is vrij eenvoudig om te doen en het is erg leuk.
Het kopen van de specifieke materialen die ik hier heb gebruikt, zou waarschijnlijk ongeveer $ 100 kosten met verzending. Ik zou dat niet uitgeven om dit te maken als ik al deze materialen niet al ongebruikt had liggen. Dit kan met elke computer, elke camera en elke luidspreker werken, dus het kan veel goedkoper worden bereikt als u deze dingen moet kopen.
Benodigdheden
-
Een computer waarop het Motion-programma is geïnstalleerd
Ik gebruikte een Raspberry PI (RPI) 3 Model B
- Computer aangesloten camera of netwerkcamera
- Elke camera die het Motion-programma kan gebruiken
- USB-camera
- Netwerkcamera
- Ik heb deze cameramodule gebruikt die rechtstreeks op de RPI wordt aangesloten
-
Een luidspreker voor buitengebruik
- Aansluiten via aux-poort
- USB
- Ik gebruikte deze Sony SRS-XB01
-
Een decoratie zoals blaasvorm, echt alles
Ik heb een blaasvorm van de kerstman gebruikt die erg op deze lijkt
Stap 1: Stel uw RPI in
Deze stap is er vooral voor complete beginners. Deze video legt uit hoe je een Raspberry PI (RPI) beter kunt instellen dan ik zou kunnen. Ik zou ook aanraden, zoals in de video, om een draadloze USB, toetsenbord + muis en externe monitor aan te sluiten voor de installatie. Eenmaal ingesteld, laat ik de mijne in mijn garage draaien zonder het toetsenbord + muis en externe monitor, maar ik laat de wifi-dongle achter zodat ik erin kan ssh-en en opnieuw kan opstarten en/of wijzigingen kan aanbrengen.
Stap 2: Bevestig de camera aan RPI
Volg de instructies om je camera in te stellen voor je RPI. Ik heb de Camera module van Adafruit Industries gebruikt.
- Sluit de lintkabel van de cameramodule aan op de camerapoort tussen de Ethernet-poort en de HDMI-poort, met de zilverkleurige contacten naar de HDMI-poort en de blauwe tape naar de Ethernet-poort gericht.
-
Als u een monitor hebt aangesloten en de gebruikersinterface (Xserver) gebruikt, voert u de Raspberry Pi-configuratietool uit
Als externe SSH vanaf een andere computer naar de rpi gaat, voer dan rasp-config uit in uw terminal - waarmee een terminal-UI wordt gestart
- Schakel in Raspberry Config onder het tabblad Interfaces de camera in.
- Sla de RPI op en start deze opnieuw op.
- Voer bij het opnieuw opstarten de onderstaande opdracht uit in een terminal, zowel gedetecteerd als ingeschakeld moeten terugkeren als = 1
vgencmode get_camera
Uw PI Camera-module zou nu moeten werken
Online instructies
Stap 3: Audio instellen en testen
Aanvankelijk heb ik voor dit project eenvoudig een aux-kabel van de PI naar een kleine luidspreker met batterijvoeding geleid. Die had toevallig veel statische elektriciteit en de batterijen waren snel leeg. In plaats daarvan heb ik een USB-apparaat aangesloten dat het geluid versterkt en ik heb de aux-kabel van de aux-uitgang erop naar een aangedreven weerbestendige buitenluidspreker geleid. Dit verwijderde de statische elektriciteit en was luider en er waren geen batterijen om je zorgen over te maken. Het USB-apparaat werd automatisch herkend door mijn RPI zonder dat er stuurprogramma's moesten worden geïnstalleerd.
PI OS wordt geleverd met een programma genaamd aplay, maar ik geef de voorkeur aan het afspeelprogramma van de Sox-softwaredistributie, dus deze instructies installeren Sox en gebruiken het afspeelcommando.
Installeer Sox
Voer in een terminal op de RPI het volgende uit en beantwoord alle prompts met ja:
sudo apt-get install sox
Testgeluid
Download een compatibel geluidsbestand van kleine omvang en sla het op uw computer op. Ik gebruikte santaho3.mp3 opgeslagen in mijn pi-homedirectory. Om het geluid te testen, sluit u uw luidspreker aan op de RPI en voert u deze opdracht uit:
speel santaho3.mp3
- Als je het geluidsbestand in je speaker hoort spelen, werkt je geluid
-
Mogelijk moet u het geluid intern wijzigen van HDMI naar analoog.
Instructies hier:
-
Als u een USB-geluidsapparaat gebruikt, maakt u een bestand in uw thuismap met de naam.asoundrc
- Zet de onderstaande inhoud erin en start opnieuw op, start de audiotest
-
pcm.!standaard {
typ hw-kaart 1 } ctl.!default { typ hw-kaart 1 }
Stap 4: Bewegingsdetectie instellen om geluidsbestand af te spelen
Met de software Motion kunnen een of meer camera's worden ingesteld om een opdracht uit te voeren wanneer beweging wordt gedetecteerd in de camera('s)-weergave(n). Het is vrij eenvoudig in te stellen en werkt redelijk goed. Het kan ook bestanden opnemen bij het detecteren van bewegingen, het configureren van een website voor elke camera of een enkele website voor alle camera's en streamingservers om livestreams van de camera's te bekijken. Dit project heeft alleen de mogelijkheid nodig om detectie en commando's te activeren, maar ik heb een streamingserver ingesteld om ook een livestream te kunnen bekijken.
Beweging installeren
Voer in een terminal op de RPI de onderstaande opdracht uit en beantwoord alle prompts met ja, wacht tot het klaar is
sudo apt-get install motion
Neem nu de tijd om de nieuw toegevoegde bewegingsgebruiker toe te voegen aan de audiogroep, zodat deze toestemming heeft om geluid af te spelen door de volgende opdracht in te voeren:
usermod -a -G audio beweging
Beweging voor detectie configureren
We zullen het bewegingsconfiguratiebestand bewerken om het geluidsbestand af te spelen dat we hebben gedownload in de stap Audio instellen wanneer het beweging op de camera detecteert en beweging als een service start, zodat het dit blijft doen wanneer de RPI ooit opnieuw wordt opgestart.
Bewerk in een terminal het bestand /etc/motion/motion.conf als supergebruiker
sudo nano /etc/default/motion
Bewerk in een terminal het bestand /etc/motion/motion.conf als supergebruiker
sudo nano /etc/motion/motion.conf
Voer de volgende bewerkingen uit en sla ze op. Veel hiervan zijn standaardinstellingen. Ik denk niet dat de mmal_xxx-vermeldingen in mijn geval enig effect hebben, maar ik laat ze staan voor het geval iemand ze nodig heeft - ze doen ook geen kwaad. Deze configuratie detecteert beweging op de camera met intervallen van 40 seconden, neemt geen beelden of video op en stelt een webserver en streamingserver in voor de camera die wordt beschermd met basisverificatie met behulp van een gebruikersnaam en wachtwoord.
daemon aan
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 roteren 0 flip_axis geen breedte 320 hoogte 240 framerate 2 minimum_frame_time 0 netcam_keepalive uit netcam_tolerant_check off rtsp_uses_tcp aan mmalcam_name vc.ril.camera auto_brightness uit helderheid 0 contrast 0 verzadiging 0 tint 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter uit drempel 500 threshold_tune uit noise_level 22 noise_tune aan despeckle_filter EedDl smart_mask_speed_gapture_gebeurtenis_mask_speed_lightswitch 0 minimum_vies_captime output_pictures uit output_debug_pictures uit kwaliteit 75 picture_type jpeg ffmpeg_output_movies uit ffmpeg_output_debug_movies uit ffmpeg_bps 400000 ffmpeg_variable_bitrate 0 ffmpeg_video_codec mp4 ffmpeg_duplicate_frames 0 true lapse timelapse_mode_intervals apshot_interval 0 lokatie_motion_mode uit lokatie_motion_style box text_right %Y-%m-%d\n%T-%q text_changes off text_event %Y%m%d%H%M%S text_double uit target_dir /var/lib/motion snapshot_filename %v- %Y%m%d%H%M%S-momentopname fotobestandsnaam %v-%Y%m%d%H%M%S-%q filmbestandsnaam %v-%Y%m%d%H%M%S timelapse_bestandsnaam %Y%m%d-timelapse ipv6_enabled uit stream_port 8481 stream_quality 80 stream_motion uit stream_maxrate 1 stream_localhost uit stream_limit 0 stream_auth_method 1 stream_authentication: webcontrol_port 8480 webcontrol_localhost uit webcontrol_html_output op webcontrol_html_output op webcontrol_authentication track_speed track_authentication track_speed track_typeio track_speed track_typeio stil op on_event_start /usr/bin/play -q --multi-threaded /var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null
Kopieer het audiobestand naar het geluidsbestand naar de motion home-directory en wijzig de machtigingen erop zodat motion het bezit, maar iedereen kan het lezen
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
Start het RPI-apparaat opnieuw op. Eenmaal opgestart, run
sudo systemctl status motion.service
De uitvoer moet een regel bevatten die zegt:
Actief: actief (actief) sinds
Als je ziet dat deze beweging loopt. Als dit niet het geval is, bekijk dan /var/log/motion voor details. Probeer te rennen:
sudo systemctl start motion.service
Bewegingsdetectie en geluid afspelen testen
Bijna klaar. U hoeft alleen maar te controleren of er beweging wordt gedetecteerd en of het geluid wordt afgespeeld wanneer dit het geval is.
Doe het volgende in een terminal om de toegevoegde tekst aan het logbestand te bekijken:
staart -f /var/log/motion
Nutsvoorzieningen:
- Zwaai langzaam iets voor de camera
- Het logbestand moet weergeven dat er beweging is gedetecteerd
- Hopelijk speelt het geluidsbestand door de luidspreker
- Zo ja, plaats de RIP in een venster met de cameralens gericht op de plaats waar de beweging moet worden gedetecteerd
- Plaats de buitenspeaker in of bij de decoratie
- Als mensen langslopen, worden ze begroet
Probleemoplossen
Als dingen niet werken
-
Controleer nogmaals of de camera werkt door het volgende uit te voeren:
- raspistill -o test.jpg
- ls -l test-j.webp" />
-
Controleer nogmaals of de audio werkt door uit te voeren
- speel /var/lib/motion/mtn_dtct_ntfy.mp3
-
als u het geluidsbestand niet hoort
- controleer of het uitvoerapparaat uw luidsprekeropstelling is (analoog of USB)
- controleer het volume
- controleer of de machtigingen op het geluidsbestand 3 'r's hebben in de machtigingenreeks (d.w.z. rw*rw*rw*)
-
Als al het andere faalt, is beweging mogelijk niet correct ingesteld
als dit het geval is, zouden sommige online zoekopdrachten moeten helpen, want er is veel hulp
Stap 5: Aanvullende opmerkingen
Speel willekeurige geluidsbestanden af
Verveeld raken met steeds hetzelfde geluid, mix het maar!
-
Sla meerdere verschillende geluidsbestanden op met dezelfde naam maar een opeenvolgend numeriek achtervoegsel:
soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,
-
Wijzig het item /etc/motion/motion.conf on_event_start als volgt:
on_event_start play -q --multi-threaded soundFile`shuf -i 1-5 -n 1`.mp3 2>/dev/null
- Sluit af en sla het bestand op
-
Start de bewegingsservice opnieuw
sudo systemctl herstart motion.service
- Het `shuf -i 1-5 -n 1` (dat zijn achterste tikken) voegt een willekeurig getal van 1 tot 5 toe aan de bestandsnaam die wordt afgespeeld
- Dus wanneer er beweging wordt gedetecteerd, wordt een van de 5 geluidsbestanden afgespeeld
Spreken in plaats van spelen
Een andere leuke draai is om een tekst-naar-spraak-functie in te stellen en de computer een zin te laten uitspreken tegen voorbijgangers. Ik gebruik de MaryTTS graag als motor. Stel de Mary TTS-server in en start deze en wijzig de on_event_start-regel hierboven vermeld om iets te zeggen naar de trouwtts-server (d.w.z. marytts/bin/marytts-submit-text "Hallo vriend")
IP-netwerkcamera's gebruiken (draadloos of anderszins)
Het bewegingsprogramma kan eenvoudig netwerk-IP-camera's ondersteunen met behulp van de netcam_url en andere verschillende netcam_xxx-instellingen. Een eenvoudige online zoekopdracht zou moeten bieden wat nodig is.
Bluetooth
Als uw RPI Bluetooth heeft ingebouwd of als u een USB Bluetooth-apparaat hebt geïnstalleerd, kunt u de luidspreker via Bluetooth aansluiten en de draad verwijderen.
Bewegingsopname beperken tot een kleiner gebied
Een van de problemen die ik met deze opstelling had, was het blazen van struiken en bomen, evenals autolichten die de beweging te gemakkelijk activeerden. Het bewegingsprogramma heeft instellingen voor het aantal frames dat moet worden gewijzigd voordat beweging wordt geactiveerd en om rekening te houden met ruis en deze te gebruiken. Ik heb het nog niet geprobeerd, maar ik denk dat ik instellingen nodig heb waarmee ook een specifiek gebied van het camerabeeld kan worden gedefinieerd voor de bewegingsdetectie. Dit zou het mogelijk moeten maken om een gebied vlak bij de decoratie te definiëren om het afspelen van het geluidsbestand te activeren.
Aanbevolen:
De auto van de kerstman: 6 stappen
Santa's Car: Hier is een klein leuk project dat ik heb gemaakt tijdens de kerstvakantie. Het is eenvoudig en gemakkelijk te bouwen, het wordt bestuurd via een wifi-verbinding en een Android-telefoon of -tablet. De microcontroller is een ESP8266 op een Wemos D1-mini board, hij heeft MicroPython inst
Sorteerhoed van de kerstman - Ajarnpa
Santa's Sorting Hat: We hebben nauw samengewerkt met Santa's Workshop om je deze innovatie in ondeugende of leuke lijstcommunicatie te bieden. Nu kunt u in realtime controleren of uw goede en slechte daden uw positie op Santa's Naughty of Nice-lijst hebben beïnvloed! Een leuk project
Pratende Peter: 4 stappen
Pratende Peter: Dit is een Arduino-project wat ik heb gemaakt op de HKU. Hij heet Pratende Peter, en hij opent graag zijn mond. De mond is te bedienen via een sensor. Je kan hem gebruiken als pop tijdens je zelf de stem inspreekt, of je kan hem dingen voeren. ik ben
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
De kerstman begroeten: 4 stappen (met afbeeldingen)
Groet Santa: Dit project werd gedaan als onderdeel van de kerstversiering. Het is een pop van de kerstman met lichtjes en een arm die beweegt wanneer hij je detecteert