Talaan ng mga Nilalaman:
- Hakbang 1: Listahan ng Mga Bahagi
- Hakbang 2: Diagram ng Mga Kable
- Hakbang 3: Pangunahing Pag-setup ng Falcon Pi Player
- Hakbang 4: Isang Mas Malakas na Script
- Hakbang 5: (Opsyonal) Faceplate para sa Button
Video: Simulan ang Iyong Christmas Light Show Sa Isang Button: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Kapag nagpapatakbo ng isang Christmas light show na naka-sync sa musika baka gusto mong simulan ang palabas sa pamamagitan ng pagpindot sa isang pindutan. Nalalapat lamang ang tutorial na ito para sa isang palabas na kontrolado sa pamamagitan ng Falcon Pi Player (FPP) na tumatakbo sa isang Raspberry Pi. Kung nagpapatakbo ka ng FPP malamang na gumagamit ka ng mga Falcon Controller at gumagamit ng xLights o LightORama upang isunud-sunod ang iyong palabas. Kung wala sa mga salitang iyon ang may katuturan sa iyo, ang tutorial na ito ay marahil medyo nasa ulo mo para sa ngayon at dapat kang magsimula sa pamamagitan ng pagbabasa ng wiki na ito https://auschristmaslighting.com/wiki/ at pagsali sa isang pangkat sa Facebook tulad ng sa ibaba
- xLights:
- Pangkalahatang mga advanced Christmas lights:
- Falcon Pi Player:
- Pagbabahagi ng ideya ng enclosure / prop:
- "Hindi partikular na xLights o LOR Kaugnay": Ngunit
- xLights Holiday Light vendor:
- Gawin ang Iyong Sarili Pasko:
Hakbang 1: Listahan ng Mga Bahagi
Kakailanganin mo ang mga sumusunod na item:
- Isang pindutan. Ginamit ko ang isang ito gamit ang isang LED ring light sa paligid nito: [Amazon]
- Isang risistor. Mas mabuti 200Ω o mas mataas (2 sa mga ito kung ginagamit mo ang LED button) Karaniwan 1 / 4W o 1 / 8W ay mabuti
- Wire ng konektor. Ang gauge na dapat mong gamitin ay nakasalalay sa kung gaano kalayo ang pindutan mula sa iyong Pi. Gumamit ako ng 18awg wire para sa halos 10 talampakan mula sa aking Pi at ito ay gumana nang walang kamali-mali
- Isang paraan upang ikonekta ang isang kawad sa mga pin ng GPIO ng Pi. Maaari kang gumamit ng isang ribbon cable na may breakout breadboard, o maaari mo lamang gamitin ang ilang mga babaeng konektor tulad ng ginawa ko. Kailangan lang namin ng 3 wires - Ground, 5V, at data para sa pindutan. [Amazon]
- (Opsyonal) Isang konektor na hindi tinatagusan ng tubig sa bawat dulo para sa madaling pagpapanatili. Gumagamit ako ng mga 3-pin na konektor sa antas ng dagat: [Amazon]
- (Opsyonal) Painit ang mga konektor ng pag-urong ng puwit [Amazon]
Hakbang 2: Diagram ng Mga Kable
Ang mga larawan ay nagpapakita ng isang diagram ng mga kable para sa isang pindutan nang walang kasamang LED, at isang pindutan na may LED. Ang paraan ng pag-set up ko ng diagram ng mga kable ay nagbibigay-daan sa iyo upang magpatakbo ng isang pindutan at isang ilaw (patuloy na nakabukas) na may 3 wires lamang.
Para sa pin ng GPIO, pumili ng alinman sa mga pin ng GPIO sa pi. Gamitin ang mga + 5V at Gnd pin din. Marahil ay maaari kang makawala sa paggamit ng 3.3V pin, ngunit ang pagbagsak ng boltahe sa maraming paa ng kawad ay maaaring gawing hindi maaasahan ang signal o hindi sapat upang magaan ang LED.
TANDAAN: Ang 3-pin na konektor ay hindi magkakasya sa butas na kailangan mo upang mag-drill para sa isang pindutan na may ilaw na singsing na LED. Kaya ikabit ang konektor pagkatapos ilagay ang pindutan sa iyong faceplate.
Hakbang 3: Pangunahing Pag-setup ng Falcon Pi Player
TANDAAN - Patuloy na ina-update ang FPP, at posible na mapabuti nila ang kanilang suporta sa script o isasama nila ang "push button upang magsimula" bilang isang default na tampok na nangangailangan ng mas kaunting programa.
Sinundan ko ang video sa itaas para sa una kong pag-set up ng lahat.
Nakita kong mayamot at mabagal ang mga video, kaya narito ang isang buod nito:
- I-import ang iyong pagkakasunud-sunod sa fpp gamit ang file manager
- Lumikha ng isang playlist na may pagkakasunud-sunod dito. Para sa mga susunod na hakbang ang playlist ay tatawaging "playme"
-
Magbukas ng isang blangko na file ng notepad at i-type ang sumusunod:
- #! / bin / sh
- fpp -P playme
- I-save ito bilang isang.sh file sa iyong computer
- Pumunta sa file manager sa FPP at i-upload ang iyong file ng script. Pumunta sa tab na "Mga Script" at tiyaking nandiyan ito
- Sa ilalim ng Katayuan / Pagkontrol pumunta sa Mga Kaganapan
- Lumikha ng isang bagong kaganapan. Kaganapan ID 1/1, Pangalan ng kaganapan anupaman, Sequence ng Epekto WALA, Script ng Kaganapan
- Pumunta sa ilalim ng Pag-setup ng Input / Output at i-click ang mga pag-trigger ng GPIO
- I-toggle ang pin na nakakabit ang iyong pindutan. Kung magiging mababa ito kapag pinindot mo ang pindutan pagkatapos ilagay ang kaganapan sa pagpipilian na Pagbagsak, kung ito ay aktibo nang mataas pagkatapos ay ilagay ang kaganapan sa Rising.
- I-click ang pindutang Reboot sa pamamagitan ng babalang pop up pagkatapos mong gawin ang lahat ng mga pagbabago
Matapos gawin ang lahat ng ito, dapat mong ma-press ang pindutan upang masimulan ang iyong palabas. Woohoo!
Gayunpaman, ang pamamaraang ito ay may ilang mga limitasyon. Kung pinindot mo muli ang pindutan habang papunta ang playlist, alinman sa 1) ay hindi gagawa ng anumang bagay o 2) ay mag-crash sa FPP at tatanggi na gumawa ng anumang bagay sa iyong pindutan hanggang sa i-reboot mo ito. Kaya't kung gumagamit ka lamang ng isang pindutan bilang isang dramatikong paraan ng pag-play ng iyong palabas sa utos, ang pamamaraan sa itaas ay ang kailangan mo.
Kung kailangan mo ng isang bagay pa, magpatuloy sa susunod na hakbang
Hakbang 4: Isang Mas Malakas na Script
Nasa ibaba ang iskrip na kalaunan ay nakarating ako. Maaari mong tingnan ang script sa Github dito: [Gist. Github]
- Kung ang isang tao ay pinindot ang pindutan sa oras ng "gabi" ay maglalaro ito ng Tiger Rag (aking Song1) at pagkatapos ay pumunta sa standby na pagkakasunud-sunod na nag-loop nang walang katapusan.
- Kung ang pindutan ay pinindot habang tumutugtog ang Tiger Rag pagkatapos ay sisimulan nito ang aking pangalawang kanta, Hallelujah, at pagkatapos ay pupunta sa standby na pagkakasunud-sunod.
- Ngunit kung ang isang tao ay pinindot ang pindutan sa araw o huli na sa gabi ay maglalaro ito ng Tiger Rag nang isang beses at pagkatapos ay patayin ang lahat ng mga ilaw.
Pinapayagan nitong gumana ang pindutan sa anumang oras ng araw ngunit ang mga ilaw ay hindi dapat palaging nasa lahat ng oras. Pinapayagan din nito ang maraming mga kanta upang i-play mula sa 1 pindutan sa pamamagitan ng pagkilala kung aling kanta ang kasalukuyang tumutugtog, nagtatapos sa kantang iyon, at nagpe-play ng "susunod" na kanta.
Maaari kang makahanap ng higit pang mga mapagkukunan para sa pag-iskrip sa FPP dito: https://github.com/FalconChristmas/fpp-scriptsPara sa mas kumplikadong lohika sa google lamang "bash script _" kung saan sa ilalim ng salita ay sinusubukan mong gawin. Maaari mong subukan ang iyong mga script gamit ang FPP Shell (username fpp password falcon) Ang mga pangunahing utos ay ang mga sumusunod.
Magbayad ng pansin sa capitalization !!
- Ang Capital -P ay maglalaro ng isang playlist nang isang beses, ang maliit na titik -p ay uulitin ito.
- fpp -v 66 Itakda ang dami sa 66%
- fpp -c stop Itigil kaagad ang palabas
- fpp -C stop Ito ay maaaring ihinto ang pagpapakita ng kaaya-aya
- fpp -p thisPlaylistName Nagpe-play itoPlaylistName nang paulit-ulit (kaya't ang intro na kanta ay tumutugtog nang isang beses, pagkatapos ang Pangunahing bagay ay ulitin nang walang katiyakan.
- fpp -P thisPlaylistName Nagpe-play itoPlaylistName nang isang beses
- eventScript "$ {MEDIADIR} / scripts / $ {thisScriptVariable}" Nagpapatakbo ng isang script. Sa kaso sa kaliwa gumagana ito kung mayroon kang naka-save na pangalan ng iyong script sa isang variable sa isang lugar sa itaas, tulad nitoScriptVariable = "PlayTheSong.sh"
ButtonSuperScript.sh
#! / bin / sh |
########################################################### |
# Upang patakbuhin kung ang pindutan ay pinindot. |
# Dapat kang magkaroon ng dalawang playlist para sa bawat kanta - isa kasama |
# ang kanta lang bilang "First play" at wala sa pangunahing, |
# at isa pa kasama ang kanta bilang unang pag-play at ang iyong pag-standby |
# pagkakasunud-sunod bilang "pagkakasunud-sunod" na pagkakasunud-sunod. (Hindi bababa sa kung nais mo |
# upang gawin ang eksaktong bagay na ginagawa ko) |
# |
# Halimbawa, kung ang iyong kanta ay Tiger Rag, dapat mayroon ka |
# mga playlist na "TigerRag", "TigerRagStandby", at "Standby" |
# |
########################################################### |
# Mga playlist upang tumakbo kung ito ay nasa pagitan ng 6 at 11 |
NightSong1 = "TigerRagStandby" |
NightSong2 = "HallelujahStandby" |
NightStandby = "Standby" |
# Mga playlist upang tumakbo sa araw o makalipas ang 11 |
DaySong1 = "TigerRag" |
DaySong2 = "Hallelujah" |
DayStandby = "Standby" |
#On at off na oras sa 24 oras na oras. Kung gusto mo ng minuto, good luck |
OnHour = 17 |
OffHour = 23 |
########################################################### |
# Lakas ng loob ng script. # |
########################################################### |
# Kunin ang aming kasalukuyang katayuan (IDLE = 0, PAGLARO = 1, Pagtigil ng Grace = 2) |
STATUS = $ (fpp -s | cut -d ',' -f2) |
#Kunin ang tumatakbo na playlist at i-trim sa 7 mga titik |
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Ito ay magiging "pareho" kung nagpe-play ito ng isang kanta, at "pagkakasunud-sunod" kung ito ay standby |
#ginagamit upang matukoy kung tumatakbo ang pagkakasunud-sunod ng Standby |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
# Una sa 7 titik ng mga pangalan ng mga playlist para sa paghahambing |
# Lamang sa 7 titik upang magkatulad ang "Song1Standby" at "Song1" |
#Okay kaya talaga dapat itong unang x titik at x dapat ang pinakamaikling pangalan ng kanta na mayroon ka |
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
SIMULA = "" |
#Kunin ang kasalukuyang oras sa oras ng militar |
Kasalukuyang Oras = $ (petsa + "% H") |
#I-print ang katayuan ng ilang mga bagay - ang "echo" ay tulad ng "print" sa karamihan ng mga wika |
# Kapaki-pakinabang para sa pagsubok kung ang iba't ibang mga bagay na na-trim o kinakalkula nang tama |
ang echo CurrentHour ay $ CurrentHour |
echo Running playlist ay: $ PLAYLIST |
echo Song2Playlist ay: $ Song2Playlist |
ang Katayuan ng echo ay: $ STATUS |
#Itakda ang volume sa 80% sa gabi, 100% kung hindi man |
#Kaya't kung natutulog ako ay hindi ito malakas |
#kung [$ CurrentHour -lt $ OffHour -a $ Kasalukuyang Oras -ge 11]; tapos |
# fpp -v 100 |
#else |
# fpp -v 80 |
#fi |
# Suriin na nakakuha kami ng isang bagay na makabuluhan |
kung [-z "$ {STATUS}"]; kung gayon |
echo ang "Error sa halagang katayuan"> & 2 |
exit 1 |
fi |
# Kumilos sa kasalukuyang katayuan |
kaso $ {STATUS} sa |
# WALANG GINAGAWA |
0) |
#Night time - maglaro ng Song1 kasama ang pag-standby |
kung [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; pagkatapos |
echo Playing NightSong1 |
fpp -c huminto |
fpp -p "$ {NightSong1}" $ {StartITEM} |
Oras ng # Araw o huli talaga - patugtugin ang kanta 1 nang isang beses pagkatapos patayin ang mga ilaw |
iba pa |
echo Playing DaySong1 |
fpp -c huminto |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# PLAYING o STOPPING GRACEFULLY (kaaya-aya ang nangyayari kung pinindot ang pindutan kapag nagtatapos ang isang naka-iskedyul na playlist) |
1 | 2) |
Tumatakbo ang #Standby - gagana ito dahil ang standby ang tanging pagkakasunud-sunod kong hindi pang-media |
kung ["$ STANDBYSTRING" == "pagkakasunud-sunod"]; kung gayon |
#Night time - maglaro ng Song1 kasama ang pag-standby |
kung [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; kung gayon |
echo Playing NightSong1 para sa oras ng gabi |
fpp -c huminto |
fpp -p "$ {NightSong1}" |
#Day time o talagang huli - maglaro ng basahan ng tigre minsan pagkatapos patayin ang mga ilaw |
iba pa |
echo PlayingDaySong1 mula sa paglalaro |
fpp -c huminto |
fpp -P "$ {DaySong1}" |
fi |
#Upang suportahan ang maraming kanta, kopyahin ang seksyong ito at baguhin ang "Song2Playlist" sa huling seksyon sa Song # Playlist |
Tumatakbo ang # Song1 |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; pagkatapos |
#Gabi ng gabi - maglaro ng Hallelujah kasama ang pag-standby |
kung [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; kung gayon |
echo Playing HallelujahStandby mula sa Tiger Rag ay tumatakbo |
fpp -c huminto |
fpp -p "$ {NightSong2}" |
Oras ng # Araw o huli na talaga - maglaro ng Song2 minsan pagkatapos patayin ang mga ilaw |
iba pa |
echo Playing Hallelujah isang beses mula sa Tiger Rag ay tumatakbo |
fpp -c huminto |
fpp -P "$ {DaySong2}" |
fi |
#LAST SONG IS RUNNING - MAGLARO NG STANDBY |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; pagkatapos |
#Night night - maglaro ng standby sa loop |
kung [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; pagkatapos |
pag-play ng standby ng standby sa ulitin |
fpp -c huminto |
fpp -p "$ {NightStandby}" |
#Day time o talagang huli - maglaro ng standby nang isang beses |
iba pa |
echo Playing Standby Once |
fpp -c huminto |
fpp -P "$ {DayStandby}" |
fi |
iba pa |
echo Para sa ilang kadahilanan ang huling elsecase ay naisakatuparan. |
fpp -c huminto |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
tingnan ang raw ButtonSuperScript.sh naka-host sa ❤ ng GitHub
Hakbang 5: (Opsyonal) Faceplate para sa Button
Mayroon akong access sa isang laser cutter sa Clemson sa pamamagitan ng Makerspace, kaya't mabilis akong nag-sketch ng isang disenyo upang i-cut ang + etch. Mayroong isang butas sa gitna para sa aking pindutan, ang mga salitang "Push Me" sa isang font ng Pasko, at isang snowflake sa paligid ng pindutan. Nag-spray ako ng ilang puting kahoy at pagkatapos ay tinakpan ito ng masking tape (upang ang laser cutter ay hindi magsunog ng mga bahagi na hindi ko nais ng nakaukit). Nakalakip ang ginamit kong file.
Inirerekumendang:
Simulan ang Motorbike Gamit ang NFC Hand Implant: 3 Hakbang
Simulan ang Motorbike With NFC Hand Implant: Bakit mayroon akong NFC chip implant sa aking kamay? Nagtatrabaho ako bilang isang suporta sa IT para sa isang marangyang hotel, kaya maraming mga pintuan na kailangan kong buksan araw-araw gamit ang isang card. Iyon ang dahilan kung bakit napagpasyahan kong maglagay ng 125khz RFID chip sa loob ng aking kamay. Sa kasamaang palad, ang aking pinili
AVR Microcontroller. I-toggle ang LED's Gamit ang isang Push Button Switch. Push Button Debouncing .: 4 Mga Hakbang
AVR Microcontroller. I-toggle ang LED's Gamit ang isang Push Button Switch. Push Button Debouncing .: Sa seksyong ito, matututunan natin Paano gumawa ng program C code para sa ATMega328PU upang i-toggle ang katayuan ng tatlong LED ayon sa pag-input mula sa isang switch ng pindutan. Gayundin, nag-explore kami ng mga solusyon sa problema ng 'Switch Bounce'. Tulad ng dati, wi kami
Simulan ang Iyong Unang Proyekto Gamit ang Raspberry: Blinking LED: 4 Hakbang
Simulan ang Iyong Unang Proyekto Sa Raspberry: Blinking LED: Sa proyektong ito ipapakita ko sa iyo kung paano magprogram ng Raspberry Pi upang makagawa ng isang LED blink, Kung halos bumili ka ng isang Raspberry pi at wala kang alam kung saan magsisimula, ito tutorial na umaangkop dito. Bilang karagdagan sa iyong Raspberry Pi na tumatakbo sa Raspbian, y
Magdagdag ng isang Rapid-fire Button sa Iyong Mouse Gamit ang isang 555 Timer: 5 Hakbang (na may Mga Larawan)
Magdagdag ng isang Rapid-fire Button sa Iyong Mouse Gamit ang isang 555 Timer: Madali bang mapagod ang iyong daliri habang naglalaro ng mga video game? Kailanman nais na maaari mong pwn n00bs nang mas mabilis kaysa sa bilis ng ilaw nang hindi kailanman nabasag ang isang pawis? Ipapakita sa iyo ng Tagubilin na ito kung paano
I-hack ang Iyong Servo V1.00 - Gawin ang Iyong Servo sa isang Napakalakas na Linear Actuator: 7 Hakbang
I-hack ang Iyong Servo V1.00 - Gawing Iyong Servo sa isang Napakalakas na Linear Actuator: Ibinigay na mayroon kang mga tool at servo na maitatayo mo ito sa ilalim ng isang pares ng pera. Ang actuator ay umaabot sa isang rate ng tungkol sa 50mm / min. Ito ay sa halip mabagal ngunit napakalakas. Panoorin ang aking video sa pagtatapos ng post kung saan ang maliit na actuator