Table des matières:
- Étape 1: Liste des pièces
- Étape 2: schéma de câblage
- Étape 3: Configuration de base de Falcon Pi Player
- Étape 4: un script plus robuste
- Étape 5: (Facultatif) Façade pour le bouton
Vidéo: Commencez votre spectacle de lumière de Noël avec un bouton : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Lors de l'exécution d'un spectacle de lumières de Noël synchronisé avec de la musique, vous souhaiterez peut-être démarrer le spectacle en appuyant sur un bouton. Ce didacticiel s'applique uniquement à un spectacle contrôlé via Falcon Pi Player (FPP) exécuté sur un Raspberry Pi. Si vous utilisez FPP, vous utilisez probablement des contrôleurs Falcon et xLights ou LightORama pour séquencer votre show. Si aucun de ces mots ne vous dit rien, ce tutoriel vous dépasse probablement un peu pour l'instant et vous devriez commencer par lire ce wiki https://auschristmaslighting.com/wiki/ et rejoindre un groupe Facebook comme ci-dessous
- xLights:
- Lumières de Noël avancées générales:
- Lecteur Falcon Pi:
- Partage d'idées de pièces jointes/accessoires:
- "Pas spécifiquement xLights ou LOR Related":
- Fournisseurs xLights Holiday Light:
- Faites-le vous-même Noël:
Étape 1: Liste des pièces
Vous aurez besoin des éléments suivants:
- Un bouton. J'ai utilisé celui-ci avec un anneau lumineux à LED autour: [Amazon]
- Une résistance. De préférence 200Ω ou plus (2 d'entre eux si vous utilisez le bouton LED) Standard 1/4W ou 1/8W est bien
- Fil de connexion. La jauge que vous devez utiliser dépend de la distance entre le bouton et votre Pi. J'ai utilisé du fil 18awg à environ 10 pieds de mon Pi et cela a fonctionné parfaitement
- Un moyen de connecter un fil aux broches GPIO du Pi. Vous pouvez utiliser un câble plat avec la platine d'expérimentation, ou vous pouvez simplement utiliser des connecteurs femelles comme je l'ai fait. Nous n'avons besoin que de 3 fils - Terre, 5V et données pour le bouton. [Amazone]
- (En option) Un connecteur étanche à chaque extrémité pour un entretien facile. J'utilise des connecteurs de qualité marine à 3 broches: [Amazon]
- (Facultatif) Connecteurs bout à bout thermorétractables [Amazon]
Étape 2: schéma de câblage
Les images montrent un schéma de câblage pour un bouton sans LED incluse et un bouton avec une LED. La façon dont j'ai configuré le schéma de câblage vous permet de faire fonctionner un bouton et une lumière (allumée en continu) avec seulement 3 fils.
Pour la broche GPIO, choisissez l'une des broches GPIO sur le pi. Utilisez également les broches +5V et Gnd. Vous pourriez probablement vous en tirer en utilisant la broche 3,3 V, mais la chute de tension sur plusieurs pieds de fil peut rendre le signal peu fiable ou ne pas être suffisant pour allumer la LED.
REMARQUE: le connecteur à 3 broches ne passera pas à travers le trou que vous devez percer pour un bouton avec l'anneau lumineux à LED. Attachez donc le connecteur après avoir mis le bouton dans votre façade.
Étape 3: Configuration de base de Falcon Pi Player
REMARQUE - FPP est constamment mis à jour et il est tout à fait possible qu'ils améliorent leur prise en charge des scripts ou qu'ils incluent le "bouton-poussoir pour démarrer" comme fonctionnalité par défaut qui nécessite moins de programmation.
J'ai suivi la vidéo ci-dessus pour tout mettre en place initialement.
Je trouve les vidéos ennuyeuses et lentes, alors en voici un résumé:
- Importez votre séquence dans fpp à l'aide du gestionnaire de fichiers
- Créez une liste de lecture avec la séquence dedans. Pour les prochaines étapes, la liste de lecture s'appellera "playme"
-
Ouvrez un fichier de bloc-notes vierge et tapez ce qui suit:
- #!/bin/sh
- fpp -P playme
- Enregistrez-le en tant que fichier.sh sur votre ordinateur
- Accédez au gestionnaire de fichiers dans FPP et téléchargez votre fichier de script. Allez dans l'onglet " Scripts " et assurez-vous qu'il s'y trouve
- Sous État/Contrôle, accédez à Événements
- Créer un nouvel événement. ID d'événement 1/1, nom de l'événement quel qu'il soit, séquence d'effet AUCUN, script d'événement
- Allez sous Input/Output Setup et cliquez sur GPIO triggers
- Basculez la broche à laquelle votre bouton est attaché. S'il va baisser lorsque vous appuyez sur le bouton, placez l'événement sur l'option Falling, s'il est actif haut, placez l'événement sur Rising.
- Cliquez sur le bouton Redémarrer à côté de l'avertissement qui apparaît après avoir effectué toutes les modifications
Après avoir fait tout cela, vous devriez pouvoir appuyer sur le bouton pour démarrer votre émission. Waouh !
Cependant, cette méthode présente certaines limites. Si vous appuyez à nouveau sur le bouton pendant que la liste de lecture est en cours, soit 1) cela ne fera rien ou 2) fera planter FPP et refusera de faire quoi que ce soit avec votre bouton jusqu'à ce que vous le redémarriez. Donc, si vous utilisez simplement un bouton comme moyen dramatique de jouer votre émission sur commande, la méthode ci-dessus sera tout ce dont vous avez besoin.
Si vous avez besoin de quelque chose de plus, passez à l'étape suivante
Étape 4: un script plus robuste
Vous trouverez ci-dessous le script auquel je suis finalement arrivé. Vous pouvez voir le script sur Github ici: [Gist. Github]
- Si quelqu'un appuie sur le bouton pendant les heures de « nuit », il jouera Tiger Rag (ma chanson1), puis passera à la séquence de veille qui boucle à l'infini.
- Si le bouton est enfoncé pendant que Tiger Rag joue, il démarre ma deuxième chanson, Hallelujah, puis passe indéfiniment à la séquence d'attente.
- Mais si quelqu'un appuie sur le bouton pendant la journée ou très tard dans la nuit, il jouera Tiger Rag une fois, puis éteint toutes les lumières.
Cela permet au bouton de fonctionner à tout moment de la journée, mais les lumières ne doivent pas nécessairement être allumées tout le temps. Il permet également de lire plusieurs chansons à partir d'un seul bouton en identifiant la chanson en cours de lecture, en mettant fin à cette chanson et en jouant la chanson "suivante".
Vous pouvez trouver plus de ressources pour les scripts dans FPP ici: https://github.com/FalconChristmas/fpp-scripts Vous pouvez tester vos scripts à l'aide du Shell FPP (nom d'utilisateur fpp mot de passe falcon) Les commandes de base sont les suivantes.
Attention aux majuscules !!
- Majuscule -P jouera une liste de lecture une fois, minuscule -p la répétera.
- fpp -v 66 Régler le volume à 66%
- fpp -c stop Arrêter le spectacle immédiatement
- fpp -C stop Cela pourrait être stop show gracieusement
- fpp -p thisPlaylistName Lit ce PlaylistName en boucle (donc la chanson d'introduction est jouée une fois, puis les éléments principaux seront répétés indéfiniment.
- fpp -P thisPlaylistName Lit ce PlaylistName une fois
- eventScript "${MEDIADIR}/scripts/${thisScriptVariable}" Exécute un script. Dans le cas de gauche, cela fonctionne si vous avez enregistré le nom de votre script dans une variable quelque part au-dessus, comme thisScriptVariable = "PlayTheSong.sh"
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#À exécuter si le bouton est enfoncé. |
#Vous devriez avoir deux listes de lecture pour chaque chanson - une avec |
# juste la chanson en tant que "First play" et rien en main, |
# et un autre avec la chanson en première lecture et votre veille |
# séquence comme séquence "Principale". (au moins si tu veux |
# faire exactement ce que je fais) |
# |
#Par exemple, si votre chanson est Tiger Rag, vous devriez avoir |
# listes de lecture "TigerRag", "TigerRagStandby" et "Standby" |
# |
########################################################### |
# Playlists à exécuter si c'est entre 6 et 11 |
NightSong1="TigerRagStandby" |
NightSong2="HallelujahStandby" |
NightStandby="Veille" |
# Playlists à exécuter pendant la journée ou après 11 heures |
DaySong1="TigerRag" |
DaySong2="Alléluia" |
DayStandby="Veille" |
#Horaires d'activation et de désactivation en 24 heures. Si tu veux des minutes, bonne chance |
OnHour=17 |
Hors Heure=23 |
########################################################### |
# Les tripes du script. # |
########################################################### |
# Obtenez notre statut actuel (IDLE=0, PLAYING=1, Stopping Gracefully=2) |
ÉTAT=$(fpp -s | cut -d', ' -f2) |
# Obtenez la liste de lecture en cours et coupez à 7 lettres |
PLAYLIST=$(fpp -s | cut -d', ' -f4 | cut -c1-7) |
#Ce sera "les deux" s'il joue une chanson, et "séquence" s'il est en veille |
#utilisé pour déterminer si la séquence de veille est en cours d'exécution |
STANDBYSTRING=$(fpp -s | cut -d', ' -f5) |
#7 premières lettres des noms de listes de lecture à des fins de comparaison |
#Seulement 7 lettres pour que "Song1Standby" et "Song1" soient identiques |
#D'accord, en fait, il devrait s'agir des premières lettres x et x devrait être le nom de chanson le plus court que vous ayez |
StandbyPlaylist=$(écho $NightStandby| cut -c1-7) |
Song1Playlist=$(écho $NightSong1| cut -c1-7) |
Song2Playlist=$(écho $NightSong2| cut -c1-7) |
STARTITEM="" |
#Obtenir l'heure actuelle en heure militaire |
Heure actuelle=$(date +"%H") |
#Imprimer le statut de certaines choses - "echo" est comme "print" dans la plupart des langues |
#Utile pour tester si diverses choses ont été coupées ou calculées correctement |
echo CurrentHour est $CurrentHour |
echo La liste de lecture en cours est: $PLAYLIST |
echo Song2Playlist est: $Song2Playlist |
L'état de l'écho est: $STATUS |
#Réglez le volume à 80% la nuit, 100% sinon |
#Pour que si je dors, ce ne soit pas aussi fort |
#if [$CurrentHour -lt $OffHour -a $CurrentHour -ge 11]; alors |
# fpp -v 100 |
#autre |
# fpp -v 80 |
#Fi |
# Vérifiez que nous avons quelque chose de significatif |
if [-z"${STATUS}"];alors |
echo"Erreur avec la valeur d'état">&2 |
sortie 1 |
Fi |
# Agir sur l'état actuel |
case${STATUS}dans |
# INACTIF |
0) |
#Night time - jouez Song1 en veille |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];then |
echo Jouer NightSong1 |
fpp -c arrêter |
fpp -p "${NightSong1}"${STARTITEM} |
#Jour ou vraiment tard - jouez la chanson 1 une fois puis éteignez les lumières |
autre |
echo Lecture de DaySong1 |
fpp -c arrêter |
fpp -P "${DaySong1}"${STARTITEM} |
Fi |
;; |
# JOUER ou ARRÊTER GRÂCE (la grâce se produit si le bouton est enfoncé lorsqu'une liste de lecture programmée se termine) |
1 | 2) |
#Standby est en cours d'exécution - cela fonctionne car la veille est ma seule séquence non multimédia |
if ["$STANDBYSTRING"=="séquence"];alors |
#Night time - jouez Song1 en veille |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];then |
echo Lecture de NightSong1 pour la nuit |
fpp -c arrêter |
fpp -p "${NightSong1}" |
#Jour ou vraiment tard - jouez au tigre une fois puis éteignez les lumières |
autre |
echo PlayingDaySong1 de la lecture |
fpp -c arrêter |
fpp -P "${DaySong1}" |
Fi |
#Pour prendre en charge plus de chansons, copiez cette section et remplacez "Song2Playlist" dans la dernière section par Song#Playlist |
#Song1 est en cours d'exécution |
elif ["$PLAYLIST"=="$Song1Playlist"];puis |
#Night time - jouez à Hallelujah en mode veille |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];then |
echo Jouer à HallelujahStandby de Tiger Rag est en cours d'exécution |
fpp -c arrêter |
fpp -p "${NightSong2}" |
#Jour ou vraiment tard - jouez Song2 une fois puis éteignez les lumières |
autre |
echo Jouer Hallelujah une fois de Tiger Rag est en cours d'exécution |
fpp -c arrêter |
fpp -P "${DaySong2}" |
Fi |
#DERNIÈRE CHANSON EST EN COURS - PLAY STANDBY |
elif ["$PLAYLIST"=="$Song2Playlist"];puis |
#Night time - lecture en veille en boucle |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];then |
echo Lecture en attente en boucle |
fpp -c arrêter |
fpp -p "${NightStandby}" |
#Jour ou vraiment tard - jouez une fois en veille |
autre |
echo Lecture en veille une fois |
fpp -c arrêter |
fpp -P "${DayStandby}" |
Fi |
autre |
echo Pour une raison quelconque, le dernier elsecase exécuté. |
fpp -c arrêter |
fpp -P "${DaySong1}" |
Fi |
;; |
esac |
voir rawButtonSuperScript.sh hébergé avec ❤ par GitHub
Étape 5: (Facultatif) Façade pour le bouton
J'ai accès à une découpeuse laser chez Clemson via le Makerspace, j'ai donc rapidement esquissé un dessin à découper+graver. Il y a un trou au milieu pour mon bouton, les mots disent "Push Me" dans une police de Noël et un flocon de neige autour du bouton. J'ai peint du bois à la bombe en blanc, puis je l'ai recouvert de ruban de masquage (afin que le découpeur laser ne brûle pas les pièces que je ne veux pas graver). Le fichier que j'ai utilisé est joint.
Conseillé:
Spectacle de lumière de Noël synchronisé à la musique ! : 4 étapes
Spectacle de lumière de Noël synchronisé à la musique ! : dans cette instructable, je vais vous montrer comment faire un spectacle de lumière de Noël synchronisé à la musique de Noël à l'aide de pixels RVB. Ne laissez pas ce nom vous effrayer ! Il n'est pas trop difficile d'apprendre à faire cela. Je vous préviens cependant que cela peut être assez
Spectacle de lumière de Noël RVB Pixel Partie 1 : 7 étapes
RVB Pixel Christmas Light Show Partie 1 : Dans cette instructable, je vais vous montrer comment construire un spectacle de lumière RVB pixel. Il y a BEAUCOUP à couvrir. En fait, je vais probablement diviser cela en environ 3 à 5 instructables différents. Celui-ci portera sur les bases. Vous avez beaucoup de lecture
Boîte à musique avec spectacle de lumière : 9 étapes (avec photos)
Boîte à musique avec spectacle de lumière : Bonjour et bienvenue, dans ce tutoriel, nous allons montrer comment vous pouvez créer votre propre boîte à musique avec un spectacle de lumière inclus. Tout ce dont vous avez besoin est un étui vide. Nous avons pris un étui qui est normalement utilisé pour les outils. Dans ce projet, vous pouvez être très créatif, vous n'avez donc pas besoin
Spectacle de lumière d'arbre de Noël Raspberry Pi : 15 étapes (avec photos)
Raspberry Pi Christmas Tree Light Show : mise à jour : j'ai mis une évolution mise à jour de cet arbre pour 2017 à ce https://www.instructables.com/id/LED-Christmas-Tree-With-Video-Projector-Rasp instructable -Pi/Ce projet consiste à utiliser un Raspberry Pi pour piloter 8 prises secteur qui sont connecte
Boîte de Noël : Lumières de Noël et spectacle de musique contrôlés par Internet Arduino/ioBridge : 7 étapes
Xmas-box : Spectacle de lumières de Noël et de musique contrôlés par Internet Arduino/ioBridge : Mon projet de boîte de Noël consiste en un spectacle de lumières de Noël et de musique contrôlé par Internet. Une chanson de Noël peut être demandée en ligne, puis placée dans une file d'attente et jouée dans l'ordre dans lequel elle a été demandée. La musique est transmise sur une stat FM