![Rozpocznij świąteczny pokaz świetlny za pomocą przycisku: 5 kroków Rozpocznij świąteczny pokaz świetlny za pomocą przycisku: 5 kroków](https://i.howwhatproduce.com/images/006/image-15073-10-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
![Rozpocznij swój świąteczny pokaz świetlny za pomocą przycisku Rozpocznij swój świąteczny pokaz świetlny za pomocą przycisku](https://i.howwhatproduce.com/images/006/image-15073-11-j.webp)
Prowadząc świąteczny pokaz świetlny zsynchronizowany z muzyką, możesz chcieć rozpocząć pokaz, naciskając przycisk. Ten samouczek dotyczy tylko pokazu kontrolowanego przez Falcon Pi Player (FPP) uruchomiony na Raspberry Pi. Jeśli korzystasz z FPP, prawdopodobnie używasz kontrolerów Falcon i używasz xLights lub LightORama do sekwencjonowania swojego pokazu. Jeśli żadne z tych słów nic ci nie mówi, ten samouczek jest na razie prawdopodobnie trochę przesadzony i powinieneś zacząć od przeczytania tej wiki https://auschristmaslighting.com/wiki/ i dołączenia do grupy na Facebooku, jak poniżej
- xLights:
- Ogólne zaawansowane lampki świąteczne:
- Falcon Pi Player:
- Dzielenie się pomysłami na obudowy/rekwizyty:
- „Nie konkretnie xLights lub LOR Related”:
- Dostawcy xLights Holiday Light:
- Boże Narodzenie zrób to sam:
Krok 1: Lista części
Będziesz potrzebować następujących przedmiotów:
- Przycisk. Użyłem tego z pierścieniem LED wokół niego: [Amazon]
- Rezystor. Najlepiej 200Ω lub więcej (2 z nich, jeśli używasz przycisku LED) Standardowe 1/4W lub 1/8W jest w porządku
- Przewód łączący. Miernik, którego powinieneś użyć, zależy od odległości przycisku od twojego Pi. Użyłem drutu 18awg na około 10 stóp od mojego Pi i działał bezbłędnie
- Sposób na podłączenie przewodu do pinów GPIO Pi. Możesz użyć kabla taśmowego z płytką stykową lub możesz po prostu użyć złączy żeńskich, tak jak ja. Potrzebujemy tylko 3 przewodów - uziemienia, 5V i danych do przycisku. [Amazonka]
- (Opcjonalnie) Wodoodporne złącze na każdym końcu dla łatwej konserwacji. Używam 3-pinowych złączy klasy morskiej: [Amazon]
- (Opcjonalnie) Złączki termokurczliwe [Amazon]
Krok 2: Schemat połączeń
![Schemat połączeń Schemat połączeń](https://i.howwhatproduce.com/images/006/image-15073-12-j.webp)
![Schemat połączeń Schemat połączeń](https://i.howwhatproduce.com/images/006/image-15073-13-j.webp)
![Schemat połączeń Schemat połączeń](https://i.howwhatproduce.com/images/006/image-15073-14-j.webp)
![Schemat połączeń Schemat połączeń](https://i.howwhatproduce.com/images/006/image-15073-15-j.webp)
Na zdjęciach pokazano schemat połączeń przycisku bez dołączonej diody LED oraz przycisku z diodą LED. Sposób, w jaki skonfigurowałem schemat połączeń, pozwala na uruchomienie przycisku i światła (ciągle włączone) za pomocą zaledwie 3 przewodów.
Dla pinu GPIO wybierz dowolny z pinów GPIO na pi. Użyj również pinów +5V i Gnd. Prawdopodobnie możesz uciec z użyciem pinu 3,3 V, ale spadek napięcia na kilku metrach przewodu może sprawić, że sygnał będzie niewiarygodny lub nie wystarczy, aby zapalić diodę LED.
UWAGA: 3-stykowe złącze nie będzie pasować do otworu, w którym należy wywiercić przycisk z pierścieniową lampką LED. Podłącz więc złącze po umieszczeniu przycisku w płycie czołowej.
Krok 3: Podstawowa konfiguracja Falcon Pi Player
![](https://i.ytimg.com/vi/mRYyeiD5K9o/hqdefault.jpg)
UWAGA - FPP jest stale aktualizowane i jest całkowicie możliwe, że poprawią obsługę skryptów lub że domyślną funkcję "naciśnij przycisk, aby rozpocząć", która wymaga mniej programowania.
Postępowałem zgodnie z powyższym filmem, aby wstępnie skonfigurować wszystko.
Uważam, że filmy są nudne i wolne, więc oto ich podsumowanie:
- Zaimportuj swoją sekwencję do fpp za pomocą menedżera plików
- Utwórz listę odtwarzania z zawartą w niej sekwencją. W następnych krokach playlista będzie nazywać się „playme”
-
Otwórz pusty plik notatnika i wpisz:
- #!/kosz/sz
- fpp -P playme
- Zapisz go jako plik.sh na swoim komputerze
- Przejdź do menedżera plików w FPP i prześlij swój plik skryptu. Przejdź do zakładki „Skrypty” i upewnij się, że tam jest
- W sekcji Status/Kontrola przejdź do Zdarzeń
- Utwórz nowe wydarzenie. Identyfikator zdarzenia 1/1, nazwa zdarzenia dowolna, sekwencja efektów BRAK, skrypt zdarzenia
- Przejdź pod Input/Output Setup i kliknij wyzwalacze GPIO
- Przełącz pinezkę, do której dołączony jest przycisk. Jeśli po naciśnięciu przycisku spadnie, ustaw wydarzenie w opcji Falling, jeśli jest aktywne, ustaw wydarzenie na Rising.
- Kliknij przycisk Uruchom ponownie, gdy pojawi się ostrzeżenie, które pojawi się po wprowadzeniu wszystkich zmian
Po wykonaniu tych wszystkich czynności powinieneś być w stanie nacisnąć przycisk, aby rozpocząć pokaz. Hurra!
Jednak ta metoda ma pewne ograniczenia. Jeśli naciśniesz przycisk ponownie podczas odtwarzania listy odtwarzania, albo 1) nic nie zrobi, albo 2) spowoduje awarię FPP i odmówi wykonania czegokolwiek z twoim przyciskiem, dopóki go nie zrestartujesz. Jeśli więc po prostu używasz przycisku jako dramatycznego sposobu odtwarzania swojego programu na polecenie, powyższa metoda będzie wszystkim, czego potrzebujesz.
Jeśli potrzebujesz czegoś więcej, przejdź do następnego kroku
Krok 4: Bardziej solidny skrypt
Poniżej znajduje się scenariusz, do którego ostatecznie dotarłem. Możesz zobaczyć skrypt na Github tutaj: [Gist. Github]
- Jeśli ktoś naciśnie przycisk w „nocnych” godzinach, odtworzy Tiger Rag (mój utwór1), a następnie przejdzie do sekwencji gotowości, która zapętla się w nieskończoność.
- Jeśli przycisk zostanie naciśnięty podczas odtwarzania Tiger Rag, rozpocznie się moja druga piosenka, Alleluja, a następnie przejdzie do sekwencji gotowości w nieskończoność.
- Ale jeśli ktoś naciśnie przycisk w ciągu dnia lub bardzo późno w nocy, odtworzy raz Tiger Rag, a następnie wyłączy wszystkie światła.
Dzięki temu przycisk może działać o każdej porze dnia, ale światła nie muszą być włączone przez cały czas. Pozwala również na odtwarzanie wielu utworów za pomocą 1 przycisku, identyfikując aktualnie odtwarzaną piosenkę, kończąc tę piosenkę i odtwarzając „następną” piosenkę.
Więcej zasobów do pisania skryptów w FPP znajdziesz tutaj: https://github.com/FalconChristmas/fpp-scriptsAby uzyskać bardziej skomplikowaną logikę, po prostu wpisz w Google „bash script _”, gdzie podkreślenie jest tym, co próbujesz zrobić. Możesz przetestować swoje skrypty używając powłoki FPP (nazwa użytkownika fpp hasło falcon) Podstawowe polecenia są następujące.
Zwróć uwagę na wielkość liter!!
- Duże -P odtworzy listę odtwarzania raz, małe -p powtórzy ją.
- fpp -v 66 Ustaw głośność na 66%
- fpp -c stop Zatrzymaj pokaz natychmiast
- fpp -C stop To może być z wdziękiem stop show
- fpp -p taNazwaListyOdtwarzania Odtwarza tęNazwęListyOdtwarzania przy powtarzaniu (więc utwór wprowadzający jest odtwarzany raz, a następnie materiał Main będzie powtarzany w nieskończoność.
- fpp -P thisPlaylistName Odtwarza raz tęPlaylistName
- eventScript "${MEDIADIR}/scripts/${thisScriptVariable}" Uruchamia skrypt. W przypadku po lewej to działa, jeśli masz nazwę skryptu zapisaną w zmiennej gdzieś powyżej, na przykład thisScriptVariable=”PlayTheSong.sh”
ButtonSuperScript.sh
#!/kosz/sz |
########################################################### |
# Do uruchomienia po naciśnięciu przycisku. |
#Powinieneś mieć dwie listy odtwarzania dla każdej piosenki - jedną z |
# tylko utwór jako "Pierwszy raz" i nic w main, |
# i kolejny z piosenką jako pierwszym odtwarzaniem i w trybie gotowości |
# sekwencja jako sekwencja "Main". (Przynajmniej jeśli chcesz |
# zrobić dokładnie to, co robię) |
# |
#Na przykład, jeśli twoja piosenka to Tiger Rag, powinieneś mieć |
# playlisty „TigerRag”, „TigerRagStandby” i „Standby” |
# |
########################################################### |
# Listy odtwarzania do uruchomienia, jeśli jest między 6 a 11 |
NightSong1="Tygrysia SzmataCzuwanie" |
NightSong2="AllelujaCzuwanie" |
NightStandby="Gotowość" |
# Listy odtwarzania do uruchomienia w ciągu dnia lub po 11 |
DaySong1="Tygrysia Szmata" |
DaySong2="Alleluja" |
DayStandby="Gotowość" |
#Czasy włączania i wyłączania w czasie 24-godzinnym. Jeśli chcesz minut, powodzenia |
Godzina = 17 |
OffGodzina=23 |
########################################################### |
# Wnętrzności skryptu. # |
########################################################### |
# Uzyskaj nasz aktualny status (BEZCZYNNOŚĆ=0, GRANIE=1, Stopping Gracefully=2) |
STATUS=$(fpp -s | wytnij -d', ' -f2) |
#Pobierz listę odtwarzania do biegania i przytnij do 7 liter |
PLAYLIST=$(fpp -s | wytnij -d', ' -f4 | wytnij -c1-7) |
#To będzie „oba”, jeśli odtwarza utwór, i „sekwencja”, jeśli jest w trybie gotowości |
#używane do określenia, czy sekwencja czuwania jest uruchomiona |
STANDBYSTRING=$(fpp -s | cut -d', ' -f5) |
#Pierwsze 7 liter nazw list odtwarzania do porównania |
#Tylko 7 liter, aby „Song1Standby” i „Song1” były identyczne |
#Dobra, więc właściwie powinny to być pierwsze litery x, a x powinno być najkrótszą nazwą utworu, jaką masz |
StandbyPlaylist=$(echo $NightStandby| cut -c1-7) |
Song1Playlist=$(echo $NightSong1| cut -c1-7) |
Song2Playlist=$(echo $NightSong2| cut -c1-7) |
STARTITEM="" |
#Uzyskaj aktualną godzinę w czasie wojskowym |
Bieżąca godzina=$(data +"%H") |
#Wydrukuj status niektórych rzeczy - "echo" jest jak "drukuj" w większości języków |
#Przydatne do testowania, czy różne rzeczy zostały poprawnie przycięte lub obliczone |
echo Bieżąca godzina to $bieżąca godzina |
echo Uruchomiona lista odtwarzania to: $PLAYLIST |
echo Song2Playlist to: $Song2Playlist |
status echo to: $STATUS |
#Ustaw głośność na 80% w nocy, w przeciwnym razie 100% |
#Więc jeśli śpię, nie jest tak głośno |
#if [$BieżącaGodzina -lt $OffHour -a $BieżącaGodzina -ge 11]; następnie |
# fpp -v 100 |
#w przeciwnym razie |
# fpp -v 80 |
#fi |
# Sprawdź, czy mamy coś sensownego |
if [-z"${STATUS}"];to |
echo"Błąd z wartością stanu">&2 |
wyjście 1 |
fi |
# Działaj zgodnie z aktualnym stanem |
sprawa${STATUS}w |
# BEZCZYNNY |
0) |
#Noc - odtwórz Song1 w trybie gotowości |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];to |
echo Grająca piosenkę nocną1 |
fpp -c zatrzymaj |
fpp -p "${NightSong1}"${STARTITEM} |
#Czas dzienny lub bardzo późno - odtwórz utwór 1 raz, a następnie wyłącz światła |
w przeciwnym razie |
echo Playing DaySong1 |
fpp -c zatrzymaj |
fpp -P "${DaySong1}"${STARTITEM} |
fi |
;; |
# ODTWARZANIE lub ZATRZYMYWANIE Z WŁAŚCIWEM (pełne wdzięku dzieje się, gdy przycisk zostanie naciśnięty, gdy zaplanowana lista odtwarzania się kończy) |
1 | 2) |
#Tryb czuwania jest uruchomiony – działa, ponieważ tryb czuwania to moja jedyna sekwencja niemedialna |
if ["$STANDBYSTRING"=="sekwencja"];then |
#Noc - odtwórz Song1 w trybie gotowości |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];to |
echo Odtwarzanie NightSong1 na noc |
fpp -c zatrzymaj |
fpp -p "${NightSong1}" |
#Pora dnia lub bardzo późno - raz zagraj w tygrysią szmatę, a następnie wyłącz światła |
w przeciwnym razie |
echo PlayingDaySong1 od odtwarzania |
fpp -c zatrzymaj |
fpp -P "${Dzień1}" |
fi |
#Aby obsługiwać więcej utworów, skopiuj tę sekcję i zmień "Song2Playlist" w ostatniej sekcji na Song#Playlist |
#Utwór 1 jest uruchomiony |
elif ["$PLAYLIST"=="$Song1Playlist"];wtedy |
#Noc - graj w Alleluja w trybie gotowości |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];to |
echo Granie w HallelujahStandby z Tiger Rag jest uruchomione |
fpp -c zatrzymaj |
fpp -p "${NightSong2}" |
#Czas dzienny lub bardzo późno – odtwórz utwór Song2 raz, a następnie wyłącz światła |
w przeciwnym razie |
echo Granie w Alleluja raz z Tiger Rag jest uruchomione |
fpp -c zatrzymaj |
fpp -P "${DaySong2}" |
fi |
#OSTATNIA PIOSENKA JEST URUCHAMIANA – ZAGRAJ W GOTOWOŚĆ |
elif ["$PLAYLIST"=="$Song2Playlist"];wtedy |
#Noc - odtwarzanie w trybie gotowości w pętli |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];then |
echo Odtwarzanie w trybie gotowości przy powtarzaniu |
fpp -c zatrzymaj |
fpp -p "${Tryb nocny}" |
#Czas dzienny lub bardzo późno - raz w trybie czuwania |
w przeciwnym razie |
echo Jednorazowe odtwarzanie w trybie gotowości |
fpp -c zatrzymaj |
fpp -P "${Gotowość na dzień}" |
fi |
w przeciwnym razie |
echo Z jakiegoś powodu wykonane zostało ostatnie elsecase. |
fpp -c zatrzymaj |
fpp -P "${Dzień1}" |
fi |
;; |
esac |
wyświetl rawButtonSuperScript.sh hostowany z ❤ przez GitHub
Krok 5: (Opcjonalnie) Płyta czołowa przycisku
Mam dostęp do wycinarki laserowej w Clemson przez Makerspace, więc szybko naszkicowałem projekt do wycięcia + wytrawiania. W środku jest otwór na mój guzik, słowa „Push Me” pisane świąteczną czcionką i płatek śniegu wokół guzika. Drewno pomalowałem natryskowo na biało, a następnie pokryłem taśmą maskującą (aby wycinarka laserowa nie przypaliła części, których nie chcę wytrawić). Plik, którego użyłem, jest załączony.
Zalecana:
Niesamowity pokaz świetlny Halloween z muzyką !: 5 kroków
![Niesamowity pokaz świetlny Halloween z muzyką !: 5 kroków Niesamowity pokaz świetlny Halloween z muzyką !: 5 kroków](https://i.howwhatproduce.com/images/002/image-4485-j.webp)
Awesome Halloween Light Show With Music!: W tym projekcie stworzyłem Halloweenowy wyświetlacz świetlny z kilkoma specjalnymi światłami zwanymi pikselami RGB, które są zsynchronizowane z 4 piosenkami Halloween. Jeśli chcesz zobaczyć te pokazy świetlne i przyszłe, zajrzyj tutaj. Ten pokaz świetlny może być trudny do zbudowania
Łatwy świąteczny pokaz świetlny LED: Czarodzieje w zimie - Taśma LED WS2812B z FastLED i samouczkiem Arduino: 6 kroków
![Łatwy świąteczny pokaz świetlny LED: Czarodzieje w zimie - Taśma LED WS2812B z FastLED i samouczkiem Arduino: 6 kroków Łatwy świąteczny pokaz świetlny LED: Czarodzieje w zimie - Taśma LED WS2812B z FastLED i samouczkiem Arduino: 6 kroków](https://i.howwhatproduce.com/images/009/image-26765-j.webp)
Łatwy świąteczny pokaz świetlny LED: Czarodzieje w zimie | Taśma LED WS2812B z FastLED i samouczkiem Arduino: Zaprojektowałem i zaprogramowałem ten świąteczny pokaz świetlny, aby był wyświetlany w dowolnym miejscu. Użyłem jednej taśmy ledowej WS2812B o gęstości pikseli 30 pikseli/metr. Ponieważ użyłem 5 metrów, miałem w sumie 150 diod LED. Zachowałem prosty kod, aby każdy nowy w obsłudze WS2812
Pokaz świetlny projektora wideo!: 5 kroków
![Pokaz świetlny projektora wideo!: 5 kroków Pokaz świetlny projektora wideo!: 5 kroków](https://i.howwhatproduce.com/images/004/image-9867-9-j.webp)
Pokaz świetlny projektora wideo!: Dlaczego? Każda dobra impreza potrzebuje światła! Ale efekty świetlne mogą kosztować setki dolarów, co jest dość drogie w przypadku urządzenia, które będzie używane tylko kilka razy w roku. Dzięki tej instrukcji możesz uzyskać efekty świetlne podobne do skanera lub ruchomej głowicy
Pokaz świetlny LED Unicycle: 5 kroków (ze zdjęciami)
![Pokaz świetlny LED Unicycle: 5 kroków (ze zdjęciami) Pokaz świetlny LED Unicycle: 5 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/004/image-11097-j.webp)
Unicycle LED Lightshow: Moje dzieci pasjonują się jazdą na monocyklu. Kiedy narodził się pomysł, aby dodać światła na imprezę pokazową. Dodanie kilku świateł byłoby już fajne, ale zainspirowane innymi pokazami świetlnymi, światła powinny być zsynchronizowane z muzyką. To była nie lada przygoda
Stwórz zsynchronizowany z muzyką pokaz świetlny za pomocą animacji poklatkowej: 6 kroków
![Stwórz zsynchronizowany z muzyką pokaz świetlny za pomocą animacji poklatkowej: 6 kroków Stwórz zsynchronizowany z muzyką pokaz świetlny za pomocą animacji poklatkowej: 6 kroków](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10960840-make-a-music-synchronized-light-show-using-stop-motion-6-steps-j.webp)
Stwórz zsynchronizowany z muzyką pokaz świetlny za pomocą funkcji Stop Motion: Więc w zasadzie, jeśli lubisz te filmy na youtube z lampkami świątecznymi zsynchronizowanymi z piosenką, to jest to instrukcja dla Ciebie! To przejmuje koncepcję świateł sterowanych komputerowo i ułatwia to (moim zdaniem, ponieważ nigdy nie robiłem