Spisu treści:

Rozmowa Santa Blowmold: 5 kroków
Rozmowa Santa Blowmold: 5 kroków

Wideo: Rozmowa Santa Blowmold: 5 kroków

Wideo: Rozmowa Santa Blowmold: 5 kroków
Wideo: PIERWSZE WSPÓLNE ŚWIĘTA! MAMY PODŁOGĘ W NOWYM DOMU 🎅🏼🏠 2024, Listopad
Anonim
Mówiący Święty Mikołaj
Mówiący Święty Mikołaj
Mówiący Święty Mikołaj
Mówiący Święty Mikołaj

Ten projekt wyjaśnia, jak zrobić dekorację, która odtwarza plik dźwiękowy, gdy ktoś przechodzi obok. Można to łatwo osiągnąć za pomocą komputera, na którym można uruchomić program Motion i jakiegoś rodzaju kamery. W tym przypadku użyłem 20-calowej dmuchawy Świętego Mikołaja. Ustawiłem Raspeberry PI z modułem kamery w oknie garażu i skierowałem go w stronę dmuchawy Świętego Mikołaja. Ukryłem zasilany głośnik zewnętrzny wewnątrz formy i poprowadziłem przewód pomocniczy o długości 25 stóp oceniane do użytku na zewnątrz od PI do tego głośnika. Ustawiam program Motion na Pi, aby odtwarzał plik dźwiękowy Ho Ho Ho z dźwiękiem Świętego Mikołaja za każdym razem, gdy wykryje ruch za pomocą aparatu. To całkiem proste i jest to świetna zabawa.

Kupienie konkretnych materiałów, których tu użyłem, prawdopodobnie kosztowałoby około 100 USD z wysyłką. Nie wydałbym tego na robienie tego, gdybym nie miał już wszystkich tych materiałów leżących nieużywanych. Może to działać z dowolnym komputerem, dowolnymi kamerami i dowolnym głośnikiem, dzięki czemu można to zrobić znacznie taniej, jeśli trzeba kupić te rzeczy.

Kieszonkowe dzieci

  • Komputer z zainstalowanym programem Motion

    Użyłem Raspberry PI (RPI) 3 Model B

  • Kamera podłączona do komputera lub kamera sieciowa
    • Dowolna kamera, z której może korzystać program Motion
    • Kamera USB
    • Kamera sieciowa
    • Użyłem tego modułu kamery, który podłącza się bezpośrednio do RPI
  • Głośnik do użytku na zewnątrz

    • Połącz przez port aux
    • USB
    • Użyłem tego Sony SRS-XB01
  • Dekoracja taka jak dmuchawa, naprawdę cokolwiek

    Użyłem dmuchawki Świętego Mikołaja bardzo podobnej do tej

Krok 1: Skonfiguruj RPI

Skonfiguruj swoje RPI
Skonfiguruj swoje RPI

Ten krok jest tutaj przeznaczony głównie dla zupełnie początkujących. Ten film wyjaśnia, jak skonfigurować Raspberry PI (RPI) lepiej niż ja. Polecam również, tak jak w filmie, podłączenie bezprzewodowego USB, klawiatury + myszy i zewnętrznego monitora do konfiguracji. Po skonfigurowaniu uruchamiam mój w garażu bez klawiatury + myszy i zewnętrznego monitora, ale zostawiam klucz sprzętowy WiFi, abym mógł się do niego ssh i ponownie uruchomić i / lub wprowadzić zmiany.

Krok 2: Podłącz kamerę do RPI

Podłącz kamerę do RPI
Podłącz kamerę do RPI

Postępuj zgodnie z instrukcjami, aby skonfigurować kamerę do RPI. Wykorzystałem moduł Camera firmy Adafruit Industries.

  • Podłącz i zabezpiecz kabel taśmowy z modułu kamery do portu kamery między portem Ethernet a portem HDMI, tak aby srebrne styki były skierowane w stronę portu HDMI, a niebieska taśma w stronę portu Ethernet.
  • Jeśli masz podłączony monitor i korzystasz z interfejsu użytkownika (Xserver), uruchom narzędzie konfiguracyjne Raspberry Pi

    Jeśli zdalny SSH do RPI z innego komputera, uruchom rasp-config w swoim terminalu - co uruchomi interfejs użytkownika terminala

  • W Raspberry Config, w zakładce Interfaces, włącz kamerę.
  • Zapisz i uruchom ponownie RPI.
  • Po ponownym uruchomieniu uruchom poniższe polecenie w terminalu, zarówno wykryte, jak i włączone powinny zostać zwrócone jako = 1

vgencmode get_camera

Twój moduł kamery PI powinien teraz działać

Instrukcje online

Krok 3: Konfiguracja i testowanie dźwięku

Konfiguracja i testowanie dźwięku
Konfiguracja i testowanie dźwięku

Początkowo w tym projekcie po prostu poprowadziłem przewód aux z PI do małego głośnika zasilanego bateryjnie. Zdarzyło się, że było dużo elektryczności statycznej, a baterie szybko się rozładowywały. Zamiast tego podłączyłem urządzenie USB, które wzmacnia dźwięk, i połączyłem przewód aux z portu wyjściowego aux do zasilanego, odpornego na warunki atmosferyczne głośnika zewnętrznego. To usunęło zakłócenia statyczne i było głośniejsze i nie trzeba się martwić o baterie. Urządzenie USB zostało automatycznie rozpoznane przez mój RPI bez konieczności instalowania sterowników.

PI OS jest dostarczany z programem o nazwie aplay, ale wolę program play z dystrybucji oprogramowania Sox, więc te instrukcje instalują Sox i używają jego polecenia play.

Zainstaluj Sox

W terminalu na RPI uruchom następujące, odpowiadając „tak” na wszelkie monity

sudo apt-get install sox

Testuj dźwięk

Pobierz kompatybilny plik dźwiękowy o niewielkim rozmiarze i zapisz go na swoim komputerze. Użyłem pliku santaho3.mp3 zapisanego w moim katalogu domowym pi. Aby przetestować dźwięk, podłącz głośnik do RPI i uruchom to polecenie:

odtwórz santaho3.mp3

  • Jeśli słyszysz plik dźwiękowy odtwarzany w głośniku, oznacza to, że dźwięk działa
  • Być może trzeba będzie wewnętrznie zmienić dźwięk z HDMI na analogowy.

    Instrukcje tutaj

  • Jeśli używasz urządzenia dźwiękowego USB, utwórz plik w swoim katalogu domowym o nazwie.asoundrc

    • Umieść w nim zawartość poniżej i uruchom ponownie, rozpocznij test audio
    • szt.! domyślnie {

      wpisz kartę sprzętową 1 } ctl.!default { wpisz kartę sprzętową 1 }

Krok 4: Skonfiguruj wykrywanie ruchu, aby odtwarzać plik dźwiękowy

Skonfiguruj wykrywanie ruchu, aby odtwarzać plik dźwiękowy
Skonfiguruj wykrywanie ruchu, aby odtwarzać plik dźwiękowy

Oprogramowanie o nazwie Motion umożliwia skonfigurowanie jednej lub więcej kamer w celu uruchomienia polecenia po wykryciu ruchu w widoku kamer. Jest dość łatwy w konfiguracji i działa całkiem dobrze. Może również nagrywać pliki podczas wykrywania ruchu, umożliwiać konfigurację strony internetowej dla każdej kamery lub jednej strony internetowej dla wszystkich kamer, a także serwery strumieniowe do oglądania strumieni na żywo z kamer. Ten projekt wymaga tylko zdolności wykrywania i wyzwalania poleceń, ale skonfigurowałem serwer przesyłania strumieniowego, aby móc również oglądać transmisję na żywo.

Zainstaluj ruch

W terminalu na RPI uruchom poniższe polecenie, odpowiadając tak na wszelkie monity, poczekaj, aż się zakończy

sudo apt-get install motion

Poświęć teraz trochę czasu, aby dodać nowo dodanego użytkownika ruchu do grupy audio, aby miał uprawnienia do odtwarzania dźwięku, wprowadzając następujące polecenie

usermod -a -G ruch audio

Skonfiguruj ruch do wykrywania

Zmodyfikujemy plik konfiguracji ruchu, aby odtworzyć plik dźwiękowy, który pobraliśmy w kroku Konfiguracja dźwięku, gdy wykryje ruch w kamerze i uruchomimy ruch jako usługę, aby kontynuował to przy każdym ponownym uruchomieniu RPI.

W terminalu edytuj plik /etc/motion/motion.conf jako superużytkownik

sudo nano /etc/default/motion

W terminalu edytuj plik /etc/motion/motion.conf jako superużytkownik

sudo nano /etc/motion/motion.conf

Wprowadź i zapisz następujące zmiany. Wiele z nich to wartości domyślne. Nie sądzę, żeby wpisy mmal_xxx miały jakikolwiek skutek, ale zostawiam je na wypadek, gdyby ktoś ich potrzebował - też nie szkodzą. Ta konfiguracja wykrywa ruch w kamerze w 40-sekundowych odstępach, nie rejestruje obrazów ani wideo, a także konfiguruje serwer sieciowy i serwer strumieniowy dla kamery chroniony podstawowym uwierzytelnianiem przy użyciu nazwy użytkownika i hasła.

demon włączony

plik_id_procesu /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 częstotliwość 0 power_line_frequency -1 obrót 0 flip_axis brak szerokość 320 wysokość 240 framerate 2 minimum_frame_time 0 netcam_keepalive wyłączone netcam_tolerant_check wyłączone rtsp_uses_tcp włączony mmalcam_name vc.ril.camera auto_brightness wyłączony jasność 0 kontrast 0 nasycenie 0 odcień 0 roundrobin_frames 1 roundrobin_skip 1 próg wyłączenia filtra 500 threshold_tune wyłączony noise_level 22 noise_tune on despeckle_filter EedDl smart_mask_capture_speed_ 0 lightswitchs minimum 1 output_pictures off output_debug_pictures off quality 75 picture_type jpeg ffmpeg_output_movies wyłączonymi ffmpeg_output_debug_movies wyłączonymi ffmpeg_bps 400000 ffmpeg_variable_bitrate 0 ffmpeg_video_codec mp4 ffmpeg_duplicate_intervals 0 mp timelapse_timelapse_mode_dziennym poklatkowym_ apshot_interval 0 locate_motion_mode wył. locate_motion_style box text_right %Y-%m-%d\n%T-%q text_changes wył. text_event %Y%m%d%H%M%S text_double wył. target_dir /var/lib/motion snapshot_filename %v- %Y%m%d%H%M%S-snapshot 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 wyłączone stream_port 8481 stream_quality 80 stream_motion wyłączone stream_maxrate 1 stream_localhost wyłączone stream_limit 0 stream_auth_method 1 stream_authentication: webcontrol_port 8480 webcontrol_localhost wyłączone webcontrol_html_output on webcontrol_authetracktype 0_trackx_step_mov_track cichy on_event_start /usr/bin/play -q --multi-threaded /var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null

Skopiuj plik audio do pliku dźwiękowego do katalogu domowego motion i zmień do niego uprawnienia, aby motion posiadał go, ale wszyscy mogli go odczytać

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

Uruchom ponownie urządzenie RPI. Po uruchomieniu uruchom

sudo systemctl status motion.service

Dane wyjściowe powinny zawierać linię, która mówi:

Aktywny: aktywny (w biegu) od

Jeśli widzisz, że ten ruch jest uruchomiony. Jeśli nie, sprawdź /var/log/motion, aby poznać szczegóły. Spróbuj uruchomić:

sudo systemctl uruchom motion.service

Przetestuj wykrywanie ruchu i odtwarzanie dźwięku

Prawie skończone. Wystarczy sprawdzić, czy wykrywany jest ruch, a dźwięk jest odtwarzany, gdy jest.

W terminalu wykonaj następujące czynności, aby obejrzeć dołączony tekst do pliku dziennika

ogon -f /var/log/ruch

Ale już:

  • Powoli pomachaj czymś przed kamerą
  • Plik dziennika powinien informować o wykryciu ruchu
  • Mam nadzieję, że plik dźwiękowy jest odtwarzany przez głośnik
  • Jeśli tak, umieść RIP w oknie z obiektywem kamery skierowanym tam, gdzie ma zostać wykryty ruch
  • Umieść głośnik zewnętrzny w dekoracji lub w jej pobliżu
  • Kiedy ludzie przejdą obok, zostaną powitani

Rozwiązywanie problemów

Jeśli coś nie działa

  • Sprawdź dokładnie, czy kamera działa, wykonując:

    • raspistill -o test.jpg
    • ls -l test-j.webp" />
  • Dokładnie sprawdź, czy dźwięk działa, wykonując

    • odtwórz /var/lib/motion/ mtn_dtct_ntfy.mp3
    • jeśli nie słyszysz pliku dźwiękowego

      • sprawdź, czy urządzenie wyjściowe to konfiguracja głośników (analogowe lub USB)
      • sprawdź głośność
      • sprawdź, czy uprawnienia do pliku dźwiękowego mają 3 „r” w ciągu uprawnień (tj. rw*rw*rw*)
  • Jeśli wszystko inne zawodzi, prawdopodobnie ruch nie jest ustawiony poprawnie

    jeśli tak jest, niektóre wyszukiwania online powinny pomóc, ponieważ jest tam dużo pomocy

Krok 5: Dodatkowe komentarze

dodatkowe komentarze
dodatkowe komentarze

Odtwarzaj losowe pliki dźwiękowe

Nudzi się tym samym dźwiękiem odtwarzanym w kółko, miksuj to!

  • Zapisz kilka różnych plików dźwiękowych o tej samej nazwie, ale z sekwencyjnym sufiksem numerycznym:

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

  • Zmień wpis /etc/motion/motion.conf on_event_start w następujący sposób

    on_event_start play -q --wielowątkowy plik dźwiękowy`shuf -i 1-5 -n 1`.mp3 2>/dev/null

  • Wyjdź i zapisz plik
  • Uruchom ponownie usługę ruchu

    sudo systemctl restart motion.service

  • Część `shuf -i 1-5 -n 1` (to są wsteczne znaczniki) wstawia losową liczbę od 1 do 5 do nazwy odtwarzanego pliku
  • Więc teraz po wykryciu ruchu zostanie odtworzony jeden z 5 plików dźwiękowych

Mówić zamiast grać

Kolejną zabawną zmianą jest skonfigurowanie funkcji Text-to-Speech i sprawienie, aby komputer wypowiedział zdanie do przechodzących osób. Lubię używać MaryTTS jako silnika. Skonfiguruj i uruchom serwer Mary TTS i zmień wiersz on_event_start wymieniony powyżej, aby przesłać coś do powiedzenia serwerowi marry tts (np. marytts/bin/marytts-submit-text „Witaj przyjacielu”)

Korzystanie z kamer sieciowych IP (bezprzewodowo lub w inny sposób)

Program do obsługi ruchu może z łatwością obsługiwać sieciowe kamery IP za pomocą netcam_url i innych różnych ustawień netcam_xxx. Proste wyszukiwanie online powinno zapewnić to, co jest potrzebne.

Bluetooth

Jeśli twój RPI ma wbudowany Bluetooth lub zainstalowałeś urządzenie USB Bluetooth, możesz podłączyć głośnik przez Bluetooth i pozbyć się przewodu.

Ogranicz przechwytywanie ruchu do mniejszego obszaru

Jednym z problemów, jakie miałem z tą konfiguracją, jest dmuchanie w krzewy i drzewa, a także światła samochodowe, które zbyt łatwo wyzwalały ruch. Program ruchu ma ustawienia określające, ile klatek należy zmienić, zanim ruch zostanie wyzwolony, a także uwzględnienie szumu i korzystanie z nich pomogło. Jeszcze nie próbowałem, ale myślę, że będę potrzebować ustawień, które pozwolą również zdefiniować określony obszar widoku kamery do wykrywania ruchu. Powinno to pozwolić na zdefiniowanie obszaru tuż obok dekoracji, aby uruchomić odtwarzanie pliku dźwiękowego.

Zalecana: