Indholdsfortegnelse:

Start dit julelysshow med en knap: 5 trin
Start dit julelysshow med en knap: 5 trin

Video: Start dit julelysshow med en knap: 5 trin

Video: Start dit julelysshow med en knap: 5 trin
Video: Рождественские огни ✨ Полярный драйв в аэропорту Торонто Пирсон 🎄 Зимний курортный сезон в Канаде 🇨🇦 2024, Juli
Anonim
Start dit julelyshow med en knap
Start dit julelyshow med en knap

Når du kører et julelysshow synkroniseret med musik, vil du måske starte showet ved at trykke på en knap. Denne vejledning er kun gældende for et show, der styres via Falcon Pi Player (FPP), der kører på en Raspberry Pi. Hvis du kører FPP, bruger du sandsynligvis Falcon -controllere og bruger xLights eller LightORama til at sekvensere dit show. Hvis ingen af disse ord betyder noget for dig, er denne vejledning sandsynligvis lidt over hovedet for dig nu, og du skal starte med at læse denne wiki https://auschristmaslighting.com/wiki/ og deltage i en Facebook -gruppe som nedenfor

  • xLights:
  • Generelle avancerede julelys:
  • Falcon Pi Player:
  • Vedligeholdelse/deling af ideer:
  • "Ikke specifikt xLights eller LOR -relateret":
  • xLights Holiday Light -leverandører:
  • Gør det selv jul:

Trin 1: Deleliste

Du skal bruge følgende ting:

  • En knap. Jeg brugte denne med et LED -ringlys omkring: [Amazon]
  • En modstand. Helst 200Ω eller større (2 af disse, hvis du bruger LED -knappen) Standard 1/4W eller 1/8W er fint
  • Stikledning. Den måler, du skal bruge, afhænger af, hvor langt knappen vil være fra din Pi. Jeg brugte 18awg wire i cirka 10 fod fra min Pi, og det fungerede fejlfrit
  • En måde at forbinde en ledning til Pi's GPIO -ben. Du kan bruge et båndkabel med breakout -brødbrættet, eller du kan bare bruge nogle hunstik, som jeg gjorde. Vi har kun brug for 3 ledninger - Jord, 5V og data til knap. [Amazon]
  • (Valgfrit) Et vandtæt stik i hver ende for nem vedligeholdelse. Jeg bruger 3-bens marine grade-stik: [Amazon]
  • (Valgfrit) Varmekrympestudsforbindelser [Amazon]

Trin 2: Ledningsdiagram

Ledningsdiagram
Ledningsdiagram
Ledningsdiagram
Ledningsdiagram
Ledningsdiagram
Ledningsdiagram
Ledningsdiagram
Ledningsdiagram

Billederne viser et ledningsdiagram for en knap uden en medfølgende LED, og en knap med en LED. Den måde, hvorpå jeg konfigurerede ledningsdiagrammet, giver dig mulighed for at køre en knap og et lys (kontinuerligt tændt) med kun 3 ledninger.

For GPIO -stiften skal du vælge en af GPIO -benene på pi'et. Brug også +5V- og Gnd -stifterne. Du kan sandsynligvis slippe afsted med at bruge 3.3V -stiften, men spændingsfaldet over flere meter ledning kan gøre signalet upålideligt eller ikke være nok til at tænde LED'en.

BEMÆRK: Det 3-benede stik passer ikke gennem det hul, du skal bore til en knap med LED-ringelyset. Så sæt stikket på efter at have sat knappen i din frontplade.

Trin 3: Grundlæggende opsætning af Falcon Pi Player

BEMÆRK - FPP opdateres konstant, og det er helt muligt, at de vil forbedre deres scriptsupport, eller at de vil inkludere "trykknap for at starte" som en standardfunktion, der kræver mindre programmering.

Jeg fulgte ovenstående video for i første omgang at få alt sat op.

Jeg finder videoer kedelige og langsomme, så her er et resumé af det:

  • Importer din sekvens til fpp ved hjælp af filhåndteringen
  • Opret en afspilningsliste med sekvensen i den. I de næste trin kaldes afspilningslisten "playme"
  • Åbn en tom notesblokfil, og skriv følgende:

    • #!/bin/sh
    • fpp -P playme
  • Gem den som en.sh -fil på din computer
  • Gå til filhåndteringen i FPP, og upload din scriptfil. Gå til fanen "Scripts" og kontroller, at den er der
  • Gå til Begivenheder under Status/Kontrol
  • Opret en ny begivenhed. Hændelses -ID 1/1, Event -navn uanset, Effektsekvens INGEN, Hændelsesskript
  • Gå under Input/Output Setup og klik på GPIO -udløsere
  • Skift den pin, din knap er knyttet til. Hvis det vil gå lavt, når du trykker på knappen, skal du sætte begivenheden på Falling -indstillingen, hvis den er aktiv høj, skal du sætte begivenheden på Rising.
  • Klik på knappen Genstart med den advarsel, den dukker op, når du har foretaget alle ændringerne

Efter at have gjort alt dette, skal du kunne trykke på knappen for at få dit show til at starte. Woohoo!

Denne metode har dog nogle begrænsninger. Hvis du trykker på knappen igen, mens afspilningslisten kører, vil den enten 1) ikke gøre noget eller 2) vil crashe FPP og nægte at gøre noget med din knap, før du genstarter den. Så hvis du bare bruger en knap som en dramatisk måde at afspille dit show på kommando, vil ovenstående metode være alt, hvad du har brug for.

Hvis du har brug for noget mere, skal du fortsætte til næste trin

Trin 4: Et mere robust script

Nedenfor er scriptet, som jeg til sidst nåede frem til. Du kan se scriptet på Github her: [Gist. Github]

  • Hvis nogen trykker på knappen i løbet af "nat" -timer, afspiller den Tiger Rag (min sang1) og derefter går til standby -sekvensen, der looper uendeligt.
  • Hvis der trykkes på knappen, mens Tiger Rag spiller, starter den min anden sang, Hallelujah, og går derefter til standby -sekvensen på ubestemt tid.
  • Men hvis nogen trykker på knappen i dagtimerne eller meget sent på aftenen, vil den spille Tiger Rag en gang og derefter slukke alle lysene.

Dette gør, at knappen kan fungere når som helst på dagen, men lysene behøver ikke at være tændt hele tiden. Det giver også mulighed for at afspille flere sange fra 1 knap ved at identificere hvilken sang der aktuelt afspilles, afslutte sangen og afspille den "næste" sang.

Du kan finde flere ressourcer til scripting i FPP her: https://github.com/FalconChristmas/fpp-scriptsFor mere kompliceret logik skal du bare google "bash script _", hvor understregning er det, du forsøger at gøre. Du kan teste dine scripts ved hjælp af FPP Shell (brugernavn fpp password falcon) De grundlæggende kommandoer er som følger.

Vær opmærksom på store bogstaver !!

  • Capital -P vil afspille en afspilningsliste en gang, små -p vil gentage den.
  • fpp -v 66 Indstil lydstyrken til 66%
  • fpp -c stop Stop showet med det samme
  • fpp -C stop Dette kan være stop show graciøst
  • fpp -p thisPlaylistName Afspiller dennePlaylistName ved gentagelse (så intro -sangen afspilles en gang, så gentages Main stuff på ubestemt tid.
  • fpp -P thisPlaylistName Spiller dettePlaylistName én gang
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Kører et script. I tilfældet til venstre fungerer det for, hvis du har dit scriptnavn gemt i en variabel et eller andet sted ovenfor, som thisScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Skal køres, hvis der trykkes på knappen.
#Du skal have to afspilningslister til hver sang - en med
# bare sangen som det "første spil" og intet hovedsageligt,
# og en anden med sangen som første afspilning og din standby
# sekvens som "Main" -sekvensen. (I hvert fald hvis du vil
# for at gøre det nøjagtige, som jeg gør)
#
#For eksempel, hvis din sang er Tiger Rag, skal du have
# afspilningslister "TigerRag", "TigerRagStandby" og "Standby"
#
###########################################################
# Afspilningslister kan køres, hvis det er mellem 6 og 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "Standby"
# Spillelister, der skal køres i løbet af dagen eller efter 11
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
DayStandby = "Standby"
#Tænd- og slukketider i 24-timers tid. Hvis du vil have minutter, held og lykke
OnHour = 17
OffHour = 23
###########################################################
# Mod på scriptet. #
###########################################################
# Få vores nuværende status (IDLE = 0, PLAYING = 1, Stop yndefuldt = 2)
STATUS = $ (fpp -s | cut -d ',' -f2)
#Få den kørende afspilningsliste, og trim til 7 bogstaver
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#Dette vil være "både", hvis det afspiller en sang, og "sekvens", hvis det er standby
#bruges til at afgøre, om standby -sekvensen kører
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#Første 7 bogstaver med navne på afspilningslister til sammenligning
#Bare 7 bogstaver, så "Song1Standby" og "Song1" er identiske
#Okay så faktisk burde det være første x bogstaver og x skal være det korteste sangnavn du har
StandbyPlaylist = $ (ekko $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#Få den aktuelle time i militær tid
CurrentHour = $ (dato +"%H")
#Udskriv status for nogle ting - "ekko" er som "print" på de fleste sprog
#Nyttig til test, hvis forskellige ting trimmes eller beregnes korrekt
ekko CurrentHour er $ CurrentHour
ekko Kørende afspilningsliste er: $ PLAYLIST
echo Song2Playlist er: $ Song2Playlist
ekko Status er: $ STATUS
#Indstil lydstyrken til 80% om natten, 100% ellers
Så at hvis jeg sover, er det ikke så højt
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; derefter
# fpp -v 100
#andet
# fpp -v 80
#fi
# Kontroller, at vi har noget meningsfuldt
hvis [-z "$ {STATUS}"]; derefter
ekko "Fejl med statusværdi"> & 2
afgang 1
fi
# Handle om den aktuelle status
sag $ {STATUS} in
# Tomgang
0)
#Nattetid - afspil Song1 med standby
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; derefter
ekko Playing NightSong1
fpp -c stop
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Day time eller virkelig sent - afspil sang 1 én gang, og sluk derefter lyset
andet
ekko Playing DaySong1
fpp -c stop
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# SPILER ELLER STOPPER GRACEFULL (graciøst sker, hvis der trykkes på knappen, når en planlagt afspilningsliste slutter)
1 | 2)
#Standby kører - dette virker, fordi standby er min eneste ikke -mediesekvens
hvis ["$ STANDBYSTRING" == "sekvens"]; derefter
#Nattetid - afspil Song1 med standby
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; derefter
ekko Playing NightSong1 om natten
fpp -c stop
fpp -p "$ {NightSong1}"
#Day time eller virkelig sent - spil tigerklud en gang, og sluk derefter lyset
andet
ekko PlayingDaySong1 fra afspilning
fpp -c stop
fpp -P "$ {DaySong1}"
fi
#For at understøtte flere sange skal du kopiere dette afsnit og ændre "Song2Playlist" i sidste afsnit til Song#Playlist
#Sang1 kører
elif ["$ PLAYLIST" == "$ Song1Playlist"]; derefter
#Nattetid - spil Hallelujah med standby
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; derefter
ekko Playing Hallelujah Standby fra Tiger Rag kører
fpp -c stop
fpp -p "$ {NightSong2}"
#Day time eller virkelig sent - afspil Song2 én gang, og sluk derefter lyset
andet
ekko At spille Hallelujah en gang fra Tiger Rag kører
fpp -c stop
fpp -P "$ {DaySong2}"
fi
#SIDSTE SANG Kører - SPIL STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"]; derefter
#Nattetid - afspil standby på loop
hvis [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; derefter
ekko Afspiller standby ved gentagelse
fpp -c stop
fpp -p "$ {NightStandby}"
#Day time eller virkelig sent - spil standby en gang
andet
ekko Afspilning af standby en gang
fpp -c stop
fpp -P "$ {DayStandby}"
fi
andet
ekko Af en eller anden grund blev den sidste elsecase udført.
fpp -c stop
fpp -P "$ {DaySong1}"
fi
;;
esac

se rawButtonSuperScript.sh hostet af ❤ af GitHub

Trin 5: (Valgfri) Frontplade til knappen

Jeg har adgang til en laserskærer hos Clemson gennem Makerspace, så jeg skitserede hurtigt et design, der skulle klippes+ætses. Der er et hul i midten til min knap, ordene siger "Push Me" i en julefont og et snefnug omkring knappen. Jeg sprøjtede noget træhvidt og dækkede det derefter med malertape (så laserskæreren ikke brænder dele, jeg ikke vil have ætset). Filen jeg brugte er vedhæftet.

Anbefalede: