Innehållsförteckning:

Börja din jullysshow med en knapp: 5 steg
Börja din jullysshow med en knapp: 5 steg

Video: Börja din jullysshow med en knapp: 5 steg

Video: Börja din jullysshow med en knapp: 5 steg
Video: Börja Din Träning Med Dessa Övningar - 3 Hantel Övningar 2024, November
Anonim
Börja din jullysshow med en knapp
Börja din jullysshow med en knapp

När du kör en julbelysning som synkroniseras med musik kanske du vill starta showen genom att trycka på en knapp. Denna handledning är endast tillämplig för en show som styrs via Falcon Pi Player (FPP) som körs på en Raspberry Pi. Om du kör FPP använder du förmodligen Falcon -kontroller och använder xLights eller LightORama för att ordna din show. Om inget av dessa ord betyder något för dig, är den här självstudien förmodligen lite över huvudet just nu och du bör börja med att läsa denna wiki https://auschristmaslighting.com/wiki/ och gå med i en Facebook -grupp som nedan

  • xLights:
  • Allmänna avancerade julbelysning:
  • Falcon Pi Player:
  • Delning av bifogade filer/prop:
  • "Inte specifikt xLights eller LOR -relaterat":
  • xLights Holiday Light -leverantörer:
  • Gör det själv jul:

Steg 1: Dellista

Du behöver följande saker:

  • En knapp. Jag använde den här med ett LED -ringljus runt den: [Amazon]
  • Ett motstånd. Helst 200Ω eller högre (2 av dessa om du använder LED -knappen) Standard 1/4W eller 1/8W är bra
  • Anslutningskabel. Mätaren du ska använda beror på hur långt knappen kommer att vara från din Pi. Jag använde 18awg -tråd cirka 10 fot från min Pi och det fungerade felfritt
  • Ett sätt att ansluta en kabel till Pi: s GPIO -stift. Du kan använda en bandkabel med brödbrädan, eller så kan du bara använda några honkontakter som jag gjorde. Vi behöver bara 3 ledningar - jord, 5V och data för knapp. [Amazon]
  • (Valfritt) En vattentät kontakt i varje ände för enkelt underhåll. Jag använder 3-poliga kontakter av marin kvalitet: [Amazon]
  • (Valfritt) Värmekrympskruvkontakter [Amazon]

Steg 2: Anslutningsdiagram

Kopplingsschema
Kopplingsschema
Kopplingsschema
Kopplingsschema
Kopplingsschema
Kopplingsschema
Kopplingsschema
Kopplingsschema

Bilderna visar ett kopplingsschema för en knapp utan en medföljande LED och en knapp med en LED. Så som jag ställde in kopplingsschemat kan du köra en knapp och en lampa (kontinuerligt tänd) med bara 3 ledningar.

För GPIO -stiftet, välj någon av GPIO -stiften på pi. Använd också +5V och Gnd -stiften. Du kan förmodligen komma undan med att använda 3.3V -stiftet, men spänningsfallet över flera meter tråd kan göra signalen opålitlig eller inte räcka för att tända lysdioden.

OBS: 3-polig kontakten passar inte genom hålet du behöver borra för en knapp med LED-ringljuset. Så fäst kontakten efter att du har satt knappen i din frontplatta.

Steg 3: Grundläggande installation av Falcon Pi Player

OBS - FPP uppdateras ständigt, och det är fullt möjligt att de kommer att förbättra sitt skriptstöd eller att de kommer att inkludera "tryckknapp för att starta" som en standardfunktion som kräver mindre programmering.

Jag följde videon ovan för att först få igång allt.

Jag tycker att videor är tråkiga och långsamma, så här är en sammanfattning av det:

  • Importera din sekvens till fpp med filhanteraren
  • Skapa en spellista med sekvensen i den. I nästa steg kommer spellistan att kallas "playme"
  • Öppna en tom anteckningsfil och skriv följande:

    • #!/bin/sh
    • fpp -P playme
  • Spara den som en.sh -fil på din dator
  • Gå till filhanteraren i FPP och ladda upp din skriptfil. Gå till fliken "Skript" och se till att den finns där
  • Gå till Händelser under Status/Kontroll
  • Skapa ett nytt evenemang. Händelse -ID 1/1, Händelsens namn oavsett, Effektsekvens INGEN, Händelseskript
  • Gå till Input/Output Setup och klicka på GPIO -triggers
  • Växla den stift som din knapp är ansluten till. Om det kommer att gå lågt när du trycker på knappen sätter du händelsen på fallande alternativ, om den är aktiv hög, lägg sedan händelsen på Rising.
  • Klicka på knappen Starta om med den varning som visas när du har gjort alla ändringar

Efter att ha gjort allt detta bör du kunna trycka på knappen för att få din show att starta. Woohoo!

Denna metod har dock vissa begränsningar. Om du trycker på knappen igen medan spellistan pågår, kommer den antingen 1) inte att göra något eller 2) kraschar FPP och vägrar att göra någonting med din knapp tills du startar om den. Så om du bara använder en knapp som ett dramatiskt sätt att spela din show på kommando, är ovanstående metod allt du behöver.

Om du behöver något mer, fortsätt till nästa steg

Steg 4: Ett mer robust manus

Nedan är manuset som jag så småningom kom fram till. Du kan se manuset på Github här: [Gist. Github]

  • Om någon trycker på knappen under "natt" timmar kommer den att spela Tiger Rag (min Song1) och sedan gå till standby -sekvensen som går i oändlighet.
  • Om knappen trycks in medan Tiger Rag spelar så startar den min andra låt, Hallelujah, och går sedan till standby -sekvensen på obestämd tid.
  • Men om någon trycker på knappen dagtid eller mycket sent på kvällen kommer den att spela Tiger Rag en gång och sedan släcka alla lampor.

Detta gör att knappen kan fungera när som helst på dygnet men lamporna behöver inte vara tända hela tiden. Det gör det också möjligt att spela flera låtar från en knapp genom att identifiera vilken låt som spelas för närvarande, avsluta den låten och spela "nästa" låt.

Du kan hitta fler resurser för skript i FPP här: https://github.com/FalconChristmas/fpp-scriptsFör mer komplicerad logik bara google "bash script _" där understrykning är vad du försöker göra. Du kan testa dina skript med hjälp av FPP Shell (användarnamn fpp lösenord falcon) De grundläggande kommandona är följande.

Var uppmärksam på stora bokstäver !!

  • Capital -P spelar en spellista en gång, gemener -p upprepar den.
  • fpp -v 66 Ställ in volymen på 66%
  • fpp -c stop Stoppa showen omedelbart
  • fpp -C stop Det här kan vara stop show graciöst
  • fpp -p thisPlaylistName Spelar upp dennaPlaylistName vid upprepning (så intro -låten spelas upp en gång, då kommer huvudmaterialet att upprepas på obestämd tid.
  • fpp -P thisPlaylistName Spelar thisPlaylistName en gång
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Kör ett skript. I fallet till vänster fungerar det för om du har ditt skriptnamn sparat i en variabel någonstans ovan, som thisScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#För att köras om knappen trycks ned.
#Du bör ha två spellistor för varje låt - en med
# bara låten som "Första pjäsen" och ingenting i huvudsak,
# och en annan med låten som första pjäs och ditt vänteläge
# sekvens som "Huvud" -sekvensen. (Åtminstone om du vill
# för att göra exakt vad jag gör)
#
#Till exempel, om din låt är Tiger Rag, borde du ha
# spellistor "TigerRag", "TigerRagStandby" och "Standby"
#
###########################################################
# Spellistor att köra om det är mellan 6 och 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "Standby"
# Spellistor att köra under dagen eller efter 11
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
DayStandby = "Standby"
#På och av-tider på 24-timmars tid. Om du vill ha minuter, lycka till
OnHour = 17
OffHour = 23
###########################################################
# Inre i manuset. #
###########################################################
# Få vår nuvarande status (IDLE = 0, PLAYING = 1, Stoppar graciöst = 2)
STATUS = $ (fpp -s | cut -d ',' -f2)
#Få spellistan som körs och trimma till 7 bokstäver
SPELLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#Detta kommer att vara "både" om det spelar en låt och "sekvens" om det är standby
#används för att avgöra om vänteläget körs
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#Första 7 bokstäver med namn på spellistor för jämförelse
#Bara 7 bokstäver så att "Song1Standby" och "Song1" är identiska
#Okej så egentligen borde det vara första x bokstäver och x ska vara det kortaste låtnamnet du har
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#Få den aktuella timmen i militär tid
CurrentHour = $ (datum +"%H")
#Skriv ut status för vissa saker - "eko" är som "skriv ut" på de flesta språk
#Användbart för att testa om olika saker trimmas eller beräknas korrekt
echo CurrentHour är $ CurrentHour
echo Spellista som körs är: $ PLAYLIST
echo Song2Playlist är: $ Song2Playlist
echo Status är: $ STATUS
#Ställ in volymen på 80% på natten, 100% annars
#Så att om jag sover är det inte lika högt
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; sedan
# fpp -v 100
#annan
# fpp -v 80
#fi
# Kontrollera att vi har något meningsfullt
om [-z "$ {STATUS}"]; då
eko "Fel med statusvärde"> & 2
utgång 1
fi
# Handla om den aktuella statusen
fall $ {STATUS} in
# INGÅNG
0)
#Natt - spela Song1 med standby
om [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; då
echo Playing NightSong1
fpp -c stopp
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Dag eller riktigt sent - spela låt 1 en gång och släck sedan lamporna
annan
echo Playing DaySong1
fpp -c stopp
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# SPELAR eller STOPPER GRACEFULLY (graciöst händer om du trycker på knappen när en schemalagd spellista slutar)
1 | 2)
#Standby körs - det här fungerar eftersom standby är min enda icke -mediasekvens
om ["$ STANDBYSTRING" == "sekvens"]; då
#Natt - spela Song1 med standby
om [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; då
echo Playing NightSong1 för nattetid
fpp -c stopp
fpp -p "$ {NightSong1}"
#Dagstid eller riktigt sent - spela tigerduk en gång och släck sedan lamporna
annan
echo PlayingDaySong1 från att spela
fpp -c stopp
fpp -P "$ {DaySong1}"
fi
#För att stödja fler låtar, kopiera det här avsnittet och ändra "Song2Playlist" i det senaste avsnittet till Song#Playlist
#Song1 körs
elif ["$ PLAYLIST" == "$ Song1Playlist"]; sedan
#Natt - spela Halleluja med standby
om [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; då
echo Playing HallelujahStandby från Tiger Rag är igång
fpp -c stopp
fpp -p "$ {NightSong2}"
#Dag eller riktigt sent - spela Song2 en gång och släck sedan lamporna
annan
echo Att spela Hallelujah en gång från Tiger Rag är igång
fpp -c stopp
fpp -P "$ {DaySong2}"
fi
#SENASTE SÅN GÅR - SPELA STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"]; sedan
#Natt - spela standby på loop
om [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; då
echo Spelar standby vid upprepning
fpp -c stopp
fpp -p "$ {NightStandby}"
#Dag eller riktigt sent - spela standby en gång
annan
echo Spela standby en gång
fpp -c stopp
fpp -P "$ {DayStandby}"
fi
annan
echo Av någon anledning utfördes den sista elsecasen.
fpp -c stopp
fpp -P "$ {DaySong1}"
fi
;;
esac

visa rawButtonSuperScript.sh värd med ❤ av GitHub

Steg 5: (Valfritt) Frontplatta för knappen

Jag har tillgång till en laserskärare på Clemson genom Makerspace, så jag skissade snabbt upp en design för att klippa+etsa. Det finns ett hål i mitten för min knapp, orden säger "Push Me" i ett julsnitt och en snöflinga runt knappen. Jag spraymålade lite trävitt och täckte det sedan med maskeringstejp (så att laserskäraren inte bränner delar jag inte vill ha etsade). Filen jag använde bifogas.

Rekommenderad: