İçindekiler:

Noel Işık Şovunuzu Bir Düğmeyle Başlatın: 5 Adım
Noel Işık Şovunuzu Bir Düğmeyle Başlatın: 5 Adım

Video: Noel Işık Şovunuzu Bir Düğmeyle Başlatın: 5 Adım

Video: Noel Işık Şovunuzu Bir Düğmeyle Başlatın: 5 Adım
Video: İLK KURTULAN 10.000 TL KAZANIR !? @ahmetcandundar2 @siladundar1 @merteren1 2024, Temmuz
Anonim
Noel Işık Şovunuzu Bir Düğmeyle Başlatın
Noel Işık Şovunuzu Bir Düğmeyle Başlatın

Müzikle senkronize edilmiş bir Noel ışık gösterisi yürütürken, bir düğmeye basarak gösteriyi başlatmak isteyebilirsiniz. Bu eğitim, yalnızca bir Raspberry Pi üzerinde çalışan Falcon Pi Player (FPP) aracılığıyla kontrol edilen bir gösteri için geçerlidir. FPP kullanıyorsanız, muhtemelen Falcon denetleyicilerini ve gösterinizi sıralamak için xLights veya LightORama'yı kullanıyorsunuzdur. Bu kelimelerin hiçbiri sizin için bir şey ifade etmiyorsa, bu eğitim muhtemelen şu an için kafanızın biraz üzerindedir ve bu wiki'yi https://auschristmaslighting.com/wiki/ okuyarak ve aşağıdaki gibi bir Facebook grubuna katılarak başlamalısınız.

  • xLights:
  • Genel gelişmiş yılbaşı ışıkları:
  • Falcon Pi Oyuncusu:
  • Muhafaza/prop fikir paylaşımı:
  • "Özellikle xLights veya LOR ile İlgili Değil":
  • xLights Holiday Light satıcıları:
  • Noel Kendin Yap:

Adım 1: Parça Listesi

Aşağıdaki öğelere ihtiyacınız olacak:

  • Düğme. Bunu çevresinde bir LED halka ışıkla kullandım: [Amazon]
  • Bir direnç. Tercihen 200Ω veya üzeri (LED düğmesini kullanıyorsanız bunlardan 2'si) Standart 1/4W veya 1/8W iyidir
  • Bağlantı kablosu. Kullanmanız gereken gösterge, düğmenin Pi'nizden ne kadar uzakta olacağına bağlıdır. Pi'mden yaklaşık 10 metre uzakta 18awg tel kullandım ve kusursuz çalıştı
  • Pi'nin GPIO pinlerine bir kablo bağlamanın bir yolu. Breakout devre tahtası ile bir şerit kablo kullanabilir veya benim yaptığım gibi sadece bazı dişi konektörler kullanabilirsiniz. Sadece 3 kabloya ihtiyacımız var - Toprak, 5V ve düğme için veri. [Amazon]
  • (İsteğe bağlı) Kolay bakım için her iki uçta su geçirmez bir konektör. 3 pinli denizcilik sınıfı konektörler kullanıyorum: [Amazon]
  • (İsteğe bağlı) Isıyla daralan uca konektörler [Amazon]

Adım 2: Bağlantı Şeması

Bağlantı şeması
Bağlantı şeması
Bağlantı şeması
Bağlantı şeması
Bağlantı şeması
Bağlantı şeması
Bağlantı şeması
Bağlantı şeması

Resimler, birlikte verilen LED'i olmayan bir düğme ve LED'li bir düğme için bir bağlantı şemasını göstermektedir. Bağlantı şemasını kurma şeklim, sadece 3 kablo ile bir düğmeyi ve ışığı (sürekli açık) çalıştırmanıza izin veriyor.

GPIO pini için pi üzerindeki GPIO pinlerinden herhangi birini seçin. +5V ve Gnd pinlerini de kullanın. Muhtemelen 3,3V pimi kullanmaktan kurtulabilirsiniz, ancak birkaç fitlik kablodaki voltaj düşüşü, sinyali güvenilmez hale getirebilir veya LED'i yakmak için yeterli olmayabilir.

NOT: 3 pimli konektör, LED halka ışıklı bir düğme için delmeniz gereken deliğe sığmaz. Bu nedenle, düğmeyi ön panelinize yerleştirdikten sonra konektörü takın.

3. Adım: Falcon Pi Player Temel Kurulumu

NOT - FPP sürekli olarak güncellenmektedir ve komut dosyası oluşturma desteklerini geliştirmeleri veya daha az programlama gerektiren varsayılan bir özellik olarak "başlatmak için basmalı düğmeyi" içermeleri tamamen mümkündür.

Başlangıçta her şeyi ayarlamak için yukarıdaki videoyu izledim.

Videoları sıkıcı ve yavaş buluyorum, işte bir özeti:

  • Dosya yöneticisini kullanarak dizinizi fpp'ye aktarın
  • İçinde dizi bulunan bir çalma listesi oluşturun. Sonraki adımlar için çalma listesi "playme" olarak adlandırılacaktır.
  • Boş bir not defteri dosyası açın ve aşağıdakini yazın:

    • #!/bin/sh
    • fpp -P beni oynat
  • Bilgisayarınızda bir.sh dosyası olarak kaydedin
  • FPP'deki dosya yöneticisine gidin ve komut dosyanızı yükleyin. " Komut Dosyaları " sekmesine gidin ve orada olduğundan emin olun
  • Durum/Kontrol altında Etkinlikler'e gidin
  • Yeni bir etkinlik oluşturun. Olay Kimliği 1/1, Olay adı ne olursa olsun, Etki Sırası YOK, Olay Komut Dosyası
  • Giriş/Çıkış Kurulumu altına gidin ve GPIO tetikleyicilerini tıklayın
  • Düğmenizin bağlı olduğu pimi değiştirin. Düğmeye bastığınızda düşük olacaksa, olayı Düşen seçeneğine, aktifse yüksekse olayı Yükselişe alın.
  • Tüm değişiklikleri yaptıktan sonra çıkan uyarı ile Yeniden Başlat düğmesine tıklayın.

Tüm bunları yaptıktan sonra, şovunuzu başlatmak için düğmeye basabilmeniz gerekir. Woohoo!

Ancak bu yöntemin bazı sınırlamaları vardır. Çalma listesi devam ederken düğmeye tekrar basarsanız, 1) hiçbir şey yapmaz veya 2) FPP'yi çökertir ve siz yeniden başlatana kadar düğmenizle herhangi bir şey yapmayı reddeder. Bu nedenle, şovunuzu komutla oynamanın dramatik bir yolu olarak sadece bir düğme kullanıyorsanız, ihtiyacınız olan tek şey yukarıdaki yöntem olacaktır.

Daha fazlasına ihtiyacınız varsa, bir sonraki adıma geçin

4. Adım: Daha Güçlü Bir Komut Dosyası

Aşağıda sonunda ulaştığım senaryo var. Komut dosyasını Github'da buradan görüntüleyebilirsiniz: [Gist. Github]

  • Birisi “gece” saatlerinde düğmeye basarsa Tiger Rag (benim Şarkım1) çalacak ve ardından sonsuz döngüye giren bekleme dizisine geçecektir.
  • Tiger Rag çalarken düğmeye basılırsa, ikinci şarkım Hallelujah'ı başlatır ve ardından süresiz olarak bekleme dizisine gider.
  • Ancak gündüz veya gece çok geç saatlerde biri düğmeye basarsa, Tiger Rag bir kez çalacak ve ardından tüm ışıkları kapatacaktır.

Bu, düğmenin günün herhangi bir saatinde çalışmasına izin verir, ancak ışıkların her zaman açık olması gerekmez. Ayrıca, o anda hangi şarkının çalmakta olduğunu belirleyerek, o şarkıyı sonlandırarak ve "sonraki" şarkıyı çalarak birden fazla şarkının 1 düğmeden çalınmasına izin verir.

FPP'de komut dosyası oluşturmak için daha fazla kaynağı burada bulabilirsiniz: https://github.com/FalconChristmas/fpp-scriptsDaha karmaşık mantık için, yapmaya çalıştığınız şeyin alt çizgi olduğu "bash script _" google'a gidin. FPP Shell (kullanıcı adı fpp password falcon) kullanarak scriptlerinizi test edebilirsiniz. Temel komutlar aşağıdaki gibidir.

Büyük harf kullanımına dikkat!!

  • Capital -P bir oynatma listesini bir kez oynatır, küçük harf -p onu tekrar eder.
  • fpp -v 66 Sesi %66 olarak ayarla
  • fpp -c stop Gösteriyi hemen durdur
  • fpp -C stop Bu, zarafetle gösteriyi durdurabilir
  • fpp -p thisPlaylistName Bu PlaylistName'i tekrarlamada oynatır (böylece giriş şarkısı bir kez çalar, ardından Ana öğe süresiz olarak tekrarlanır.
  • fpp -P thisPlaylistName BuPlaylistName'i bir kez oynatır
  • eventScript "${MEDIADIR}/scripts/${thisScriptVariable}" Bir komut dosyası çalıştırır. Soldaki durumda, komut dosyası adınızı, thisScriptVariable=”PlayTheSong.sh” gibi yukarıda bir yerde bir değişkene kaydettiyseniz işe yarar.

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Düğmeye basılırsa çalıştırılacak.
#Her şarkı için iki çalma listeniz olmalı - biri
# "İlk çalma" olarak sadece şarkı ve ana bölümde hiçbir şey yok,
# ve şarkı ilk çalma ve bekleme modundayken bir başkası
# dizi "Ana" dizi olarak. (En azından istersen
# tam olarak yaptığım şeyi yapmak için)
#
#Örneğin, şarkınız Tiger Rag ise,
# çalma listesi "TigerRag", "TigerRagStandby" ve "Bekleme"
#
###########################################################
# 6 ile 11 arasındaysa çalıştırılacak çalma listeleri
NightSong1="TigerRagBekleme"
NightSong2="HallelujahBekleme"
GeceBekleme="Bekleme"
# Gün içinde veya 11'den sonra çalıştırılacak çalma listeleri
DaySong1="TigerRag"
DaySong2="Halleluya"
DayStandby="Bekleme"
#24 saatlik zaman diliminde açma ve kapama süreleri. Dakika istiyorsanız, iyi şanslar
AçıkSaat=17
OffHour=23
###########################################################
# Senaryonun cesareti. #
###########################################################
# Mevcut durumumuzu alın (IDLE=0, PLAYING=1, Stopping Graceally=2)
DURUM=$(fpp -s | kes -d', ' -f2)
#Koşu çalma listesini al ve 7 harfe indir
OYNATMA LİSTESİ=$(fpp -s | kes -d', ' -f4 | kes -c1-7)
#Bu, bir şarkı çalıyorsa "her ikisi" ve bekleme modundaysa "sıra" olacaktır
#Bekleme sırasının çalışıp çalışmadığını belirlemek için kullanılır
STANDBYSTRING=$(fpp -s | kes -d', ' -f5)
#Karşılaştırma için oynatma listelerinin adlarının ilk 7 harfi
#"Song1Standby" ve "Song1" aynı olacak şekilde sadece 7 harf
#Tamam yani aslında ilk x harf olmalı ve x sahip olduğun en kısa şarkı adı olmalı
StandbyPlaylist=$(echo $NightStandby| cut -c1-7)
Song1Playlist=$(echo $NightSong1| cut -c1-7)
Song2Playlist=$(echo $NightSong2| cut -c1-7)
BAŞLANGIÇ=""
#Askeri zamanda geçerli saati al
CurrentHour=$(tarih +"%H")
#Bazı şeylerin durumunu yazdır - "eko" çoğu dilde "yazdır" gibidir
#Çeşitli şeylerin doğru şekilde kırpılıp kırpılmadığını veya hesaplandığını test etmek için kullanışlıdır
echo CurrentHour, $CurrentHour'dur
echo Koşu oynatma listesi: $PLAYLIST
echo Song2Playlist: $Song2Playlist
yankı Durum: $STATUS
#Sesi geceleri %80'e, aksi halde %100'e ayarla
#Yani uyuyorsam o kadar gürültülü olmaz
#if [$CurrentHour -lt $OffHour -a $CurrentHour -ge 11]; sonra
# fpp -v 100
#Başka
# fpp -v 80
#fi
# Anlamlı bir şey olup olmadığını kontrol et
eğer [-z"${STATUS}"];o zaman
echo "Durum değeri hatası">&2
çıkış 1
fi
# Mevcut duruma göre hareket et
case${STATUS}içinde
# BOŞTA
0)
#Gece zamanı - Song1'i bekleme modunda çal
eğer [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];o zaman
yankı NightSong1 Çalıyor
fpp -c durdurma
fpp -p "${NightSong1}"${STARTITEM}
#Gündüz veya çok geç - 1. şarkıyı bir kez çal ve sonra ışıkları kapat
Başka
echo DaySong1 Çalıyor
fpp -c durdurma
fpp -P "${DaySong1}"${STARTITEM}
fi
;;
# ZARİF OLARAK OYNAMAK veya DURDURMAK (planlanmış bir çalma listesi sona ererken düğmeye basılırsa zarif olur)
1 | 2)
#Standby çalışıyor - bu çalışıyor çünkü bekleme benim medya dışı tek dizim
eğer ["$STANDBYSTRING"=="sıra"];sonra
#Gece zamanı - Song1'i bekleme modunda çal
eğer [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];o zaman
echo NightSong1'i gece için çalma
fpp -c durdurma
fpp -p "${NightSong1}"
#Gündüz veya gerçekten geç - bir kez kaplan paçavrası oynayın ve ardından ışıkları kapatın
Başka
çalmadan yankı PlayingDaySong1
fpp -c durdurma
fpp -P "${DaySong1}"
fi
#Daha fazla şarkıyı desteklemek için bu bölümü kopyalayın ve son bölümdeki "Song2Playlist" öğesini Song#Playlist olarak değiştirin
#Song1 çalışıyor
elif ["$PLAYLIST"=="$Song1Playlist"];sonra
#Gece zamanı - bekleme modunda Hallelujah oynayın
eğer [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];o zaman
yankı Tiger Rag'dan HallelujahBekleme çalma çalışıyor
fpp -c durdurma
fpp -p "${NightSong2}"
#Gündüz veya çok geç - Song2'yi bir kez çal ve sonra ışıkları kapat
Başka
echo Tiger Rag'dan bir kez Hallelujah oynamak çalışıyor
fpp -c durdurma
fpp -P "${DaySong2}"
fi
#SON ŞARKI ÇALIŞIYOR - BEKLEMEDE OYNA
elif ["$PLAYLIST"=="$Song2Playlist"];sonra
#Gece zamanı - döngüde bekleme modunda oyna
eğer [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];o zaman
echo Tekrarda bekleme modunda çalma
fpp -c durdurma
fpp -p "${NightStandby}"
#Gündüz veya gerçekten geç - bir kez bekleme modunda oynayın
Başka
echo Beklemede Bir Kez Oynama
fpp -c durdurma
fpp -P "${DayStandby}"
fi
Başka
echo Bir nedenden ötürü, son başka durum yürütüldü.
fpp -c durdurma
fpp -P "${DaySong1}"
fi
;;
esac

GitHub tarafından ❤ ile barındırılan rawButtonSuperScript.sh dosyasını görüntüleyin

Adım 5: (İsteğe bağlı) Düğme için Ön Yüz

Makerspace aracılığıyla Clemson'da bir lazer kesiciye erişimim var, bu yüzden çabucak kesim+aşındırma için bir tasarım çizdim. Ortada düğmem için bir delik var, Noel yazı tipinde "Push Me" yazan kelimeler ve düğmenin etrafında bir kar tanesi var. Biraz ahşabı beyaza boyadım ve sonra maskeleme bandıyla kapladım (böylece lazer kesici, kazınmasını istemediğim parçaları yakmaz). Kullandığım dosya ektedir.

Önerilen: