Turinys:
- 1 žingsnis: dalių sąrašas
- 2 žingsnis: laidų schema
- 3 veiksmas: pagrindinė „Falcon Pi Player“sąranka
- 4 žingsnis: tvirtesnis scenarijus
- 5 veiksmas: (pasirinktinai) mygtuko priekinė plokštė
Video: Pradėkite savo Kalėdų šviesos šou mygtuku: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
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
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:
Kalėdų šviesos šou sinchronizuotas su muzika!: 4 žingsniai
Kalėdinis šviesos šou, sinchronizuotas su muzika!: Šioje pamokoje aš jums parodysiu, kaip padaryti kalėdinį šviesos šou, sinchronizuotą su kalėdine muzika naudojant RGB pikselius. Neleisk, kad tas vardas tavęs gąsdintų! Išmokti tai padaryti nėra per sunku. Tačiau įspėsiu, kad tai gali būti gana
„Rgb Pixel“Kalėdų šviesos šou 1 dalis: 7 žingsniai
„Rgb Pixel Christmas Light Show“1 dalis: Šioje pamokoje aš jums parodysiu, kaip sukurti RGB pikselių šviesos šou. Dengti yra DAUG. Tiesą sakant, aš tikriausiai padalysiu ją į maždaug 3-5 skirtingas instrukcijas. Tai bus apie pagrindus. Jūs turite daug skaityti
„Rgb Pixel“Kalėdų šviesos šou 2 dalis: „Xlights“: 7 žingsniai
„Rgb Pixel Christmas Light Show“2 dalis: „Xlights“: šioje instrukcijoje parodysiu, kaip suskirstyti pirmąją dainą. Dabar, jei nematėte 1 dalies, rekomenduoju ją patikrinti čia. Dabar, kai kuriate ir programuojate kalėdinį šviesos šou, 75% laiko būsite sekos aparate
Pradėkite savo pirmąjį projektą su avietėmis: mirksi šviesos diodas: 4 žingsniai
Pradėkite savo pirmąjį projektą su avietėmis: mirksi šviesos diodas: Šiame projekte aš jums parodysiu, kaip užprogramuoti „Raspberry Pi“, kad LED mirksėtų. Jei beveik nusipirkote „Raspberry pi“ir nieko nežinote, nuo ko pradėti, tai pamoka tai tinka. Be jūsų „Raspberry Pi“, kuriame veikia „Raspbian“
Kalėdų dėžutė: „Arduino“/„ioBridge“internetu valdomos Kalėdų šviesos ir muzikos šou: 7 žingsniai
Kalėdų dėžutė: „Arduino“/„ioBridge“internetu valdomos Kalėdų šviesos ir muzikos šou: Mano „Kalėdų dėžutės“projektą sudaro interneto valdomos Kalėdų šviesos ir muzikos šou. Kalėdų dainos galima paprašyti internetu, tada ji įdedama į eilę ir grojama tokia tvarka, kokios buvo paprašyta. Muzika perduodama per FM radiją