INHOUDSOPGAWE:

Begin u kersligvertoning met 'n knoppie: 5 stappe
Begin u kersligvertoning met 'n knoppie: 5 stappe

Video: Begin u kersligvertoning met 'n knoppie: 5 stappe

Video: Begin u kersligvertoning met 'n knoppie: 5 stappe
Video: 10 geweldige dingen over het bezit van een Tesla Er zijn veel redenen om ervoor te kiezen 2024, Julie
Anonim
Begin u kersligvertoning met 'n knoppie
Begin u kersligvertoning met 'n knoppie

As u 'n kersligprogram vertoon wat met musiek gesinkroniseer word, wil u die program begin deur op 'n knoppie te druk. Hierdie handleiding is slegs van toepassing op 'n program wat beheer word deur Falcon Pi Player (FPP) wat op 'n Raspberry Pi uitgevoer word. As u FPP gebruik, gebruik u waarskynlik Falcon -beheerders en gebruik u xLights of LightORama om u program op te volg. As niks van hierdie woorde vir u iets beteken nie, is hierdie tutoriaal waarskynlik 'n bietjie oor u kop, en u moet eers begin met die lees van hierdie wiki https://auschristmaslighting.com/wiki/ en aansluit by 'n Facebook -groep soos hieronder

  • xLights:
  • Algemene gevorderde kersliggies:
  • Falcon Pi Player:
  • Omhulsel/stut -idee deel:
  • "Nie spesifiek xLights of LOR verwant nie":
  • Verskaffers van xLights Holiday Light:
  • Doen dit self Kersfees:

Stap 1: Onderdele lys

U benodig die volgende items:

  • 'N Knoppie. Ek het hierdie een gebruik met 'n LED -ringlig rondom: [Amazon]
  • 'N Weerstand. Verkieslik 200Ω of meer (2 hiervan as u die LED -knoppie gebruik) Standaard 1/4W of 1/8W is goed
  • Verbindingsdraad. Die meter wat u moet gebruik, hang af van hoe ver die knoppie van u Pi sal wees. Ek het 'n draad van 18awg ongeveer 10 voet van my Pi gebruik en dit het foutloos gewerk
  • 'N Manier om 'n draad aan die GPIO -penne van die Pi te koppel. U kan 'n lintkabel met die breekbord gebruik, of u kan net 'n paar vroulike verbindings gebruik soos ek. Ons benodig slegs 3 drade - grond, 5V en data vir die knoppie. [Amazon]
  • (Opsioneel) 'n Waterdigte aansluiting aan elke kant vir maklike onderhoud. Ek gebruik 3-pins verbindings met mariene grade: [Amazon]
  • (Opsioneel) Hitte krimp boude verbindings [Amazon]

Stap 2: Bedradingsdiagram

Bedradingsdiagram
Bedradingsdiagram
Bedradingsdiagram
Bedradingsdiagram
Bedradingsdiagram
Bedradingsdiagram
Bedradingsdiagram
Bedradingsdiagram

Die foto's toon 'n bedradingsdiagram vir 'n knoppie sonder 'n ingeslote LED, en 'n knoppie met 'n LED. Met die manier waarop ek die bedradingsdiagram opgestel het, kan u met slegs 3 drade 'n knoppie en 'n lamp (voortdurend aan) laat loop.

Kies vir die GPIO -pen een van die GPIO -penne op die pi. Gebruik ook die +5V en Gnd penne. U kan waarskynlik wegkom deur die 3.3V -pen te gebruik, maar die spanningsval oor 'n paar meter draad kan die sein onbetroubaar maak of nie genoeg wees om die LED aan te steek nie.

OPMERKING: die 3-pen-aansluiting pas nie deur die gat wat u moet boor vir 'n knoppie met die LED-ringlig nie. Maak dus die aansluiting vas nadat u die knoppie in u voorplaat geplaas het.

Stap 3: Basiese opstelling van Falcon Pi Player

LET WEL - FPP word voortdurend bygewerk, en dit is heeltemal moontlik dat hulle hul skripte -ondersteuning sal verbeter of dat hulle 'drukknoppie om te begin' insluit as 'n standaardfunksie wat minder programmeer.

Ek het die bogenoemde video gevolg om alles eers op te stel.

Ek vind video's vervelig en stadig, so hier is 'n opsomming daarvan:

  • Voer u volgorde in na fpp met die lêerbestuurder
  • Skep 'n snitlys met die volgorde daarin. Vir die volgende stappe word die snitlys 'playme' genoem
  • Maak 'n leë notaboeklêer oop en tik die volgende:

    • #!/bin/sh
    • fpp -P speel
  • Stoor dit as 'n.sh -lêer op u rekenaar
  • Gaan na die lêerbestuurder in FPP en laai u scriptlêer op. Gaan na die oortjie "Scripts" en maak seker dat dit daar is
  • Gaan na Gebeurtenisse onder Status/beheer
  • Skep 'n nuwe geleentheid. Gebeurtenis -ID 1/1, Gebeurtenisnaam wat ook al, Effekvolgorde GEEN, Gebeurtenisskrif
  • Gaan onder Input/Output Setup en klik op GPIO -snellers
  • Wissel die pen waaraan u knoppie gekoppel is. As dit laag word as u op die knoppie druk, plaas die geleentheid op die Falling -opsie, as dit hoog is, plaas dan die geleentheid op Rising.
  • Klik op die herlaai -knoppie deur die waarskuwing wat verskyn nadat u al die veranderinge aangebring het

Nadat u dit alles gedoen het, moet u op die knoppie kan druk om u vertoning te begin. Woohoo!

Hierdie metode het egter 'n paar beperkings. As u weer op die knoppie druk terwyl die snitlys aan die gang is, sal dit óf 1) niks doen nie, óf 2) FPP verongeluk en weier om iets met u knoppie te doen totdat u dit herlaai. Dus, as u net 'n knoppie as 'n dramatiese manier gebruik om u program op bevel te speel, is bogenoemde metode alles wat u nodig het.

As u nog iets nodig het, gaan dan verder met die volgende stap

Stap 4: 'n Meer robuuste skrif

Hieronder is die draaiboek waarna ek uiteindelik gekom het. U kan die skrif op Github hier sien: [Gist. Github]

  • As iemand gedurende die "nag" -ure op die knoppie druk, speel dit Tiger Rag (my liedjie 1) en gaan dan na die standby -reeks wat oneindig loop.
  • As die knoppie ingedruk word terwyl Tiger Rag speel, begin dit met my tweede liedjie, Hallelujah, en gaan dan vir onbepaalde tyd na die standby -reeks.
  • Maar as iemand bedags of laat in die nag op die knoppie druk, speel dit een keer Tiger Rag en skakel dan al die ligte af.

Hierdeur kan die knoppie op enige tyd van die dag werk, maar die ligte hoef nie altyd aan te wees nie. Dit laat ook toe dat verskeie liedjies vanaf 1 knoppie gespeel kan word deur te identifiseer watter liedjie tans speel, die liedjie te beëindig en die 'volgende' liedjie te speel.

U kan meer hulpbronne vir scripts in FPP hier vind: https://github.com/FalconChristmas/fpp-scripts Vir 'n meer ingewikkelde logika, google "bash script _", waar onderstreping is wat u probeer doen. U kan u skrifte toets met behulp van die FPP Shell (gebruikersnaam fpp wagwoord falcon) Die basiese opdragte is soos volg.

Gee aandag aan hoofletters !!

  • Capital -P speel een keer 'n snitlys, klein -p sal dit herhaal.
  • fpp -v 66 Stel volume op 66%
  • fpp -c stop Stop die program onmiddellik
  • fpp -C stop Dit kan 'n grasieuse stopprogram wees
  • fpp -p hierdiePlaylistName Speel hierdiePlaylistName herhaaldelik (sodat die intro -liedjie een keer speel, dan word die belangrikste dinge onbepaald herhaal.
  • fpp -P hierdiePlaylistName Speel hierdiePlaylistName een keer
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Begin 'n skrif. In die linkerkant werk dit as u u skripnaam iewers hierbo in 'n veranderlike gestoor het, soos thisScriptVariable = "PlayTheSong.sh"

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Om te hardloop as die knoppie ingedruk word.
#U moet twee snitlyste vir elke liedjie hê - een met
# net die liedjie as die 'eerste toneelstuk' en niks hoofsaaklik nie,
# en nog een met die liedjie as eerste toneelstuk en u bystand
# volgorde as die 'Hoof' reeks. (Ten minste as u wil
# om presies te doen wat ek doen)
#
#As u lied byvoorbeeld Tiger Rag is, moet u dit hê
# snitlyste "TigerRag", "TigerRagStandby" en "Standby"
#
###########################################################
# Snitlyste om te speel as dit tussen 6 en 11 is
NightSong1 = "TigerRagStandby"
NightSong2 = "Hallelujah Standby"
NightStandby = "Standby"
# Snitlyste om gedurende die dag of na 11 te speel
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
DayStandby = "Standby"
#Aan en af tye in 24-uur tyd. As jy minute wil hê, sterkte
Uur = 17
Buiture = 23
###########################################################
# Die ingewande van die draaiboek. #
###########################################################
# Kry ons huidige status (IDLE = 0, SPEEL = 1, Grasieus ophou = 2)
STATUS = $ (fpp -s | cut -d ',' -f2)
#Kry die lopende snitlys en sny tot 7 letters
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#Dit sal 'beide' wees as dit 'n liedjie speel, en 'volgorde' as dit op bystand is
#gebruik om te bepaal of Standby -reeks uitgevoer word
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#Eerste 7 letters met name van afspeellyste ter vergelyking
#Slegs 7 letters sodat "Song1Standby" en "Song1" identies is
#Oké, dit moet eintlik die eerste x letters wees en x die kortste liedjie wat jy het
StandbyPlaylist = $ (eggo $ NightStandby | sny -c1-7)
Song1Playlist = $ (eggo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (eggo $ NightSong2 | sny -c1-7)
STARTITEM = ""
#Kry die huidige uur in militêre tyd
Huidige uur = $ (datum +"%H")
#Druk die status van sommige dinge af - 'eggo' is in die meeste tale soos 'druk'
#Nuttig om te toets of verskillende dinge korrek afgewerk of bereken is
eggo CurrentHour is $ CurrentHour
eggo Die speellys is: $ PLAYLIST
eggo Song2Playlist is: $ Song2Playlist
eggo Status is: $ STATUS
#Stel die volume in die nag op 80%, andersins 100%
#As ek dus slaap, is dit nie so hard nie
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; dan
# fpp -v 100
#else
# fpp -v 80
#fi
# Kyk of ons iets betekenisvol het
as [-z "$ {STATUS}"]; dan
eggo "Fout met statuswaarde"> & 2
uitgang 1
fi
# Wet op die huidige status
kas $ {STATUS} in
# Ledig
0)
#Nagtyd - speel Song1 met bystand
as [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; dan
eggo Playing NightSong1
fpp -c stop
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Daagtyd of regtig laat - speel lied 1 een keer en skakel ligte af
anders
eggo Playing DaySong1
fpp -c stop
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# SPEEL of STOP GRADERIG (grasieus gebeur as die knoppie ingedruk word wanneer 'n geskeduleerde snitlys eindig)
1 | 2)
#Standby loop - dit werk omdat bystand my enigste nie -mediaseeks is
as ["$ STANDBYSTRING" == "volgorde"]; dan
#Nagtyd - speel Song1 met bystand
as [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; dan
eggo Playing NightSong1 vir die nag
fpp -c stop
fpp -p "$ {NightSong1}"
#Daagtyd of regtig laat - speel een keer 'n tierlap en skakel dan die ligte af
anders
eggo PlayingDaySong1 van speel
fpp -c stop
fpp -P "$ {DaySong1}"
fi
#Om meer liedjies te ondersteun, kopieer hierdie afdeling en verander "Song2Playlist" in die laaste afdeling na Song#Playlist
#Song1 loop
elif ["$ PLAYLIST" == "$ Song1Playlist"]; dan
#Nagtyd - speel Hallelujah met bystand
as [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; dan
eggo Speel HallelujahStandby van Tiger Rag is aan die gang
fpp -c stop
fpp -p "$ {NightSong2}"
#Dagtyd of regtig laat - speel Song2 een keer en skakel ligte af
anders
eggo Speel Hallelujah een keer uit Tiger Rag is aan die gang
fpp -c stop
fpp -P "$ {DaySong2}"
fi
#LAASTE LIED LOPE - SPEEL STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"]; dan
#Nagtyd - speel standby op lus
as [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; dan
eggo Speel standby by herhaal
fpp -c stop
fpp -p "$ {NightStandby}"
#Daagtyd of regtig laat - speel een keer standby
anders
eggo Speel Standby een keer
fpp -c stop
fpp -P "$ {DayStandby}"
fi
anders
eggo Om een of ander rede is die laaste elsecase uitgevoer.
fpp -c stop
fpp -P "$ {DaySong1}"
fi
;;
esac

bekyk rawButtonSuperScript.sh aangebied deur ❤ deur GitHub

Stap 5: (opsioneel) Voorplaat vir die knoppie

Ek het toegang tot 'n lasersnyer by Clemson deur die Makerspace, so ek het vinnig 'n ontwerp geskets om te sny+ets. Daar is 'n gat in die middel vir my knoppie, die woorde sê "Push Me" in 'n Kersfeesletter en 'n sneeuvlokkie om die knoppie. Ek spuit 'n bietjie houtwit en bedek dit dan met maskeerband (sodat die lasersnyer nie dele skroei wat ek nie wil ets nie). Die lêer wat ek gebruik het, is aangeheg.

Aanbeveel: