Оглавление:
- Запасы
- Шаг 1. Настройте свой RPI
- Шаг 2: прикрепите камеру к RPI
- Шаг 3. Настройка и проверка звука
- Шаг 4: Настройте обнаружение движения для воспроизведения звукового файла
- Шаг 5: Дополнительные комментарии
Видео: Talking Santa Blowmold: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-31 10:24
В этом проекте объясняется, как сделать украшение, которое воспроизводит звуковой файл, когда кто-то проходит мимо. Это легко сделать с помощью компьютера, на котором можно запустить программу Motion, и какой-либо камеры. В этом случае я использовал выдувную форму Санта-Клауса высотой 20 дюймов. Я установил свою Raspeberry PI с модулем камеры в окне гаража и направил ее на выдувную форму Санта-Клауса. Я спрятал внешний динамик с питанием внутри выдувной формы и проложил 25-футовый вспомогательный шнур. рассчитан на использование на открытом воздухе от PI до этого динамика. Я установил программу Motion на Pi, чтобы воспроизводить звуковой файл, звучащий в стиле Санта-Клауса, каждый раз, когда он обнаруживает движение с помощью камеры. Это довольно просто сделать, и это очень весело.
Покупка конкретных материалов, которые я использовал здесь, вероятно, обойдется примерно в 100 долларов с доставкой. Я бы не стал тратить это на создание этого, если бы у меня не было всех этих материалов, лежащих неиспользованными. Это может работать с любым компьютером, любыми камерами и любым динамиком, так что это можно сделать намного дешевле, если нужно будет покупать эти вещи.
Запасы
-
Компьютер с установленной программой Motion
Я использовал Raspberry PI (RPI) 3 Model B
-
Подключенная к компьютеру камера или сетевая камера
- Любая камера, которую может использовать программа Motion
- USB-камера
- Сетевая камера
- Я использовал этот модуль камеры, который подключается непосредственно к RPI.
-
Внешний динамик
- Подключить через порт aux
- USB
- Я использовал этот Sony SRS-XB01
-
Такое украшение, как выдувная форма, что-нибудь на самом деле
Я использовал выдувную форму Санта-Клауса, очень похожую на эту
Шаг 1. Настройте свой RPI
Этот шаг предназначен в основном для начинающих. Это видео объясняет, как настроить Raspberry PI (RPI) лучше, чем я. Я также рекомендовал бы, как и в видео, подключить беспроводной USB, клавиатуру + мышь и внешний монитор для настройки. После настройки я запускаю свой в гараже без клавиатуры + мыши и внешнего монитора, но я оставляю ключ WIFi, чтобы я мог использовать ssh и перезагружаться и / или вносить изменения.
Шаг 2: прикрепите камеру к RPI
Следуйте инструкциям, чтобы настроить камеру для вашего RPI. Я использовал модуль камеры от Adafruit Industries.
- Подключите и закрепите ленточный кабель от модуля камеры к порту камеры между портом Ethernet и портом HDMI так, чтобы плоские контакты были обращены к порту HDMI, а синяя лента была обращена к порту Ethernet.
-
Если у вас подключен монитор и вы используете пользовательский интерфейс (Xserver), запустите инструмент настройки Raspberry Pi.
Если удаленный SSH в rpi с другого компьютера, запустите rasp-config в своем терминале - это запустит пользовательский интерфейс терминала
- В Raspberry Config на вкладке Interfaces включите Camera.
- Сохраните и перезагрузите RPI.
- После перезагрузки запустите приведенную ниже команду в терминале, и обнаружение, и включение должны возвращать как = 1
vgencmode get_camera
Теперь ваш модуль PI Camera должен работать
Онлайн-инструкции
Шаг 3. Настройка и проверка звука
Первоначально для этого проекта я просто протянул вспомогательный шнур от PI к небольшому динамику с батарейным питанием. Там было много статического электричества, и батареи быстро разрядились. Вместо этого я подключил USB-устройство, которое усиливает звук, и протянул вспомогательный шнур от вспомогательного выходного порта к внешнему динамику, устойчивому к атмосферным воздействиям. Это сняло статический заряд, стало громче, и не о батареях беспокоиться. USB-устройство было автоматически распознано моим RPI, установка драйверов не требовалась.
PI OS поставляется с программой под названием aplay, но я предпочитаю программу play из дистрибутива программного обеспечения Sox, поэтому эти инструкции устанавливают Sox и используют ее команду play.
Установить Sox
В терминале на RPI запустите следующий ответ "да" на любые запросы
sudo apt-get install sox
Тестовый звук
Загрузите совместимый звуковой файл небольшого размера и сохраните его на своем компьютере. Я использовал файл santaho3.mp3, сохраненный в моем домашнем каталоге pi. Чтобы проверить звук, подключите динамик к RPI и выполните эту команду:
играть santaho3.mp3
- Если в динамике воспроизводится звуковой файл, значит, звук работает.
-
Возможно, вам придется внутренне изменить звук с HDMI на аналоговый.
Инструкции здесь
-
При использовании звукового USB-устройства создайте в домашнем каталоге файл с именем.asoundrc.
- Поместите в него содержимое ниже и перезагрузитесь, начните аудиотест
-
pcm.! default {
введите hw card 1} ctl.! default {type hw card 1}
Шаг 4: Настройте обнаружение движения для воспроизведения звукового файла
Программное обеспечение под названием «Движение» позволяет настроить одну или несколько камер для выполнения команды при обнаружении движения в представлении (ах) камеры (ах). Его довольно легко настроить и он работает очень хорошо. Он также может записывать файлы при обнаружении движения, позволяет настраивать веб-сайт для каждой камеры или отдельный веб-сайт для всех камер и серверы потоковой передачи для просмотра потоковой передачи с камер в реальном времени. Этому проекту нужна только возможность обнаружения и запуска команд, но я установил потоковый сервер, чтобы также иметь возможность смотреть прямую трансляцию.
Установить движение
В терминале на RPI выполните команду ниже, отвечая «да» на любые запросы, дождитесь ее завершения.
sudo apt-get install motion
Найдите время, чтобы добавить недавно добавленного пользователя движения в аудиогруппу, чтобы у него было разрешение на воспроизведение звука, введя следующую команду
usermod -a -G движение звука
Настроить движение для обнаружения
Мы отредактируем файл конфигурации движения, чтобы воспроизводить звуковой файл, который мы загрузили на этапе настройки звука, когда он обнаруживает движение на камере и запускает движение как услугу, чтобы он продолжал делать это при перезагрузке RPI.
В терминале отредактируйте файл /etc/motion/motion.conf как суперпользователь.
Судо нано / и т. д. / по умолчанию / движение
В терминале отредактируйте файл /etc/motion/motion.conf как суперпользователь.
sudo nano /etc/motion/motion.conf
Внесите и сохраните следующие правки. Многие из них являются значениями по умолчанию. Я не думаю, что в моем случае записи mmal_xxx имеют какое-либо влияние, но я оставляю их на случай, если они кому-то понадобятся - они тоже не причинят вреда. Эта конфигурация обнаруживает движение на камере с интервалом в 40 секунд, не записывает изображения или видео и настраивает веб-сервер и сервер потоковой передачи для камеры, защищенной базовой аутентификацией с использованием имени пользователя и пароля.
демон на
process_id_file /var/run/motion/motion.pid
setup_mode off файл журнала /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 rotate 0 flip_axis none width 320 height 240 framerate 2 minimum_frame_time 0 netcam_keepalive off netcheepalive off netcam_tolerant rtsp_uses_tcp on mmalcam_name vc.ril.camera auto_brightness off яркость 0 контраст 0 насыщенность 0 оттенок 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter off порог 500 threshold_tune off noise_level 22 noise_tune on despeckle_filter EedDl_max_master_movie_main_speed 0 event_master_mocie_speed 0 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_time_codec_ru_du_valapse_time_dex_time_dudec_dex_map_video_codec mp4_время_дупликации_время_эксплуатации_выкл. 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-снимок имя_файла_картинки% v-% Y% m% d% H% M% S-% q имя_файла_фильма% v-% Y% m% d% H% M% S имя_файла_времени % Y% м% d-покадровой ipv6_enabled от stream_port 8481 stream_quality 80 stream_motion от stream_maxrate 1 stream_localhost от stream_limit 0 stream_auth_method 1 stream_authentication: webcontrol_port 8480 webcontrol_localhost от webcontrol_html_output на webcontrol_authentication: track_type 0 track_auto от track_iomojo_id 0 track_step_angle_x 10 track_step_angle_y 10 track_move_wait 10 track_speed 255 track_stepsize 40 тихо при on_event_start / usr / bin / play -q --multi-thread / var / lib / motion / notify`shuf -i 1-5 -n 1`.mp3 2> / dev / null
Скопируйте аудиофайл в звуковой файл в домашний каталог движения и измените права доступа к нему, чтобы он принадлежал движению, но все могли его прочитать.
sudo cp /home/pi/santaho.mp3 /var/lib/motion/mtn_dtct_ntfy.mp3
sudo chown движение /var/lib/motion/mtn_dtct_ntfy.mp3
sudo chmod a + r /var/lib/motion/mtn_dtct_ntfy.mp3
Перезагрузите устройство RPI. После загрузки запустите
sudo systemctl status motion.service
Вывод должен включать строку, в которой говорится:
Активный: активен (работает) с
Если вы видите, что это движение запущено. Если нет, за подробностями обращайтесь к / var / log / motion. Попробуйте запустить:
sudo systemctl start motion.service
Проверка обнаружения движения и воспроизведения звука
Почти сделано. Просто нужно проверить, обнаруживается ли движение и воспроизводится ли звук при его обнаружении.
В терминале выполните следующие действия, чтобы просмотреть добавленный текст в файл журнала.
хвост -f / var / log / движение
Теперь:
- Медленно помашите чем-то перед камерой
- В файле журнала должно быть указано, что движение было обнаружено.
- Надеюсь, звуковой файл воспроизводится через динамик
- В таком случае поместите RIP в окно так, чтобы объектив камеры был направлен туда, где должно быть обнаружено движение.
- Поместите наружный динамик в украшение или рядом с ним.
- Когда люди проходят мимо, их будут приветствовать
Исправление проблем
Если что-то не работает
-
Дважды проверьте работу камеры, выполнив:
- raspistill -o test.jpg
- ls -l test-j.webp" />
-
Дважды проверьте, работает ли звук, выполнив
- играть / var / lib / motion / mtn_dtct_ntfy.mp3
-
если не слышишь звуковой файл
- убедитесь, что устройство вывода соответствует настройкам ваших динамиков (аналоговым или USB)
- проверить громкость
- проверьте, что права доступа к звуковому файлу имеют 3 символа r в строке разрешений (т.е. rw * rw * rw *)
-
Если ничего не помогает, возможно, движение настроено неправильно.
в этом случае некоторые поисковые запросы в Интернете должны помочь, так как там много помощи
Шаг 5: Дополнительные комментарии
Воспроизведение случайных звуковых файлов
Вам надоедает один и тот же звук, повторяющийся снова и снова, смешайте это!
-
Сохраните несколько разных звуковых файлов с тем же именем, но с последовательным числовым суффиксом:
soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,
-
Измените запись /etc/motion/motion.conf on_event_start следующим образом
on_event_start play -q - многопоточный звуковой файл`shuf -i 1-5 -n 1`.mp3 2> / dev / null
- Выйдите и сохраните файл
-
Перезапустите службу движения
sudo systemctl перезапустить motion.service
- Часть `shuf -i 1-5 -n 1` (это обратные галочки) вставляет случайное число от 1 до 5 в имя воспроизводимого файла.
- Итак, теперь при обнаружении движения будет воспроизводиться любой из 5 звуковых файлов.
Говорить вместо игры
Еще один забавный поворот - настроить преобразование текста в речь, чтобы компьютер произносил предложение для проходящих мимо людей. Мне нравится использовать МариТТС в качестве движка. Настройте и запустите сервер Mary TTS и измените указанную выше строку on_event_start, чтобы отправить сообщение серверу marry tts (например, marytts / bin / marytts-submit-text «Привет, друг»)
Использование сетевых IP-камер (беспроводных или иных)
Программа движения может легко поддерживать сетевые IP-камеры с использованием netcam_url и других различных настроек netcam_xxx. Простой онлайн-поиск должен предоставить все необходимое.
блютуз
Если ваш RPI имеет встроенный Bluetooth или вы установили USB-устройство Bluetooth, вы можете подключить динамик через Bluetooth и избавиться от провода.
Ограничьте захват движения меньшей областью
Одна из проблем, с которыми я столкнулся с этой установкой, - это то, что задувание кустов и деревьев, а также автомобильные фары слишком легко вызывали движение. Программа движения имеет настройки того, сколько кадров необходимо изменить, прежде чем движение будет запущено, и учитывает шум, и их использование помогает. Я еще не пробовал, но думаю, мне понадобятся настройки, которые также позволят определить определенную область обзора камеры для обнаружения движения. Это должно позволить определить область рядом с украшением, чтобы запустить воспроизведение звукового файла.
Рекомендуемые:
Дизайн игры в Flick за 5 шагов: 5 шагов
Дизайн игры в Flick за 5 шагов: Flick - это действительно простой способ создания игры, особенно чего-то вроде головоломки, визуального романа или приключенческой игры
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Играйте в Doom на своем IPod за 5 простых шагов !: 5 шагов
Играйте в Doom на своем IPod за 5 простых шагов!: Пошаговое руководство по двойной загрузке Rockbox на iPod, чтобы играть в Doom и десятки других игр. Это действительно легко сделать, но многие люди до сих пор удивляются, когда видят, как я играю дум на своем iPod, и путаются с инструкциями
Talking Smart Glass для слепых: 7 шагов
Talking Smart Glass для слепых: на рынке доступно несколько умных аксессуаров, таких как умные очки, умные часы и т. Д. Но все они созданы для нас. Существует значительный недостаток технологий для помощи людям с ограниченными физическими возможностями. Я хотел построить что-то, что
Pi Zero Talking Radio: 7 шагов (с изображениями)
Pi Zero Talking Radio: это настольное радио DeWald конца 1940-х годов, которое я дал новой жизни, используя Raspberry Pi Zero, Blinkt! Светодиодная лента и пара динамиков для ПК. Он считывает уведомления от ряда подключенных к Интернету служб с помощью преобразования текста в речь (TTS) Pyvona