Mündəricat:

Milad İşıq Şousunuza Bir Düymə ilə Başlayın: 5 Addım
Milad İşıq Şousunuza Bir Düymə ilə Başlayın: 5 Addım

Video: Milad İşıq Şousunuza Bir Düymə ilə Başlayın: 5 Addım

Video: Milad İşıq Şousunuza Bir Düymə ilə Başlayın: 5 Addım
Video: Yag'an yag'ishlar ана к,ушик, мана рак,с суппер 2024, Noyabr
Anonim
Milad İşıq Şousunuza Bir Düymə ilə Başlayın
Milad İşıq Şousunuza Bir Düymə ilə Başlayın

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ı

Kabel diaqramı
Kabel diaqramı
Kabel diaqramı
Kabel diaqramı
Kabel diaqramı
Kabel diaqramı
Kabel diaqramı
Kabel diaqramı

Şə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ə: