Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Konfigurer RPI -en
- Trinn 2: Fest kameraet til RPI
- Trinn 3: Oppsett og test lyd
- Trinn 4: Sett opp bevegelsesdeteksjon for å spille av lydfil
- Trinn 5: Ytterligere kommentarer
Video: Talking Santa Blowmold: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-31 10:23
Dette prosjektet forklarer hvordan du lager en dekorasjon som spiller en lydfil når noen går forbi. Dette kan enkelt oppnås med en datamaskin som kan kjøre Motion -programmet og et kamera av noe slag. I dette tilfellet brukte jeg en 20 høy julenisseblåsemaskin. Jeg satte opp Raspeberry PI -en min med kameramodulen i garasjevinduet og pekte den mot julenissen. Jeg gjemte en drevet utendørshøyttaler inne i blåseringen og jeg kjørte en 25ft hjelpekabel klassifisert for utendørs bruk fra PI til denne høyttaleren. Jeg konfigurerte Motion -programmet på Pi for å spille av en julenissende Ho Ho Ho -lydfil når den oppdaget bevegelse ved hjelp av kameraet. Det er ganske enkelt å gjøre og det er morsomt.
Å kjøpe de spesifikke materialene jeg brukte her ville trolig koste rundt $ 100 med frakt. Jeg ville ikke brukt det på å lage dette hvis jeg ikke allerede hadde alt dette materialet liggende ubrukt. Dette kan fungere med hvilken som helst datamaskin, kameraer og hvilken som helst høyttaler, så det kan oppnås mye billigere hvis du trenger å kjøpe disse tingene.
Rekvisita
-
En datamaskin med Motion -programmet installert
Jeg brukte en Raspberry PI (RPI) 3 Model B
- Datamaskinkoblet kamera eller nettverkskamera
- Ethvert kamera som Motion -programmet kan bruke
- USB -kamera
- Nettverkskamera
- Jeg brukte denne kameramodulen som festes direkte til RPI
-
En utendørs høyttaler
- Koble til via aux -port
- USB
- Jeg brukte denne Sony SRS-XB01
-
En dekorasjon som blowmold, hva som helst egentlig
Jeg brukte et julemannsblåsemaskin som ligner veldig på denne
Trinn 1: Konfigurer RPI -en
Dette trinnet er her hovedsakelig for komplette nybegynnere. Denne videoen forklarer hvordan du konfigurerer en Raspberry PI (RPI) bedre enn jeg kunne. Jeg vil også anbefale, som i videoen, å koble til en trådløs USB, tastatur + mus og ekstern skjerm for oppsettet. Etter oppsettet kjører jeg min i garasjen min uten tastatur + mus og ekstern skjerm, men jeg lar være i WIFi -dongelen slik at jeg kan ssh inn i den og starte på nytt og/eller gjøre endringer.
Trinn 2: Fest kameraet til RPI
Følg instruksjonene for å sette opp kameraet for RPI -en. Jeg brukte kameramodulen fra Adafruit Industries.
- Plugg og fest båndkabelen fra kameramodulen til kameraporten mellom Ethernet -porten og HDMI -porten med sliverkontaktene vendt mot HDMI -porten og den blå tapen mot Ethernet -porten.
-
Hvis du har en skjerm tilkoblet og kjører brukergrensesnittet (Xserver), kjører du Raspberry Pi Configuration -verktøyet
Hvis ekstern SSH til rpi fra en annen datamaskin, kjører du rasp -config i terminalen din - som starter et terminalgrensesnitt
- I Raspberry Config, under kategorien Grensesnitt, aktiver kameraet.
- Lagre og start RPI -en på nytt.
- Ved omstart kjører kommandoen nedenfor i en terminal, både oppdaget og aktivert skal returnere som = 1
vgencmode get_camera
PI -kameramodulen din skal fungere nå
Online instruksjoner
Trinn 3: Oppsett og test lyd
I utgangspunktet for dette prosjektet kjørte jeg ganske enkelt en ekstra ledning fra PI til en liten batteridrevet høyttaler. Det var tilfeldigvis mye statisk og batteriene tappet raskt. I stedet koblet jeg til en USB -enhet som forsterker lyden, og jeg kjørte aux -ledningen fra aux -utgangsporten på den til en drevet værbestandig utendørs høyttaler. Dette fjernet det statiske og var høyere og ingen batterier å bekymre seg for. USB -enheten ble automatisk gjenkjent av min RPI uten at det var nødvendig med driverinstallasjoner.
PI OS kommer med et program som kalles aplay, men jeg foretrekker Sox -programvaredistribusjonens spillprogram, så disse instruksjonene installerer Sox og bruker det play -kommandoen.
Installer Sox
I en terminal på RPI kjører du følgende og svarer ja på spørsmål
sudo apt-get install sox
Test lyd
Last ned en kompatibel lydfil av liten størrelse og lagre den på datamaskinen din. Jeg brukte santaho3.mp3 lagret i min pi -hjemmekatalog. For å teste lyden, koble høyttaleren til RPI og kjør denne kommandoen:
spill santaho3.mp3
- Hvis du hører lydfilen som spilles av i høyttaleren, fungerer lyden
-
Du må kanskje internt endre lyden fra HDMI til Analog.
Instruksjoner her
-
Hvis du bruker en USB -lydenhet, må du opprette en fil i hjemmekatalogen som heter.asoundrc
- Sett innholdet nedenfor i den og start på nytt, start lydtesten
-
pcm.! standard {
type hw -kort 1} ctl.! standard {type hw -kort 1}
Trinn 4: Sett opp bevegelsesdeteksjon for å spille av lydfil
Programvare som kalles Motion, lar et eller flere kameraer settes opp med det formål å kjøre en kommando når det oppdages bevegelse i kamera (r). Det er ganske enkelt å sette opp og fungerer ganske bra. Det kan også ta opp filer når det oppdager bevegelser, tillate konfigurering av et nettsted for hvert kamera eller et enkelt nettsted for alle kameraer og streaming -servere for å se direktesendinger av kameraene. Dette prosjektet trenger bare oppdagelses- og kommandoutløsende evne, men jeg har satt opp en streaming -server for å kunne se en direktesending også.
Installer Motion
I en terminal på RPI, kjører du kommandoen nedenfor og svarer ja på alle spørsmål, vent på at den er ferdig
sudo apt-get install motion
Ta deg tid til å legge til den nylig tilføyde bevegelsesbrukeren i lydgruppen, slik at den har tillatelse til å spille av lyd ved å skrive inn følgende kommando
brukermodus -a -G lydbevegelse
Konfigurer Motion for Detection
Vi redigerer bevegelseskonfigurasjonsfilen for å spille av lydfilen vi lastet ned i trinnet Setup Audio når den oppdager bevegelse på kameraet og starter bevegelse som en tjeneste, så den fortsetter å gjøre det når vi starter RPI -en.
Rediger filen /etc/motion/motion.conf i en terminal som superbruker
sudo nano/etc/default/motion
Rediger filen /etc/motion/motion.conf i en terminal som superbruker
sudo nano /etc/motion/motion.conf
Gjør og lagre følgende redigeringer. Mange av disse er standard. Jeg tror ikke at i mitt tilfelle har mmal_xxx -oppføringene noen effekt, men jeg lar dem være i tilfelle noen trenger dem - de skader heller ikke. Denne konfigurasjonen oppdager bevegelse på kameraet i 40 sekunders intervaller, tar ikke opp bilder eller video, og setter opp en webserver og streaming -server for kameraet som er beskyttet med grunnleggende autentisering ved hjelp av et brukernavn og passord.
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 inngang -1 norm 0 frekvens 0 power_line_frequency -1 roter 0 flip_axis ingen bredde 320 høyde 240 framerate 2 minimum_ramme_tid 0 netcam_keepalant av netcam_keepalant off_net rtsp_user_tcp på mmalcam_name vc.ril.camera auto_brightness av lysstyrke 0 kontrast 0 metning 0 fargetone 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter av terskel 500 threshold_tune off noise_level 22 noise_tune på despeckle_filter EedDl smart_mask_speed 0 light_itch_post_ event_post_moment_motor_motor_motor_motor_motor_motor_motor_motor_motor_motor_motor_motor_måler_motor_motor_motor_måler 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_frames timepause_tid_tid_tid_tid_tid_tid_tid_tidspunkt_tid_tid_tid_tidspunkt_tid_tid_tidspunkt_tid_tid_tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjør tid_kjørtid apshot_interval 0 lokaliseringsbevegelse_modus av lokaliseringsbevegelsesstil-tekst_rett%Y-%m-%d / n%T-%q tekst_endringer av tekst_event%Y%m%d%H%M%S tekst_doble av mål_dir/var/lib/bevegelse øyeblikksbilde_filnavn%v- %Y%m%d%H%M%S-øyeblikksbilde picture_filename%v-%Y%m%d%H%M%S-%q movie_filename%v-%Y%m%d%H%M%S timelapse_filename % Y% m% d-timelapse ipv6_enabled off stream_port 8481 stream_quality 80 stream_motion av stream_maxrate en stream_localhost av stream_limit 0 stream_auth_method en stream_authentication: webcontrol_port 8480 webcontrol_localhost av webcontrol_html_output på webcontrol_authentication: track_type 0 track_auto av track_iomojo_id 0 track_step_angle_x 10 track_step_angle_y 10 track_move_wait 10 track_speed 255 track_stepsize 40 stille på on_event_start/usr/bin/play -q --multi -threaded/var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null
Kopier lydfilen til lydfilen til hjemmekatalogen for bevegelser og endre tillatelser på den, så bevegelse eier den, men alle kan lese 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
Start RPI -enheten på nytt. Etter oppstart, kjør
sudo systemctl status motion.service
Produksjonen bør inneholde en linje som sier:
Aktiv: aktiv (kjører) siden
Hvis du ser at denne bevegelsen kjører. Hvis ikke, sjekk ut/var/log/motion for detaljer. Prøv å kjøre:
sudo systemctl start motion.service
Test bevegelsesdeteksjon og lydavspilling
Nesten ferdig. Bare må sjekke om det oppdages bevegelse og lyden spiller når den er.
Gjør følgende i en terminal for å se vedlagt tekst til loggfilen
hale -f/var/log/bevegelse
Nå:
- Vink noe sakte foran kameraet
- Loggfilen skal sende ut at bevegelsen ble oppdaget
- Forhåpentligvis spiller lydfilen gjennom høyttaleren
- I så fall plasser RIP i et vindu med kameralinsen vendt mot bevegelsen som skal detekteres
- Plasser utendørshøyttaleren i eller i nærheten av dekorasjonen
- Når folk går forbi vil de bli hilst
Feilsøking
Hvis ting ikke fungerer
-
Dobbeltsjekk at kameraet fungerer ved å utføre:
- raspistill -o test.jpg
- ls -l test-j.webp" />
-
Dobbeltsjekk at lyden fungerer ved å utføre
- play/var/lib/motion/mtn_dtct_ntfy.mp3
-
hvis du ikke hører lydfilen
- sjekk at utgangsenheten er høyttaleroppsettet ditt (analogt eller USB)
- sjekk volumet
- sjekk at tillatelsene på lydfilen har 3 r i tillatelsestrengen (dvs. rw*rw*rw*)
-
Hvis alt annet mislykkes, er muligens bevegelse ikke riktig konfigurert
Hvis dette er tilfelle, bør noen online søk hjelpe, da det er mye hjelp der ute
Trinn 5: Ytterligere kommentarer
Spill av tilfeldige lydfiler
Bli lei av den samme lyden som spilles igjen og igjen, bland det!
-
Lagre flere forskjellige lydfiler med samme navn, men et sekvensielt numerisk suffiks:
soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,
-
Endre oppføringen /etc/motion/motion.conf on_event_start som følger
on_event_start play -q --multi -threaded soundFile`shuf -i 1-5 -n 1`.mp3 2>/dev/null
- Avslutt og lagre filen
-
Start bevegelsestjenesten på nytt
sudo systemctl start motion.service på nytt
- Delen `shuf -i 1-5 -n 1 '(det er ryggmerker) setter inn et tilfeldig tall fra 1 til 5 ito filnavnet som spilles av
- Så nå når det oppdages bevegelse, vil en av fem lydfiler spille
Snakker i stedet for å spille
En annen morsom vri er å sette opp en tekst-til-tale og la datamaskinen snakke en setning til folk som går forbi. Jeg liker å bruke MaryTTS som motor. Sett opp og start Mary TTS-serveren og endre on_event_start-linjen som er nevnt ovenfor for å sende inn noe å si til gifte tts-serveren (dvs. marytts/bin/marytts-submit-tekst "Hei venn")
Bruke IP -nettverkskameraer (trådløst eller på annen måte)
Bevegelsesprogrammet kan enkelt støtte IP -kameraer i nettverk ved hjelp av netcam_url og andre forskjellige netcam_xxx -innstillinger. Et enkelt online søk bør gi det du trenger.
blåtann
Hvis RPI-en har Bluetooth innebygd eller du har installert en USB Bluetooth-enhet, kan du koble høyttaleren via Bluetooth og bli kvitt ledningen.
Begrens bevegelsesopptak til mindre område
Et av problemene jeg hadde med dette oppsettet er å blåse busker og trær, samt billys som alle utløste bevegelsen for lett. Bevegelsesprogrammet har innstillinger for hvor mange rammer som må endres før bevegelse utløses, og det hjelper å ta hensyn til støy og bruk av disse. Jeg har ikke prøvd ennå, men jeg tror jeg vil trenge innstillinger som også lar deg definere et bestemt område av kameravisningen for bevegelsesdeteksjon. Dette bør tillate å definere et område like i nærheten av dekorasjonen for å utløse avspillingen av lydfilen.
Anbefalt:
Arduino blir Talking Tom: 6 trinn
Arduino Becoming Talking Tom: Et av mine eldste minner om bruk av en smarttelefon var å spille Talking Tom -spillet. Spillet var ganske enkelt. Det er en katt som heter Tom, som kan snakke, liksom. I spillet ville Tom lytte etter input via telefonens mikrofon og deretter gjenta
Talking Smart Glass for the Blind: 7 trinn
Talking Smart Glass for the Blind: Det er flere smarte tilbehør som smartbriller, smartklokker, etc. tilgjengelig på markedet. Men alle er bygget for oss. Det er en betydelig mangel på teknologi for å hjelpe de fysisk utfordrede. Jeg ønsket å bygge noe som er
RC Santa Sleigh: 10 trinn (med bilder)
RC Santa Sleigh: Hei alle sammen. I dag skal jeg vise deg hvordan du lager en skumplate RC Santa Sleigh. Jeg hadde elektronikken til overs fra et fly som ikke fungerte, og tanken hadde vært i bakhodet på meg en stund. Jeg hadde en ledig dag, og fordi det er juletid jeg
Moving and Talking Giant Lego Hulk MiniFig (10: 1 skala): 14 trinn (med bilder)
Moving and Talking Giant Lego Hulk MiniFig (10: 1 Scale): Jeg har alltid lekt med lego som barn, men jeg hadde ikke noen av de 'fancy' legoene, bare klassiske legoklosser. Jeg er også en stor fan av Marvel Cinematic Universe (MCU), og min favorittperson er Hulk. Så hvorfor ikke kombinere de to, og lage en gigant
Tiny Cute Santa Toy (Del-2): 3 trinn
Tiny Cute Santa Toy (Del-2): Jeg laget julenissen i en tidligere instruerbar, du må gjøre den før dette prosjektet. Nå kan vi gjøre det bedre