Turinys:

Pradėkite savo Kalėdų šviesos šou mygtuku: 5 žingsniai
Pradėkite savo Kalėdų šviesos šou mygtuku: 5 žingsniai

Video: Pradėkite savo Kalėdų šviesos šou mygtuku: 5 žingsniai

Video: Pradėkite savo Kalėdų šviesos šou mygtuku: 5 žingsniai
Video: Thursday, Feb 23rd, 2023 LIVE! UberJeepAZ CHAT SESSION! 2024, Liepa
Anonim
Pradėkite savo Kalėdų šviesos šou mygtuku
Pradėkite savo Kalėdų šviesos šou mygtuku

Vykdydami Kalėdų šviesos šou, sinchronizuotą su muzika, galbūt norėsite jį pradėti paspausdami mygtuką. Ši pamoka taikoma tik šou, kuris valdomas naudojant „Falcon Pi Player“(FPP), veikiantį su „Raspberry Pi“. Jei naudojate FPP, tikriausiai naudojate „Falcon“valdiklius ir „xLights“arba „LightORama“, kad sektumėte savo laidą. Jei nė vienas iš šių žodžių jums nieko nereiškia, ši pamoka tikriausiai yra šiek tiek virš jūsų galvos ir turėtumėte pradėti skaitydami šį wiki https://auschristmaslighting.com/wiki/ ir prisijungdami prie „Facebook“grupės, kaip nurodyta žemiau

  • „xLights“:
  • Bendrosios pažangios Kalėdų lemputės:
  • „Falcon Pi Player“:
  • Priedo/pasiūlymo idėjos dalijimasis:
  • „Nesusiję su„ xLights “ar LOR“:
  • „xLights Holiday Light“pardavėjai:
  • „Pasidaryk pats“Kalėdos:

1 žingsnis: dalių sąrašas

Jums reikės šių elementų:

  • Mygtukas. Aš naudoju šį su LED žiedo lempute: [Amazon]
  • Rezistorius. Pageidautina 200Ω ar daugiau (2 iš jų, jei naudojate LED mygtuką) Standartinis 1/4W arba 1/8W tinka
  • Jungties laidas. Manometras, kurį turėtumėte naudoti, priklauso nuo to, kiek mygtukas bus nuo jūsų „Pi“. Aš naudoju 18awg vielą maždaug 10 pėdų atstumu nuo „Pi“ir ji veikė nepriekaištingai
  • Būdas prijungti laidą prie „Pi“GPIO kaiščių. Galite naudoti juostinį kabelį su pertraukos duonos plokšte arba tiesiog naudoti kai kurias moterų jungtis, kaip aš. Mums reikia tik 3 laidų - įžeminimo, 5 V ir mygtuko duomenų. [„Amazon“]
  • (Neprivaloma) Vandeniui atspari jungtis kiekviename gale, kad būtų lengva prižiūrėti. Aš naudoju 3 kontaktų jūrinio lygio jungtis: [Amazon]
  • (Neprivaloma) Termiškai susitraukiančios užpakalinės jungtys [„Amazon“]

2 žingsnis: laidų schema

Elektros schema
Elektros schema
Elektros schema
Elektros schema
Elektros schema
Elektros schema
Elektros schema
Elektros schema

Nuotraukose parodyta mygtuko be pridėto šviesos diodo prijungimo schema ir mygtukas su šviesos diodu. Elektros instaliacijos schemos nustatymo būdas leidžia jums paspausti mygtuką ir lemputę (nuolat degti) tik 3 laidais.

Norėdami naudoti GPIO kaištį, pasirinkite bet kurį GPIO kaištį ant pi. Taip pat naudokite +5V ir Gnd kaiščius. Tikriausiai galėtumėte išsisukti naudodami 3,3 V kaištį, tačiau dėl įtampos kritimo keliose pėdose laido signalas gali tapti nepatikimas arba jo gali nepakakti šviesos diodui uždegti.

PASTABA: 3 kontaktų jungtis netilps per skylę, kurią reikia išgręžti mygtukui su LED žiedo lempute. Taigi pritvirtinkite jungtį įdėję mygtuką į priekinę plokštę.

3 veiksmas: pagrindinė „Falcon Pi Player“sąranka

PASTABA - FPP nuolat atnaujinamas ir visiškai įmanoma, kad jie patobulins savo scenarijų palaikymą arba kad kaip numatytąją funkciją, kuriai reikia mažiau programavimo, bus įtrauktas mygtukas „pradėti“.

Aš sekiau aukščiau pateiktą vaizdo įrašą, kad iš pradžių viską sutvarkyčiau.

Manau, kad vaizdo įrašai yra nuobodūs ir lėti, todėl čia yra jų santrauka:

  • Importuokite seką į „fpp“naudodami failų tvarkyklę
  • Sukurkite grojaraštį su seka. Tolesniems veiksmams grojaraštis bus vadinamas „playme“
  • Atidarykite tuščią užrašų knygelės failą ir įveskite:

    • #!/bin/sh
    • fpp -P žaidimas
  • Išsaugokite jį kaip.sh failą savo kompiuteryje
  • Eikite į FPP failų tvarkyklę ir įkelkite savo scenarijaus failą. Eikite į skirtuką „Scenarijai“ir įsitikinkite, kad jis yra
  • Skiltyje Būsena/valdymas eikite į Įvykiai
  • Sukurkite naują įvykį. Įvykio ID 1/1, įvykio pavadinimas bet koks, efekto seka NĖRA, Įvykio scenarijus
  • Eikite į įvesties/išvesties sąranką ir spustelėkite GPIO aktyvikliai
  • Perjunkite kaištį, prie kurio pritvirtintas mygtukas. Jei paspaudus mygtuką jis sumažės, tada įjunkite įvykį į kritimo parinktį, jei jis yra aktyvus aukštas, tada įjunkite įvykį į kylantį.
  • Spustelėkite mygtuką Perkrauti įspėjimu, kuris pasirodys atlikus visus pakeitimus

Atlikę visa tai, turėtumėte sugebėti paspausti mygtuką, kad pasirodymas prasidėtų. Oho!

Tačiau šis metodas turi tam tikrų apribojimų. Jei grojaraščio kūrimo metu dar kartą paspausite mygtuką, jis 1) nieko nedarys arba 2) sugadins FPP ir atsisakys nieko daryti su mygtuku, kol jo iš naujo nepaleisite. Taigi, jei jūs tiesiog naudojate mygtuką kaip dramatišką būdą, kaip rodyti komandą, aukščiau pateiktas metodas bus viskas, ko jums reikia.

Jei jums reikia kažko daugiau, pereikite prie kito žingsnio

4 žingsnis: tvirtesnis scenarijus

Žemiau yra scenarijus, kurį galiausiai pasiekiau. Scenarijų „Github“galite peržiūrėti čia: [Gist. Github]

  • Jei kas nors paspaudžia mygtuką „nakties“valandomis, jis paleis „Tiger Rag“(mano daina1) ir tada pereis prie budėjimo sekos, kuri tęsiasi be galo.
  • Jei grojant „Tiger Rag“paspaudžiamas mygtukas, ji pradeda mano antrąją dainą „Hallelujah“ir tada neribotą laiką pereina į budėjimo seką.
  • Bet jei kas nors paspaus mygtuką dieną ar labai vėlai naktį, jis vieną kartą paleis „Tiger Rag“ir tada išjungs visas šviesas.

Tai leidžia mygtukui veikti bet kuriuo paros metu, tačiau lemputės neturi būti įjungtos visą laiką. Tai taip pat leidžia iš vieno mygtuko paleisti kelias dainas, nustatant, kuri daina šiuo metu grojama, baigiant tą dainą ir grojant „kitą“dainą.

Daugiau FPP scenarijų šaltinių rasite čia: https://github.com/FalconChristmas/fpp-scriptsDėl sudėtingesnės logikos tiesiog google „bash script _“, kur pabraukimas yra tai, ką bandote padaryti. Galite išbandyti savo scenarijus naudodami „FPP Shell“(vartotojo vardas fpp password falcon). Pagrindinės komandos yra šios.

Atkreipkite dėmesį į didžiąsias raides !!

  • „Capital -P“groja grojaraštį vieną kartą, mažosios raidės „p“pakartos.
  • fpp -v 66 Nustatykite garsumą iki 66%
  • fpp -c stop Nedelsdami nutraukite pasirodymą
  • fpp -C stop Tai gali būti stop rodyti grakščiai
  • fpp -p thisPlaylistName Paleidžia šįPlaylistName kartojant (taigi įvadinė daina groja vieną kartą, tada pagrindiniai dalykai bus kartojami neribotą laiką.
  • fpp -P thisPlaylistName Paleidžia šį grojaraščio pavadinimą vieną kartą
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Vykdo scenarijų. Kairėje pusėje tai tinka, jei jūsų scenarijaus pavadinimas yra išsaugotas kažkur aukščiau esančiame kintamajame, pvz., „ThisScriptVariable =“PlayTheSong.sh “

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Norėdami paleisti, jei paspaudžiamas mygtukas.
#Turėtumėte turėti du grojaraščius kiekvienai dainai - vieną su
# tik daina kaip „Pirmasis grojimas“ir nieko pagrindinio,
# ir dar vienas su pirmąja daina ir jūsų budėjimo režimu
# seka kaip „Pagrindinė“seka. (Bent jau jei nori
# daryti tai, ką aš darau)
#
#Pvz., Jei jūsų daina yra „Tiger Rag“, turėtumėte tai padaryti
# grojaraščiai „TigerRag“, „TigerRagStandby“ir „Standby“
#
###########################################################
# Grojaraščiai, kuriuos reikia paleisti, jei jis yra nuo 6 iki 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahBendby"
NightStandby = "Budėjimo režimas"
# Grojaraščiai, kurie bus rodomi dienos metu arba po 11
DaySong1 = "TigerRag"
DaySong2 = "Aleliuja"
DayStandby = "Budėjimo režimas"
#Įjungimo ir išjungimo laikas per 24 valandas. Jei norite minučių, sėkmės
OnHour = 17
Išjungta valanda = 23
###########################################################
# Rašto esmė. #
###########################################################
# Gaukite dabartinę būseną (IDLE = 0, PLAYING = 1, Gracingly Stop = 2)
BŪSENA = $ (fpp -s | cut -d ',' -f2)
#Gaukite bėgimo grojaraštį ir supjaustykite iki 7 raidžių
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#Tai bus „ir“, jei ji groja dainą, ir „seka“, kai ji veikia budėjimo režimu
#naudojamas nustatyti, ar veikia budėjimo seka
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#Pirmosios 7 grojaraščių pavadinimų raidės palyginimui
#Tik 7 raidės, kad „Song1Stendby“ir „Song1“būtų identiški
#Gerai, todėl iš tikrųjų tai turėtų būti pirmosios x raidės, o x - trumpiausias dainos pavadinimas
„StandbyPlaylist“= $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
„Song2Playlist“= $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#Gaukite dabartinę valandą kariniu laiku
CurrentHour = $ (data +"%H")
#Atspausdinkite kai kurių dalykų būseną - „aidas“daugelyje kalbų yra tarsi „spausdinimas“
#Naudinga išbandyti, jei įvairūs dalykai buvo tinkamai apipjaustyti ar apskaičiuoti
echo CurrentHour yra $ CurrentHour
„echo Running“grojaraštis yra: $ PLAYLIST
echo Song2Playlist yra: $ Song2Playlist
echo būsena yra: $ STATUS
#Naktį nustatykite garsumą iki 80%, kitu atveju - 100%
#Taigi, jei aš miegu, jis nebūtų toks garsus
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; tada
# fpp -v 100
#Kitas
# fpp -v 80
#fi
# Patikrinkite, ar gavome ką nors prasmingo
jei [-z "$ {STATUS}"]; tada
echo "Klaida su būsenos verte"> ir 2
išeiti 1
fi
# Veikite pagal dabartinę būseną
atvejis $ {STATUS} in
# IDLE
0)
#Naktis - grokite „Song1“budėjimo režimu
jei [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
aidas Grojant NightSong1
fpp -c sustojimas
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Diena arba tikrai vėlu - vieną kartą paleiskite 1 dainą, tada išjunkite šviesą
Kitas
echo Playing DaySong1
fpp -c sustojimas
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# ŽAISMAS arba SUSTABDYMAS NEMOKAMAI (gražiai nutinka, jei paspaudžiamas mygtukas, kai baigiasi suplanuotas grojaraštis)
1 | 2)
#Budėjimo režimas veikia - tai veikia, nes budėjimo režimas yra mano vienintelė ne medijos seka
jei ["$ STANDBYSTRING" == "seka"]; tada
#Naktis - grokite „Song1“budėjimo režimu
jei [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo „NightSong1“grojimas nakties metu
fpp -c sustojimas
fpp -p "$ {NightSong1}"
#Dienos laikas arba tikrai vėlai - vieną kartą pažaisk tigro skudurą, tada išjunk šviesą
Kitas
echo PlayingDaySong1 nuo grojimo
fpp -c sustojimas
fpp -P "$ {DaySong1}"
fi
#Jei norite palaikyti daugiau dainų, nukopijuokite šį skyrių ir pakeiskite „Song2Playlist“paskutiniame skyriuje į „Song#Playlist“
#1 daina veikia
elif ["$ PLAYLIST" == "$ Song1Playlist"]; tada
#Naktis - žaiskite „Hallelujah“su budėjimo režimu
jei [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo Playing „HallelujahStendby“iš „Tiger Rag“veikia
fpp -c sustojimas
fpp -p "$ {NightSong2}"
#Dienos laikas arba tikrai vėlu - vieną kartą paleiskite „Song2“, tada išjunkite šviesą
Kitas
echo Groja Hallelujah kartą iš Tiger Rag
fpp -c sustojimas
fpp -P "$ {DaySong2}"
fi
#PASKUTINĖ DAINA VEIKIA - ŽAISKITE PRODUKTU
elif ["$ PLAYLIST" == "$ Song2Playlist"]; tada
#Naktis - paleiskite budėjimo režimą
jei [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo Pakartotinai grojant budėjimo režimu
fpp -c sustojimas
fpp -p "$ {NightStandby}"
#Diena arba tikrai vėlu - vieną kartą paleiskite budėjimo režimą
Kitas
echo Vieną kartą grojant budėjimo režimu
fpp -c sustojimas
fpp -P "$ {DayStandby}"
fi
Kitas
aidas Kažkodėl paskutinė įvykdyta kita byla.
fpp -c sustojimas
fpp -P "$ {DaySong1}"
fi
;;
esac

peržiūrėti „rawButtonSuperScript.sh“, kurį su „❤“priglobia „GitHub“

5 veiksmas: (pasirinktinai) mygtuko priekinė plokštė

Turiu prieigą prie lazerinio pjaustytuvo „Clemson“per „Makerspace“, todėl greitai nubraižiau pjovimo ir išgraviravimo dizainą. Viduryje yra skylė mano mygtukui, žodžiai sako „Push Me“kalėdiniu šriftu, o snaigė aplink mygtuką. Aš nupurškiau medieną baltai, o po to užklijavau maskavimo juosta (kad lazerinis pjaustytuvas nesudegintų dalių, kurių nenoriu išgraviruoti). Mano naudojamas failas pridedamas.

Rekomenduojamas: