Innehållsförteckning:
- Steg 1: Dellista
- Steg 2: Anslutningsdiagram
- Steg 3: Grundläggande installation av Falcon Pi Player
- Steg 4: Ett mer robust manus
- Steg 5: (Valfritt) Frontplatta för knappen
Video: Börja din jullysshow med en knapp: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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:
En tillämpning av en utdragbar knapp med vibrationsåterkoppling: 7 steg (med bilder)
En tillämpning av en utdragbar knapp med vibrationsåterkoppling: I den här självstudien ska vi först visa dig hur du använder en Arduino Uno för att styra en vibrationsmotor via en förlängd knapp. De flesta självstudier om tryckknappar involverar knappen på det fysiska brödbrädet, medan i den här självstudien har knappen
RGB USB -tangentbord med en knapp: 6 steg (med bilder)
RGB USB -tangentbord med en knapp: Har du någonsin känt att du behöver ha ett litet, men funktionellt, RGB -bakgrundsbelyst tangentbord, inte större än storleken på en enda nyckel? Nej? Vem bryr sig, gör en i alla fall! Den här instruerbara guiden guidar dig igenom stegen du behöver för att göra din egen, lite värdelösa, på
IoT -knapp som styr din app: 6 steg
IoT -knapp som styr din app: En av de saker jag gillar mest med mikrokontroller är möjligheten att använda dem som inmatningsenhet, till exempel kan Arduino Micro användas som en HID (human interface device) vilket betyder med viss kodning och vet hur du kan göra ditt eget keyboa
Behärska din mikro: bit med Arduino IDE-knapp och annan GPIO: 3 steg (med bilder)
Behärska din mikro: bit Med Arduino IDE-Button och annan GPIO: I vår tidigare blogg Master Your Micro: bit med Arduino IDE - - Light LED, vi har pratat om hur man installerar micro: bit bibliotek på Arduino IDE och hur för att driva LED på micro: bit med Arduino IDE. I den här artikeln kommer vi att berätta för dig
Lägg till en Spela/hoppa-knapp till din fristående CD-ROM-enhet: 4 steg
Lägg till en Spela/hoppa-knapp till din fristående CD-ROM-enhet: Om du vill göra en CD-spelare från en gammal CD-ROM-enhet (se här) men enheten du har inte har en PLAY/SKIP-knapp på framsidan ….. Missa inte, du kan lägga till en till de flesta Cd -enheter, > > > > Läs vidare