Sadržaj:
- Korak 1: Popis dijelova
- Korak 2: Shema ožičenja
- Korak 3: Osnovno postavljanje programa Falcon Pi Player
- Korak 4: Robusnija skripta
- Korak 5: (Izborno) Prednja ploča za gumb
Video: Započnite svoj božićni svjetlosni show s gumbom: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Prilikom izvođenja božićnog light showa sinkroniziranog s glazbom možda biste htjeli započeti show pritiskom na gumb. Ovaj vodič je primjenjiv samo na emisiju koja se kontrolira putem Falcon Pi Playera (FPP) koji se izvodi na Raspberry Pi. Ako koristite FPP, vjerojatno koristite kontrolere Falcon i koristite xLights ili LightORama za sekvenciranje svoje emisije. Ako vam nijedna od tih riječi ništa ne znači, ovaj vam je vodič zasad vjerojatno malo iznad glave i trebali biste započeti čitanjem ove wiki https://auschristmaslighting.com/wiki/ i pridruživanjem Facebook grupi poput dolje
- xLights:
- Opća napredna božićna svjetla:
- Falcon Pi Player:
- Dijeljenje ideja o kućištu/rekvizitima:
- "Nije posebno vezano za xLights ili LOR":
- Dobavljači xLights Holiday Light:
- Uradi sam Božić:
Korak 1: Popis dijelova
Trebat će vam sljedeće stavke:
- Tipka. Koristio sam ovaj s LED svjetlom oko prstena: [Amazon]
- Otpornik. Po mogućnosti 200 Ω ili više (2 od ovih ako koristite LED tipku) Standardni 1/4W ili 1/8W su u redu
- Priključna žica. Mjerač koji biste trebali koristiti ovisi o tome koliko će gumb biti udaljen od vašeg Pi. Koristio sam žicu od 18 awg oko 10 stopa od svog Pi -a i radila je besprijekorno
- Način spajanja žice na Pi -ove GPIO pinove. Možete upotrijebiti vrpčani kabel s probojnom pločom ili jednostavno neke ženske konektore poput mene. Trebamo samo 3 žice - uzemljenje, 5V i podatke za gumb. [Amazon]
- (Izborno) Vodootporni priključak na svakom kraju za jednostavno održavanje. Koristim 3-pinske pomorske priključke: [Amazon]
- (Opcionalno) Termoskupljajuće spojnice za opuške [Amazon]
Korak 2: Shema ožičenja
Slike prikazuju dijagram ožičenja gumba bez uključene LED diode i gumba sa LED diodom. Način na koji postavljam dijagram ožičenja omogućuje vam pokretanje gumba i svjetla (stalno uključeno) sa samo 3 žice.
Za GPIO pin, odaberite bilo koji od GPIO pinova na pi. Koristite i pinove +5V i Gnd. Vjerojatno biste se mogli izvući korištenjem pina od 3,3 V, ali pad napona na nekoliko stopa žice mogao bi učiniti signal nepouzdanim ili neće biti dovoljan za paljenje LED diode.
NAPOMENA: 3-pinski konektor neće proći kroz otvor koji morate izbušiti za gumb s LED prstenastim svjetlom. Zato priključite konektor nakon što ste gumb stavili na prednju ploču.
Korak 3: Osnovno postavljanje programa Falcon Pi Player
NAPOMENA - FPP se stalno ažurira i potpuno je moguće da će poboljšati svoju podršku za skriptiranje ili da će kao zadanu značajku uključiti "gumb za početak" koji zahtijeva manje programiranja.
Slijedio sam gornji video za početno postavljanje svega.
Videozapisi su mi dosadni i spori, pa evo njihova sažetka:
- Uvezite svoj slijed u fpp pomoću upravitelja datoteka
- Napravite popis za reprodukciju sa slijedom u njemu. Za sljedeće korake popis će se zvati "playme"
-
Otvorite praznu datoteku bilježnice i upišite sljedeće:
- #!/bin/sh
- fpp -P playme
- Spremite je kao.sh datoteku na računalo
- Idite na upravitelj datoteka u FPP -u i prenesite datoteku skripte. Idite na karticu "Skripte" i provjerite je li tu
- U odjeljku Status/kontrola idite na Događaji
- Izradite novi događaj. ID događaja 1/1, naziv događaja bilo koji, Niz efekata NEMA, Skripta događaja
- Idite pod Postavljanje ulaza/izlaza i kliknite GPIO okidači
- Uključite iglu na koju je pričvršćen vaš gumb. Ako će pasti nisko kada pritisnete gumb, onda postavite događaj na opciju pada, ako je aktivan visoko, postavite događaj na uspon.
- Kliknite gumb Ponovo pokreni upozorenje koje će se pojaviti nakon što unesete sve promjene
Nakon što sve ovo učinite, trebali biste moći pritisnuti gumb za početak vaše emisije. Woohoo!
Međutim, ova metoda ima neka ograničenja. Ako ponovno pritisnete gumb tijekom reprodukcije popisa za reprodukciju, on ili 1) neće učiniti ništa ili 2) će srušiti FPP i odbiti učiniti bilo što s vašim gumbom dok ga ponovno ne pokrenete. Dakle, ako samo koristite gumb kao dramatičan način izvođenja emisije po naredbi, gornja metoda bit će sve što vam treba.
Ako vam treba nešto više, prijeđite na sljedeći korak
Korak 4: Robusnija skripta
Ispod je scenarij do kojeg sam na kraju stigao. Skriptu na Githubu možete pogledati ovdje: [Gist. Github]
- Ako netko pritisne gumb tijekom "noćnih" sati, svirat će Tiger Rag (moja pjesma1), a zatim će prijeći na red čekanja koji se beskonačno ponavlja.
- Ako se gumb pritisne dok svira Tiger Rag, tada počinje moja druga pjesma, Hallelujah, a zatim će se neograničeno prebaciti u red čekanja.
- No, ako netko pritisne gumb danju ili vrlo kasno navečer, svirat će jednom u Tiger Rag -u, a zatim ugasiti sva svjetla.
To omogućuje da gumb radi u bilo koje doba dana, ali svjetla ne moraju biti stalno uključena. Također omogućuje reprodukciju više pjesama s jednog gumba identificirajući pjesmu koja se trenutno svira, završavajući tu pjesmu i svirajući "sljedeću" pjesmu.
Više resursa za skriptiranje u FPP-u možete pronaći ovdje: https://github.com/FalconChristmas/fpp-scriptsZa složeniju logiku samo google "bash script _" gdje je podcrtavanje ono što pokušavate učiniti. Svoje skripte možete testirati pomoću FPP ljuske (korisničko ime fpp lozinka falcon) Osnovne naredbe su sljedeće.
Obratite pažnju na velika slova !!
- Veliko -P će jednom reproducirati popis za reprodukciju, mala slova -p će ga ponoviti.
- fpp -v 66 Postavite glasnoću na 66%
- fpp -c stop Odmah zaustavite emisiju
- fpp -C stop Ovo bi moglo biti stop show graciozno
- fpp -p thisPlaylistName Reproducira ovajPlaylistName pri ponavljanju (pa se uvodna pjesma svira jednom, a zatim će se glavne stvari ponavljati neograničeno dugo.
- fpp -P thisPlaylistName Reproducira ovajPlaylistName jednom
- eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Pokreće skriptu. U slučaju s lijeve strane to funkcionira ako imate naziv skripte spremljen u varijablu negdje gore, na primjer thisScriptVariable =”PlayTheSong.sh”
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#Da bi se pokrenulo ako je gumb pritisnut. |
#Za svaku pjesmu trebate imati dva popisa za reprodukciju - jedan s |
# samo pjesma kao "Prva predstava" i ništa uglavnom, |
# i još jedan s pjesmom kao prvom svirkom i vašim pripravnim stanjem |
# slijed kao "Glavni" niz. (Barem ako želite |
# učiniti točno ono što radim) |
# |
#Na primjer, ako je vaša pjesma Tiger Rag, trebali ste |
# popisa za reprodukciju "TigerRag", "TigerRagStandby" i "Standby" |
# |
########################################################### |
# Popisi za reprodukciju ako su između 6 i 11 |
NightSong1 = "TigerRagStandby" |
NightSong2 = "AlelujaStandby" |
NightStandby = "Stanje čekanja" |
# Popisi za reprodukciju tijekom dana ili nakon 11 |
DaySong1 = "TigerRag" |
DaySong2 = "Aleluja" |
DayStandby = "Stanje čekanja" |
#Uključeno i isključeno u 24 sata. Ako želite minute, sretno |
Na sat = 17 |
OffHour = 23 |
########################################################### |
# Utroba scenarija. # |
########################################################### |
# Saznajte naš trenutni status (IDLE = 0, PLAYING = 1, Gracefully stop = 2) |
STATUS = $ (fpp -s | izrezati -d ',' -f2) |
#Nabavite aktivnu playlistu i smanjite je na 7 slova |
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Ovo će biti "oboje" ako svira pjesmu, a "slijed" ako je u stanju čekanja |
#koristi za utvrđivanje je li pokrenuta sekvenca stanja pripravnosti |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
#Prvih 7 slova naziva popisa za usporedbu |
#Samo 7 slova tako da su "Song1Standby" i "Song1" identični |
#Okej pa zapravo bi trebala biti prva x slova, a x bi trebao biti najkraći naziv pjesme koji imate |
StandbyPlaylist = $ (echo $ NightStandby | izrezati -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | izrezati -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | izrezati -c1-7) |
STARTITEM = "" |
#Dobijte trenutni sat u vojnom vremenu |
Trenutni sat = $ (datum +"%H") |
#Odštampajte status nekih stvari - "echo" je poput "print" u većini jezika |
#Korisno za testiranje ako su razne stvari pravilno obrezane ili izračunate |
echo CurrentHour je $ CurrentHour |
echo Popis za reprodukciju je: $ PLAYLIST |
echo Song2Playlist je: $ Song2Playlist |
echo Status je: $ STATUS |
#Podesite glasnoću na 80% noću, 100% inače |
#Dakle, ako spavam, nije tako glasno |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; zatim |
# fpp -v 100 |
#drugo |
# fpp -v 80 |
#fi |
# Provjerite imamo li nešto smisleno |
if [-z "$ {STATUS}"]; tada |
echo "Pogreška s vrijednošću statusa"> & 2 |
izlaz 1 |
fi |
# Djelujte prema trenutnom statusu |
slučaj $ {STATUS} u |
# BESPOSLEN |
0) |
#Night time - reproducirajte Song1 u stanju pripravnosti |
ako [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada |
echo Sviranje NightSong1 |
fpp -c zaustaviti |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
#Dan ili stvarno kasno - jednom pustite pjesmu 1, a zatim isključite svjetlo |
drugo |
echo Sviranje DaySong1 |
fpp -c zaustaviti |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# REPRODUKCIJA ili ZAUSTAVLJANJE GRACIVNO (graciozno se događa ako se pritisne tipka kad završi zakazani popis za reprodukciju) |
1 | 2) |
#Standby je pokrenut - ovo radi jer je stanje pripravnosti moj jedini niz koji nije medij |
if ["$ STANDBYSTRING" == "slijed"]; tada |
#Night time - reproducirajte Song1 u stanju pripravnosti |
ako [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada |
echo Reproduciranje NightSong1 za noćno vrijeme |
fpp -c zaustaviti |
fpp -p "$ {NightSong1}" |
#Dan ili jako kasno - jednom se igrajte tigraste krpe, a zatim isključite svjetla |
drugo |
echo PlayingDaySong1 iz sviranja |
fpp -c zaustaviti |
fpp -P "$ {DaySong1}" |
fi |
#Da biste podržali više pjesama, kopirajte ovaj odjeljak i promijenite "Song2Playlist" u zadnjem odjeljku u Popis pjesama# |
#Song1 se izvodi |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; zatim |
#Night time - igrajte Hallelujah u stanju pripravnosti |
ako [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada |
echo Igranje HallelujahStandby iz Tiger Rag -a je pokrenuto |
fpp -c zaustaviti |
fpp -p "$ {NightSong2}" |
#Dan ili jako kasno - jednom pustite Song2, a zatim isključite svjetla |
drugo |
echo Trčanje u igri Hallelujah Once from Tiger Rag trči |
fpp -c zaustaviti |
fpp -P "$ {DaySong2}" |
fi |
#LAST PJESMA TRČI - IGRAJTE SE U STANJU |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; zatim |
#Night time - reproducirajte stanje pripravnosti na petlji |
ako [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada |
echo Reprodukcija u stanju pripravnosti pri ponavljanju |
fpp -c zaustaviti |
fpp -p "$ {NightStandby}" |
#Dan ili stvarno kasno - jednom pustite stanje pripravnosti |
drugo |
echo Reprodukcija u stanju pripravnosti Jednom |
fpp -c zaustaviti |
fpp -P "$ {DayStandby}" |
fi |
drugo |
echo Iz nekog razloga posljednje drugo slovo izvedeno. |
fpp -c zaustaviti |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
pogledaj rawButtonSuperScript.sh hostirano od ❤ na GitHubu
Korak 5: (Izborno) Prednja ploča za gumb
Imam pristup laserskom rezaču u Clemsonu kroz Makerspace, pa sam brzo skicirao dizajn za rezanje+graviranje. U sredini je rupa za moje dugme, riječi govore "Push Me" u božićnom fontu, a pahuljica oko gumba. Malo sam drva obojio bijelom bojom, a zatim prekrio ljepljivom trakom (tako da laserski rezač ne opeče dijelove koje ne želim urezati). Datoteka koju sam koristio je u privitku.
Preporučeni:
Božićni svjetlosni show sinkroniziran s glazbom!: 4 koraka
Božićni svjetlosni show sinkroniziran s glazbom!: U ovom uputstvu pokazat ću vam kako napraviti božićni svjetlosni show sinkroniziran s božićnom glazbom pomoću RGB piksela. Neka vas to ime ne plaši! Nije teško naučiti kako to učiniti. Upozorit ću vas da ovo može biti prilično
Lagani svjetlosni show za prijenosno računalo: 3 koraka
Easy Light Show za prijenosna računala: Ovo je jeftin način dodavanja svjetlosnog ambijenta pri reprodukciji filmova ili glazbenih spotova. Cijena je 19 američkih dolara. Mislim da će se djeci svidjeti! Moja mačka voli gledati ekran. Sviđa mi se! Alati koji su vam potrebni za projekt: 1. Circuit Playground - Developer
Jednostavan LED blagdanski svjetlosni show: Čarobnjaci zimi - WS2812B LED traka s FastLED -om i vodičem za Arduino: 6 koraka
Jednostavan LED blagdanski svjetlosni show: Čarobnjaci zimi | WS2812B LED traka s FastLED -om i vodičem za Arduino: Dizajnirao sam i programirao ovu blagdansku svjetlosnu emisiju za prikaz bilo gdje. Koristio sam jednu LED traku WS2812B s gustoćom piksela 30 piksela/ metar. Budući da sam koristio 5 metara, imao sam ukupno 150 LED dioda. Kôd sam držao jednostavnim, tako da svatko tko tek koristi WS2812
Započnite svoj prvi projekt s malinom: Trepćuća LED: 4 koraka
Započnite svoj prvi projekt s malinom: Trepćuća LED: U ovom projektu pokazat ću vam kako programirati Raspberry Pi tako da LED treperi, ako ste skoro kupili Raspberry pi i ne znate ništa odakle započeti, ovo Vodič u koji se uklapa. Osim vašeg Raspberry Pi -a koji pokreće Raspbian, y
Svladajte svoj Micro: bit s Arduino IDE-gumbom i drugim GPIO: 3 koraka (sa slikama)
Svladajte svoj Micro: bit s Arduino IDE-gumbom i drugim GPIO-om: U našem prethodnom blogu Svladajte svoj Micro: bit s Arduino IDE - - Light LED, razgovarali smo o tome kako instalirati micro: bit biblioteku na Arduino IDE i kako za pogon LED na micro: bit s Arduino IDE -om. U ovom članku ćemo vam reći h