Mündəricat:
- Addım 1: Parça siyahısı
- Addım 2: Bağlama Şeması
- Addım 3: Falcon Pi Player Əsas Quraşdırması
- Addım 4: Daha Sağlam Script
- Addım 5: (İsteğe bağlı) Düymə üçün üzlük
Video: Milad İşıq Şousunuza Bir Düymə ilə Başlayın: 5 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Musiqi ilə senkronize edilmiş bir Milad işıq şousu işləyərkən bir düyməni basaraq şouya başlamaq istəyə bilərsiniz. Bu təlimat yalnız bir Raspberry Pi üzərində çalışan Falcon Pi Player (FPP) vasitəsilə idarə olunan bir şou üçün tətbiq olunur. FPP ilə məşğul olsanız, ehtimal ki, Falcon kontrollerlərindən istifadə edirsiniz və şousunuzu sıralamaq üçün xLights və ya LightORama istifadə edirsiniz. Bu sözlərin heç birinin sizin üçün heç bir mənası yoxdursa, bu dərs, ehtimal ki, başınızın üstündədir və bu vikini oxumaqla başlamalısınız https://auschristmaslighting.com/wiki/ və aşağıdakı kimi bir Facebook qrupuna qoşulun.
- xLights:
- Ümumi inkişaf etmiş Milad işıqları:
- Falcon Pi Oyunçusu:
- Qoşma/fikir fikir paylaşımı:
- "Xüsusilə xLights və ya LOR ilə əlaqəli deyil":
- xLights Holiday Light satıcıları:
- Milad bayramını özünüz edin:
Addım 1: Parça siyahısı
Aşağıdakı maddələrə ehtiyacınız olacaq:
- Bir düymə. Ətrafında bir LED halqa işığı ilə istifadə etdim: [Amazon]
- Bir rezistor. Tercihen 200Ω və ya daha çox (LED düyməsini istifadə edirsinizsə bunlardan 2 -si) Standart 1/4W və ya 1/8W yaxşıdır
- Bağlayıcı tel. İstifadə etməli olduğunuz ölçü düymənin Pi -dən nə qədər uzaq olacağına bağlıdır. Pi -dən təxminən 10 fut məsafədə 18awg tel istifadə etdim və qüsursuz işləyirdi
- Pi'nin GPIO pinlərinə bir tel bağlamağın bir yolu. Çörək taxtası ilə bir lent kabeli istifadə edə bilərsiniz və ya mənim etdiyim kimi bəzi qadın bağlayıcılardan istifadə edə bilərsiniz. Yalnız 3 telə ehtiyacımız var - Topraklama, 5V və düymə məlumatları. [Amazon]
- (İsteğe bağlı) Asan təmir üçün hər tərəfində su keçirməyən bağlayıcı. 3 pinli dəniz dərəcəli bağlayıcılardan istifadə edirəm: [Amazon]
- (İsteğe bağlı) İstilik büzüşən bağlayıcılar [Amazon]
Addım 2: Bağlama Şeması
Şəkillər, daxil olmayan LED olmayan bir düymənin və LEDli bir düymənin naqillərinin diaqramını göstərir. Bağlama sxemini qurma üsulu, yalnız 3 telli bir düyməni və bir işığı (davamlı olaraq) işə salmağa imkan verir.
GPIO pin üçün pi üzərindəki GPIO pinlərindən birini seçin. +5V və Gnd pinlərindən də istifadə edin. Çox güman ki, 3.3V pin istifadə edərək uzaqlaşa bilərsiniz, ancaq bir neçə fut tel üzərindəki gərginliyin düşməsi siqnalı etibarsız edə bilər və ya LED -i yandırmaq üçün kifayət etməyəcək.
DİQQƏT: 3 pinli bağlayıcı, LED halqa işığı olan bir düyməni qazmaq üçün lazım olan çuxura sığmayacaq. Düyməni üz panelinizə qoyduqdan sonra konnektoru bağlayın.
Addım 3: Falcon Pi Player Əsas Quraşdırması
DİQQƏT - FPP daim yenilənir və onların skript dəstəyini yaxşılaşdıracaqları və ya daha az proqramlaşdırma tələb edən standart bir xüsusiyyət olaraq "başlamaq üçün düyməni" daxil etmələri tamamilə mümkündür.
Əvvəlcə hər şeyi qurmaq üçün yuxarıdakı videoya baxdım.
Videoları darıxdırıcı və yavaş hesab edirəm, buna görə də onun xülasəsi:
- Fayl menecerindən istifadə edərək ardıcıllığınızı fpp -ə idxal edin
- İçindəki ardıcıllıqla bir çalğı siyahısı yaradın. Sonrakı addımlar üçün pleylistə "playme" adı veriləcək.
-
Boş bir notepad faylını açın və aşağıdakıları yazın:
- #!/bin/sh
- fpp -P oyun oyunu
- Kompüterinizdə.sh faylı olaraq qeyd edin
- FPP -də fayl menecerinə gedin və skript faylınızı yükləyin. "Skriptlər" sekmesine gedin və orada olduğundan əmin olun
- Vəziyyət/Nəzarət altında Hadisələrə gedin
- Yeni bir hadisə yaradın. Tədbir ID 1/1, Hadisə adı nə olursa olsun, Təsir Sırası YOK, Hadisə Ssenarisi
- Giriş/Çıxış Quraşdırması altından gedin və GPIO tetikleyicilerini basın
- Düymənin bağlı olduğu pimi dəyişdirin. Düyməni basdığınız zaman aşağı düşəcəksə, hadisəni Falling seçiminə qoyun, aktivdirsə, hadisəni Rising üzərinə qoyun.
- Bütün dəyişiklikləri etdikdən sonra görünən xəbərdarlıqla yenidən başladın düyməsini basın
Bütün bunları etdikdən sonra tamaşanıza başlamaq üçün düyməni basmalısınız. Vayooo!
Ancaq bu metodun bəzi məhdudiyyətləri var. Pleylist gedərkən düyməni yenidən basarsanız, ya 1) heç bir şey etməyəcək, ya da 2) FPP -ni çökdürəcək və yenidən başlatana qədər düymənizlə heç nə etməkdən imtina edəcək. Beləliklə, komanda ilə şousunuzu dramatik bir şəkildə oynamaq üçün bir düyməni istifadə edirsinizsə, yuxarıda göstərilən üsul sizə lazım olacaq.
Daha çox şeyə ehtiyacınız varsa, növbəti addıma davam edin
Addım 4: Daha Sağlam Script
Sonda əldə etdiyim skript budur. Github -da skriptə buradan baxa bilərsiniz: [Gist. Github]
- Kimsə "gecə" saatlarında düyməni basarsa, Tiger Rag (Mahnım1) oynayacaq və sonra sonsuza qədər dönən gözləmə ardıcıllığına keçəcək.
- Tiger Rag çalınarkən düyməyə basılırsa, o zaman ikinci mahnım Hallelujah başlayır və sonra qeyri -müəyyən olaraq gözləmə sırasına keçəcək.
- Ancaq kimsə düyməni gündüz və ya gecə çox gec basdırsa, bir dəfə Tiger Rag oynayacaq və sonra bütün işıqları söndürəcək.
Bu, düymənin günün istənilən vaxtında işləməsinə imkan verir, lakin işıqların daim yanması lazım deyil. Hansı mahnının hazırda çalındığını müəyyən edərək, o mahnını bitirib və "növbəti" mahnını çalmaqla birdən çox mahnının 1 düymədən çalınmasına imkan verir.
FPP-də skript yazmaq üçün daha çox mənbəni burada tapa bilərsiniz: https://github.com/FalconChristmas/fpp-scripts Daha mürəkkəb məntiq üçün google "bash script _" etmək istədiyiniz işdir. FPP Shell (istifadəçi adı fpp parol falcon) istifadə edərək skriptlərinizi sınaya bilərsiniz. Əsas əmrlər aşağıdakı kimidir.
Böyük hərflərə diqqət yetirin !!
- Capital -P bir dəfə çalğı siyahısını oynayacaq, kiçik hərf -p təkrarlayacaq.
- fpp -v 66 Səs səviyyəsini 66% olaraq təyin edin
- fpp -c stop Tamaşanı dərhal dayandırın
- fpp -C stop Bu durdurma zərifliklə ola bilər
- fpp -p thisPlaylistName ThisPlaylistName -i təkrar oxuyur (belə ki, giriş mahnısı bir dəfə çalınır, sonra Əsas şeylər qeyri -müəyyən olaraq təkrarlanacaq.
- fpp -P thisPlaylistName ThisPlaylistName bir dəfə oxuyur
- eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Ssenari işləyir. Soldakı halda, skript adınızın yuxarıda bir yerdə bir dəyişənə saxlandığı halda işləyir, məsələn, buScriptVariable = "PlayTheSong.sh"
ButtonSuperScript.sh
#!/bin/sh |
########################################################### |
#Düymə basıldığı təqdirdə işə salın. |
#Hər mahnı üçün iki çalğı siyahısına sahib olmalısan - biri ilə |
# yalnız "İlk oyun" olaraq mahnı və heç bir şey yoxdur, |
# və digərini mahnı ilə ilk ifa və gözləmə rejimində |
"Əsas" ardıcıllıq olaraq # sıra. (Ən azından istəsən |
# etdiyim şeyi etmək üçün) |
# |
#Məsələn, sənin mahnın Tiger Rag -dırsa, səndə olmalıdır |
# pleylist "TigerRag", "TigerRagStandby" və "Standby" |
# |
########################################################### |
6 -dan 11 -ə qədərdirsə, işə salınacaq siyahılar |
NightSong1 = "TigerRagStandby" |
NightSong2 = "HallelujahStandby" |
NightStandby = "Gözləmə" |
# Gün ərzində və ya 11 -dən sonra işləyəcək siyahılar |
DaySong1 = "TigerRag" |
DaySong2 = "Hallelujah" |
DayStandby = "Gözləmə" |
#24 saat ərzində açılış və istirahət vaxtları. Dəqiqələr istəyirsinizsə, uğurlar |
OnHour = 17 |
OffHour = 23 |
########################################################### |
# Ssenarinin cəsarəti. # |
########################################################### |
# Cari vəziyyətimizi əldə edin (IDLE = 0, OYNAMA = 1, Zərif dayanma = 2) |
STATUS = $ (fpp -s | kəsilmiş -d ',' -f2) |
#Çalışan çalğı siyahısını alın və 7 hərflə kəsin |
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7) |
#Bu mahnı ifa edərkən "həm", həm də gözləmə vəziyyətində "ardıcıllıq" olacaq |
#Gözləmə ardıcıllığının işlədiyini təyin etmək üçün istifadə olunur |
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5) |
#Müqayisə üçün çalğı siyahılarının adlarının ilk 7 hərfi |
#"Song1Standby" və "Song1" eyni olduğu üçün sadəcə 7 hərf |
#Tamam, əslində ilk x hərfi və x ən qısa mahnı adı olmalıdır |
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7) |
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7) |
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7) |
STARTITEM = "" |
#Hərbi vaxtda cari saatı alın |
CurrentHour = $ (tarix +"%H") |
#Bəzi şeylərin statusunu çap et - "echo" əksər dillərdə "çap" kimidir |
#Müxtəlif şeylərin kəsildiyini və ya düzgün hesablandığını yoxlamaq üçün faydalıdır |
echo CurrentHour $ CurrentHourdur |
echo Çalışan siyahı belədir: $ PLAYLIST |
echo Song2Playlist: $ Song2Playlist |
echo Status: $ STATUS |
#Gecədə səs səviyyəsini 80%, əks halda 100% olaraq təyin edin |
#Beləliklə, mən yatıramsa o qədər də yüksək deyil |
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; sonra |
# fpp -v 100 |
#başqa |
# fpp -v 80 |
#fi |
# Mənalı bir şey aldığımızı yoxlayın |
əgər [-z "$ {STATUS}"]; sonra |
echo "Status dəyəri ilə səhv"> & 2 |
çıxış 1 |
fi |
# Mövcud vəziyyətlə əlaqədar hərəkət edin |
$ {STATUS} halda |
# Boş |
0) |
#Gecə vaxtı - gözləmə rejimində Song1 oxuyun |
əgər [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sonra |
echo Gecə Mahnısı Çalma1 |
fpp -c dayanma |
fpp -p "$ {NightSong1}" $ {STARTITEM} |
#Gün vaxtı və ya həqiqətən gec - 1 -ci mahnını oxudun, sonra işıqları söndürün |
başqa |
echo Playing DaySong1 |
fpp -c dayanma |
fpp -P "$ {DaySong1}" $ {STARTITEM} |
fi |
;; |
# OYNAYIR və ya DURDURUR (planlaşdırılan bir çalğı siyahısı bitəndə düyməyə basıldığı zaman zərif olur) |
1 | 2) |
#Standby çalışır - bu işləyir, çünki gözləmə rejimi mənim media olmayan yeganə ardıcıllığımdır |
əgər ["$ STANDBYSTRING" == "ardıcıllıq"]; sonra |
#Gecə vaxtı - gözləmə rejimində Song1 oxuyun |
əgər [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sonra |
echo NightSong1 -i gecə vaxtı oynayır |
fpp -c dayanma |
fpp -p "$ {NightSong1}" |
#Günün vaxtı və ya həqiqətən gec - pələng bezini bir dəfə oynadıqdan sonra işıqları söndür |
başqa |
oynayan echo PlayingDaySong1 |
fpp -c dayanma |
fpp -P "$ {DaySong1}" |
fi |
#Daha çox mahnıya dəstək olmaq üçün bu bölməni kopyalayın və son hissədəki "Song2Playlist" i Mahnı#Çalma Siyahısı olaraq dəyişdirin |
#Song1 çalışır |
elif ["$ PLAYLIST" == "$ Song1Playlist"]; sonra |
#Gecə vaxtı - Hallelujahı gözləmə rejimində oynayın |
əgər [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sonra |
echo Playing HallelujahStandby of Tiger Rag çalışır |
fpp -c dayanma |
fpp -p "$ {NightSong2}" |
#Gün vaxtı və ya həqiqətən gec - Song2 -ni bir dəfə oxudun, sonra işıqları söndürün |
başqa |
echo Oynayan Hallelujah bir dəfə Tiger Ragdan qaçır |
fpp -c dayanma |
fpp -P "$ {DaySong2}" |
fi |
#SON MAHNI ÇALIŞIR - STANDBY OYUN |
elif ["$ PLAYLIST" == "$ Song2Playlist"]; sonra |
#Gecə vaxtı - gözləmə rejimində oynayın |
əgər [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sonra |
echo Yenidən gözləmə rejimində oynayır |
fpp -c dayanma |
fpp -p "$ {NightStandby}" |
#Gün vaxtı və ya həqiqətən gec - bir dəfə gözləmə rejimində oynayın |
başqa |
echo Bir dəfə Gözləmə rejimində oynayır |
fpp -c dayanma |
fpp -P "$ {DayStandby}" |
fi |
başqa |
echo Nədənsə sonuncu icra olunan digər iş. |
fpp -c dayanma |
fpp -P "$ {DaySong1}" |
fi |
;; |
esac |
GitHub tərəfindən ❤ ilə evlənən rawButtonSuperScript.sh -ə baxın
Addım 5: (İsteğe bağlı) Düymə üçün üzlük
Makerspace vasitəsi ilə Clemson -da bir lazer kəsiciyə girişim var, buna görə də kəsmək+kəsmək üçün tez bir dizayn hazırladım. Düyməm üçün ortada bir deşik var, sözlərdə Milad şriftində "Push Me" yazılıb və düymənin ətrafında bir qar uçqunu var. Ağacı ağ rəngə boyadım və sonra onu maska lentlə örtdüm (lazer kəsicinin aşındırmaq istəmədiyim hissələri yandırmaması üçün). İstifadə etdiyim fayl əlavə olunur.
Tövsiyə:
Milad Ağacından Nəfəs Almaq - Arduino Milad İşıq İdarəçisi: 4 addım
Milad Ağacından Nəfəs Almaq-Arduino Milad İşıq Nəzarətçisi: 9 metrlik əvvəlcədən yandırılmış süni Milad ağacımın idarəetmə qutusunun Miladdan əvvəl qırılması və istehsalçının əvəzedici hissələr təqdim etməməsi yaxşı xəbər deyil. Bu özünəməxsus LED işıq sürücünüzü və idarəedicinizi Ar
UC ilə Latch Off Off. Bir Düymə. Bir Pin. Ayrı -ayrı komponent: 5 addım
UC ilə Latch Off Off. Bir Düymə. Bir Pin. Diskret Komponent: Hamıya salam, şəbəkədə açma/söndürmə dövrəsi axtarırdım. Tapdığım hər şey axtardığım kimi deyildi. Özümlə danışırdım, bunun üçün mütləq bir yol var. Mənə lazım olan budur.-Açmaq və söndürmək üçün yalnız bir düymə. -Yalnız istifadə etməlisiniz
Jeep Modifikasiyası - Bir Düymə ilə Sürətləndirmə: 7 Addım
Jeep Modifikasiyası - Bir Düymə ilə Sürətləndirmə: DİSKAYA: Barstow Məktəbi və FRC Komandası 1939 və ya hər hansı bir üzv, hər hansı bir şəxsin xəsarət almasından və ya avtomobildə edilən hər hansı bir əşyanın zədələnməsindən məsuliyyət daşımır. Hər hansı bir dəyişiklik də zəmanəti ləğv edəcək
Bir LED disk lampasından işıqlı bir düymə hazırlayın: 4 addım
Bir LED Disk Lampasından İşıqlı Düymə Edin: Avadanlıq mağazasında bazarlıq qutusunda bəzi LED disk lampaları tapdı. Bir şeyə yapışdığınız və açıb söndürdüyünüz işıqlar bunlardır. Düşünürdüm ki, yaxşı işıqlı ani açarlar edəcəklər
Milad qutusu: Arduino/ioBridge İnternet İdarə olunan Milad İşıqları və Musiqi Şousu: 7 addım
Xmas qutusu: Arduino/ioBridge İnternet İdarəli Milad İşıqları və Musiqi Şousu: Mənim xmas qutusu layihəm internetlə idarə olunan Milad işıqları və musiqi şousundan ibarətdir. Bir Milad mahnı onlayn olaraq istənə bilər, sonra növbəyə qoyulur və istədiyi qaydada səsləndirilir. Musiqi FM statusu ilə ötürülür