Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Skonfiguruj RPI
- Krok 2: Podłącz kamerę do RPI
- Krok 3: Konfiguracja i testowanie dźwięku
- Krok 4: Skonfiguruj wykrywanie ruchu, aby odtwarzać plik dźwiękowy
- Krok 5: Dodatkowe komentarze
Wideo: Rozmowa Santa Blowmold: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-31 10:23
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
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
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
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
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
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:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
Rozmowa o inteligentnym szkle dla niewidomych: 7 kroków
Talking Smart Glass for the Blind: Na rynku dostępnych jest wiele inteligentnych akcesoriów, takich jak inteligentne okulary, inteligentne zegarki itp. Ale wszystkie są zbudowane dla nas. Istnieje znaczny brak technologii, która mogłaby pomóc osobom niepełnosprawnym fizycznie. Chciałem zbudować coś, co jest
Lewitacja akustyczna z Arduino Uno krok po kroku (8 kroków): 8 kroków
Lewitacja akustyczna z Arduino Uno Krok po kroku (8-kroków): ultradźwiękowe przetworniki dźwięku Zasilacz żeński L298N Dc z męskim pinem dc Arduino UNOBreadboardJak to działa: Najpierw wgrywasz kod do Arduino Uno (jest to mikrokontroler wyposażony w cyfrowy oraz porty analogowe do konwersji kodu (C++)
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: 6 kroków
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: W tym samouczku dowiemy się, jak śledzić kroki silnika krokowego na wyświetlaczu OLED. Obejrzyj film demonstracyjny.Kredyt samouczka oryginalnego trafia do użytkownika YouTube „sky4fly”
RC Santa Sleigh: 10 kroków (ze zdjęciami)
RC Santa Sleigh: Cześć wszystkim. Dzisiaj pokażę wam, jak zrobić piankową deskę RC Santa Sleigh. Miałem elektronikę z samolotu, który nie działał, a pomysł był w mojej głowie chwila. Miałam wolny dzień, a ponieważ są Święta