Sadržaj:

Započnite božićnu svjetlosnu emisiju s gumbom: 5 koraka
Započnite božićnu svjetlosnu emisiju s gumbom: 5 koraka

Video: Započnite božićnu svjetlosnu emisiju s gumbom: 5 koraka

Video: Započnite božićnu svjetlosnu emisiju s gumbom: 5 koraka
Video: REVAN - THE COMPLETE STORY 2024, Juli
Anonim
Započnite božićnu svjetlosnu emisiju s gumbom
Započnite božićnu svjetlosnu emisiju s gumbom

Prilikom izvođenja božićnog light showa sinhroniziranog s muzikom, možda ćete htjeti započeti emisiju pritiskom na dugme. Ovaj vodič je primjenjiv samo za emisiju koja se kontrolira putem Falcon Pi Playera (FPP) koji se izvodi na Raspberry Pi. Ako koristite FPP, onda vjerojatno koristite kontrolere Falcon i koristite xLights ili LightORama za sekvenciranje svoje emisije. Ako vam nijedna od ovih riječi ne znači ništa, ovaj vodič vam je zasad vjerojatno malo iznad glave i trebali biste započeti čitanjem ove wiki https://auschristmaslighting.com/wiki/ i pridruživanjem Facebook grupi kao ispod

  • 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":
  • xLights Holiday Light dobavljači:
  • Uradi sam Božić:

Korak 1: Lista dijelova

Trebat će vam sljedeće stavke:

  • Dugme. Koristio sam ovaj sa LED prstenom oko sebe: [Amazon]
  • Otpornik. Po mogućnosti 200Ω ili više (2 od ovih ako koristite LED dugme) Standardni 1/4 W ili 1/8 W su u redu
  • Priključna žica. Mjerač koji trebate koristiti ovisi o tome koliko će dugme biti udaljeno od vašeg Pi. Koristio sam žicu od 18 awg oko 10 stopa od svog Pi -a i radila je besprijekorno
  • Način povezivanja žice na Pi -jeve GPIO pinove. Možete upotrijebiti vrpčani kabel s matičnom pločom ili jednostavno neke ženske konektore poput mene. Potrebne su nam samo 3 žice - uzemljenje, 5V i podaci za dugme. [Amazon]
  • (Opcionalno) Vodootporni konektor sa svakog kraja za jednostavno održavanje. Koristim 3-pinske pomorske priključke: [Amazon]
  • (Opcionalno) Termoskupljajuće spojnice za zadnjicu [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 za dugme bez uključene LED diode i dugme sa LED diodom. Način na koji postavljam dijagram ožičenja omogućuje vam pokretanje dugmeta 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 upotrebom 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 dugme sa LED prstenastom lampicom. Zato priključite konektor nakon što ste dugme stavili na prednju ploču.

Korak 3: Osnovno podešavanje Falcon Pi Player -a

NAPOMENA - FPP se stalno ažurira i potpuno je moguće da će poboljšati svoju podršku za skriptiranje ili da će uključiti "pritisni dugme za početak" kao zadanu funkciju koja zahtijeva manje programiranja.

Pratio sam gornji video za početak da sve postavim.

Videozapisi su mi dosadni i spori, pa evo njihovog sažetka:

  • Uvezite svoj slijed u fpp pomoću upravitelja datoteka
  • Napravite listu za reprodukciju sa redosledom u njoj. Za sljedeće korake lista za reprodukciju će se zvati "playme"
  • Otvorite praznu datoteku bilježnice i upišite sljedeće:

    • #!/bin/sh
    • fpp -P playme
  • Sačuvajte je kao.sh datoteku na računaru
  • Idite u upravitelj datoteka u FPP -u i učitajte datoteku skripte. Idite na karticu "Skripte" i provjerite je li tu
  • Pod Status/kontrola idite na Događaji
  • Kreirajte novi događaj. ID događaja 1/1, naziv događaja bez obzira na to, Sekvenca efekata NEMA, Skripta događaja
  • Idite pod Postavke ulaza/izlaza i kliknite GPIO okidači
  • Uključite iglu na koju je vaše dugme pričvršćeno. Ako će pasti nisko kada pritisnete dugme, stavite događaj na opciju pada, ako je aktivno visoko, stavite događaj u 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 dugme za početak vaše emisije. Woohoo!

Međutim, ova metoda ima neka ograničenja. Ako ponovo pritisnete dugme dok je playlist u tijeku, on ili 1) neće učiniti ništa ili 2) će srušiti FPP i odbiti učiniti bilo šta sa vašim gumbom dok ga ponovo ne pokrenete. Dakle, ako samo koristite dugme kao dramatičan način izvođenja emisije po komandi, gornja metoda će biti 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 Github -u možete pogledati ovdje: [Gist. Github]

  • Ako neko pritisne dugme tokom „noćnih“sati, sviraće Tiger Rag (moja pesma1), a zatim preći u sekvencu pripravnosti koja se beskonačno ponavlja.
  • Ako pritisnete dugme dok svira Tiger Rag, tada počinje moja druga pjesma, Hallelujah, a zatim će se unedogled prebaciti u sekvencu pripravnosti.
  • Ali ako neko pritisne dugme danju ili vrlo kasno noću, jednom će svirati Tiger Rag, a zatim će ugasiti sva svjetla.

Ovo omogućava da dugme radi u bilo koje doba dana, ali svjetla ne moraju biti stalno uključena. Takođe omogućava reprodukciju više pesama sa jednog dugmeta tako što identifikuje pesmu koja se trenutno reprodukuje, završava tu pesmu i svira „sledeću“pesmu.

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 listu za reprodukciju, mala slova -p će je ponoviti.
  • fpp -v 66 Postavite jačinu zvuka na 66%
  • fpp -c stop Odmah zaustavite emisiju
  • fpp -C stop Ovo bi moglo biti stop show graciozno
  • fpp -p thisPlaylistName Reproducira thisPlaylistName pri ponavljanju (tako da se uvodna pjesma reproducira jednom, a zatim će se glavne stvari ponavljati neograničeno dugo.
  • fpp -P thisPlaylistName Reprodukuje 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, poput oveScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Da bi se pokrenulo ako je dugme pritisnuto.
#Za svaku pjesmu trebate imati dvije liste za reprodukciju - jednu sa
# samo pjesma kao "Prva predstava" i ništa uglavnom,
# i još jedan s pjesmom kao prvom svirkom i vašim pripravnim stanjem
# niz kao "Main" niz. (Bar ako želite
# da uradim tačno ono što radim)
#
#Na primjer, ako je vaša pjesma Tiger Rag, trebali ste
# liste za reprodukciju "TigerRag", "TigerRagStandby" i "Standby"
#
###########################################################
# Liste za reprodukciju koje se pokreću ako je između 6 i 11
NightSong1 = "TigerRagStandby"
NightSong2 = "AlelujaStandby"
NightStandby = "Stanje pripravnosti"
# Liste za reprodukciju tokom dana ili nakon 11
DaySong1 = "TigerRag"
DaySong2 = "Aleluja"
DayStandby = "Stanje pripravnosti"
#Vremena uključivanja i isključivanja tokom 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 | cut -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 reproducira pjesmu, i "slijed" ako je u stanju pripravnosti
#koristi za određivanje da li je redoslijed stanja pripravnosti pokrenut
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#Prvih 7 slova imena plejlisti za poređenje
#Samo 7 slova tako da su "Song1Standby" i "Song1" identični
#U redu, pa zapravo bi trebala biti prva x slova, a x bi trebalo biti najkraći naziv pjesme koji imate
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#Nabavite trenutni sat u vojnom vremenu
Trenutni sat = $ (datum +"%H")
#Odštampajte status nekih stvari - "echo" je kao "print" na većini jezika
#Korisno za testiranje ako su različite stvari podrezane ili pravilno izračunate
echo CurrentHour je $ CurrentHour
echo Popis za reprodukciju je: $ PLAYLIST
echo Song2Playlist je: $ Song2Playlist
echo Status je: $ STATUS
#Podesite jačinu zvuka na 80% noću, 100% inače
#Pa ako spavam, nije tako glasno
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; zatim
# fpp -v 100
#else
# fpp -v 80
#fi
# Provjerite imamo li nešto smisleno
if [-z "$ {STATUS}"]; tada
echo "Greška sa vrijednošću statusa"> & 2
izlaz 1
fi
# Postupajte prema trenutnom statusu
kućište $ {STATUS} u
# IDLE
0)
#Night time - reprodukujte Song1 u stanju pripravnosti
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo Sviranje NightSong1
fpp -c stop
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Dan ili jako kasno - pustite pjesmu 1 jednom pa isključite svjetlo
else
echo Sviranje DaySong1
fpp -c stop
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# IGRAJ SE ILI ZAUSTAVLJAJTE LICA
1 | 2)
#Standby je pokrenut - ovo radi jer je stanje pripravnosti moj jedini niz koji nije medij
if ["$ STANDBYSTRING" == "sequence"]; tada
#Night time - reprodukujte Song1 u stanju pripravnosti
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo Reprodukcija NightSong1 noću
fpp -c stop
fpp -p "$ {NightSong1}"
#Dan ili jako kasno - jednom se igrajte tigraste krpe, a zatim isključite svjetla
else
echo PlayingDaySong1 iz sviranja
fpp -c stop
fpp -P "$ {DaySong1}"
fi
#Da biste podržali više pjesama, kopirajte ovaj odjeljak i promijenite "Song2Playlist" u zadnjem odjeljku u Song#Playlist
#Pjesma1 je pokrenuta
elif ["$ PLAYLIST" == "$ Song1Playlist"]; zatim
#Night time - igrajte Hallelujah u stanju pripravnosti
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo Igranje HallelujahStandby iz Tiger Rag -a je pokrenuto
fpp -c stop
fpp -p "$ {NightSong2}"
#Dan ili stvarno kasno - pustite Song2 jednom pa isključite svjetla
else
echo Trčanje Aleluja jednom iz Tiger Rag -a je pokrenuto
fpp -c stop
fpp -P "$ {DaySong2}"
fi
#LAST PESMA TRČI - IGRAJTE SE U STANJU
elif ["$ PLAYLIST" == "$ Song2Playlist"]; zatim
#Night time - reprodukujte stanje pripravnosti u toku
ako [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; tada
echo Reprodukcija u stanju pripravnosti pri ponavljanju
fpp -c stop
fpp -p "$ {NightStandby}"
#Dan ili stvarno kasno - jednom pustite stanje pripravnosti
else
echo Reprodukcija u stanju pripravnosti jednom
fpp -c stop
fpp -P "$ {DayStandby}"
fi
else
echo Iz nekog razloga izvršeno je posljednje drugo slovo.
fpp -c stop
fpp -P "$ {DaySong1}"
fi
;;
esac

pogledajte rawButtonSuperScript.sh hostirano sa ❤ od strane GitHub -a

Korak 5: (Opcionalno) Prednja ploča za dugme

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 dugmeta. Poprskao sam malo drveta bijelom bojom, a zatim ga prekrio ljepljivom trakom (tako da laserski rezač ne prži dijelove koje ne želim urezati). Datoteka koju sam koristio je u prilogu.

Preporučuje se: