Table des matières:

Talking Santa Blowmold : 5 étapes
Talking Santa Blowmold : 5 étapes

Vidéo: Talking Santa Blowmold : 5 étapes

Vidéo: Talking Santa Blowmold : 5 étapes
Vidéo: Telco 1997 talking santa face w wit ion sensor 2024, Juillet
Anonim
Parler Père Noël Blowmold
Parler Père Noël Blowmold
Parler Père Noël Blowmold
Parler Père Noël Blowmold

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

Configurez votre RPI
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

Attacher la caméra au RPI
Attacher 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

Configuration et test audio
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

Configurer la détection de mouvement pour lire le fichier son
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

Commentaires supplémentaires
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é: