Sadržaj:

Započnite svoj božićni svjetlosni show s gumbom: 5 koraka
Započnite svoj božićni svjetlosni show s gumbom: 5 koraka

Video: Započnite svoj božićni svjetlosni show s gumbom: 5 koraka

Video: Započnite svoj božićni svjetlosni show s gumbom: 5 koraka
Video: Unleash Your Inner Clean Freak: Power Wash Simulator 2024, Studeni
Anonim
Započnite svoj božićni svjetlosni show s gumbom
Započnite svoj božićni svjetlosni show s gumbom

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

Shema ožičenja
Shema ožičenja
Shema ožičenja
Shema ožičenja
Shema ožičenja
Shema ožičenja
Shema ožičenja
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: