Tartalomjegyzék:
- 1. lépés: Alkatrészlista
- 2. lépés: bekötési rajz
- 3. lépés: A Falcon Pi Player alapbeállítása
- 4. lépés: Robusztusabb szkript
- 5. lépés: (Nem kötelező) előlap a gombhoz
Videó: Kezdje karácsonyi fényjátékát egy gombbal: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Zenével szinkronizált karácsonyi fényjáték futtatásakor érdemes elindítani a műsort egy gomb megnyomásával. Ez az oktatóanyag csak a Raspberry Pi -n futó Falcon Pi Player (FPP) segítségével vezérelt műsorokra vonatkozik. Ha FPP -t futtat, akkor valószínűleg Falcon vezérlőket használ, és xLights vagy LightORama segítségével sorolja a műsort. Ha ezek közül a szavak közül egyik sem jelent semmit, akkor ez az oktatóanyag valószínűleg egy kicsit a feje fölött van, és először is ezt a wikit kell elolvasnia: https://auschristmaslighting.com/wiki/, és csatlakozhat az alábbi Facebook -csoporthoz
- xLights:
- Általános fejlett karácsonyi fények:
- Falcon Pi Player:
- Melléklet/ötletmegosztás:
- "Nem kifejezetten az xLights vagy a LOR -hoz kapcsolódó":
- xLights Holiday Light gyártók:
- Karácsony: Csináld magad:
1. lépés: Alkatrészlista
A következő elemekre lesz szüksége:
- Egy gomb. Ezt használtam, körülötte egy LED -es gyűrűs lámpával: [Amazon]
- Egy ellenállás. Lehetőleg 200Ω vagy nagyobb (ebből 2, ha a LED gombot használja) Standard 1/4W vagy 1/8W megfelelő
- Csatlakozó vezeték. A használandó mérőeszköz attól függ, hogy a gomb milyen messze lesz a Pi -től. 18awg vezetéket használtam körülbelül 10 méterre a Pi -mtől, és hibátlanul működött
- Egy vezeték csatlakoztatásának módja a Pi GPIO csapjaihoz. Használhat szalagkábelt a töréses kenyértáblával, vagy használhat néhány női csatlakozót, mint én. Csak 3 vezetékre van szükségünk - földelésre, 5 V -ra és a gomb adataira. [Amazon]
- (Opcionális) Vízálló csatlakozó mindkét végén a könnyű karbantartás érdekében. 3 tűs tengeri minőségű csatlakozókat használok: [Amazon]
- (Opcionális) Hőre zsugorodó csatlakozó [Amazon]
2. lépés: bekötési rajz
A képeken látható a bekapcsolt LED nélküli gomb és a LED -el ellátott gomb bekötési rajza. A kapcsolási rajz beállítása lehetővé teszi egy gomb és egy lámpa (folyamatosan világító) futtatását mindössze 3 vezetékkel.
A GPIO tűhöz válassza ki a piio bármelyik GPIO csapját. Használja a +5V és a Gnd csapokat is. Valószínűleg megúszhatná a 3,3 V -os tű használatát, de a feszültségcsökkenés több láb vezetéken keresztül megbízhatatlanná teheti a jelet, vagy nem elegendő a LED kigyulladásához.
MEGJEGYZÉS: A 3 tűs csatlakozó nem illeszkedik a lyukba, amelyet a LED-gyűrűs lámpával ellátott gombhoz kell fúrni. Tehát csatlakoztassa a csatlakozót, miután a gombot az előlapba helyezte.
3. lépés: A Falcon Pi Player alapbeállítása
MEGJEGYZÉS - Az FPP -t folyamatosan frissítik, és teljesen lehetséges, hogy javítani fogják a szkriptek támogatását, vagy hogy a "nyomógombot az indításhoz" alapértelmezett funkcióként tartalmazzák, amely kevesebb programozást igényel.
Követtem a fenti videót, mert először mindent beállítottam.
A videókat unalmasnak és lassúnak találom, ezért itt egy összefoglaló:
- Importálja a sorozatot az fpp -be a fájlkezelő segítségével
- Hozzon létre egy lejátszási listát a benne lévő sorozattal. A következő lépésekhez a lejátszási listát "playme" -nek fogják hívni
-
Nyisson meg egy üres jegyzettömb fájlt, és írja be a következőt:
- #!/bin/sh
- fpp -P játék
- Mentse el.sh fájlként a számítógépére
- Nyissa meg az FPP fájlkezelőjét, és töltse fel a szkriptfájlt. Lépjen a "Scripts" fülre, és győződjön meg róla, hogy ott van
- Az Állapot/vezérlés alatt lépjen az Események menüpontra
- Hozzon létre egy új eseményt. Eseményazonosító 1/1, Esemény neve bármilyen, Hatássorozat NINCS, Eseményszkript
- Lépjen a Bemenet/kimenet beállítása pontra, és kattintson a GPIO -triggerek elemre
- Váltsa át a gombot, amelyhez a gomb csatlakozik. Ha alacsony lesz, amikor megnyomja a gombot, majd tegye az eseményt a Falling opcióra, ha aktív magas, akkor tegye az eseményt Rising -ra.
- Kattintson az Újraindítás gombra a figyelmeztetés alapján, amely az összes módosítás elvégzése után megjelenik
Mindezek elvégzése után képesnek kell lennie arra, hogy megnyomja a gombot a műsor elindításához. Ju Hú!
Ennek a módszernek azonban vannak bizonyos korlátai. Ha ismét megnyomja a gombot a lejátszási lista lejátszása közben, akkor vagy 1) nem tesz semmit, vagy 2) összeomlik az FPP, és nem hajlandó semmit tenni a gombbal, amíg újra nem indítja. Tehát ha csak egy gombot használ drámai módon, amikor a műsort parancsra játssza, akkor a fenti módszerre lesz szüksége.
Ha még valamire szüksége van, folytassa a következő lépéssel
4. lépés: Robusztusabb szkript
Az alábbiakban a forgatókönyv, amelyre végül eljutottam. A forgatókönyvet a Githubon itt tekintheti meg: [Gist. Github]
- Ha valaki megnyomja a gombot az „éjszakai” órákban, akkor a Tigris rongyot (az én dalom1) játssza le, majd a készenléti szekvenciára lép, amely végtelen ideig folytatódik.
- Ha megnyomja a gombot, miközben Tiger Rag játszik, akkor elindul a második dalom, a Hallelujah, majd a végtelenségig készenléti üzemmódba kerül.
- De ha valaki nappal vagy nagyon késő este megnyomja a gombot, akkor egyszer a Tigris rongyot játssza le, majd kapcsolja ki az összes lámpát.
Ez lehetővé teszi, hogy a gomb a nap bármely szakában működjön, de a lámpáknak nem kell folyamatosan világítaniuk. Ezenkívül lehetővé teszi több dal lejátszását 1 gombbal, azonosítva, hogy melyik dalt játssza le, fejezze be a dalt, és játssza le a "következő" dalt.
További forrásokat találhat az FPP-ben történő szkripteléshez: https://github.com/FalconChristmas/fpp-scriptsBonyolultabb logika érdekében csak google „bash script _”, ahol az aláhúzás az, amivel próbálkozik. A szkripteket az FPP Shell (felhasználónév fpp jelszó sólyom) segítségével tesztelheti. Az alapvető parancsok a következők.
Figyeljen a nagybetűkre !!
- A Capital -P egyszer játssza le a lejátszási listát, a kisbetűs -p megismétli.
- fpp -v 66 Állítsa a hangerőt 66% -ra
- fpp -c stop Azonnal állítsa le a műsort
- fpp -C stop Ez lehet stop show kecsesen
- fpp -p thisPlaylistName Ismétléskor lejátssza ezt a lejátszási listanevet (így az intro dal egyszer el fog játszódni, majd a fő dolgok korlátlan ideig ismétlődnek.
- fpp -P thisPlaylistName Egyszer lejátssza ezt a lejátszási listanevet
- eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Futtat egy szkriptet. A bal oldali esetben akkor működik, ha a szkriptnevet valahol fent lévő változóba mentette, mint például ez aScriptVariable =”PlayTheSong.sh”
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#A gomb megnyomásakor futtatható. |
#Minden zeneszámhoz két lejátszási listát kell rendelnie - egyet |
# csak a dal, mint az „első játszma”, és semmi a fő, |
# és egy másik, a dallal első lejátszásként és a készenléti móddal |
# szekvencia, mint "Main" sorozat. (Legalábbis ha akarod |
# hogy pontosan azt tegyem, amit én) |
# |
#Például, ha a dalod Tigris rongy, akkor meg kell tenned |
# lejátszási lista "TigerRag", "TigerRagStandby" és "Standby" |
# |
########################################################### |
# Futtatható lejátszási listák, ha 6 és 11 között van |
NightSong1 = "TigerRagStandby" |
NightSong2 = "Hallelujah Standby" |
NightStandby = "Készenlét" |
# Napközben vagy 11 után futó lejátszási listák |
DaySong1 = "TigerRag" |
DaySong2 = "Halleluja" |
DayStandby = "Készenlét" |
#Be- és kikapcsolási idők 24 órában. Ha perceket akarsz, sok sikert |
OnHour = 17 |
OffHour = 23 |
########################################################### |
# A forgatókönyv zsigere. # |
########################################################### |
# Szerezze meg jelenlegi állapotunkat (IDLE = 0, JÁTÉK = 1, Kecses megállás = 2) |
STATUS = $ (fpp -s | cut -d ',' -f2) |
#Szerezze be a futó lejátszási listát, és vágja le 7 betűre |
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Ez "mindkettő" lesz, ha dalt játszik le, és "sorozat", ha készenléti állapotban van |
#annak meghatározására szolgál, hogy a készenléti sorozat fut -e |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
#A lejátszási listák nevének első 7 betűje összehasonlításképpen |
#Csak 7 betű, hogy a "Song1Standby" és a "Song1" azonosak legyenek |
#Rendben, tehát valójában az első x betűnek és az x -nek a legrövidebb dalnévnek kell lennie |
Készenléti lejátszási lista = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
STARTITEM = "" |
#Szerezd meg az aktuális órát katonai időben |
CurrentHour = $ (dátum +"%H") |
#Nyomtassa ki néhány dolog állapotát - az "echo" a legtöbb nyelven olyan, mint a "nyomtatás" |
#Hasznos tesztelésre, ha különböző dolgokat helyesen vágtak le vagy számítottak ki |
echo CurrentHour a $ CurrentHour |
echo A lejátszási lista: $ PLAYLIST |
echo Song2Playlist: $ Song2Playlist |
echo állapota: $ STATUS |
#Állítsa a hangerőt éjszaka 80% -ra, különben 100% -ra |
#Hogy ha alszom, ne legyen olyan hangos |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; azután |
# fpp -v 100 |
#más |
# fpp -v 80 |
#fi |
# Ellenőrizze, hogy kaptunk -e valami értelmeset |
ha [-z "$ {STATUS}"]; akkor |
echo "Hiba az állapotértékkel"> & 2 |
kilépés 1 |
fi |
# Cselekedjen az aktuális állapot szerint |
$ {STATUS} |
# IDLE |
0) |
#Éjszaka - a Song1 lejátszása készenléti állapotban |
ha [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; akkor |
echo A NightSong lejátszása1 |
fpp -c stop |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
#Nappal vagy nagyon későn - játssza le egyszer az 1. dalt, majd kapcsolja le a villanyt |
más |
echo Playing DaySong1 |
fpp -c stop |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# JÓTALAN JÁTSZANI vagy LEÁLLÍTANI (kecses történik, ha megnyomja a gombot az ütemezett lejátszási lista befejezésekor) |
1 | 2) |
#A készenléti állapot fut - ez azért működik, mert a készenléti mód az egyetlen nem médiaszekvenciám |
ha ["$ STANDBYSTRING" == "sorozat"]; akkor |
#Éjszaka - a Song1 lejátszása készenléti állapotban |
ha [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; akkor |
echo A NightSong1 lejátszása éjszaka |
fpp -c stop |
fpp -p "$ {NightSong1}" |
#Nappal vagy nagyon későn - játssz egyszer tigris rongyot, majd kapcsold le a villanyt |
más |
echo PlayingDaySong1 a lejátszástól |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
#A további dalok támogatásához másolja ezt a részt, és módosítsa a "Song2Playlist" lehetőséget az utolsó részben a Song#Playlist -re |
#A Song1 fut |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; akkor |
#Éjszaka - játssza le a Hallelujah -t készenléti állapotban |
ha [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; akkor |
echo Playing HallelujahStandby a Tiger Rag -tól |
fpp -c stop |
fpp -p "$ {NightSong2}" |
#Nappal vagy nagyon későn - játssza le egyszer a Song2 -t, majd kapcsolja le a villanyt |
más |
echo A Hallelujah lejátszása egyszer a Tiger Rag -ból fut |
fpp -c stop |
fpp -P "$ {DaySong2}" |
fi |
#UTOLSÓ DAL FUT - JÁTÉK KÉSZENLÉT |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; akkor |
#Éjszaka - készenléti állapot lejátszása hurkon |
ha [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; akkor |
echo Készenléti állapot lejátszása ismétléskor |
fpp -c stop |
fpp -p "$ {NightStandby}" |
#Nappal vagy nagyon későn - egyszer játssza le a készenléti állapotot |
más |
echo Készenléti állapot lejátszása egyszer |
fpp -c stop |
fpp -P "$ {DayStandby}" |
fi |
más |
echo Valamilyen oknál fogva az utolsó esetet hajtották végre. |
fpp -c stop |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
Tekintse meg a rawButtonSuperScript.sh webhelyet, amelyet a GitHub ❤ üzemeltet
5. lépés: (Nem kötelező) előlap a gombhoz
Hozzáférésem van a Clemson -i lézervágóhoz a Makerspace -en keresztül, ezért gyorsan felvázoltam egy tervet a vágáshoz+maratáshoz. A közepén lyuk van a gombom számára, a szavak karácsonyi betűtípussal "Push Me", a hó körül pedig hópehely található. Fehérre szórtam néhány fát, majd maszkolószalaggal letakartam (hogy a lézervágó ne perzselje azokat a részeket, amelyeket nem szeretnék maratni). Az általam használt fájl csatolva van.
Ajánlott:
DIY ventilátor ON -OFF gombbal - M5StickC ESP32: 8 lépés
DIY ventilátor ON -OFF gombbal - M5StickC ESP32: Ebben a projektben megtanuljuk, hogyan kell használni a FAN L9110 modult M5StickC ESP32 kártyával
Gombbal működtetett léptetővezérlő: 4 lépés
Gombbal működtetett léptetővezérlő:
4 számjegyű 7 szegmenses időzítő Reset gombbal: 5 lépés
4 számjegyű, 7 szegmensű időzítő Reset gombbal: Ez az utasítás megtanítja Önt, hogyan hozzon létre visszaszámlálót egy 4 számjegyű, 7 szegmenses kijelző segítségével, amelyet egy gombbal lehet alaphelyzetbe állítani. Ez az útmutató tartalmazza a szükséges anyagokat, a megfelelő kábelezést és letölthető fájl a kódról, amely
Jeep módosítás - gyorsítás egy gombbal: 7 lépés
A Jeep módosítása - gyorsítás egy gombbal: NYILATKOZAT: A Barstow School és az FRC Team 1939 vagy bármely tagja nem felelős a személyi sérülésekért vagy a tárgyakban, beleértve az autót, a módosítások okozta károkért. Bármilyen módosítás érvényteleníti a garanciális garanciát
Karácsonyi doboz: Arduino/ioBridge internetvezérelt karácsonyi fények és zenei műsor: 7 lépés
Karácsonyi doboz: Arduino/ioBridge internetvezérelt karácsonyi fények és zenei műsor: A karácsonyi doboz projektem egy internet által vezérelt karácsonyi fényekből és zenei műsorból áll. Egy karácsonyi dal kérhető on-line, amelyet sorba állítanak, és a kért sorrendben játsszák le. A zenét FM -rádión továbbítják