Obsah:

Začnite svoju vianočnú svetelnú šou tlačidlom: 5 krokov
Začnite svoju vianočnú svetelnú šou tlačidlom: 5 krokov

Video: Začnite svoju vianočnú svetelnú šou tlačidlom: 5 krokov

Video: Začnite svoju vianočnú svetelnú šou tlačidlom: 5 krokov
Video: Встреча с этим существом предвещает крупные несчастья. Знаки судьбы, которые нужно замечать 2024, November
Anonim
Začnite svoju vianočnú svetelnú šou pomocou tlačidla
Začnite svoju vianočnú svetelnú šou pomocou tlačidla

Pri spustení vianočnej svetelnej šou synchronizovanej s hudbou možno budete chcieť spustiť šou stlačením tlačidla. Tento tutoriál je použiteľný iba pre show, ktorá je ovládaná pomocou programu Falcon Pi Player (FPP) bežiaceho na Raspberry Pi. Ak používate FPP, pravdepodobne používate radiče Falcon a na sekvenciu šou používate programy xLights alebo LightORama. Ak vám žiadne z týchto slov nič nehovorí, tento návod je zatiaľ asi trochu nad hlavou a mali by ste začať čítaním tejto wiki https://auschristmaslighting.com/wiki/ a pripojením sa k skupine na Facebooku, ako je uvedené nižšie

  • xLights:
  • Všeobecné pokročilé vianočné svetlá:
  • Hráč Falcon Pi:
  • Zdieľanie predstavy o kryte/rekvizite:
  • „Nie konkrétne xLights alebo súvisiace s LOR“:
  • Predajcovia xLights Holiday Light:
  • Urob si sám Vianoce:

Krok 1: Zoznam dielov

Budete potrebovať nasledujúce položky:

  • Tlačítko. Použil som toto s LED kruhovým svetlom okolo: [Amazon]
  • Rezistor. Prednostne 200 Ω alebo viac (2 z nich, ak používate tlačidlo LED) Štandardný 1/4W alebo 1/8W je v poriadku
  • Spojovací drôt. Ukazovateľ, ktorý by ste mali použiť, závisí od toho, ako ďaleko bude tlačidlo od vášho Pi. Použil som 18awg drôt asi 10 stôp od môjho Pi a fungoval bezchybne
  • Spôsob pripojenia drôtu k pinom GPIO Pi. Môžete použiť plochý kábel s oddeľovacou doskou, alebo môžete použiť aj niektoré konektory, ako som to urobil ja. Potrebujeme iba 3 vodiče - uzemnenie, 5 V a údaje pre tlačidlo. [Amazon]
  • (Voliteľné) Vodotesný konektor na každom konci pre jednoduchú údržbu. Používam 3-kolíkové námorné konektory: [Amazon]
  • (Voliteľné) Tepelne zmrštiteľné tupé konektory [Amazon]

Krok 2: Schéma zapojenia

Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma
Elektrické schéma

Na obrázkoch je schéma zapojenia tlačidla bez priloženej diódy LED a tlačidla s diódou LED. Spôsob, akým som nastavil schému zapojenia, vám umožňuje spustiť tlačidlo a svetlo (nepretržite svietiace) iba s 3 vodičmi.

Pre pin GPIO vyberte ktorýkoľvek z pinov GPIO na pi. Použite tiež kolíky +5 V a Gnd. Pravdepodobne by ste sa mohli vyhnúť použitiu kolíka 3,3 V, ale pokles napätia na niekoľkých stopách drôtu môže spôsobiť, že signál bude nespoľahlivý alebo nebude stačiť na rozsvietenie diódy LED.

POZNÁMKA: 3-kolíkový konektor nepasuje cez otvor, ktorý potrebujete vyvŕtať pre tlačidlo s LED diódou. Pripojte teda konektor po vložení tlačidla na prednú dosku.

Krok 3: Základné nastavenie prehrávača Falcon Pi Player

POZNÁMKA - FPP sa neustále aktualizuje a je úplne možné, že zlepší svoju podporu skriptovania alebo že ako predvolenú funkciu, ktorá vyžaduje menej programovania, bude zahŕňať „spustenie stlačením tlačidla“.

Nasledoval som video vyššie, aby som najskôr všetko nastavil.

Videá sa mi zdajú byť nudné a pomalé, takže ich zhrnutie:

  • Importujte svoju sekvenciu na server fpp pomocou správcu súborov
  • Vytvorte si zoznam skladieb so sekvenciou. Pre ďalšie kroky bude zoznam skladieb nazvaný „playme“
  • Otvorte prázdny súbor poznámkového bloku a zadajte nasledujúci príkaz:

    • #!/bin/sh
    • fpp -P playme
  • Uložte ho ako súbor.sh do počítača
  • Prejdite do správcu súborov v FPP a nahrajte súbor skriptu. Prejdite na kartu „Skripty“a uistite sa, že je tam
  • V časti Stav/ovládanie prejdite na položku Udalosti
  • Vytvorte novú udalosť. ID udalosti 1/1, názov udalosti bez ohľadu na to, efektová sekvencia ŽIADNA, skript udalosti
  • Prejdite do časti Nastavenie vstupu/výstupu a kliknite na položku Spúšťače GPIO
  • Prepnite špendlík, ku ktorému je tlačidlo pripevnené. Ak sa po stlačení tlačidla zníži, potom umiestnite udalosť na možnosť Falling, ak je aktívna vysoko, umiestnite udalosť na Rising.
  • Kliknite na tlačidlo Reštartovať podľa varovania, ktoré sa objaví po vykonaní všetkých zmien

Po tom všetkom by ste mali byť schopní stlačiť tlačidlo, aby sa vaša show začala. Fuj!

Táto metóda má však určité obmedzenia. Ak znova stlačíte tlačidlo počas prehrávania zoznamu skladieb, buď 1) sa nič neurobí, alebo 2) zlyhá FPP a odmietnete čokoľvek robiť s tlačidlom, kým ho nereštartujete. Ak teda iba dramaticky používate tlačidlo na prehrávanie šou na príkaz, vyššie uvedená metóda bude všetko, čo potrebujete.

Ak potrebujete niečo viac, pokračujte ďalším krokom

Krok 4: Robustnejší skript

Nasleduje scenár, ku ktorému som nakoniec dospel. Scenár si môžete pozrieť na Githube tu: [Gist. Github]

  • Ak niekto stlačí tlačidlo počas „nočných“hodín, prehrá Tiger Rag (moja pieseň1) a potom prejde do pohotovostnej sekvencie, ktorá sa nekonečne opakuje.
  • Ak je počas prehrávania Tiger Rag stlačené tlačidlo, spustí sa moja druhá pieseň Hallelujah a potom sa na neurčito prepne do pohotovostného režimu.
  • Ak však niekto stlačí tlačidlo vo dne alebo veľmi neskoro v noci, prehrá raz Tiger Rag a potom vypne všetky svetlá.

Vďaka tomu môže tlačidlo fungovať kedykoľvek počas dňa, ale svetlá nemusia byť stále zapnuté. Tiež umožňuje prehrávanie viacerých skladieb z jedného tlačidla tak, že identifikujete, ktorá skladba sa práve hrá, ukončíte skladbu a prehráte „nasledujúcu“skladbu.

Viac zdrojov pre skriptovanie v FPP nájdete tu: https://github.com/FalconChristmas/fpp-scriptsPre komplikovanejšiu logiku stačí vygoogliť „bash script _“, kde sa pokúšate urobiť podčiarkovník. Svoje skripty môžete otestovať pomocou shellu FPP (užívateľské meno fpp heslo falcon) Základné príkazy sú nasledujúce.

Dávajte pozor na veľké písmená !!

  • Capital -P prehrá zoznam skladieb raz, malé písmená -p ho zopakuje.
  • fpp -v 66 Nastaviť hlasitosť na 66%
  • fpp -c stop Okamžité zastavenie show
  • fpp -C stop Toto môže byť zastavenie ukážky elegantne
  • fpp -p thisPlaylistName Prehrá thisPlaylistName opakovane (úvodná pieseň sa teda prehrá raz, potom sa hlavné položky budú opakovať donekonečna.)
  • fpp -P thisPlaylistName Prehrá thisPlaylistName raz
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Spustí skript. V prípade vľavo to funguje, ak máte názov skriptu uložený v premennej niekde vyššie, napríklad thisScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Spustí sa po stlačení tlačidla.
#Pre každú skladbu by ste mali mať dva zoznamy skladieb - jeden s
# iba pieseň ako „prvé hranie“a nič hlavné,
# a ďalší s piesňou pri prvom spustení a v pohotovostnom režime
# sekvencia ako „hlavná“sekvencia. (Aspoň ak chcete
# robiť presne to, čo robím)
#
#Napríklad, ak je vaša pieseň Tiger Rag, mali by ste mať
# zoznamy skladieb „TigerRag“, „TigerRagStandby“a „Standby“
#
###########################################################
# Zoznamy skladieb, ktoré sa majú spustiť, ak sú medzi 6 a 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "Pohotovostný režim"
# Zoznamy skladieb, ktoré sa majú spustiť počas dňa alebo po 11
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
DayStandby = "Pohotovostný režim"
#Časy zapnutia a vypnutia za 24 hodín. Ak chcete minúty, veľa šťastia
OnHour = 17
Mimo pracovného času = 23
###########################################################
# Vnútornosť scenára. #
###########################################################
# Získať náš aktuálny stav (IDLE = 0, HRANIE = 1, zastavenie ladne = 2)
STATUS = $ (fpp -s | cut -d ',' -f2)
#Získajte spustený zoznam skladieb a zostrihajte ho na 7 písmen
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#Bude to „obe“, ak hrá skladba, a „sekvencia“, ak je v pohotovostnom režime
#slúži na určenie, či je spustená pohotovostná sekvencia
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#Prvých 7 písmen názvov zoznamov skladieb na porovnanie
#Stačí 7 písmen, aby boli „Song1Standby“a „Song1“totožné
#Dobre, v skutočnosti by to malo byť prvých x písmen a x by malo byť najkratšie meno piesne, aké máte
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#Získajte aktuálnu hodinu vo vojenskom čase
CurrentHour = $ (dátum +"%H")
#Vytlačte stav niektorých vecí - „ozvena“je vo väčšine jazykov ako „tlač“
#Užitočné na testovanie, ak sú rôzne veci orezané alebo vypočítané správne
echo CurrentHour je $ CurrentHour
echo Bežiaci zoznam skladieb je: $ PLAYLIST
echo Song2Playlist je: $ Song2Playlist
echo Stav je: $ STATUS
#Nastavte hlasitosť na 80% v noci, 100% inak
#Keď spím, nie je to také hlasné
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; potom
# fpp -v 100
#inak
# fpp -v 80
#fi
# Skontrolujte, či sme získali niečo zmysluplné
ak [-z "$ {STATUS}"]; potom
echo „Chyba so stavovou hodnotou“> & 2
výstup 1
fi
# Konajte podľa aktuálneho stavu
prípad $ {STATUS} v
# IDLE
0)
#Nočný čas - prehrajte Song1 v pohotovostnom režime
ak [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; potom
echo Playing NightSong1
fpp -c stop
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Deň alebo naozaj neskoro - prehrajte skladbu 1 raz a potom vypnite svetlá
inak
echo Playing DaySong1
fpp -c stop
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# PREHRÁVANIE alebo ZASTÁVANIE POMOCNE (pôvabné sa stane, ak sa po skončení naplánovaného zoznamu skladieb stlačí tlačidlo)
1 | 2)
#Pohotovostný režim je spustený - funguje to, pretože pohotovostný režim je moja jediná nemediálna sekvencia
ak ["$ STANDBYSTRING" == "sekvencia"]; potom
#Nočný čas - prehrajte Song1 v pohotovostnom režime
ak [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; potom
echo Prehrávanie NightSong1 na nočný čas
fpp -c stop
fpp -p "$ {NightSong1}"
#Denný čas alebo naozaj neskorý čas - zahrajte si raz tigrovú handru a potom vypnite svetlá
inak
echo PlayingDaySong1 z hrania
fpp -c stop
fpp -P "$ {DaySong1}"
fi
#Ak chcete podporovať viac skladieb, skopírujte túto sekciu a v poslednej časti zmeňte položku „Song2Playlist“na skladbu#Playlist
#Song1 je spustená
elif ["$ PLAYLIST" == "$ Song1Playlist"]; potom
#Noc - hrajte Hallelujah v pohotovostnom režime
ak [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; potom
echo Playing HallelujahStandby od Tiger Rag beží
fpp -c stop
fpp -p "$ {NightSong2}"
#Deň alebo naozaj neskoro - pustite si raz Song2 a potom vypnite svetlá
inak
echo Beží Hallelujah raz od Tiger Rag
fpp -c stop
fpp -P "$ {DaySong2}"
fi
#POSLEDNÁ PIESEŇ beží - PLAY STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"]; potom
#Noc - prehrajte pohotovostný režim v slučke
ak [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; potom
echo Opakované prehrávanie v pohotovostnom režime
fpp -c stop
fpp -p "$ {NightStandby}"
#Denný čas alebo naozaj neskorý čas - raz prehrajte v pohotovostnom režime
inak
echo Prehrávanie v pohotovostnom režime raz
fpp -c stop
fpp -P "$ {DayStandby}"
fi
inak
echo Z nejakého dôvodu bol vykonaný posledný prípad.
fpp -c stop
fpp -P "$ {DaySong1}"
fi
;;
esac

zobraziť rawButtonSuperScript.sh hostený s ❤ od GitHub

Krok 5: (Voliteľné) Čelná doska pre tlačidlo

Mám prístup k laserovej rezačke v Clemson cez Makerspace, takže som rýchlo načrtol dizajn, ktorý mám vystrihnúť+leptať. V strede je diera pre moje tlačidlo, slová s nápisom „Push Me“vo vianočnom písme a snehová vločka okolo tlačidla. Trochu dreva som nastriekol na bielo a potom som to prekryl maskovacou páskou (aby laserová rezačka nespálila časti, ktoré nechcem leptať). Súbor, ktorý som použil, je priložený.

Odporúča: