Taula de continguts:
- Pas 1: llista de peces
- Pas 2: Esquema de cablejat
- Pas 3: Configuració bàsica del reproductor Falcon Pi
- Pas 4: un guió més robust
- Pas 5: placa frontal (opcional) del botó
Vídeo: Comenceu el vostre espectacle de llum de Nadal amb un botó: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Quan executeu un espectacle de llums de Nadal sincronitzat amb música, és possible que vulgueu iniciar el programa prement un botó. Aquest tutorial només és aplicable a un programa que es controla mitjançant Falcon Pi Player (FPP) que s’executa en un Raspberry Pi. Si feu servir FPP, probablement utilitzeu controladors Falcon i feu servir xLights o LightORama per seqüenciar el vostre programa. Si cap d'aquestes paraules no significa res per a vosaltres, aquest tutorial probablement us estigui una mica per sobre i ara hauríeu de començar llegint aquest wiki https://auschristmaslighting.com/wiki/ i unir-vos a un grup de Facebook com a continuació.
- xLights:
- Llums de Nadal avançades generals:
- Falcon Pi Player:
- Compartiment d'idees de recintes / accessoris:
- "No està específicament relacionat amb xLights ni LOR":
- Venedors de xLights Holiday Light:
- Fes-ho tu mateix Nadal:
Pas 1: llista de peces
Necessitareu els elements següents:
- Un botó. L’he utilitzat amb una llum anell LED al voltant: [Amazon]
- Una resistència. Preferiblement 200 Ω o superior (2 d’aquests si utilitzeu el botó LED) Estàndard 1 / 4W o 1 / 8W està bé
- Cable del connector. L'indicador que heu d'utilitzar depèn de la distància del botó del vostre Pi. He utilitzat filferro de 18awg a uns 10 peus del meu Pi i ha funcionat perfectament
- Una manera de connectar un cable als pins GPIO del Pi. Podeu utilitzar un cable de cinta amb el tauler de presentació o només podeu utilitzar alguns connectors femenins com jo. Només necessitem 3 cables: terra, 5 V i dades per al botó. [Amazon]
- (Opcional) Un connector impermeable a cada extrem per facilitar el manteniment. Faig servir connectors marins de 3 pins: [Amazon]
- (Opcional) Connectors termoencongibles [Amazon]
Pas 2: Esquema de cablejat
Les imatges mostren un esquema de cablejat per a un botó sense LED inclòs i un botó amb LED. La forma en què he configurat el diagrama de cablejat us permet executar un botó i un llum (encès contínuament) amb només 3 cables.
Per al pin GPIO, trieu qualsevol dels pins GPIO del pi. Utilitzeu també els pins + 5V i Gnd. Probablement es podria sortir amb l’ús del pin de 3,3 V, però la caiguda de tensió a través de diversos peus de cable pot fer que el senyal no sigui fiable o no sigui suficient per encendre el LED.
NOTA: El connector de 3 pins no s'adaptarà al forat que necessiteu per foradar un botó amb la llum LED de l'anell. Per tant, connecteu el connector després de posar el botó a la placa frontal.
Pas 3: Configuració bàsica del reproductor Falcon Pi
NOTA: FPP s’actualitza constantment i és totalment possible que millorin el seu suport de seqüències d’ordres o que incloguin “botó d’inici” com a característica per defecte que requereixi menys programació.
Vaig seguir el vídeo anterior per configurar-ho inicialment.
Trobo que els vídeos són avorrits i lents, així que aquí teniu un resum:
- Importeu la seqüència a fpp mitjançant el gestor de fitxers
- Creeu una llista de reproducció amb la seqüència. Per als passos següents, la llista de reproducció es dirà "playme"
-
Obriu un fitxer de bloc de notes en blanc i escriviu el següent:
- #! / bin / sh
- fpp -P playme
- Deseu-lo com a fitxer.sh a l'ordinador
- Aneu al gestor de fitxers a FPP i pengeu el fitxer de script. Aneu a la pestanya "Scripts" i assegureu-vos que hi sigui
- A Estat / control, aneu a Esdeveniments
- Crea un esdeveniment nou. Identificador d’esdeveniment 1/1, nom de l’esdeveniment, Seqüència d’efectes CAP, script d’esdeveniment
- Aneu a Configuració d’entrada / sortida i feu clic a Activadors GPIO
- Commuta el pin al qual està connectat el botó. Si baixarà quan premeu el botó, poseu l'esdeveniment a l'opció Falling, si està activat, poseu l'esdeveniment a Rising.
- Feu clic al botó Reinicia per l'avís que apareix després de fer tots els canvis
Després de fer tot això, hauríeu de poder prémer el botó per iniciar el vostre programa. Woohoo!
No obstant això, aquest mètode té algunes limitacions. Si torneu a prémer el botó mentre la llista de reproducció funciona, 1) no farà res o 2) fallarà FPP i es negarà a fer res amb el botó fins que no el reinicieu. Per tant, si només utilitzeu un botó com a manera dramàtica de reproduir el vostre programa per ordre, el mètode anterior serà tot el que necessiteu.
Si necessiteu alguna cosa més, continueu amb el següent pas
Pas 4: un guió més robust
A continuació es mostra el guió al qual vaig arribar finalment. Podeu veure el guió a Github aquí: [Gist. Github]
- Si algú prem el botó durant les hores "nocturnes", reproduirà Tiger Rag (la meva cançó 1) i després anirà a la seqüència d'espera que fa un bucle infinit.
- Si es prem el botó mentre es reprodueix Tiger Rag, comença la meva segona cançó, Hallelujah, i després passarà a la seqüència d'espera indefinidament.
- Però si algú prem el botó durant el dia o molt a la nit, tocarà Tiger Rag una vegada i després apagarà tots els llums.
Això permet que el botó funcioni a qualsevol hora del dia, però no cal que els llums estiguin sempre encesos. També permet reproduir diverses cançons des d’un botó identificant quina cançó s’està reproduint actualment, acabant aquesta cançó i reproduint la cançó “següent”.
Podeu trobar més recursos per crear scripts a FPP aquí: https://github.com/FalconChristmas/fpp-scripts Per obtenir una lògica més complicada, només cal que feu servir google “bash script _”, on el subratllat és el que intenteu fer. Podeu provar els vostres scripts amb FPP Shell (nom d'usuari fpp password falcon) Les ordres bàsiques són les següents.
Preste atenció a les majúscules !!
- Majúscula -P reproduirà una llista de reproducció una vegada, minúscula -p la repetirà.
- fpp -v 66 Estableix el volum al 66%
- fpp -c stop Atura el programa immediatament
- fpp -C stop Això pot ser stop show amb gràcia
- fpp -p thisPlaylistName Reprodueix thisPlaylistName quan es repeteix (de manera que la cançó d'introducció es reprodueix una vegada, les coses principals es repetiran indefinidament.
- fpp -P thisPlaylistName Reprodueix thisPlaylistName una vegada
- eventScript "$ {MEDIADIR} / scripts / $ {thisScriptVariable}" Executa un script. En el cas de l'esquerra, funciona si teniu el nom del script desat en una variable en algun lloc superior, com ara thisScriptVariable = "PlayTheSong.sh"
ButtonSuperScript.sh
#! / bin / sh |
########################################################### |
#Per executar-se si es prem el botó. |
#Heu de tenir dues llistes de reproducció per a cada cançó, una amb |
# només la cançó com a "Primera obra" i res principal, |
# i una altra amb la cançó com a primera obra i el vostre mode d'espera |
# seqüència com a seqüència "Principal". (Almenys si voleu |
# per fer exactament el que estic fent) |
# |
# Per exemple, si la vostra cançó és Tiger Rag, hauríeu de tenir-ho |
# llistes de reproducció "TigerRag", "TigerRagStandby" i "Standby" |
# |
########################################################### |
# Llistes de reproducció per executar si és entre 6 i 11 |
NightSong1 = "TigerRagStandby" |
NightSong2 = "HallelujahStandby" |
NightStandby = "Espera" |
# Llistes de reproducció per executar durant el dia o després de les 11 |
DaySong1 = "TigerRag" |
DaySong2 = "Al·leluia" |
DayStandby = "Espera" |
# Horaris d'encesa i apagada en 24 hores. Si voleu minuts, molta sort |
Hora = 17 |
Hora fora = 23 |
########################################################### |
# Tripes del guió. # |
########################################################### |
# Obteniu el nostre estat actual (IDLE = 0, PLAYING = 1, Parant amb gràcia = 2) |
ESTAT = $ (fpp -s | cut -d ',' -f2) |
# Obteniu la llista de reproducció en curs i retalleu-la amb 7 lletres |
LLISTA DE REPRODUCCIÓ = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Això serà "tots dos" si es reprodueix una cançó i "seqüència" si està en espera |
#utilitzat per determinar si s’executa la seqüència d’espera |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
#Primeres 7 lletres de noms de llistes de reproducció per comparar-les |
#Només 7 lletres perquè "Song1Standby" i "Song1" siguin idèntics |
#D’acord, així que en realitat haurien de ser les primeres x lletres i x hauria de ser el nom de cançó més curt que tingueu |
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
STARTITEM = "" |
#Obteniu l'hora actual en temps militar |
Hora actual = $ (data + "% H") |
#Imprimiu l'estat d'algunes coses: "eco" és com "imprimir" a la majoria d'idiomes |
# Útil per provar si diverses coses es retallen o es calculen correctament |
eco CurrentHour és $ CurrentHour |
La llista de reproducció de echo Running és: $ PLAYLIST |
echo Song2Playlist és: $ Song2Playlist |
echo Status és: $ STATUS |
# Estableix el volum al 80% a la nit, al 100% en cas contrari |
#Així que si estic dormint no és tan fort |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; llavors |
# fpp -v 100 |
#else |
# fpp -v 80 |
#fi |
# Comproveu que tenim alguna cosa significativa |
si [-z "$ {STATUS}"], llavors |
echo "Error amb el valor d'estat"> & 2 |
sortida 1 |
fi |
# Actua sobre l'estat actual |
majúscula $ {STATUS} |
# OCIÓS |
0) |
#Night time: toca Song1 amb el mode d'espera |
si [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour], llavors |
eco Playing NightSong1 |
fpp -c stop |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
# Hora del dia o molt tard: toqueu la cançó 1 una vegada i apagueu els llums |
en cas contrari |
eco Playing DaySong1 |
fpp -c stop |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# REPRODUCIR O DEIXAR DE SER GRACIAMENT (passa amb gràcia si es prem el botó quan finalitza una llista de reproducció programada) |
1 | 2) |
# Standby s'està executant: funciona perquè l'estat d'espera és la meva única seqüència no multimèdia |
si ["$ STANDBYSTRING" == "seqüència"]; llavors |
#Night time: toca Song1 amb el mode d'espera |
si [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour], llavors |
eco Reproducció de NightSong1 durant la nit |
fpp -c stop |
fpp -p "$ {NightSong1}" |
# Hora del dia o molt tard: toca el drap de tigre una vegada i apaga els llums |
en cas contrari |
fer ressò de PlayingDaySong1 de jugar |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
#Per donar suport a més cançons, copieu aquesta secció i canvieu "Song2Playlist" de l'última secció a Song # Playlist |
La cançó 1 s'està executant |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; després |
#Night time: toca Al·leluia amb el mode d'espera |
si [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour], llavors |
echo Playing HallelujahStandby de Tiger Rag està funcionant |
fpp -c stop |
fpp -p "$ {NightSong2}" |
#Day time o molt tard: toca Song2 una vegada i apaga els llums |
en cas contrari |
eco Jugant a Al·leluia una vegada de Tiger Rag està funcionant |
fpp -c stop |
fpp -P "$ {DaySong2}" |
fi |
#LAST SONG IS RUNNING - PLAY STANDBY |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; després |
#Night time: reprodueix el mode d'espera en bucle |
si [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour], llavors |
eco Reproducció en espera en repetir |
fpp -c stop |
fpp -p "$ {NightStandby}" |
# Hora del dia o molt tard: toca en espera una vegada |
en cas contrari |
eco Reproducció en espera una vegada |
fpp -c stop |
fpp -P "$ {DayStandby}" |
fi |
en cas contrari |
eco Per alguna raó, es va executar l'últim elsecase. |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
veure rawButtonSuperScript.sh allotjat amb ❤ per GitHub
Pas 5: placa frontal (opcional) del botó
Tinc accés a un tallador làser a Clemson a través del Makerspace, de manera que vaig esbossar ràpidament un disseny per tallar + gravar. Hi ha un forat al mig per al meu botó, les paraules diuen "Empeny-me" amb una lletra de Nadal i un floc de neu al voltant del botó. Vaig pintar una mica de fusta de blanc amb esprai i després la vaig tapar amb cinta adhesiva (perquè el tallador làser no cremés parts que no vull gravar). S'adjunta el fitxer que he utilitzat.
Recomanat:
Espectacle de llums de Nadal sincronitzat amb la música: 4 passos
Espectacle de llum de Nadal sincronitzat amb la música: en aquest instructiu, us mostraré com fer un espectacle de llum de Nadal sincronitzat amb la música de Nadal amb píxels RGB. No deixeu que aquest nom us espanti! No és massa difícil aprendre a fer-ho. T'advertiré, però, que això pot ser força
Arbre de Nadal que respira: controlador de llum de Nadal Arduino: 4 passos
Arbre de Nadal que respira: controlador de llum de Nadal Arduino: no és una bona notícia que la caixa de control del meu arbre de Nadal artificial preil·luminat de 9 peus es va trencar abans de Nadal , i el fabricant no proporciona recanvis. Aquest inescrutable mostra com fer que el vostre propi controlador i controlador de llum LED utilitzi Ar
Espectacle de llum de l'arbre de Nadal de Raspberry Pi: 15 passos (amb imatges)
Raspberry Pi Christmas Tree Light Show: Actualització: he publicat una evolució actualitzada d’aquest arbre per al 2017 en aquest instructiu https://www.instructables.com/id/LED-Christmas-Tree-With-Video-Projector-Rasp -Pi / Aquest projecte consisteix a utilitzar un Raspberry Pi per conduir 8 sortides de CA connectades
Comenceu el vostre primer projecte amb Raspberry: LED parpellejant: 4 passos
Comenceu el vostre primer projecte amb Raspberry: LED parpellejant: en aquest projecte us mostraré com programar Raspberry Pi perquè parpellegi un LED. Si gairebé heu comprat un Raspberry pi i no sabeu res per on començar, això A més del vostre Raspberry Pi que executa Raspbian, i
Xmas-box: Arduino / ioBridge Llums de Nadal i espectacle musical controlats per Internet: 7 passos
Xmas-box: Arduino / ioBridge Control de llums i espectacles de música per Internet per Internet: el meu projecte de Nadal consisteix en un espectacle de música i llums de Nadal controlats per internet. Es pot sol·licitar una cançó de Nadal en línia que després es posa a la cua i es reprodueix en l'ordre en què es va sol·licitar. La música es transmet en un estat de FM