Sisällysluettelo:
- Vaihe 1: Osaluettelo
- Vaihe 2: Kytkentäkaavio
- Vaihe 3: Falcon Pi Playerin perusasetukset
- Vaihe 4: Vahvempi käsikirjoitus
- Vaihe 5: (Valinnainen) Painikkeen etulevy
Video: Aloita joulun valoshow painikkeella: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Kun suoritat musiikkiin synkronoidun jouluvalon, saatat haluta aloittaa ohjelman painamalla painiketta. Tämä opetusohjelma koskee vain ohjelmaa, jota ohjataan Raspberry Pi -laitteella toimivan Falcon Pi Playerin (FPP) kautta. Jos käytät FPP: tä, käytät luultavasti Falcon -ohjaimia ja käytät xLights- tai LightORama -ohjelmaa esityksesi järjestämiseen. Jos mikään näistä sanoista ei merkitse sinulle mitään, tämä opetusohjelma on luultavasti hieman pään yläpuolella ja sinun pitäisi aloittaa lukemalla tämä wiki https://auschristmaslighting.com/wiki/ ja liittymällä alla olevaan Facebook -ryhmään
- xLights:
- Yleiset edistyneet jouluvalot:
- Falcon Pi Player:
- Liite/ehdotusidean jakaminen:
- "Ei nimenomaan xLights tai LOR -aiheeseen liittyvä":
- xLights Holiday Light -myyjät:
- Tee se itse joulu:
Vaihe 1: Osaluettelo
Tarvitset seuraavat tuotteet:
- Nappi. Käytin tätä LED -rengasvalon ympärillä: [Amazon]
- Vastus. Mieluiten 200Ω tai enemmän (2 näistä, jos käytät LED -painiketta) Vakio 1/4W tai 1/8W on hyvä
- Liitinjohto. Käytettävä mittari riippuu siitä, kuinka kaukana painike on Pi: stä. Käytin 18awg -lankaa noin 10 metrin päässä Pi: stäni ja se toimi moitteettomasti
- Tapa yhdistää johto Pi: n GPIO -nastoihin. Voit käyttää nauhakaapelia katkaisuleipälevyn kanssa tai käyttää vain naarasliittimiä kuten minä. Tarvitsemme vain 3 johtoa - maadoitus, 5 V ja tiedot painikkeelle. [Amazon]
- (Valinnainen) Vedenpitävä liitin kummassakin päässä helpottaa huoltoa. Käytän 3-nastaisia meriliittimiä: [Amazon]
- (Valinnainen) Lämpökutistuvat liittimet [Amazon]
Vaihe 2: Kytkentäkaavio
Kuvissa on kytkentäkaavio painikkeelle, jossa ei ole LEDiä, ja painikkeelle, jossa on LED. Kytkentäkaavion määrittämisen avulla voit käyttää painiketta ja valoa (jatkuvasti päällä) vain 3 johdolla.
Valitse GPIO -nastalle mikä tahansa GP: n nastasta pi. Käytä myös +5V- ja Gnd -nastoja. Voit luultavasti päästä eroon käyttämällä 3,3 V: n nastaa, mutta jännitehäviö useiden jalkojen johdossa saattaa tehdä signaalista epäluotettavan tai ei riitä sytyttämään LED -valon.
HUOMAUTUS: 3-nastainen liitin ei sovi reikään, jonka sinun on porattava nappia varten LED-rengasvalolla. Kiinnitä siis liitin sen jälkeen, kun painike on asetettu etulevyyn.
Vaihe 3: Falcon Pi Playerin perusasetukset
HUOMAUTUS - FPP: tä päivitetään jatkuvasti, ja on täysin mahdollista, että he parantavat komentosarjatukeaan tai että niissä on "käynnistyspainike" oletusominaisuutena, joka vaatii vähemmän ohjelmointia.
Seurasin yllä olevaa videota saadakseni kaiken valmiiksi.
Minusta videot ovat tylsiä ja hitaita, joten tässä tiivistelmä siitä:
- Tuo sekvenssi fpp: hen tiedostonhallinnan avulla
- Luo soittolista, jossa on järjestys. Seuraavissa vaiheissa soittolistan nimi on "playme"
-
Avaa tyhjä muistilehtiö ja kirjoita seuraava:
- #!/bin/sh
- fpp -P -peli
- Tallenna se.sh -tiedostona tietokoneellesi
- Siirry FPP: n tiedostonhallintaan ja lataa komentotiedosto. Siirry "Skriptit" -välilehdelle ja varmista, että se on siellä
- Siirry Tila/Ohjaus -kohdassa Tapahtumat
- Luo uusi tapahtuma. Tapahtuman tunnus 1/1, Tapahtuman nimi mikä tahansa, Tehosekvenssi NONE, Tapahtumakomentosarja
- Siirry Input/Output Setup -kohtaan ja napsauta GPIO triggers
- Vaihda tappi, johon painike on kiinnitetty. Jos se laskee alhaiseksi, kun painat painiketta ja aseta tapahtuma Falling -vaihtoehtoon, jos se on aktiivinen korkealle, aseta tapahtuma Rising.
- Napsauta Käynnistä uudelleen -painiketta varoitusviestillä, joka tulee näkyviin, kun olet tehnyt kaikki muutokset
Kun olet tehnyt kaiken tämän, sinun pitäisi pystyä painamaan painiketta saadaksesi esityksen alkuun. Vau!
Tällä menetelmällä on kuitenkin joitain rajoituksia. Jos painat painiketta uudelleen soittolistan ollessa käynnissä, se joko 1) ei tee mitään tai 2) kaatuu FPP ja kieltäytyy tekemästä mitään painikkeella, ennen kuin käynnistät sen uudelleen. Joten jos käytät vain painiketta dramaattisena tapana toistaa esityksesi komennolla, yllä oleva menetelmä on kaikki mitä tarvitset.
Jos tarvitset jotain muuta, jatka seuraavaan vaiheeseen
Vaihe 4: Vahvempi käsikirjoitus
Alla on käsikirjoitus, johon lopulta päädyin. Voit katsoa käsikirjoituksen Githubissa täältä: [Gist. Github]
- Jos joku painaa painiketta”yöaikaan”, se soittaa Tiger Ragia (kappaleeni 1) ja siirtyy sitten valmiustilaan, joka jatkuu loputtomasti.
- Jos painiketta painetaan Tiger Ragin toiston aikana, se aloittaa toisen kappaleeni, Hallelujah, ja siirtyy sitten valmiustilaan loputtomiin.
- Mutta jos joku painaa nappia päivällä tai hyvin myöhään illalla, se pelaa Tiger Ragia kerran ja sammuttaa sitten kaikki valot.
Tämän ansiosta painike voi toimia milloin tahansa vuorokauden aikana, mutta valojen ei tarvitse olla päällä koko ajan. Se mahdollistaa myös useiden kappaleiden toistamisen yhdestä painikkeesta tunnistamalla parhaillaan soivan kappaleen, lopettamalla kyseisen kappaleen ja toistamalla "seuraavan" kappaleen.
Löydät lisää resursseja FPP: n komentosarjojen tekemiseen täältä: https://github.com/FalconChristmas/fpp-scripts Monimutkaisemman logiikan vuoksi google "bash script _", jossa yrität tehdä alaviivaa. Voit testata komentosarjojasi FPP Shellillä (käyttäjänimi fpp salasana falcon) Peruskomennot ovat seuraavat.
Kiinnitä huomiota isojen kirjainten käyttöön !!
- Capital -P toistaa soittolistan kerran, pienet kirjaimet -p toistaa sen.
- fpp -v 66 Aseta äänenvoimakkuudeksi 66%
- fpp -c stop Pysäytä esitys välittömästi
- fpp -C stop Tämä saattaa olla stop show tyylikkäästi
- fpp -p thisPlaylistName Toistaa thisPlaylistName toistettaessa (joten introkappale toistetaan kerran, niin pääasia toistetaan loputtomiin.
- fpp -P thisPlaylistName Toistaa thisPlaylistName kerran
- eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Suorittaa komentosarjan. Vasemmanpuoleisessa tapauksessa se toimii, jos skriptinimesi on tallennettu muuttujaan jossain yllä, kuten tämäScriptVariable =”PlayTheSong.sh”
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#Käynnissä, jos painiketta painetaan. |
#Kullakin kappaleella pitäisi olla kaksi soittolistaa - yksi |
# vain kappale "ensimmäisenä soittona" eikä mitään pääosassa, |
# ja toinen, jossa kappale on ensimmäinen soitto ja valmiustila |
# sekvenssi "Main" -sarjana. (Ainakin jos haluat |
# tehdä juuri sitä mitä teen) |
# |
#Esimerkiksi jos kappaleesi on Tiger Rag, sinun pitäisi olla |
# soittolistaa "TigerRag", "TigerRagStandby" ja "Standby" |
# |
########################################################### |
# Soittolistat suoritetaan, jos se on välillä 6–11 |
NightSong1 = "TigerRagStandby" |
NightSong2 = "HallelujaStandby" |
NightStandby = "Valmiustila" |
# Soittolistat, jotka suoritetaan päivän aikana tai 11 jälkeen |
DaySong1 = "TigerRag" |
DaySong2 = "Halleluja" |
DayStandby = "Valmiustila" |
#Päälle ja pois päältä 24 tunnin aikana. Jos haluat minuutteja, onnea |
OnHour = 17 |
Pois Tunti = 23 |
########################################################### |
# Käsikirjoituksen sisustus. # |
########################################################### |
# Hanki nykyinen tilamme (IDLE = 0, PELAAMINEN = 1, Pysähtyminen kauniisti = 2) |
TILA = $ (fpp -s | leikkaa -d ',' -f2) |
#Hanki käynnissä oleva soittolista ja leikkaa se 7 kirjaimeen |
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Tämä on "sekä", jos se toistaa kappaletta, ja "sekvenssi", jos se on valmiustilassa |
#käytetään määrittämään, onko valmiustila käynnissä |
VALMIUSTILA = $ (fpp -s | cut -d ',' -f5) |
#Ensimmäiset 7 kirjainta soittolistojen nimistä vertailua varten |
#Vain 7 kirjainta, jotta "Song1Standby" ja "Song1" ovat samat |
#Okei, oikeastaan sen pitäisi olla ensimmäiset x kirjainta ja x pitäisi olla lyhin kappaleen nimi |
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
STARTITEM = "" |
#Hae nykyinen tunti armeijan aikaa |
Nykyinen tunti = $ (päivämäärä +"%H") |
#Tulosta joidenkin asioiden tila - "echo" on kuin "tulostus" useimmilla kielillä |
#Hyödyllinen testaamiseen, jos eri asiat on leikattu tai laskettu oikein |
echo CurrentHour on $ CurrentHour |
echo Juokseva soittolista on: $ PLAYLIST |
echo Song2Playlist on: $ Song2Playlist |
echo Tila on: $ STATUS |
#Aseta äänenvoimakkuudeksi 80% yöllä, 100% muuten |
#Joten jos nukun, se ei ole niin kovaa |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; sitten |
# fpp -v 100 |
#muu |
# fpp -v 80 |
#fi |
# Tarkista, että saimme jotain merkityksellistä |
jos [-z "$ {STATUS}"]; sitten |
echo "Virhe tila -arvolla"> & 2 |
poistuminen 1 |
fi |
# Toimi nykyisen tilan mukaan |
tapaus $ {STATUS} in |
# IDLE |
0) |
#Yöaika - toista kappale 1 valmiustilassa |
jos [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sitten |
echo Playing NightSong 1 |
fpp -c stop |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
#Päivä tai todella myöhään - toista kappale 1 kerran ja sammuta sitten valot |
muu |
echo Playing DaySong 1 |
fpp -c stop |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# TOISTAMINEN tai PYSÄYTÄMINEN ERITTÄIN (tyylikäs tapahtuu, jos painiketta painetaan, kun ajoitettu soittolista päättyy) |
1 | 2) |
#Valmiustila on käynnissä - tämä toimii, koska valmiustila on ainoa ei -mediasarjani |
jos ["$ STANDBYSTRING" == "jakso"]; sitten |
#Yöaika - toista kappale 1 valmiustilassa |
jos [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sitten |
echo Playing NightSong1 yöaikaan |
fpp -c stop |
fpp -p "$ {NightSong1}" |
#Päivä tai todella myöhään - pelaa tiikeri rättiä kerran ja sammuta sitten valot |
muu |
echo PlayingDaySong1 toistamasta |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
#Tukeaksesi lisää kappaleita kopioi tämä osio ja vaihda "Song2Playlist" viimeisessä kappaleessa kappaleeksi#Playlist |
#Song1 on käynnissä |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; sitten |
#Yöaika - pelaa Hallelujaa valmiustilassa |
jos [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sitten |
echo Playing HallelujahStigby Tiger Ragista on käynnissä |
fpp -c stop |
fpp -p "$ {NightSong2}" |
#Päivä tai todella myöhään - toista Song2 kerran ja sammuta sitten valot |
muu |
echo Toistaminen Hallelujah kerran Tiger Ragista on käynnissä |
fpp -c stop |
fpp -P "$ {DaySong2}" |
fi |
#Viimeinen laulu on käynnissä - PLAY STANDBY |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; sitten |
#Yöaika - toista valmiustila silmukalla |
jos [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sitten |
echo Toiston aikana valmiustila |
fpp -c stop |
fpp -p "$ {NightStandby}" |
#Päivä tai todella myöhään - toista valmiustila kerran |
muu |
echo Toisto Valmiustila Kerran |
fpp -c stop |
fpp -P "$ {DayStandby}" |
fi |
muu |
echo Jostain syystä viimeinen muu toteutettu tapaus. |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
katso rawButtonSuperScript.sh, jota ylläpitää GitHub ❤
Vaihe 5: (Valinnainen) Painikkeen etulevy
Minulla on pääsy laserleikkuriin Clemsonissa Makerspacen kautta, joten piirsin nopeasti leikkauksen+etsauksen. Keskellä on reikä painikkeelleni, sanat sanovat "Työnnä minua" joulun fontilla ja lumihiutale napin ympärillä. Ruiskutin maalaten puun valkoiseksi ja peitin sen sitten maalarinteipillä (jotta laserleikkuri ei polta osia, joita en halua syövyttää). Käyttämäni tiedosto on liitteenä.
Suositeltava:
Joulun valoshow synkronoitu musiikkiin!: 4 askelta
Musiikkiin synkronoitu joulun valonäytös!: Tässä ohjeessa näytän sinulle, miten voit tehdä joulumusiikin kanssa synkronoidun joulun valoshow RGB -pikselien avulla. Älä anna sen nimen pelotella sinua! Ei ole liian vaikeaa oppia tekemään tämä. Varoitan kuitenkin, että tämä voi olla melko
DIY -tuuletin ON -OFF -painikkeella - M5StickC ESP32: 8 vaihetta
DIY -tuuletin ON -OFF -painikkeella - M5StickC ESP32: Tässä projektissa opimme käyttämään FAN L9110 -moduulia M5StickC ESP32 -kortilla
Kuinka käyttää 28BYJ-48 askelmoottoria 3 painikkeella: 5 vaihetta
Kuinka käyttää 28BYJ-48 askelmoottoria 3 painikkeella: Haluatko ohjata askelmoottoriasi painikkeilla? Tämä voi tehdä myötäpäivään, vastapäivään ja sitten pysäytystoiminnon? Sitten tämä video on sinua varten
Koti-automaation WiFi-valokytkin, jossa ESP-01 ja relemoduuli painikkeella: 7 vaihetta
Kotiautomaation WiFi-valokytkin, jossa ESP-01 ja relemoduuli painikkeella: Joten edellisissä ohjeissa ohjelmoimme ESP-01: n Tasmotan avulla ESP-vilkkurin avulla ja liitämme ESP-01: n wifi-verkkoihimme. kytkeäksesi valokytkimen päälle/pois päältä WiFi -yhteyden tai painikkeen avulla
Joulun LED -tunniste: 3 vaihetta
Joulun LED -tunniste: Hei, Tässä lyhyessä ohjeessa näytän sinulle, kuinka lisäsin LEDin joululahjalappuun. Voit käyttää mitä tahansa joulutunnistetta, mutta mielestäni paras on luoda oma. Ei tarvitse mitään erikoistyökalua, ei edes juotinta. Vain yksinkertaisesti