Obsah:
- Krok 1: Seznam dílů
- Krok 2: Schéma zapojení
- Krok 3: Základní nastavení přehrávače Falcon Pi Player
- Krok 4: Robustnější skript
- Krok 5: (Volitelné) Čelní panel pro tlačítko
Video: Spusťte vánoční světelnou show tlačítkem: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Při spuštění vánoční světelné show synchronizované s hudbou možná budete chtít zahájit show stisknutím tlačítka. Tento tutoriál je použitelný pouze pro show, která je ovládána pomocí Falcon Pi Player (FPP) běžícího na Raspberry Pi. Pokud používáte FPP, pravděpodobně používáte řadiče Falcon a používáte xLights nebo LightORama k sekvenování vaší show. Pokud vám žádné z těchto slov nic neříká, tento návod je prozatím pravděpodobně trochu nad hlavou a měli byste začít tím, že si přečtete tuto wiki https://auschristmaslighting.com/wiki/ a připojíte se ke skupině na Facebooku jako níže
- xLights:
- Obecná pokročilá vánoční světla:
- Přehrávač Falcon Pi:
- Sdílení nápadů na skříně/rekvizity:
- „Ne konkrétně xLights nebo LOR related“:
- Prodejci xLights Holiday Light:
- Udělejte si Vánoce sami:
Krok 1: Seznam dílů
Budete potřebovat následující položky:
- Tlačítko. Použil jsem toto s LED kruhovým světlem kolem: [Amazon]
- Rezistor. Výhodně 200Ω nebo více (2 z nich, pokud používáte tlačítko LED) Standardní 1/4W nebo 1/8W je v pořádku
- Spojovací vodič. Měřidlo, které byste měli použít, závisí na tom, jak daleko bude tlačítko od vašeho Pi. Použil jsem 18awg drát asi 10 stop od mého Pi a fungoval bezchybně
- Způsob připojení vodiče k pinům GPIO Pi. Můžete použít plochý kabel s odlamovacím prkénkem, nebo můžete použít některé konektory, jako jsem to udělal já. Potřebujeme pouze 3 vodiče - uzemnění, 5V a data pro tlačítko. [Amazonka]
- (Volitelné) Vodotěsný konektor na obou koncích pro snadnou údržbu. Používám 3pinové konektory pro námořní účely: [Amazon]
- (Volitelné) Teplem smrštitelné konektory na tupo [Amazon]
Krok 2: Schéma zapojení
Na obrázcích je schéma zapojení tlačítka bez přiložené LED diody a tlačítka s LED diodou. Způsob, jakým jsem nastavil schéma zapojení, vám umožňuje spustit tlačítko a světlo (nepřetržitě svítí) pouhými 3 vodiči.
Pro pin GPIO vyberte některý z kolíků GPIO na pí. Použijte také piny +5V a Gnd. Pravděpodobně byste se mohli dostat pryč s použitím 3,3 V kolíku, ale pokles napětí na několika stopách drátu může způsobit, že signál bude nespolehlivý nebo nebude stačit k rozsvícení LED.
POZNÁMKA: 3kolíkový konektor nepasuje otvorem, který potřebujete vyvrtat pro tlačítko s LED kruhovým světlem. Po vložení tlačítka do čelní desky tedy připojte konektor.
Krok 3: Základní nastavení přehrávače Falcon Pi Player
POZNÁMKA - FPP se neustále aktualizuje a je zcela možné, že zlepší svoji podporu skriptování nebo že jako výchozí funkci, která vyžaduje méně programování, bude obsahovat „tlačítko pro spuštění“.
Podle výše uvedeného videa jsem zpočátku vše nastavil.
Vidím videa nudná a pomalá, takže zde je jejich shrnutí:
- Importujte svou sekvenci na fpp pomocí správce souborů
- Vytvořte seznam skladeb s uvedenou sekvencí. Pro další kroky bude seznam skladeb nazýván „playme“
-
Otevřete prázdný soubor poznámkového bloku a zadejte následující:
- #!/bin/sh
- fpp -P playme
- Uložte jej jako soubor.sh do počítače
- Přejděte do správce souborů v FPP a nahrajte soubor skriptu. Přejděte na kartu „Skripty“a ujistěte se, že tam je
- V části Status/Control přejděte na Events
- Vytvořte novou událost. ID události 1/1, název události libovolný, efektová sekvence ŽÁDNÝ, skript události
- Přejděte do části Nastavení vstupu/výstupu a klikněte na spouště GPIO
- Přepněte pin, ke kterému je připojeno tlačítko. Pokud se po stisknutí tlačítka sníží, pak umístíte událost na možnost Falling, pokud je aktivní vysoko, umístíte událost na Rising.
- Klikněte na tlačítko Restartovat varováním, které se objeví po provedení všech změn
Po tom všem byste měli být schopni stisknout tlačítko, aby vaše show mohla začít. Woohoo!
Tato metoda má však určitá omezení. Pokud tlačítko znovu stisknete během přehrávání seznamu stop, buď 1) nic neudělá, nebo 2) zhroutí FPP a odmítne s vaším tlačítkem cokoli dělat, dokud jej nerestartujete. Pokud tedy používáte pouze tlačítko jako dramatický způsob hraní show na povel, výše uvedená metoda bude vše, co potřebujete.
Pokud potřebujete něco víc, pokračujte dalším krokem
Krok 4: Robustnější skript
Níže je skript, ke kterému jsem nakonec dospěl. Scénář si můžete prohlédnout na Githubu zde: [Gist. Github]
- Pokud někdo stiskne tlačítko během „nočních“hodin, přehraje Tiger Rag (moje píseň1) a poté přejde do pohotovostní sekvence, která se nekonečně opakuje.
- Pokud je tlačítko stisknuto během přehrávání Tiger Rag, spustí se moje druhá píseň Hallelujah a poté přejde do pohotovostního režimu na neurčito.
- Pokud ale někdo stiskne tlačítko ve dne nebo velmi pozdě v noci, jednou si zahraje Tiger Rag a poté zhasne všechna světla.
Díky tomu může tlačítko fungovat kdykoli během dne, ale světla nemusí být stále zapnutá. Umožňuje také přehrávání více skladeb z 1 tlačítka podle identifikace právě přehrávané skladby, ukončení této skladby a přehrání „další“skladby.
Další zdroje pro skriptování v FPP najdete zde: https://github.com/FalconChristmas/fpp-scripts Pro složitější logiku stačí vygooglit „bash script _“, kde se podtržítko snažíte. Své skripty můžete vyzkoušet pomocí FPP Shell (uživatelské jméno fpp heslo falcon) Základní příkazy jsou následující.
Dávejte pozor na velká písmena !!
- Capital -P jednou přehraje seznam skladeb, malá písmena -p jej zopakuje.
- fpp -v 66 Nastavit hlasitost na 66%
- fpp -c stop Okamžité zastavení show
- fpp -C stop To by mohla být stop show ladně
- fpp -p thisPlaylistName Přehraje thisPlaylistName při opakování (úvodní píseň se tedy přehraje jednou, pak se hlavní věci budou opakovat donekonečna.
- fpp -P thisPlaylistName Přehraje thisPlaylistName jednou
- eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Spustí skript. V případě vlevo to funguje, pokud máte název skriptu uložený v proměnné někde výše, například thisScriptVariable =”PlayTheSong.sh”
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#Spustí se po stisknutí tlačítka. |
#Ke každé skladbě byste měli mít dva seznamy skladeb - jeden s |
# jen píseň jako „První hra“a nic v zásadě, |
# a další se skladbou při prvním přehrávání a v pohotovostním režimu |
# sekvence jako „hlavní“sekvence. (Alespoň pokud chcete |
# dělat přesně to, co dělám) |
# |
#Například, pokud je vaše píseň Tiger Rag, měli byste mít |
# seznamy skladeb „TigerRag“, „TigerRagStandby“a „Standby“ |
# |
########################################################### |
# Seznamy ke spuštění, pokud se pohybují mezi 6 a 11 |
NightSong1 = "TigerRagStandby" |
NightSong2 = "HallelujahStandby" |
NightStandby = "Pohotovostní režim" |
# Seznamy skladeb, které se budou spouštět během dne nebo po 11 |
DaySong1 = "TigerRag" |
DaySong2 = "Hallelujah" |
DayStandby = "Pohotovostní režim" |
#Časy zapnutí a vypnutí za 24 hodin. Pokud chcete minuty, hodně štěstí |
OnHour = 17 |
OffHour = 23 |
########################################################### |
# Vnitřnost scénáře. # |
########################################################### |
# Získejte náš aktuální stav (IDLE = 0, PLAYING = 1, Stopting Gracefully = 2) |
STATUS = $ (fpp -s | cut -d ',' -f2) |
#Získejte běžící seznam skladeb a ořízněte jej na 7 písmen |
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Bude to „obojí“, pokud hraje skladba, a „sekvence“, pokud je v pohotovostním režimu |
#používá se k určení, zda je spuštěna pohotovostní sekvence |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
#Prvních 7 písmen názvů seznamů skladeb pro srovnání |
#Stačí 7 písmen, aby „Song1Standby“a „Song1“byly totožné |
#Dobře, ve skutečnosti by to mělo být prvních x písmen a x by mělo být nejkratší název skladby, který máte |
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
STARTITEM = "" |
#Získejte aktuální hodinu ve vojenském čase |
CurrentHour = $ (datum +"%H") |
#Vytiskněte stav některých věcí - „echo“je ve většině jazyků jako „tisk“ |
#Užitečné pro testování, pokud jsou různé věci ořezány nebo vypočítány správně |
echo CurrentHour je $ CurrentHour |
echo Running playlist je: $ PLAYLIST |
echo Song2Playlist je: $ Song2Playlist |
echo Status je: $ STATUS |
#Nastavte hlasitost na 80% v noci, 100% jinak |
#Takže když spím, není to tak hlasité |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; pak |
# fpp -v 100 |
#jiný |
# fpp -v 80 |
#fi |
# Zkontrolujte, zda máme něco smysluplného |
pokud [-z "$ {STATUS}"]; potom |
echo „Chyba se stavovou hodnotou“> & 2 |
výstup 1 |
fi |
# Jednejte podle aktuálního stavu |
případ $ {STATUS} v |
# IDLE |
0) |
#Noc - hrajte Song1 v pohotovostním režimu |
pokud [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; then |
echo Playing NightSong1 |
fpp -c stop |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
#Denní doba nebo opravdu pozdní doba - jednou přehrajte skladbu 1 a poté zhasněte světla |
jiný |
echo Playing DaySong1 |
fpp -c stop |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# PLAYING or STOPPING GRACEFULLY (Gracefully occurs if button printed when a scheduled playlist is ends) |
1 | 2) |
#Pohotovostní režim běží - to funguje, protože pohotovostní režim je moje jediná nemediální sekvence |
pokud ["$ STANDBYSTRING" == "sekvence"]; pak |
#Noc - hrajte Song1 v pohotovostním režimu |
pokud [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; then |
echo Playing NightSong1 pro noční čas |
fpp -c stop |
fpp -p "$ {NightSong1}" |
#Den nebo opravdu pozdě - jednou si zahrajte tygří hadr a poté zhasněte světla |
jiný |
echo PlayingDaySong1 z hraní |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
#Chcete -li podporovat více skladeb, zkopírujte tuto sekci a v poslední sekci změňte „Song2Playlist“na Song#Playlist |
#Song1 běží |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; poté |
#Noc - hrajte Hallelujah s pohotovostním režimem |
pokud [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; then |
echo Playing HallelujahStandby od Tiger Rag běží |
fpp -c stop |
fpp -p "$ {NightSong2}" |
#Denní čas nebo opravdu zpoždění - jednou si pustte Song2 a poté zhasněte světla |
jiný |
echo Hra Hallelujah once from Tiger Rag is running |
fpp -c stop |
fpp -P "$ {DaySong2}" |
fi |
#POSLEDNÍ PÍSNĚ BĚŽÍ - PŘEHRÁVEJTE POHOTOVOST |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; poté |
#Noční čas - přehrávání v pohotovostním režimu na smyčce |
pokud [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; then |
echo Přehrávání v pohotovostním režimu při opakování |
fpp -c stop |
fpp -p "$ {NightStandby}" |
#Denní čas nebo opravdu pozdní - jednou si zahrajte pohotovostní režim |
jiný |
echo Přehrávání v pohotovostním režimu jednou |
fpp -c stop |
fpp -P "$ {DayStandby}" |
fi |
jiný |
echo Z nějakého důvodu byl spuštěn poslední elsecase. |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
zobrazit rawButtonSuperScript.sh hostovaný s ❤ od GitHub
Krok 5: (Volitelné) Čelní panel pro tlačítko
Mám přístup k laserové řezačce v Clemsonu přes Makerspace, takže jsem rychle načrtl návrh, který mám vystřihnout+leptat. Uprostřed je díra pro mé tlačítko, nápis „Push Me“ve vánočním písmu a sněhová vločka kolem tlačítka. Nastříkal jsem nějaké dřevo na bílo a poté jsem to zalepil maskovací páskou (aby laserová řezačka nespálila části, které nechci leptat). Soubor, který jsem použil, je přiložen.
Doporučuje:
Vánoční vánoční světelná show RGB Část 2: Xlights: 7 kroků
Vánoční vánoční světelná show RGB Část 2: Xlights: V této instruktáži vám ukážu, jak sekvencovat svou první skladbu. Pokud jste neviděli část 1, doporučuji si to prohlédnout zde. Když nyní stavíte a programujete vánoční světelnou show, 75% času budete ve svém sekvenceru
Music Box se světelnou show: 9 kroků (s obrázky)
Music Box se světelnou show: Dobrý den, vítejte, v tomto tutoriálu vám ukážeme, jak si můžete pomocí vlastní světelné show vytvořit svůj vlastní hudební box. Vše, co potřebujete, je prázdné pouzdro. Vzali jsme případ, který se běžně používá pro nástroje. V tomto projektu můžete být velmi kreativní, takže nemusíte
Tkáňový box s LED světelnou show: 4 kroky
Tkáňový box s LED světelnou show: Mít normální tkáňový box není žádný problém, nebo používat Arduino k vytváření světelných show je příliš těžké. Ale kombinací těchto dvou věcí získáte něco úplně jiného. Originální kód světelné show
Rozsviťte nejlepší světelnou show: 6 kroků
Rozsviťte Top Lightshow: Většina z nás viděla ty levné topy, které při jejich roztočení blikají vzory LED. Co takhle použít levnou baterku, malý motor, krátký kus PVC trubky a objektiv k vytvoření úhledné projektovatelné světelné show?
Vytvořte synchronizovanou světelnou show s hudbou pomocí funkce Stop Motion: 6 kroků
Vytvořte synchronizovanou světelnou show s hudbou pomocí funkce Stop Motion: Takže v zásadě, pokud máte rádi tyto filmy na youtube s vánočními světly synchronizovanými s písní, toto je návod pro vás! To přebírá koncept počítačem ovládaných světel a usnadňuje to (podle mého názoru, protože jsem nikdy nedělal co