Innholdsfortegnelse:
- Trinn 1: Deleliste
- Trinn 2: Koblingsskjema
- Trinn 3: Grunnleggende oppsett av Falcon Pi Player
- Trinn 4: Et mer robust skript
- Trinn 5: (Valgfritt) Frontplate for knappen
Video: Start julelysshowet med en knapp: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Når du kjører et julelysshow synkronisert med musikk, vil du kanskje starte showet ved å trykke på en knapp. Denne opplæringen gjelder bare for et show som styres gjennom Falcon Pi Player (FPP) som kjører på en Raspberry Pi. Hvis du kjører FPP, bruker du sannsynligvis Falcon -kontrollere og bruker xLights eller LightORama til å sekvensere showet ditt. Hvis ingen av disse ordene betyr noe for deg, er denne opplæringen sannsynligvis litt over hodet ditt for nå, og du bør begynne med å lese denne wikien https://auschristmaslighting.com/wiki/ og bli med i en Facebook -gruppe som nedenfor
- xLights:
- Generelle avanserte julelys:
- Falcon Pi Player:
- Vedlegg/deling av ideer:
- "Ikke spesifikt xLights eller LOR -relatert":
- xLights Holiday Light -leverandører:
- Gjør det selv jul:
Trinn 1: Deleliste
Du trenger følgende ting:
- En knapp. Jeg brukte denne med et LED -ringlys rundt: [Amazon]
- En motstand. Fortrinnsvis 200Ω eller mer (2 av disse hvis du bruker LED -knappen) Standard 1/4W eller 1/8W er greit
- Kontaktledning. Måleren du bør bruke, avhenger av hvor langt knappen vil være fra din Pi. Jeg brukte 18awg wire i omtrent 10 fot fra Pi -en min, og det fungerte feilfritt
- En måte å koble en ledning til Pi's GPIO -pinner. Du kan bruke en båndkabel med brødbrettet, eller du kan bare bruke noen kvinnelige kontakter som jeg gjorde. Vi trenger bare 3 ledninger - Jord, 5V og data for knapp. [Amazon]
- (Valgfritt) En vanntett kontakt i hver ende for enkelt vedlikehold. Jeg bruker 3-pinners marine grade kontakter: [Amazon]
- (Valgfritt) Varmekrympekontakter [Amazon]
Trinn 2: Koblingsskjema
Bildene viser et koblingsskjema for en knapp uten en inkludert LED, og en knapp med en LED. Måten jeg konfigurerte koblingsskjemaet på lar deg kjøre en knapp og et lys (kontinuerlig på) med bare 3 ledninger.
For GPIO -pinnen, velg hvilken som helst GPIO -pinne på pien. Bruk også +5V og Gnd -pinnene. Du kan sannsynligvis slippe unna med å bruke 3.3V -pinnen, men spenningsfallet over flere meter ledning kan gjøre signalet upålitelig eller ikke være nok til å lyse LED -en.
MERK: 3-pinners kontakten passer ikke gjennom hullet du trenger å bore for en knapp med LED-ringelyset. Så fest kontakten etter at du har satt knappen i frontplaten.
Trinn 3: Grunnleggende oppsett av Falcon Pi Player
MERK - FPP oppdateres stadig, og det er fullt mulig at de vil forbedre skriptstøtten eller at de vil inkludere "trykknapp for å starte" som en standardfunksjon som krever mindre programmering.
Jeg fulgte videoen ovenfor for først å få alt satt opp.
Jeg synes videoer er kjedelige og trege, så her er et sammendrag av det:
- Importer sekvensen til fpp ved hjelp av filbehandleren
- Lag en spilleliste med sekvensen i den. I de neste trinnene vil spillelisten bli kalt "playme"
-
Åpne en tom notisblokkfil og skriv inn følgende:
- #!/bin/sh
- fpp -P playme
- Lagre den som en.sh -fil på datamaskinen
- Gå til filbehandleren i FPP og last opp skriptfilen. Gå til fanen "Skript" og kontroller at den er der
- Gå til Hendelser under Status/kontroll
- Lag et nytt arrangement. Hendelses -ID 1/1, Hendelsesnavn uansett, Effektsekvens INGEN, Hendelseskript
- Gå under Input/Output Setup og klikk på GPIO -utløsere
- Veksle knappenålen knappen er festet til. Hvis det vil gå lavt når du trykker på knappen, setter du hendelsen på Falling -alternativet, hvis det er aktivt høyt, setter du hendelsen på Rising.
- Klikk på Reboot -knappen med advarselen som dukker opp etter at du har gjort alle endringene
Etter å ha gjort alt dette, bør du kunne trykke på knappen for å starte showet ditt. Woohoo!
Imidlertid har denne metoden noen begrensninger. Hvis du trykker på knappen igjen mens spillelisten er i gang, vil den enten 1) ikke gjøre noe eller 2) krasje FPP og nekte å gjøre noe med knappen før du starter den på nytt. Så hvis du bare bruker en knapp som en dramatisk måte å spille showet ditt på kommando, vil metoden ovenfor være alt du trenger.
Hvis du trenger noe mer, fortsett til neste trinn
Trinn 4: Et mer robust skript
Nedenfor er manuset som jeg til slutt kom frem til. Du kan se manuset på Github her: [Gist. Github]
- Hvis noen trykker på knappen i løpet av "natt" -timene, vil den spille Tiger Rag (min sang 1) og deretter gå til standby -sekvensen som sløyfes uendelig.
- Hvis knappen trykkes mens Tiger Rag spiller, starter den andre sangen min, Hallelujah, og går deretter til standby -sekvensen på ubestemt tid.
- Men hvis noen trykker på knappen på dagtid eller veldig sent på kvelden, vil den spille Tiger Rag en gang og deretter slå av alle lysene.
Dette gjør at knappen kan fungere når som helst på dagen, men lysene trenger ikke å være på hele tiden. Det gjør det også mulig å spille flere sanger fra en knapp ved å identifisere hvilken sang som spilles for øyeblikket, avslutte sangen og spille den "neste" sangen.
Du kan finne flere ressurser for skripting i FPP her: https://github.com/FalconChristmas/fpp-scriptsFor mer komplisert logikk bare google "bash script _" der understreking er det du prøver å gjøre. Du kan teste skriptene dine ved å bruke FPP Shell (brukernavn fpp passord falcon) De grunnleggende kommandoene er som følger.
Vær oppmerksom på store bokstaver !!
- Capital -P spiller en spilleliste en gang, små -p gjentar den.
- fpp -v 66 Sett volum til 66%
- fpp -c stop Stopp showet umiddelbart
- fpp -C stop Dette kan være stop show grasiøst
- fpp -p thisPlaylistName Spiller dettePlaylistName ved gjentagelse (så intro -sangen spilles av en gang, så vil hovedtingen gjentas på ubestemt tid.
- fpp -P thisPlaylistName Spiller dettePlaylistName én gang
- eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Kjører et skript. I tilfellet til venstre fungerer det for hvis du har skriptnavnet ditt lagret i en variabel et sted ovenfor, for eksempel thisScriptVariable =”PlayTheSong.sh”
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#Å kjøres hvis du trykker på knappen. |
#Du bør ha to spillelister for hver sang - en med |
# bare sangen som det "første skuespillet" og ingenting i hovedsak, |
# og en annen med sangen som første spill og ventemodus |
# sekvens som "Hovedsekvens". (I hvert fall hvis du vil |
# for å gjøre akkurat det jeg gjør) |
# |
#For eksempel, hvis sangen din er Tiger Rag, burde du ha det |
# spillelister "TigerRag", "TigerRagStandby" og "Standby" |
# |
########################################################### |
# Spillelister som skal kjøres hvis de er mellom 6 og 11 |
NightSong1 = "TigerRagStandby" |
NightSong2 = "Hallelujah Standby" |
NightStandby = "Standby" |
# Spillelister som skal kjøres i løpet av dagen eller etter 11 |
DaySong1 = "TigerRag" |
DaySong2 = "Hallelujah" |
DayStandby = "Standby" |
#Av og på-tider i 24-timers tid. Hvis du vil ha minutter, lykke til |
OnHour = 17 |
OffHour = 23 |
########################################################### |
# Modet til manuset. # |
########################################################### |
# Få vår nåværende status (IDLE = 0, PLAYING = 1, stopper grasiøst = 2) |
STATUS = $ (fpp -s | cut -d ',' -f2) |
#Få spillelisten som kjører, og trim til 7 bokstaver |
SPILLELISTE = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Dette vil være "både" hvis den spiller en sang, og "sekvens" hvis den er standby |
#brukes til å avgjøre om standby -sekvensen kjører |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
#Første 7 bokstaver med navn på spillelister for sammenligning |
#Bare 7 bokstaver slik at "Song1Standby" og "Song1" er identiske |
#Ok, så egentlig burde det være første x bokstaver og x skal være det korteste sangnavnet du har |
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
STARTITEM = "" |
#Få den nåværende timen i militær tid |
CurrentHour = $ (dato +"%H") |
#Skriv ut statusen til noen ting - "ekko" er som "skrive ut" på de fleste språk |
#Nyttig for å teste om forskjellige ting er trimmet eller beregnet riktig |
echo CurrentHour er $ CurrentHour |
ekko Kjører spilleliste er: $ PLAYLIST |
echo Song2Playlist er: $ Song2Playlist |
ekko Status er: $ STATUS |
#Sett volumet til 80% om natten, 100% ellers |
Så at hvis jeg sover, er det ikke så høyt |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; deretter |
# fpp -v 100 |
#ellers |
# fpp -v 80 |
#fi |
# Sjekk at vi har noe meningsfylt |
hvis [-z "$ {STATUS}"]; da |
ekko "Feil med statusverdi"> & 2 |
avkjørsel 1 |
fi |
# Handle om gjeldende status |
sak $ {STATUS} in |
# TOMGANG |
0) |
#Natt - spill Song1 med standby |
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; da |
ekko Playing NightSong1 |
fpp -c stopp |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
#Dag eller virkelig sent - spill sang 1 en gang og slå av lyset |
ellers |
ekko Playing DaySong1 |
fpp -c stopp |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# SPILLER ELLER STOPPER GRACEFULLY (grasiøst skjer hvis du trykker på knappen når en planlagt spilleliste slutter) |
1 | 2) |
#Standby kjører - dette fungerer fordi standby er min eneste ikke -mediasekvens |
hvis ["$ STANDBYSTRING" == "sekvens"]; da |
#Natt - spill Song1 med standby |
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; da |
echo Playing NightSong1 for natten |
fpp -c stopp |
fpp -p "$ {NightSong1}" |
#Dagstid eller virkelig sent - spill tigerfilt en gang og slå av lyset |
ellers |
ekko PlayingDaySong1 fra å spille |
fpp -c stopp |
fpp -P "$ {DaySong1}" |
fi |
#For å støtte flere sanger, kopier du denne delen og endrer "Song2Playlist" i siste seksjon til Song#Playlist |
#Sang1 kjører |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; deretter |
#Natt - spill Halleluja med standby |
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; da |
ekko Playing Hallelujah Standby fra Tiger Rag er i gang |
fpp -c stopp |
fpp -p "$ {NightSong2}" |
#Dag eller virkelig sent - spill Song2 en gang og slå av lyset |
ellers |
ekko Å spille Hallelujah en gang fra Tiger Rag er i gang |
fpp -c stopp |
fpp -P "$ {DaySong2}" |
fi |
#SISTE SANG KJØRER - SPILL STANDBY |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; deretter |
#Natt - spill standby på loop |
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; da |
ekko Spiller standby ved gjentagelse |
fpp -c stopp |
fpp -p "$ {NightStandby}" |
#Dag eller virkelig sent - spill standby en gang |
ellers |
ekko Spiller Standby en gang |
fpp -c stopp |
fpp -P "$ {DayStandby}" |
fi |
ellers |
ekko Av en eller annen grunn ble den siste elsekasen utført. |
fpp -c stopp |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
se rawButtonSuperScript.sh hostet av ❤ av GitHub
Trinn 5: (Valgfritt) Frontplate for knappen
Jeg har tilgang til en laserskærer på Clemson gjennom Makerspace, så jeg tegnet raskt opp et design for å kutte+etse. Det er et hull i midten for knappen min, ordene sier "Push Me" i en julefont og et snøfnugg rundt knappen. Jeg sprayet litt trehvitt og dekket det deretter med maskeringstape (slik at laserskjæreren ikke svir deler jeg ikke vil ha etset). Filen jeg brukte er vedlagt.
Anbefalt:
En applikasjon av en utvidbar knapp med vibrasjonsfeedback: 7 trinn (med bilder)
En applikasjon av en utvidbar knapp med vibrasjonsfeedback: I denne opplæringen skal vi først vise deg hvordan du bruker en Arduino Uno til å kontrollere en vibrasjonsmotor via en utvidet knapp. De fleste opplæringsprogrammer om trykknapper involverer knappen på det fysiske brødbrettet, mens i denne opplæringen har knappen vært
Start bildene med julebilder med et snev av magi!: 9 trinn (med bilder)
Lansere dine feriebilder Lysbildefremvisning med et snev av magi!: Gjennom årene har jeg utviklet en vane med å ta med meg en liten figur når jeg reiser: Jeg kjøper ofte en liten, tom artoy (som den på bildet) og maler det for å matche flagget og temaet i landet jeg besøker (i dette tilfellet Sicilia). T
Radioknapp med én knapp: 7 trinn (med bilder)
Radiostrømmingsboks med én knapp: Jeg bygde en boks for vennens bar som har en Raspberry Pi inni, og med et trykk på en knapp strømmer den lyd til et nettsted ved hjelp av Darkice og Icecast, samtidig som jeg tenner et "On-Air" -skilt. Jeg trodde at dette var noe folk var på utkikk etter
RGB USB -tastatur med én knapp: 6 trinn (med bilder)
RGB USB -tastatur med én knapp: Har du noen gang følt behov for å ha et lite, men funksjonelt, RGB -bakgrunnsbelyst tastatur, ikke større enn størrelsen på en enkelt tast? Nei? Hvem bryr seg, lag en uansett! Denne instruksen vil guide deg gjennom trinnene du trenger for å lage din helt egen, litt ubrukelige, på
Mestre din mikro: bit med Arduino IDE-knapp og annen GPIO: 3 trinn (med bilder)
Master din mikro: bit Med Arduino IDE-Button and Other GPIO: I vår forrige blogg Master Your Micro: bit med Arduino IDE - - Light LED, vi har snakket om hvordan du installerer micro: bit bibliotek på Arduino IDE og hvordan å kjøre LED på micro: bit med Arduino IDE. I denne artikkelen skal vi fortelle deg