Table des matières:
- Fournitures
- Étape 1: Configurez votre RPI
- Étape 2: Attachez la caméra au RPI
- Étape 3: configuration et test audio
- Étape 4: Configurer la détection de mouvement pour lire le fichier son
- Étape 5: Commentaires supplémentaires
Vidéo: Talking Santa Blowmold : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-31 10:19
Ce projet explique comment faire une décoration qui joue un fichier son lorsque quelqu'un passe. Cela peut être facilement accompli avec un ordinateur qui peut exécuter le programme Motion et une caméra quelconque. Dans ce cas, j'ai utilisé un moule de soufflage du Père Noël de 20 de haut. J'ai installé mon Raspeberry PI avec le module de caméra dans la fenêtre de mon garage et je l'ai pointé vers le moule de soufflage du Père Noël. J'ai caché un haut-parleur extérieur alimenté à l'intérieur du moule de soufflage et j'ai fait passer un cordon auxiliaire de 25 pieds conçu pour une utilisation en extérieur du PI à ce haut-parleur. J'ai configuré le programme Motion sur le Pi pour lire un fichier son Ho Ho Ho au son du Père Noël chaque fois qu'il détecte un mouvement à l'aide de la caméra. C'est assez simple à faire et c'est très amusant.
Acheter les matériaux spécifiques que j'ai utilisés ici coûterait probablement environ 100 $ avec les frais d'expédition. Je ne dépenserais pas ça pour faire ça si je n'avais pas déjà tous ces matériaux qui traînent inutilisés. Cela peut fonctionner avec n'importe quel ordinateur, n'importe quel appareil photo et n'importe quel haut-parleur, ce qui peut être réalisé beaucoup moins cher si vous devez acheter ces choses.
Fournitures
-
Un ordinateur avec le programme Motion installé
J'ai utilisé un Raspberry PI (RPI) 3 modèle B
-
Caméra connectée à l'ordinateur ou caméra réseau
- Toute caméra que le programme Motion peut utiliser
- Caméra USB
- Caméra réseau
- J'ai utilisé ce module caméra qui se fixe directement sur le RPI
-
Un haut-parleur d'extérieur
- Connectez-vous via le port auxiliaire
- USB
- J'ai utilisé ce Sony SRS-XB01
-
Une décoration telle que le moulage par soufflage, n'importe quoi vraiment
J'ai utilisé un moule à soufflage Père Noël très similaire à celui-ci
Étape 1: Configurez votre RPI
Cette étape est ici principalement pour les débutants complets. Cette vidéo explique comment configurer un Raspberry PI (RPI) mieux que moi. Je recommanderais également, comme dans la vidéo, de brancher un USB sans fil, un clavier + une souris et un moniteur externe pour la configuration. Une fois la configuration terminée, je lance le mien dans mon garage sans clavier + souris et moniteur externe, mais je laisse dans le dongle WIFi pour pouvoir y accéder et redémarrer et/ou apporter des modifications.
Étape 2: Attachez la caméra au RPI
Suivez les instructions pour configurer votre caméra pour votre RPI. J'ai utilisé le module Caméra d'Adafruit Industries.
- Branchez et fixez le câble plat du module de caméra dans le port de la caméra entre le port Ethernet et le port HDMI avec les contacts de ruban face au port HDMI et le ruban bleu face au port Ethernet.
-
Si vous avez un moniteur connecté et exécutez l'interface utilisateur (Xserver), exécutez l'outil de configuration Raspberry Pi
Si SSH distant dans le rpi à partir d'un autre ordinateur, exécutez rasp-config dans votre terminal - ce qui démarrera une interface utilisateur de terminal
- Dans Raspberry Config, sous l'onglet Interfaces, activez la caméra.
- Enregistrez et redémarrez le RPI.
- Au redémarrage, exécutez la commande ci-dessous dans un terminal, les deux détectés et activés doivent être renvoyés sous la forme = 1
vgencmode get_camera
Votre module PI Camera devrait fonctionner maintenant
Instructions en ligne
Étape 3: configuration et test audio
Au départ, pour ce projet, j'ai simplement fait passer un cordon auxiliaire du PI à un petit haut-parleur alimenté par batterie. Cela s'est avéré avoir beaucoup d'électricité statique et les batteries se sont rapidement épuisées. Au lieu de cela, j'ai branché un périphérique USB qui amplifie le son et j'ai fait passer le cordon auxiliaire du port de sortie auxiliaire sur celui-ci à un haut-parleur extérieur alimenté et résistant aux intempéries. Cela a supprimé la statique et était plus fort et pas de piles à craindre. Le périphérique USB a été automatiquement reconnu par mon RPI sans aucune installation de pilote requise.
PI OS est livré avec un programme appelé aplay, mais je préfère le programme de lecture de la distribution du logiciel Sox, donc ces instructions installent Sox et utilisent sa commande de lecture.
Installer Sox
Dans un terminal sur le RPI, exécutez la réponse suivante oui à toutes les invites
sudo apt-get install sox
Tester le son
Téléchargez un fichier son compatible de petite taille et enregistrez-le sur votre ordinateur. J'ai utilisé santaho3.mp3 enregistré dans mon répertoire personnel pi. Pour tester le son, connectez votre enceinte au RPI et exécutez cette commande:
jouer à santaho3.mp3
- Si vous entendez le fichier son jouer dans votre haut-parleur, alors votre son fonctionne
-
Vous devrez peut-être changer en interne le son de HDMI à Analogique.
Instructions ici
-
Si vous utilisez un périphérique audio USB, créez un fichier dans votre répertoire personnel appelé.asoundrc
- Mettez-y le contenu ci-dessous et redémarrez, commencez le test audio
-
pcm.!default {
tapez la carte matérielle 1 } ctl.!default { tapez la carte matérielle 1 }
Étape 4: Configurer la détection de mouvement pour lire le fichier son
Un logiciel appelé Motion permet de configurer une ou plusieurs caméras dans le but d'exécuter une commande lorsqu'un mouvement est détecté dans la ou les vues de la ou des caméras. C'est assez simple à installer et ça marche plutôt bien. Il peut également enregistrer des fichiers lors de la détection de mouvements, permettre de configurer un site Web pour chaque caméra ou un site Web unique pour toutes les caméras, et des serveurs de streaming pour regarder les flux en direct des caméras. Ce projet n'a besoin que de la capacité de détection et de déclenchement de commande, mais j'ai configuré un serveur de streaming pour pouvoir également regarder un flux en direct.
Installer Motion
Dans un terminal sur le RPI, exécutez la commande ci-dessous en répondant oui à toutes les invites, attendez qu'elle se termine
sudo apt-get install motion
Prenez le temps maintenant d'ajouter l'utilisateur de mouvement nouvellement ajouté au groupe audio afin qu'il soit autorisé à jouer du son en entrant la commande suivante
usermod -a -G mouvement audio
Configurer le mouvement pour la détection
Nous allons modifier le fichier de configuration de mouvement pour lire le fichier son que nous avons téléchargé à l'étape de configuration audio lorsqu'il détecte un mouvement sur la caméra et démarrer le mouvement en tant que service afin qu'il continue de le faire lors du redémarrage du RPI.
Dans un terminal éditez le fichier /etc/motion/motion.conf en tant que super utilisateur
sudo nano /etc/default/motion
Dans un terminal éditez le fichier /etc/motion/motion.conf en tant que super utilisateur
sudo nano /etc/motion/motion.conf
Effectuez et enregistrez les modifications suivantes. Beaucoup d'entre eux sont des valeurs par défaut. Je ne pense pas que dans mon cas, les entrées mmal_xxx aient un effet, mais je les laisse au cas où quelqu'un en aurait besoin - elles ne font pas de mal non plus. Cette configuration détecte les mouvements sur la caméra à des intervalles de 40 secondes, n'enregistre pas d'images ou de vidéo et configure un serveur Web et un serveur de streaming pour la caméra protégés par une authentification de base à l'aide d'un nom d'utilisateur et d'un mot de passe.
démon sur
process_id_file /var/run/motion/motion.pid
setup_mode off fichier journal /var/log/motion/motion.log log_level 6 log_type all videodevice /dev/video0 v4l2_palette 17 entrée -1 norme 0 fréquence 0 power_line_fréquence -1 rotation 0 flip_axis aucun largeur 320 hauteur 240 framerate 2 minimum_frame_time 0 netcam_keepalive off netcam_tolerant_check off rtsp_uses_tcp on mmalcam_name vc.ril.camera auto_brightness off luminosité 0 contraste 0 saturation 0 teinte 0 roundrobin_frames 1 roundrobin_skip 1 switchfilter off seuil 500 threshold_tune off noise_level 22 noise_tune on despeckle_filter EedDl smart_mask_speed 0 max_frames_speed 0 evénement max_cap_motion 0 pre_motion_motion off output_pictures off output_debug_pictures off qualité 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 timelapse_duplicate_frames off true timelapse_pipet daily timelapse_interval 0 timelapse_pipet 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-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 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 on webcontrol_authentication_step_step track_id_io 0 track_auto silencieux sur on_event_start /usr/bin/play -q --multi-threaded /var/lib/motion/notify`shuf -i 1-5 -n 1`.mp3 2>/dev/null
Copiez le fichier audio dans le fichier son dans le répertoire d'accueil de motion et modifiez les autorisations dessus afin que motion le possède mais que tous puissent le lire
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
Redémarrez le périphérique RPI. Une fois démarré, lancez
sudo systemctl status motion.service
La sortie doit inclure une ligne indiquant:
Actif: actif (en cours d'exécution) depuis
Si vous voyez cette motion est en cours d'exécution. Sinon, consultez /var/log/motion pour plus de détails. Essayez d'exécuter:
sudo systemctl démarrer motion.service
Testez la détection de mouvement et la lecture du son
Presque fini. Il suffit de vérifier si un mouvement est détecté et si le son est émis lorsqu'il l'est.
Dans un terminal, procédez comme suit pour regarder le texte ajouté au fichier journal
tail -f /var/log/motion
Maintenant:
- Agitez lentement quelque chose devant la caméra
- Le fichier journal doit indiquer qu'un mouvement a été détecté
- Espérons que le fichier son soit lu via le haut-parleur
- Si c'est le cas, placez le RIP dans une fenêtre avec l'objectif de la caméra face à l'endroit où le mouvement doit être détecté
- Placez l'enceinte extérieure dans ou près de la décoration
- Quand les gens passeront, ils seront accueillis
Dépannage
Si les choses ne fonctionnent pas
-
Vérifiez que la caméra fonctionne en exécutant:
- raspistill -o test.jpg
- ls -l test-j.webp" />
-
Vérifiez que l'audio fonctionne en exécutant
- jouer /var/lib/motion/ mtn_dtct_ntfy.mp3
-
si vous n'entendez pas le fichier son
- vérifiez que le périphérique de sortie est votre configuration d'enceintes (analogique ou USB)
- vérifier le volume
- vérifiez que les autorisations sur le fichier son ont 3 'r' dans la chaîne d'autorisations (c'est-à-dire rw*rw*rw*)
-
Si tout le reste échoue, le mouvement n'est peut-être pas configuré correctement
si tel est le cas, certaines recherches en ligne devraient vous aider car il y a beaucoup d'aide là-bas
Étape 5: Commentaires supplémentaires
Lire des fichiers audio aléatoires
Vous vous ennuyez avec le même son qui joue encore et encore, mélangez-le !
-
Enregistrez plusieurs fichiers son différents avec le même nom mais un suffixe numérique séquentiel:
soundFile1.mp3, soundFile2.mp3, soundFile3.mp3, soundFile4.mp3, soundFile5.mp3,
-
Modifiez l'entrée /etc/motion/motion.conf on_event_start comme suit
on_event_start play -q --fichier audio multi-thread`shuf -i 1-5 -n 1`.mp3 2>/dev/null
- Quitter et enregistrer le fichier
-
Redémarrer le service de mouvement
sudo systemctl redémarrer motion.service
- La partie `shuf -i 1-5 -n 1` (ce sont des graduations arrière) insère un nombre aléatoire de 1 à 5 dans le nom du fichier en cours de lecture
- Alors maintenant, lorsqu'un mouvement est détecté, l'un des 5 fichiers sonores sera lu
Parler au lieu de jouer
Une autre tournure amusante consiste à configurer un Text-to-Speech et à demander à l'ordinateur de prononcer une phrase aux passants. J'aime utiliser le MaryTTS comme moteur. Configurez et démarrez le serveur Mary TTS et modifiez la ligne on_event_start mentionnée ci-dessus pour soumettre quelque chose à dire au serveur marier tts (c'est-à-dire marytts/bin/marytts-submit-text "Hello friend")
Utilisation de caméras IP en réseau (sans fil ou autre)
Le programme de mouvement peut facilement prendre en charge les caméras IP en réseau à l'aide de netcam_url et d'autres paramètres netcam_xxx. Une simple recherche en ligne devrait fournir ce dont vous avez besoin.
Bluetooth
Si votre RPI intègre Bluetooth ou si vous avez installé un périphérique Bluetooth USB, vous pouvez connecter le haut-parleur via Bluetooth et vous débarrasser du fil.
Limiter la capture de mouvement à une zone plus petite
L'un des problèmes que j'ai rencontrés avec cette configuration est que le fait de souffler sur des arbustes et des arbres ainsi que des lumières de voiture a déclenché le mouvement trop facilement. Le programme de mouvement a des paramètres pour le nombre d'images à changer avant que le mouvement ne soit déclenché et la prise en compte du bruit et leur utilisation ont aidé. Je n'ai pas encore essayé, mais je pense que j'aurai besoin de paramètres qui permettent également de définir une zone spécifique de la vue de la caméra pour la détection de mouvement. Cela devrait permettre de définir une zone juste à côté du décor pour déclencher la lecture du fichier son.
Conseillé:
Comment fabriquer une antenne double biquade 4G LTE en quelques étapes faciles : 3 étapes
Comment créer une antenne double biquade 4G LTE Étapes faciles : La plupart du temps, je n'ai pas une bonne force de signal pour mes travaux quotidiens. Donc. Je recherche et essaye différents types d'antenne mais ne fonctionne pas. Après une perte de temps, j'ai trouvé une antenne que j'espère fabriquer et tester, car ce n'est pas un principe de construction
Arduino devient Talking Tom : 6 étapes
Arduino devient Talking Tom : L'un de mes plus vieux souvenirs d'utilisation d'un smartphone était de jouer au jeu « Talking Tom ». Le jeu était assez simple. Il y a un chat, nommé Tom, qui peut parler, en quelque sorte. Dans le jeu, Tom écoutait toute entrée via le micro du téléphone, puis répétait w
RC Santa Sleigh : 10 étapes (avec photos)
RC Santa Sleigh : Salut à tous. Aujourd'hui, je vais vous montrer comment faire une planche en mousse RC Santa Sleigh. quelque temps. J'ai eu une journée libre, et parce que c'est la période de Noël, je
Shake Detecting Talking Hat avec Circuit Playground Express : 12 étapes (avec photos)
Shake Detecting Talking Hat avec Circuit Playground Express : Ce tutoriel simple et rapide vous apprend à fabriquer un chapeau parlant ! Il répondrait avec une réponse soigneusement traitée lorsque vous «posez» une question, et cela pourrait peut-être vous aider à décider si vous avez des inquiétudes ou des problèmes. Dans mon cours de Wearable Tech, je
Barbara : la caméra Talking AI : 4 étapes (avec photos)
Barbara: the Talking AI Camera: AI étant le dernier mot à la mode, ce projet est tout à propos de légèrement inutile. Après avoir trouvé une API soignée qui sous-titre les images et un vieil appareil photo, les objectifs sont fixés : une caméra qui sous-titre ce qu'elle voit