Innehållsförteckning:
- Tillbehör
- Steg 1: Konfigurera din RPI
- Steg 2: Anslut kameran till RPI
- Steg 3: Installera och testa ljud
- Steg 4: Konfigurera rörelsedetektering för att spela upp ljudfil
- Steg 5: Ytterligare kommentarer
Video: Talking Santa Blowmold: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-31 10:25
Detta projekt förklarar hur man gör en dekoration som spelar en ljudfil när någon går förbi. Detta kan enkelt uppnås med en dator som kan köra Motion -programmet och en kamera av något slag. I det här fallet använde jag en 20 hög jultomteblåsare. Jag satte upp min Raspeberry PI med kameramodulen i mitt garagefönster och pekade den mot jultomten. Jag gömde en driven utomhushögtalare inuti blåsmallen och jag körde en 25ft aux -sladd klassad för utomhusbruk från PI till den här högtalaren. Jag ställde in Motion -programmet på Pi för att spela en tomtklingande Ho Ho Ho -ljudfil när den upptäckte rörelse med kameran. Det är ganska enkelt att göra och det är kul.
Att köpa de specifika materialen jag använde här skulle förmodligen kosta cirka $ 100 med frakt. Jag skulle inte spendera det för att göra det här om jag inte redan hade allt detta material liggande oanvänt. Detta kan fungera med vilken dator som helst, kameror och alla högtalare så att det kan åstadkommas mycket billigare om du behöver köpa dessa saker.
Tillbehör
-
En dator med Motion -programmet installerat
Jag använde en Raspberry PI (RPI) 3 Model B
- Dator ansluten kamera eller nätverkskamera
- Vilken kamera som helst som Motion -programmet kan använda
- USB -kamera
- Nätverkskamera
- Jag använde denna kameramodul som fästs direkt på RPI
-
En utomhushögtalare
- Anslut via aux -port
- USB
- Jag använde denna Sony SRS-XB01
-
En dekoration som blåsmögel, vad som helst egentligen
Jag använde en jultomteblåsare som liknade den här
Steg 1: Konfigurera din RPI
Detta steg är här mestadels för kompletta nybörjare. Den här videon förklarar hur du konfigurerar en Raspberry PI (RPI) bättre än jag kunde. Jag skulle också rekommendera, precis som i videon, att ansluta en trådlös USB, tangentbord + mus och extern bildskärm för installationen. Efter installationen kör jag mitt i mitt garage utan tangentbord + mus och extern bildskärm, men jag lämnar i WIFi -dongeln så att jag kan ssh in i den och starta om och/eller göra ändringar.
Steg 2: Anslut kameran till RPI
Följ instruktionerna för att konfigurera din kamera för din RPI. Jag använde kameramodulen från Adafruit Industries.
- Anslut och fäst bandkabeln från kameramodulen till kameraporten mellan Ethernet -porten och HDMI -porten med slivkontakterna vända mot HDMI -porten och den blå tejpen vänd mot Ethernet -porten.
-
Om du har en bildskärm ansluten och kör UI (Xserver) kör du Raspberry Pi Configuration -verktyget
Om fjärr -SSH till rpi från en annan dator, kör rasp -config i din terminal - vilket startar ett terminal UI
- I Raspberry Config, under fliken Gränssnitt, aktivera kameran.
- Spara och starta om RPI: n.
- Vid omstart kör kommandot nedan i en terminal, både detekterade och aktiverade ska returnera som = 1
vgencmode get_camera
Din PI -kameramodul borde fungera nu
Online instruktioner
Steg 3: Installera och testa ljud
Ursprungligen för detta projekt drev jag helt enkelt en aux -sladd från PI till en liten batteridriven högtalare. Det råkade ha mycket statisk och batterierna tömdes snabbt. Istället kopplade jag in en USB -enhet som förstärker ljudet och jag körde aux -sladden från aux -utgången på den till en strömförande väderbeständig utomhushögtalare. Detta tog bort det statiska och var högre och inga batterier att oroa sig för. USB -enheten identifierades automatiskt av min RPI utan att några drivrutinsinstallationer krävs.
PI OS levereras med ett program som kallas aplay, men jag föredrar Sox -mjukvarudistributionens spelprogram, så dessa instruktioner installerar Sox och använder det play -kommandot.
Installera Sox
I en terminal på RPI kör du följande svar ja på alla uppmaningar
sudo apt-get install sox
Testa ljud
Ladda ner en kompatibel ljudfil av liten storlek och spara den på din dator. Jag använde santaho3.mp3 sparad i min pi -hemkatalog. För att testa ljudet, anslut din högtalare till RPI och kör det här kommandot:
spela santaho3.mp3
- Om du hör ljudfilen som spelas upp i högtalaren fungerar ljudet
-
Du kan behöva ändra ljudet internt från HDMI till Analog.
Instruktioner här
-
Om du använder en USB -ljudenhet skapar du en fil i din hemkatalog som heter.asoundrc
- Sätt innehållet nedan i den och starta om, påbörja ljudtest
-
pcm.! standard {
skriv hw -kort 1} ctl.! standard {typ hw -kort 1}
Steg 4: Konfigurera rörelsedetektering för att spela upp ljudfil
Programvara som kallas Motion gör det möjligt att installera en eller flera kameror i syfte att köra ett kommando när rörelse detekteras i kamerans vy (er). Det är ganska enkelt att installera och fungerar ganska bra. Det kan också spela in filer när detekterar rörelser, tillåta konfigurering av en webbplats för varje kamera eller en enda webbplats för alla kameror och streaming -servrar för att titta på livestreamar av kamerorna. Detta projekt behöver bara detekterings- och kommandoutlösande förmåga, men jag har konfigurerat en strömningsserver för att kunna titta på en livestream också.
Installera rörelse
I en terminal på RPI kör du kommandot nedan och svarar ja på alla uppmaningar, vänta tills det är klart
sudo apt-get installera rörelse
Ta dig tid att lägga till den nyligen tillagda rörelsesanvändaren i ljudgruppen så att den har behörighet att spela upp ljud genom att ange följande kommando
usermod -a -G ljudrörelse
Konfigurera rörelse för detektion
Vi kommer att redigera rörelsekonfigurationsfilen för att spela upp ljudfilen som vi laddade ner i steget Setup Audio när den upptäcker rörelse på kameran och startar rörelse som en tjänst så den fortsätter att göra det när vi någonsin startar om RPI.
Redigera filen /etc/motion/motion.conf i en terminal som superanvändare
sudo nano/etc/default/motion
Redigera filen /etc/motion/motion.conf i en terminal som superanvändare
sudo nano /etc/motion/motion.conf
Gör och spara följande redigeringar. Många av dessa är standardvärden. Jag tror inte att i mitt fall har mmal_xxx -posterna någon effekt, men jag lämnar dem om någon behöver dem - de gör heller ingen skada. Den här konfigurationen detekterar rörelse på kameran med 40 sekunders intervall, spelar inte in bilder eller video och skapar en webbserver och streaming -server för kameran som skyddas med grundläggande autentisering med användarnamn och lösenord.
demon på
process_id_file /var/run/motion/motion.pid
setup_mode off loggfil /var/log/motion/motion.log log_level 6 log_type all videodevice/dev/video0 v4l2_palette 17 ingång -1 norm 0 frekvens 0 power_line_frequency -1 rotera 0 flip_axis ingen bredd 320 höjd 240 framerate 2 minimum_ram_tid 0 netcam_keepalive avstängning netcam_keepalant off rtsp_user_tcp på mmalcam_name vc.ril.camera auto_brightness av ljusstyrka 0 kontrast 0 mättnad 0 nyans 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter av tröskel 500 tröskel_justera noise_tune på despeckle_filter EedDl smart_mask_speed_ lampa_motor_motor_motor_motor_hastighet_motor_motor_motor_motor_motor_hastighet_larm_körning_motor_motor_motor_motor_motorstid output_pictures off output_debug_pictures off kvalitet 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_frames sanna timelapse_interval 0 timelapse_mode timelapse_fps dagligen 30 timelapse_codec mpg use_extpipe off sn apshot_intervall 0 lokalisera_rörelse_läge av lokalera_rörelse_stil rutan text_rätt%Y-%m-%d / n%T-%q text_förändringar av text_händelse%Y%m%d%H%M%S text_dubbel av mål_dir/var/lib/rörelse ögonblicksbild_filnamn%v- %Y%m%d%H%M%S-ögonblicksbild picture_filename%v-%Y%m%d%H%M%S-%q film_filnamn%v-%Y%m%d%H%M%S timelapse_filename % Y% m% d-Timelapse ipv6_enabled off stream_port 8481 stream_quality 80 stream_motion off stream_maxrate en stream_localhost off stream_limit 0 stream_auth_method en stream_authentication: webcontrol_port 8480 webcontrol_localhost off webcontrol_html_output på webcontrol_authentication: track_type 0 track_auto off track_iomojo_id 0 track_step_angle_x 10 track_step_angle_y 10 track_move_wait 10 track_speed 255 track_stepsize 40 tyst på on_event_start/usr/bin/play -q --multi -threaded/var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null
Kopiera ljudfilen till ljudfilen till motion home -katalogen och ändra behörigheter på den så motion äger den men alla kan läsa den
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
Starta om RPI -enheten. När du har startat, kör
sudo systemctl status motion.service
Utdata bör innehålla en rad som säger:
Aktiv: aktiv (kör) sedan
Om du ser att denna rörelse körs. Om inte, kolla in/var/log/motion för mer information. Prova att köra:
sudo systemctl start motion.service
Testa rörelsedetektering och ljuduppspelning
Nästan klar. Måste bara kontrollera om rörelse detekteras och ljudet spelar när det är det.
I en terminal gör du följande för att titta på bifogad text till loggfilen
svans -f/var/log/rörelse
Nu:
- Vinka något framför kameran långsamt
- Loggfilen ska mata ut den rörelsen detekterades
- Förhoppningsvis spelar ljudfilen upp genom högtalaren
- Om så är fallet placerar du RIP i ett fönster med kameralinsen vänd där rörelsen ska detekteras
- Placera utomhushögtalaren i eller nära dekorationen
- När folk går förbi blir de hälsade välkomna
Felsökning
Om saker inte fungerar
-
Dubbelkolla att kameran fungerar genom att köra:
- raspistill -o test.jpg
- ls -l test-j.webp" />
- Dubbelkolla att ljudet fungerar genom att köra
- play/var/lib/motion/mtn_dtct_ntfy.mp3
-
om du inte hör ljudfilen
- kontrollera att utmatningsenheten är din högtalarinställning (analog eller USB)
- kontrollera volymen
- kontrollera att behörigheterna på ljudfilen har 3 'r i behörighetssträngen (dvs. rw*rw*rw*)
-
Om allt annat misslyckas är eventuellt rörelse inte korrekt inställd
Om så är fallet bör vissa onlinesökningar hjälpa eftersom det finns mycket hjälp där ute
Steg 5: Ytterligare kommentarer
Spela slumpmässiga ljudfiler
Blir uttråkad av samma ljud som spelas om och om igen, blanda det!
-
Spara flera olika ljudfiler med samma namn men ett sekventiellt numeriskt suffix:
soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,
-
Ändra posten /etc/motion/motion.conf on_event_start enligt följande
on_event_start play -q --multi -threaded soundFile`shuf -i 1-5 -n 1`.mp3 2>/dev/null
- Avsluta och spara filen
-
Starta om rörelsestjänsten
sudo systemctl starta om motion.service
- Delen 'shuf -i 1-5 -n 1' (det är bakre fästingar) infogar ett slumpmässigt tal från 1 till 5 ito filnamnet som spelas
- Så nu när rörelse detekteras kommer någon av fem ljudfiler att spelas upp
Tala istället för att spela
En annan rolig twist är att ställa in en text-till-tal och låta datorn tala en mening till folk som passerar. Jag gillar att använda MaryTTS som motor. Installera och starta Mary TTS-servern och ändra on_event_start-raden som nämns ovan för att skicka in något att säga till gift-servern (dvs. marytts/bin/marytts-submit-text "Hej vän")
Använda IP -nätverkskameror (trådlöst eller på annat sätt)
Rörelseprogrammet kan enkelt stödja nätverkade IP -kameror med hjälp av netcam_url och andra olika netcam_xxx -inställningar. En enkel onlinesökning bör ge vad som behövs.
Blåtand
Om din RPI har Bluetooth inbyggt eller om du har installerat en USB Bluetooth-enhet kan du ansluta högtalaren via Bluetooth och bli av med kabeln.
Begränsa rörelseinspelning till mindre område
Ett av problemen jag hade med den här inställningen är att blåsa buskar och träd samt bilbelysning utlöste rörelsen för lätt. Rörelseprogrammet har inställningar för hur många bildrutor som behöver ändras innan rörelse utlöses och att hantera brus och att använda dessa hjälpte. Jag har inte försökt än, men jag tror att jag kommer att behöva inställningar som också gör att ett visst område i kameravyn kan definieras för rörelsedetektering. Detta bör göra det möjligt att definiera ett område precis nära dekorationen för att utlösa uppspelningen av ljudfilen.
Rekommenderad:
Talking Smart Glass for the Blind: 7 steg
Talking Smart Glass for the Blind: Det finns flera smarta tillbehör som smarta glasögon, smarta klockor etc. tillgängliga på marknaden. Men alla är byggda för oss. Det finns en betydande brist på teknik för att hjälpa fysiskt utmanade. Jag ville bygga något som är
Santa Claus PCB Arduino -modul: 5 steg
Santa Claus PCB Arduino Module: Julen är här och Silícios Lab erbjuder dig gärna det bästa. I julen 2019 erbjuder vi en jultomte -modul för Arduino. Genom denna modul kommer du att kunna styra din jultomtehand, ögon och din motorhuva. Dessutom kan du
RC Santa Sleigh: 10 steg (med bilder)
RC Santa Sleigh: Hej allihopa. Idag ska jag visa dig hur du gör en skumplatta RC Santa Sleigh. Jag hade elektroniken kvar från ett plan som inte fungerade, och tanken hade varit i bakhuvudet för ett tag. Jag hade en ledig dag, och eftersom det är julafton jag
Tiny Cute Santa Toy (Del-2): 3 steg
Tiny Cute Santa Toy (Del-2): Jag gjorde tomten leksaken i en tidigare instruerbar, du skulle behöva göra den innan det här projektet. Nu kan jag göra den bättre
Santa's Shop 2017, tåget: 4 steg (med bilder)
Santa's Shop 2017, the Train: Santa's Shop 2017 är en uppgraderad version av Santa's Shop 2016. Jag ville lägga till ytterligare ett tåg, men det enda rummet som fanns kvar var i taket. Allt du behöver göra för att få ett tåg att köra upp och ner är att använda magneter. Höger? Naturligtvis finns det några små detaljer