Sommario:

Blowmold parlante di Babbo Natale: 5 passaggi
Blowmold parlante di Babbo Natale: 5 passaggi

Video: Blowmold parlante di Babbo Natale: 5 passaggi

Video: Blowmold parlante di Babbo Natale: 5 passaggi
Video: Encroaching Waters | Critical Role | Campaign 2, Episode 34 2024, Dicembre
Anonim
Blowmold parlante di Babbo Natale
Blowmold parlante di Babbo Natale
Blowmold parlante di Babbo Natale
Blowmold parlante di Babbo Natale

Questo progetto spiega come realizzare una decorazione che riproduca un file audio quando passa qualcuno. Questo può essere facilmente realizzato con un computer in grado di eseguire il programma Motion e una fotocamera di qualche tipo. In questo caso ho usato uno stampo di Babbo Natale alto 20 . Ho installato il mio Raspeberry PI con il modulo della fotocamera nella finestra del mio garage e l'ho puntato verso lo stampo di Babbo Natale. Ho nascosto un altoparlante esterno alimentato all'interno dello stampo e ho collegato un cavo aux di 25 piedi valutato per uso esterno dal PI a questo altoparlante. Ho impostato il programma Motion sul Pi per riprodurre un file audio Ho Ho Ho che suona Babbo Natale ogni volta che rileva un movimento utilizzando la fotocamera. È piuttosto semplice da fare ed è molto divertente.

Acquistare i materiali specifici che ho usato qui probabilmente costerebbe circa $ 100 con spedizione. Non lo spenderei per realizzarlo se non avessi già tutti questi materiali in giro inutilizzati. Questo può funzionare con qualsiasi computer, qualsiasi fotocamera e qualsiasi altoparlante, quindi può essere realizzato in modo molto più economico se è necessario acquistare queste cose.

Forniture

  • Un computer con installato il programma Motion

    Ho usato un Raspberry PI (RPI) 3 Modello B

  • Fotocamera collegata al computer o telecamera di rete

    • Qualsiasi telecamera che il programma Motion può utilizzare
    • Fotocamera USB
    • Telecamera di rete
    • Ho usato questo modulo fotocamera che si collega direttamente all'RPI
  • Un diffusore per esterni

    • Connetti tramite porta aux
    • USB
    • Ho usato questo Sony SRS-XB01
  • Una decorazione come il soffiaggio, qualsiasi cosa davvero

    Ho usato uno stampo di Babbo Natale molto simile a questo

Passaggio 1: imposta il tuo RPI

Imposta il tuo RPI
Imposta il tuo RPI

Questo passaggio è qui principalmente per principianti assoluti. Questo video spiega come configurare un Raspberry PI (RPI) meglio di quanto potrei. Consiglierei anche, come nel video, di collegare un USB wireless, una tastiera + un mouse e un monitor esterno per l'installazione. Una volta configurato, eseguo il mio nel mio garage senza tastiera + mouse e monitor esterno, ma lascio il dongle Wi-Fi in modo da poterlo inserire e riavviare e/o apportare modifiche.

Passaggio 2: collegare la fotocamera all'RPI

Collega la fotocamera a RPI
Collega la fotocamera a RPI

Segui le istruzioni per configurare la fotocamera per il tuo RPI. Ho usato il modulo Camera di Adafruit Industries.

  • Collega e fissa il cavo a nastro dal modulo della fotocamera alla porta della fotocamera tra la porta Ethernet e la porta HDMI con i contatti a nastro rivolti verso la porta HDMI e il nastro blu rivolto verso la porta Ethernet.
  • Se hai un monitor collegato e stai eseguendo l'interfaccia utente (Xserver), esegui lo strumento di configurazione Raspberry Pi

    Se SSH remoto nell'rpi da un altro computer, esegui rasp-config nel tuo terminale, che avvierà un'interfaccia utente del terminale

  • In Raspberry Config, nella scheda Interfacce, abilita la fotocamera.
  • Salva e riavvia l'RPI.
  • Al riavvio, esegui il comando seguente in un terminale, sia rilevato che abilitato dovrebbe restituire come = 1

vgencmode get_camera

Il tuo modulo PI Camera dovrebbe funzionare ora

Istruzioni in linea

Passaggio 3: configurazione e test dell'audio

Configurazione e test dell'audio
Configurazione e test dell'audio

Inizialmente per questo progetto ho semplicemente collegato un cavo aux dal PI a un piccolo altoparlante alimentato a batteria. È successo che c'era un sacco di elettricità statica e le batterie si scaricavano rapidamente. Invece ho collegato un dispositivo USB che amplifica il suono e ho fatto passare il cavo aux dalla porta di uscita aux su di esso a un altoparlante esterno alimentato resistente alle intemperie. Questo ha rimosso l'elettricità statica ed era più rumoroso e senza batterie di cui preoccuparsi. Il dispositivo USB è stato riconosciuto automaticamente dal mio RPI senza che fosse richiesta l'installazione di driver.

PI OS viene fornito con un programma chiamato aplay, ma preferisco il programma di riproduzione della distribuzione del software Sox, quindi queste istruzioni installano Sox e usano il suo comando di riproduzione.

Installa Sox

In un terminale sull'RPI eseguire quanto segue rispondendo sì a qualsiasi richiesta

sudo apt-get install sox

Prova suono

Scarica un file audio compatibile di piccole dimensioni e salvalo sul tuo computer. Ho usato santaho3.mp3 salvato nella mia home directory pi. Per testare il suono, collega il tuo altoparlante all'RPI ed esegui questo comando:

gioca santaho3.mp3

  • Se senti il file audio riprodotto nell'altoparlante, significa che l'audio funziona
  • Potrebbe essere necessario modificare internamente il suono da HDMI ad analogico.

    Istruzioni qui

  • Se utilizzi un dispositivo audio USB, crea un file nella tua home directory chiamato.asoundrc

    • Inserisci il contenuto qui sotto e riavvia, inizia il test audio
    • pcm.!default {

      digita hw card 1 } ctl.!default { digita hw card 1 }

Passaggio 4: imposta il rilevamento del movimento per riprodurre il file audio

Imposta il rilevamento del movimento per riprodurre il file audio
Imposta il rilevamento del movimento per riprodurre il file audio

Il software denominato Motion consente di configurare una o più telecamere allo scopo di eseguire un comando quando viene rilevato un movimento nella vista o nelle viste della telecamera. È abbastanza facile da configurare e funziona abbastanza bene. Può anche registrare file durante il rilevamento di movimenti, consentire la configurazione di un sito Web per ciascuna telecamera o un singolo sito Web per tutte le telecamere e server di streaming per guardare i flussi live delle telecamere. Questo progetto richiede solo la capacità di rilevamento e attivazione dei comandi, ma ho configurato un server di streaming per poter guardare anche un live streaming.

Installa movimento

In un terminale sull'RPI, esegui il comando seguente rispondendo sì a qualsiasi richiesta, attendi che finisca

sudo apt-get install motion

Prenditi del tempo ora per aggiungere l'utente di movimento appena aggiunto al gruppo audio in modo che abbia il permesso di riprodurre l'audio inserendo il seguente comando

usermod -a -G movimento audio

Configura il movimento per il rilevamento

Modificheremo il file di configurazione del movimento per riprodurre il file audio che abbiamo scaricato nel passaggio Configurazione audio quando rileva il movimento sulla telecamera e avvia il movimento come servizio in modo che continui a farlo quando si riavvia l'RPI.

In un terminale modifica il file /etc/motion/motion.conf come super utente

sudo nano /etc/default/motion

In un terminale modifica il file /etc/motion/motion.conf come super utente

sudo nano /etc/motion/motion.conf

Apporta e salva le seguenti modifiche. Molti di questi sono valori predefiniti. Non penso che nel mio caso le voci mmal_xxx abbiano alcun effetto, ma le lascio nel caso in cui qualcuno ne abbia bisogno - anche loro non fanno male. Questa configurazione rileva il movimento sulla telecamera a intervalli di 40 secondi, non registra immagini o video e configura un server Web e un server di streaming per la telecamera protetti con autenticazione di base utilizzando un nome utente e una password.

demone acceso

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 ruotare 0 flip_axis nessuno width 320 height 240 framerate 2 minimo_frame_time 0 netcam_keepalive off netcam_tolerant_check off rtsp_uses_tcp on mmalcam_name vc.ril.camera auto_brightness off luminosità 0 contrasto 0 saturazione 0 hue 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter off soglia 500 soglia_tune off noise_level 22 noise_tune on despeckle_filter 40 epmotemulation_mask_motion_speed_frame 0 lightcaptime_maxframe 0 minimo event 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 true timelapse_pipet mpgmp timelapse_interval giornaliero off_lapse time_modeps time_codec 0 ffmpeg_video_codec mp4 ffmpeg_duplicate_frames true timelapse_pipet lapsed time_codeps daily timelapse_interval 0 time_mode 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-istantanea nome_file immagine %v-%Y%m%d%H%M%S-%q nome_file filmato %v-%Y%m%d%H%M%S nome_file timelapse %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_localhost off webcontrol_html_output su webcontrol_html_output 10 trackyit_authentication 10 trackstep_step_step_size_trackjotrack_step_tangle_io track_type 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

Copia il file audio nel file audio nella directory home di motion e modifica i permessi su di esso in modo che motion lo possieda ma tutti possano leggerlo

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

Riavvia il dispositivo RPI. Una volta avviato, esegui

sudo systemctl status motion.service

L'output dovrebbe includere una riga che dice:

Attivo: attivo (in esecuzione) dal

Se vedi che questo movimento è in esecuzione. In caso contrario, controlla /var/log/motion per i dettagli. Prova a eseguire:

sudo systemctl start motion.service

Prova il rilevamento del movimento e la riproduzione del suono

Quasi fatto. Ho solo bisogno di controllare se il movimento viene rilevato e il suono viene riprodotto quando lo è.

In un terminale, fai quanto segue per guardare il testo aggiunto al file di registro

tail -f /var/log/movimento

Ora:

  • Agita lentamente qualcosa davanti alla telecamera
  • Il file di registro dovrebbe mostrare che il movimento è stato rilevato
  • Si spera che il file audio venga riprodotto attraverso l'altoparlante
  • In tal caso, posizionare il RIP in una finestra con l'obiettivo della fotocamera rivolto verso il punto in cui si desidera rilevare il movimento
  • Posiziona l'altoparlante esterno dentro o vicino alla decorazione
  • Quando le persone passano saranno salutate

Risoluzione dei problemi

Se le cose non funzionano

  • Ricontrolla che la fotocamera funzioni eseguendo:

    • raspistill -o test.jpg
    • ls -l test-j.webp" />
  • Ricontrolla che l'audio funzioni eseguendo

    • riproduci /var/lib/motion/ mtn_dtct_ntfy.mp3
    • se non si sente il file audio

      • controlla che il dispositivo di output sia la configurazione degli altoparlanti (analogico o USB)
      • controlla il volume
      • controlla che i permessi sul file audio abbiano 3 'r nella stringa dei permessi (cioè rw*rw*rw*)
  • Se tutto il resto fallisce, è possibile che il movimento non sia impostato correttamente

    se questo è il caso, alcune ricerche online dovrebbero aiutare in quanto c'è molto aiuto là fuori

Passaggio 5: commenti aggiuntivi

Commenti aggiuntivi
Commenti aggiuntivi

Riproduci file audio casuali

Annoiarsi con lo stesso suono che suona ancora e ancora, mescolalo!

  • Salva diversi file audio con lo stesso nome ma un suffisso numerico sequenziale:

    soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,

  • Modificare la voce /etc/motion/motion.conf on_event_start come segue

    on_event_start play -q --multi-threaded soundFile`shuf -i 1-5 -n 1`.mp3 2>/dev/null

  • Esci e salva il file
  • Riavvia il servizio di movimento

    sudo systemctl restart motion.service

  • La parte `shuf -i 1-5 -n 1` (quelli sono back tick) inserisce un numero casuale da 1 a 5 i nel nome del file in riproduzione
  • Quindi ora, quando viene rilevato un movimento, verrà riprodotto uno qualsiasi dei 5 file audio

Parlare invece di giocare

Un'altra svolta divertente è quella di impostare un Text-to-Speech e fare in modo che il computer pronunci una frase alle persone che passano. Mi piace usare MaryTTS come motore. Imposta e avvia il server Mary TTS e cambia la riga on_event_start menzionata sopra per inviare qualcosa da dire al server Mary TTS (es. marytts/bin/marytts-submit-text "Hello friend")

Utilizzo di telecamere di rete IP (wireless o altro)

Il programma di movimento può supportare facilmente le telecamere IP in rete utilizzando netcam_url e altre varie impostazioni netcam_xxx. Una semplice ricerca online dovrebbe fornire ciò che è necessario.

Bluetooth

Se il tuo RPI ha il Bluetooth integrato o hai installato un dispositivo Bluetooth USB, puoi collegare l'altoparlante tramite Bluetooth ed eliminare il cavo.

Limita la cattura del movimento a un'area più piccola

Uno dei problemi che ho avuto con questa configurazione è stato il soffiare arbusti e alberi, nonché le luci delle auto, che hanno innescato il movimento troppo facilmente. Il programma di movimento ha impostazioni per quanti fotogrammi devono essere modificati prima che il movimento venga attivato e tiene conto del rumore e l'utilizzo di questi ha aiutato. Non ho ancora provato, ma penso che avrò bisogno di impostazioni che consentano anche di definire un'area specifica della vista della telecamera per il rilevamento del movimento. Questo dovrebbe consentire di definire un'area proprio vicino alla decorazione per attivare la riproduzione del file audio.

Consigliato: