Sommario:
- Passaggio 1: elenco delle parti
- Passaggio 2: schema elettrico
- Passaggio 3: configurazione di base del lettore Falcon Pi
- Passaggio 4: uno script più robusto
- Passaggio 5: mascherina (opzionale) per il pulsante
Video: Inizia il tuo spettacolo di luci di Natale con un pulsante: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Quando esegui uno spettacolo di luci natalizie sincronizzato con la musica, potresti voler avviare lo spettacolo premendo un pulsante. Questo tutorial è applicabile solo a uno spettacolo controllato tramite Falcon Pi Player (FPP) in esecuzione su un Raspberry Pi. Se stai eseguendo FPP, probabilmente stai usando i controller Falcon e usando xLights o LightORama per mettere in sequenza il tuo spettacolo. Se nessuna di queste parole significa qualcosa per te, questo tutorial è probabilmente un po' sopra la tua testa per ora e dovresti iniziare leggendo questo wiki https://auschristmaslighting.com/wiki/ e unendoti a un gruppo Facebook come di seguito
- xLights:
- Luci di Natale avanzate generali:
- Giocatore Falcon Pi:
- Condivisione di idee di allegato/prop:
- "Non specificamente xLights o correlato a LOR":
- Venditori di luci natalizie xLights:
- Natale fai da te:
Passaggio 1: elenco delle parti
Avrai bisogno dei seguenti elementi:
- Un bottone. Ho usato questo con una luce ad anello a LED intorno: [Amazon]
- Un resistore. Preferibilmente 200 o più (2 di questi se si utilizza il pulsante LED) Standard 1/4 W o 1/8 W va bene
- Cavo del connettore. L'indicatore che dovresti usare dipende da quanto sarà lontano il pulsante dal tuo Pi. Ho usato un cavo da 18 awg per circa 10 piedi dal mio Pi e ha funzionato perfettamente
- Un modo per collegare un cavo ai pin GPIO del Pi. Puoi usare un cavo a nastro con la breadboard breakout, oppure puoi semplicemente usare alcuni connettori femmina come ho fatto io. Abbiamo solo bisogno di 3 fili: terra, 5V e dati per il pulsante. [Amazzonia]
- (Opzionale) Un connettore impermeabile su ciascuna estremità per una facile manutenzione. Uso connettori marini a 3 pin: [Amazon]
- (Opzionale) Connettori di testa termoretraibili [Amazon]
Passaggio 2: schema elettrico
Le immagini mostrano uno schema elettrico per un pulsante senza LED incluso e un pulsante con LED. Il modo in cui ho impostato lo schema elettrico consente di far funzionare un pulsante e una luce (continuamente accesi) con soli 3 fili.
Per il pin GPIO, scegli uno dei pin GPIO sul pi. Usa anche i pin +5V e Gnd. Probabilmente potresti cavartela usando il pin da 3,3 V, ma la caduta di tensione su diversi piedi di filo potrebbe rendere il segnale inaffidabile o non essere sufficiente per accendere il LED.
NOTA: il connettore a 3 pin non entrerà nel foro necessario per praticare un pulsante con la luce anulare a LED. Quindi collegare il connettore dopo aver inserito il pulsante nel frontalino.
Passaggio 3: configurazione di base del lettore Falcon Pi
NOTA - FPP viene costantemente aggiornato ed è del tutto possibile che migliorino il supporto per gli script o che includano il "pulsante per iniziare" come funzionalità predefinita che richiede meno programmazione.
Ho seguito il video sopra per aver inizialmente impostato tutto.
Trovo i video noiosi e lenti, quindi ecco un riassunto:
- Importa la tua sequenza in fpp usando il file manager
- Crea una playlist con la sequenza al suo interno. Per i passaggi successivi la playlist si chiamerà "playme"
-
Apri un file di blocco note vuoto e digita quanto segue:
- #!/bin/sh
- fpp -P playme
- Salvalo come file.sh sul tuo computer
- Vai al file manager in FPP e carica il tuo file di script. Vai alla scheda "Script" e assicurati che sia lì
- Sotto Stato/Controllo vai su Eventi
- Crea un nuovo evento. ID evento 1/1, nome evento qualunque, sequenza effetto NESSUNO, script evento
- Vai in Input/Output Setup e fai clic su trigger GPIO
- Attiva o disattiva il pin a cui è collegato il pulsante. Se scenderà quando premi il pulsante, metti l'evento sull'opzione Falling, se è attivo alto, metti l'evento su Rising.
- Fai clic sul pulsante Riavvia in corrispondenza dell'avviso visualizzato dopo aver apportato tutte le modifiche
Dopo aver fatto tutto questo, dovresti essere in grado di premere il pulsante per avviare il tuo spettacolo. Woooh!
Tuttavia, questo metodo presenta alcune limitazioni. Se premi di nuovo il pulsante mentre la playlist è in corso, 1) non farà nulla o 2) andrà in crash FPP e si rifiuterà di fare qualsiasi cosa con il tuo pulsante fino a quando non lo riavvierai. Quindi, se stai solo usando un pulsante come un modo drammatico per riprodurre il tuo spettacolo a comando, il metodo sopra sarà tutto ciò di cui hai bisogno.
Se hai bisogno di qualcosa in più, vai al passaggio successivo
Passaggio 4: uno script più robusto
Di seguito è riportato lo script a cui alla fine sono arrivato. Puoi visualizzare lo script su Github qui: [Gist. Github]
- Se qualcuno preme il pulsante durante le ore "notturne", riprodurrà Tiger Rag (la mia canzone1) e poi passerà alla sequenza di standby che si ripete all'infinito.
- Se il pulsante viene premuto mentre Tiger Rag sta suonando, inizia la mia seconda canzone, Hallelujah, e poi passerà alla sequenza di attesa indefinitamente.
- Ma se qualcuno preme il pulsante durante il giorno o molto a tarda notte, suonerà Tiger Rag una volta e poi spegnerà tutte le luci.
Ciò consente al pulsante di funzionare in qualsiasi momento della giornata, ma le luci non devono essere sempre accese. Consente inoltre di riprodurre più brani da 1 pulsante identificando quale brano è attualmente in riproduzione, terminando quel brano e riproducendo il brano "successivo".
Puoi trovare più risorse per lo scripting in FPP qui: https://github.com/FalconChristmas/fpp-scriptsPer una logica più complicata basta cercare su Google "script bash _" dove il carattere di sottolineatura è ciò che stai cercando di fare. Puoi testare i tuoi script usando la shell FPP (nome utente fpp password falcon) I comandi di base sono i seguenti.
Attenzione alle maiuscole!!
- La -P maiuscola riprodurrà una playlist una volta, la -p minuscola la ripeterà.
- fpp -v 66 Imposta il volume al 66%
- fpp -c stop Interrompe immediatamente lo spettacolo
- fpp -C stop Questo potrebbe essere stop show con grazia
- fpp -p thisPlaylistName Riproduce thisPlaylistName a ripetizione (quindi la canzone intro viene riprodotta una volta, quindi la parte principale verrà ripetuta indefinitamente.
- fpp -P thisPlaylistName Riproduce thisPlaylistName una volta
- eventScript "${MEDIADIR}/scripts/${thisScriptVariable}" Esegue uno script. Nel caso a sinistra funziona se hai il nome del tuo script salvato in una variabile da qualche parte sopra, come thisScriptVariable="PlayTheSong.sh"
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#Da eseguire se si preme il pulsante. |
#Dovresti avere due playlist per ogni canzone, una con |
# solo la canzone come "Prima esecuzione" e niente in principale, |
# e un altro con la canzone come prima riproduzione e il tuo standby |
# sequenza come sequenza "Principale". (almeno se vuoi |
# per fare esattamente quello che sto facendo) |
# |
#Ad esempio, se la tua canzone è Tiger Rag, avresti dovuto |
# playlist "TigerRag", "TigerRagStandby" e "Standby" |
# |
########################################################### |
# Playlist da eseguire se è compresa tra 6 e 11 |
NightSong1="TigerRagStandby" |
NightSong2="HallelujahStandby" |
NightStandby="Standby" |
# Playlist da eseguire durante il giorno o dopo le 11 |
DaySong1="TigerRag" |
DaySong2="Alleluia" |
DayStandby="Attesa" |
#Accensione e spegnimento nelle 24 ore. Se vuoi minuti, buona fortuna |
OnHour=17 |
Ora di riposo = 23 |
########################################################### |
# Il coraggio della sceneggiatura. # |
########################################################### |
# Ottieni il nostro stato attuale (IDLE=0, PLAYING=1, Stopping Gracely=2) |
STATUS=$(fpp -s | cut -d', ' -f2) |
#Ottieni la playlist in esecuzione e taglia a 7 lettere |
PLAYLIST=$(fpp -s | cut -d', ' -f4 | cut -c1-7) |
#Questo sarà "entrambi" se sta riproducendo una canzone e "sequenza" se è in standby |
#usato per determinare se la sequenza di standby è in esecuzione |
STANDBYSTRING=$(fpp -s | cut -d', ' -f5) |
#Le prime 7 lettere dei nomi delle playlist per il confronto |
#Solo 7 lettere in modo che "Song1Standby" e "Song1" siano identici |
#Okay, quindi in realtà dovrebbero essere le prime x lettere e x dovrebbe essere il nome della canzone più corto che hai |
StandbyPlaylist=$(echo $NightStandby| cut -c1-7) |
Song1Playlist=$(echo $NightSong1| cut -c1-7) |
Song2Playlist=$(echo $NightSong2| cut -c1-7) |
STARTITEM="" |
#Ottieni l'ora corrente in fuso orario militare |
CurrentHour=$(data +"%H") |
#Stampa lo stato di alcune cose - "echo" è come "print" nella maggior parte delle lingue |
#Utile per verificare se varie cose sono state tagliate o calcolate correttamente |
echo CurrentHour is $CurrentHour |
echo La playlist in esecuzione è: $PLAYLIST |
echo Song2Playlist è: $Song2Playlist |
echo Lo stato è: $STATUS |
#Imposta il volume all'80% di notte, altrimenti al 100% |
#Così se sto dormendo non è così rumoroso |
#if [$OraCorrente -lt $OraOff -a $OraCorrente -ge 11]; poi |
# fpp -v 100 |
#altro |
# fpp -v 80 |
#fi |
# Verifica di aver ottenuto qualcosa di significativo |
if [-z"${STATO}"];allora |
echo"Errore con il valore di stato">&2 |
uscita 1 |
fi |
# Agire sullo stato attuale |
caso${STATUS}in |
# OZIARE |
0) |
#Notte - riproduci Song1 in standby |
if [$OraCorrente-lt$OraOff-a$OraCorrente-ge$OraAttiva];then |
echo Riproduzione di NightSong1 |
fpp -c stop |
fpp -p "${NightSong1}"${STARTITEM} |
#Di giorno o molto tardi: riproduci il brano 1 una volta e poi spegni le luci |
altro |
echo Riproduzione di DaySong1 |
fpp -c stop |
fpp -P "${DaySong1}"${STARTITEM} |
fi |
;; |
# PLAYING o STOPPING GRACEFULLY (si verifica con grazia se il pulsante viene premuto quando una playlist pianificata sta finendo) |
1 | 2) |
#Standby è in esecuzione: funziona perché lo standby è la mia unica sequenza non multimediale |
if ["$STANDBYSTRING"=="sequenza"];then |
#Notte - riproduci Song1 in standby |
if [$OraCorrente-lt$OraOff-a$OraCorrente-ge$OraAttiva];then |
echo Riproduzione di NightSong1 per la notte |
fpp -c stop |
fpp -p "${NightSong1}" |
#Di giorno o molto tardi: gioca a Tiger Rag una volta e poi spegni le luci |
altro |
echo PlayingDaySong1 dalla riproduzione |
fpp -c stop |
fpp -P "${DaySong1}" |
fi |
#Per supportare più canzoni, copia questa sezione e cambia "Song2Playlist" nell'ultima sezione in Song#Playlist |
#Song1 è in esecuzione |
elif ["$PLAYLIST"=="$Song1Playlist"];then |
#Night time - gioca ad Hallelujah con standby |
if [$OraCorrente-lt$OraOff-a$OraCorrente-ge$OraAttiva];then |
echo La riproduzione di HallelujahStandby di Tiger Rag è in esecuzione |
fpp -c stop |
fpp -p "${NightSong2}" |
#Di giorno o molto tardi: riproduci Song2 una volta e poi spegni le luci |
altro |
echo Suonare l'Alleluia una volta da Tiger Rag sta correndo |
fpp -c stop |
fpp -P "${DaySong2}" |
fi |
#LAST SONG È IN CORSO - PLAY STANDBY |
elif ["$PLAYLIST"=="$Song2Playlist"];then |
#Notte - riproduci in standby in loop |
if [$OraCorrente-lt$OraOff-a$OraCorrente-ge$OraAttiva];then |
echo Riproduzione in standby su ripetizione |
fpp -c stop |
fpp -p "${NightStandby}" |
#Di giorno o molto tardi: gioca in standby una volta |
altro |
echo Riproduzione in standby una volta |
fpp -c stop |
fpp -P "${DayStandby}" |
fi |
altro |
echo Per qualche ragione è stato eseguito l'ultimo elsecase. |
fpp -c stop |
fpp -P "${DaySong1}" |
fi |
;; |
esac |
visualizza rawButtonSuperScript.sh ospitato con ❤ da GitHub
Passaggio 5: mascherina (opzionale) per il pulsante
Ho accesso a un laser cutter presso Clemson tramite Makerspace, quindi ho rapidamente abbozzato un progetto per tagliare e incidere. C'è un buco nel mezzo per il mio bottone, le parole dicono "Push Me" in un font natalizio e un fiocco di neve intorno al bottone. Ho verniciato a spruzzo del legno bianco e poi l'ho coperto con del nastro adesivo (in modo che il laser cutter non bruci le parti che non voglio incidere). Il file che ho usato è allegato.
Consigliato:
Spettacolo di luci di Natale sincronizzato con la musica!: 4 passaggi
Spettacolo di luci di Natale sincronizzato con la musica!: In questo tutorial, ti mostrerò come realizzare uno spettacolo di luci di Natale sincronizzato con la musica di Natale usando i pixel RGB. Non farti spaventare da quel nome! Non è troppo difficile imparare a farlo. Ti avverto però che questo può essere abbastanza
Carillon con spettacolo di luci: 9 passaggi (con immagini)
Carillon con spettacolo di luci: Ciao e benvenuto, in questo tutorial mostreremo come creare il tuo carillon con uno spettacolo di luci incluso. Tutto ciò di cui hai bisogno è una custodia vuota. Abbiamo preso una custodia che normalmente viene utilizzata per gli strumenti. In questo progetto puoi essere molto creativo, quindi non hai bisogno di
Spettacolo di luci reattive con musica economica: 22 passaggi (con immagini)
Spettacolo di luci reattive di musica economica: questo è uno dei modi più semplici per realizzare uno spettacolo di luci reattive di musica! Funziona modulando la luce laser utilizzando un diaframma / membrana riflettente in mylar che viene mosso dalle onde sonore provenienti da un altoparlante. Ci sono due versioni qui in questo strumento
Spettacolo di luci dell'albero di Natale Raspberry Pi: 15 passaggi (con immagini)
Spettacolo di luci dell'albero di Natale Raspberry Pi: aggiornamento: ho pubblicato un'evoluzione aggiornata di questo albero per il 2017 in questo https://www.instructables.com/id/LED-Christmas-Tree-With-Video-Projector-Rasp -Pi/Questo progetto prevede l'utilizzo di un Raspberry Pi per pilotare 8 prese CA collegate
Xmas-box: Arduino/ioBridge Luci di Natale controllate da Internet e spettacolo musicale: 7 passaggi
Xmas-box: Arduino/ioBridge Spettacolo musicale e luci di Natale controllato da Internet: il mio progetto Xmas-box consiste in uno spettacolo musicale e luci natalizie controllato da Internet. È possibile richiedere on-line una canzone di Natale che viene poi messa in coda e riprodotta nell'ordine in cui è stata richiesta. La musica viene trasmessa su una stazione FM