Trick-or-treaters faire peur avec un mouvement activé diy soundbox

Il est à cette époque de l`année où il est considéré comme socialement acceptable pour terrifier les jeunes enfants et leur donner des bonbons. Oh joie. Je suis ici pour rendre votre travail plus facile, en vous montrant comment faire une simple détection de mouvement Raspberry Pi Halloween SoundBox. Voici une démo:

Voici ce que vous aurez besoin

Probablement la seule partie que vous ne l`avez pas déjà le capteur de mouvement, une partie petit et peu coûteux, vous devriez être en mesure de trouver à votre Microcenter local ou Maplin.

  • Raspberry Pi (tout modèle fera).
  • Détecteur de mouvement (~ 3 $).
  • Du fil de montage.
  • haut-parleur filaire (la plupart des haut-parleurs Bluetooth auront la possibilité d`utiliser la ligne-in).
  • 3,5 mm câble stéréo, mâle-mâle.

Une fois que vous avez terminé, vous voudrez peut-être ajouter un peu des effets d`éclairage synchronisés aussi, mais dans ce tutoriel, nous allons seulement couvrirons le bit de sons effrayant!Comment synchroniser Accueil lumières et musique pour HalloweenComment synchroniser Accueil lumières et musique pour HalloweenQue vous organisiez une fête d`Halloween ou si vous voulez le plus cool maison hantée dans le quartier, ce qui rend vos lumières clignotent dans le temps de la musique et des effets sonores est essentiel.Lire la suite

Configuration

Nous utilisons Raspbian Jessie Lite et Python 2.7, mais toute distribution Linux qui fonctionne sur votre Pi devrait être bon. Je l`ai laissé sur le nom d`hôte standard « raspberrypi.local », donc commencer par vous connecter à distance via SSH (ouvrir une fenêtre de terminal si vous êtes sur Mac. Voici comment faire la même chose dans Windows) - ou si vous avez utilisé une Raspbian opté complète avec une interface graphique de bureau, vous pouvez passer à la mise à jour.

ssh [email protected](entrer framboise comme mot de passe)sudo apt-get mettre à joursudo apt-get installer python-pipsudo pépin installer gpiozero

Cela installe une bibliothèque simple pour travailler avec les broches GPIO en Python avec de nombreux types de capteurs intégrés et des boutons. Fil de votre capteur avec la broche de signal sur GPIO4, le CCV connecté à 5V et GND connecté à la masse. Cela peut varier en fonction de votre modèle exact, donc confirmer avec un schéma de raccordement.

Raspberry Pi GPIO Schéma
Crédit d`image: raspberrypi.org

Utilement, mon cas Pi 2 de Pimoroni a gravé au laser du diagramme de brochage directement sur celui-ci.

Cas Labellisé Raspberry Pi

Maintenant, nous allons faire notre script de détection de mouvement.

nano motion.py

Coller:

de gpiozero importer MotionSensorpir = Capteur de mouvement(4)tandis que Vrai:si pir.motion_detected:impression("Détection de mouvement!")autre:impression ("Aucun mouvement")

Appuyez sur CTRL-X puis Y pour sauvegarder et quitter, puis exécutez avec:

python motion.py

Vous devriez voir le message « aucun mouvement » répété à l`écran jusqu`à ce que vous agitez votre main devant le capteur, quand il va flâner sur les « Motion Détecté! »

Mouvement détecté dans le terminal

Si le message ne change pas du tout, vous avez câblé vers le haut mal.

Si vous êtes intéressés à en apprendre plus sur cette bibliothèque simple GPIOZero, jetez un oeil à ce antisèche fantastique.

lecture du son

Connectez-vous en haut-parleur portable et assurez-vous qu`il est alimenté si elle doit être. Nous allons utiliser la pygame bibliothèque pour jouer des sons, alors allez-y et l`installer:

Video: 10 TOP Halloween Pranks ON Trick-or-Treaters!!

sudo apt-get installer python-pygame

Tout d`abord, nous avons besoin d`un fichier son à jouer. Si vous faites cela à partir de l`environnement de bureau, puis aller de l`avant et télécharger WAV ou OGG fichier de quelque part (je l`ai trouvé une bonne sélection gratuite Halloween sonne ici), et le mettre dans votre répertoire personnel. Je vous suggère d`abord et la conversion downsampling à un petit format OGG de toute façon.

Si vous vous connectez à distance et seulement en utilisant la ligne de commande, nous avons un peu plus de difficulté avec certains sites, depuis la wget commande ne peut pas saisir le fichier réel. Au lieu de cela, nous pouvons le télécharger localement à notre bureau et utiliser la scp commande (copie sécurisée) pour copier sur la ligne de commande. Vous pouvez en savoir plus sur scp ici, mais pour l`instant, ouvrez un nouvel onglet Terminal et tapez:

scp thunder.ogg [email protected]:

Renommer thunder.ogg selon le cas, mais ne pas oublier la dernière : (La commande complète sans elle, mais il ne le fera pas ce que nous voulons faire). Par défaut, cela transférer le fichier au répertoire personnel de l`utilisateur Pi.

Video: 10 TOP Halloween Pranks when Trick-or Treating!

Maintenant, nous allons modifier le script pour jouer un son. Commencez par importer de nouveaux modules:

importer pygame.mixerde pygame.mixer importer Du son

Puis juste après les déclarations d`importation existantes, nous allons boucler le même son à plusieurs reprises à des fins de test. Laissez le reste de votre code de détection de mouvement est pour l`instant - juste ne fonctionnera pas, car il sera coincé dans cette boucle son jeu de toujours.

Video: SCARING TRICK OR TREATERS PRANK!!

pygame.initialisation()pygame.mixer.initialisation()#load un fichier son, dans le répertoire de Pi (aucun fichier mp3)tonnerre = pygame.mixer.Du son("/home/pi/thunder.ogg")tandis que Vrai:tonnerre.jouer()dormir(dix)tonnerre.Arrêtez()

Notez que lorsque je l`origine essayé ce processus, le son a refusé de jouer et juste cliqué à la place. La taille du fichier ou du débit binaire était le coupable: il était de 24 bits et plus de 5 Mo pour 15 secondes clip. Mise à l`échelle que jusqu`à 16 bits en utilisant le convertisseur I lié à tout ce qui précède fait bien travailler, et la taille a été réduite à un peu 260KB!

Si vous remarquez un sifflement méchant de vos haut-parleurs lorsque votre application Python est en cours d`exécution, mais pas autrement, tapez:

sudo nano /boot/config.txt

Et d`ajouter cette ligne à la fin:

disable_audio_dither=1

Redémarrez pour que les modifications prennent effet. Ou ne vous inquiétez pas, car il sorte de sonnait comme la pluie pour moi en tout cas.

Enfin, modifions la boucle principale vérification de mouvement pour jouer le son lorsqu`un mouvement est détecté. Nous allons utiliser un délai de 15 secondes pour que la boucle entière peut être joué, et d`agir comme un tampon anti-spam quand il y a beaucoup de mouvements non-stop.

tandis que Vrai:si pir.motion_detected:impression("Détection de mouvement!")tonnerre.jouer()# Assurer la lecture a été entièrement terminée avant de reprendre la détection de mouvement, empêche "spamming" du sondormir(15)tonnerre.Arrêtez()autre:impression ("Aucun mouvement")

Démarrer automatiquement

Nous voulons probablement le mettre quelque part avec une batterie et pas de connexion Internet, de sorte que le script doit exécuter le redémarrage sans avoir à ouvrir une ligne de commande. Pour ce faire, nous allons utiliser la méthode la plus simple possible: la crontab. Type:Comment planifier des tâches sous Linux avec Cron et CrontabComment planifier des tâches sous Linux avec Cron et CrontabLa capacité d`automatiser des tâches est l`une de ces technologies futuristes qui est déjà là. Chaque utilisateur Linux peut bénéficier du système de planification et les tâches utilisateur, grâce à cron, un service de base facile à utiliser.Lire la suite

sudo crontab -e

Si cela est la première fois l`exécution de cette commande, il va commencer par vous demander ce que l`éditeur à utiliser. J`ai choisi l`option 2, pour nano. Il va démarrer dans votre éditeur choisi, il faut donc ajouter la ligne suivante:

@reboot python /home/pi/motion.py &

Cela signifie que votre script motion.py sera exécuté à chaque démarrage, et ce, en silence (donc une sortie du script sera ignoré). Redémarrez l`essayer.

Si rien ne joue malgré le mouvement qu`il y ait, ou si vous entendez juste un petit clic, vous ne pouvez pas avoir utilisé le chemin complet du fichier, ou votre fichier peut-être convertir à une taille de fichier bitrate inférieur et plus petit.

Ajouter Autres sons

Jouer le même effet encore et est un peu ennuyeux, donc nous allons ajouter un peu de hasard à lui. Télécharger quelques autres sons d`Halloween, ne pas oublier de les réduire à une taille raisonnable et bitrate, puis les envoyer à votre Pi en utilisant scp comme avant. J`ai ajouté trois types de cri différents.

Modifier le code de sorte qu`au lieu de définir un seul pygame.mixer.Sound variables, nous créons en fait un tableau des sons. C`est simple avec Python, entourez une liste séparée par des virgules d`entre eux avec des crochets, comme ceci:

des sons = [pygame.mixer.Du son("/home/pi/thunder.ogg"),pygame.mixer.Du son("/home/pi/scary_scream.ogg"),pygame.mixer.Du son("/home/pi/girl_scream.ogg"),pygame.mixer.Du son("/home/pi/psycho_scream.ogg")]

Ensuite, importez la bibliothèque au hasard dans votre fichier, avec:

importer au hasard

modifier maintenant la boucle principale de détection de mouvement comme suit:

tandis que Vrai:si pir.motion_detected:impression("Détection de mouvement!")jouer son = au hasard.choix(des sons)jouer son.jouer()# Assurer la lecture a été entièrement terminée avant de reprendre la détection de mouvement, empêche "spamming" du sondormir(15)jouer son.Arrêtez()autre:impression ("Aucun mouvement")

Notez le changement mineur: au lieu de jouer la seule variable son, nous utilisons la random.choice fonction pour choisir un son aléatoire de notre tableau de sons, puis jouer cela.

Voici le code complet dans le cas où vous avez des problèmes:

importer pygamede pygame.mixer importer Du sonde gpiozero importer Capteur de mouvementde temps importer dormirimporter randompygame.initialisation()pygame.mixer.initialisation()#load un fichier audio, même répertoire que le script (pas mp3s)des sons = [pygame.mixer.Du son("/home/pi/thunder.ogg"),pygame.mixer.Du son("/home/pi/scary_scream.ogg"),pygame.mixer.Du son("/home/pi/girl_scream.ogg"),pygame.mixer.Du son("/home/pi/psycho_scream.ogg")]pir = Capteur de mouvement(4)tandis que Vrai:si pir.motion_detected:impression("Détection de mouvement!")jouer son = au hasard.choix(des sons)jouer son.jouer()# Assurer la lecture a été entièrement terminée avant de reprendre la détection de mouvement, empêche "spamming" du sondormir(15)jouer son.Arrêtez()autre:impression ("Aucun mouvement")

Avec seulement quatre échantillons, il y a une forte probabilité de répétition à chaque fois, mais vous pouvez ajouter d`autres échantillons si c`est ennuyeux.

C`est tout! Cacher dans les buissons avec certains yeux de monstre effrayant LED, et vous devriez être en mesure de vous épargner des bonbons comme tous les enfants courir en hurlant avant même atteindre la porte. Ou aller se cacher dans le placard parce qu`une maman est en colère pour le sang après avoir fait petit cri Johnny.Comment faire Spooky Halloween yeux rougeoyants pour moins de 5 $Comment faire Spooky Halloween yeux rougeoyants pour moins de 5 $Vous voulez pimenter vos décorations d`Halloween cette année? Apprenez à faire les yeux LED pour moins de 5 $ dans le projet électronique de débutant.Lire la suite

Avertissement: MakeUseOf est pas responsable des blessures qui peuvent résulter de l`utilisation de ce projet!

Allez-vous faire de cette caisse de résonance de mouvement activé afin d`effrayer les locaux trick-or-Treaters? Avez-vous mis en place des effets effrayants avec un Raspberry Pi Halloween? S`il vous plaît laissez-nous savoir dans les commentaires ci-dessous!

Articles connexes