Mundarija:

Rojdestvo chiroqlarini tugma bilan boshlang: 5 qadam
Rojdestvo chiroqlarini tugma bilan boshlang: 5 qadam

Video: Rojdestvo chiroqlarini tugma bilan boshlang: 5 qadam

Video: Rojdestvo chiroqlarini tugma bilan boshlang: 5 qadam
Video: Rojdestvo va yangi yil uchun paranormal bilan qo'rqinchli videolar 2024, Iyul
Anonim
Rojdestvo chiroqlarini tugma bilan boshlang
Rojdestvo chiroqlarini tugma bilan boshlang

Musiqa bilan sinxronlangan Rojdestvo yorug'lik shousini o'tkazayotganda, tugmani bosish orqali namoyishni boshlashingiz mumkin. Ushbu qo'llanma faqat Raspberry Pi -da ishlaydigan Falcon Pi Player (FPP) orqali boshqariladigan shou uchun amal qiladi. Agar siz FPP bilan ishlayotgan bo'lsangiz, ehtimol siz Falcon kontrollerlaridan foydalanasiz va xLights yoki LightORama -dan foydalanib, ko'rgazmangizni ketma -ket ketkazasiz. Agar bu so'zlarning hech biri siz uchun hech qanday ma'noga ega bo'lmasa, bu qo'llanma hozircha sizning boshingizdan biroz yuqoriroqdir va siz bu vikini o'qishdan boshlashingiz kerak https://auschristmaslighting.com/wiki/ va pastdagi kabi Facebook guruhiga qo'shilish.

  • xLights:
  • Umumjahon Rojdestvo chiroqlari:
  • Falcon Pi o'yinchisi:
  • Qoplama/g'oyalar almashish:
  • "XLights yoki LOR bilan bog'liq emas":
  • xLights Holiday Light sotuvchilari:
  • Rojdestvoni o'zingiz qiling:

1 -qadam: qismlar ro'yxati

Sizga quyidagi elementlar kerak bo'ladi:

  • Tugma. Men uni atrofidagi LED halqali chiroq bilan ishlatardim: [Amazon]
  • Qarshilik. Tercihen 200Ω yoki undan yuqori (agar siz LED tugmachasidan foydalansangiz, ulardan ikkitasi) Standart 1/4 Vt yoki 1/8 Vt yaxshi
  • Ulanish simlari. Qo'llaniladigan o'lchagich sizning tugmachangizdan qanchalik uzoq bo'lishiga bog'liq. Men 18awg simini Pi -dan taxminan 10 fut masofada ishlatardim va u mukammal ishladi
  • Pi ning GPIO pinlariga simni ulash usuli. Siz tasma kabeli bilan lenta kabelidan foydalanishingiz mumkin, yoki men kabi bir nechta ayol ulagichlardan foydalanishingiz mumkin. Bizga faqat 3 ta sim kerak - tuproq, 5V va tugma uchun ma'lumotlar. [Amazon]
  • (Majburiy emas) oson parvarish qilish uchun har bir uchida suv o'tkazmaydigan ulagich. Men 3-pinli dengiz sinfidagi ulagichlardan foydalanaman: [Amazon]
  • (Ixtiyoriy) Issiqlikni qisqartiruvchi ulagichlar [Amazon]

2 -qadam: ulanish sxemasi

Ulanish diagrammasi
Ulanish diagrammasi
Ulanish diagrammasi
Ulanish diagrammasi
Ulanish diagrammasi
Ulanish diagrammasi
Ulanish diagrammasi
Ulanish diagrammasi

Rasmlarda LED bo'lmagan tugma va LEDli tugma uchun simi diagrammasi ko'rsatilgan. Ulanish sxemasini o'rnatish usuli sizga faqat 3 simli tugma va chiroqni (doimiy ravishda yoqish) yoqish imkonini beradi.

GPIO pin uchun pi -dagi GPIO pinlaridan birini tanlang. +5V va Gnd pinlarini ham ishlating. Siz, ehtimol, 3.3V pinni ishlatib, qutulib qolishingiz mumkin, lekin bir necha futli simlarning kuchlanish pasayishi signalni ishonchsiz qilishi yoki LEDni yoqish uchun etarli bo'lmasligi mumkin.

ESLATMA: 3-pinli ulagich, LED halqali chiroqli tugmani burg'ulashingiz kerak bo'lgan teshikka to'g'ri kelmaydi. Tugmani old panelga qo'ygandan so'ng, ulagichni ulang.

3 -qadam: Falcon Pi Player -ni asosiy sozlash

QAYD - FPP doimiy ravishda yangilanib turadi va ular skriptni qo'llab -quvvatlashni yaxshilashi yoki dasturlash talab qilinmaydigan standart xususiyat sifatida "ishga tushirish tugmasini" qo'shishi mumkin.

Men avval hamma narsani sozlash uchun yuqoridagi videoni kuzatdim.

Menga video zerikarli va sekin ko'rinadi, shuning uchun uning qisqacha mazmuni:

  • Fayl menejeri yordamida ketma -ketlikni fpp -ga import qiling
  • Undagi ketma -ketlik bilan pleylist yarating. Keyingi qadamlar uchun pleylist "playme" deb nomlanadi.
  • Bo'sh bloknot faylini oching va quyidagilarni yozing:

    • #!/bin/sh
    • fpp -P o'yini
  • Kompyuteringizda.sh fayli sifatida saqlang
  • FPP fayl menejeriga o'ting va skript faylini yuklang. "Skriptlar" yorlig'iga o'ting va u erda ekanligiga ishonch hosil qiling
  • Vaziyat/nazorat ostida Voqealarga o'ting
  • Yangi tadbir yarating. Voqea identifikatori 1/1, voqea nomi nima bo'lishidan qat'i nazar, effektlar ketma -ketligi YO'Q, voqea skripti
  • "Kirish/chiqish sozlamalari" bo'limiga o'ting va GPIO tetiklarini bosing
  • Tugma biriktirilgan pinni almashtiring. Agar siz tugmani bosganingizda pasayib ketsa, hodisani Falling variantiga qo'ying, agar u faol bo'lsa, hodisani Rising -ga qo'ying.
  • Qayta yuklash tugmachasini bosing va barcha o'zgartirishlar kiritilgandan so'ng paydo bo'ladi

Bularning barchasini bajarganingizdan so'ng, siz namoyishni boshlash uchun tugmani bosishingiz kerak. Voy!

Biroq, bu usul ba'zi cheklovlarga ega. Agar siz pleylist ketayotganda tugmani yana bir marta bossangiz, u 1) hech narsa qilmaydi yoki 2) FPP ishdan chiqadi va siz uni qayta yuklamaguningizcha tugmachangiz bilan hech narsa qilishdan bosh tortadi. Shunday qilib, agar siz shunchaki tugmani buyruqni ko'rsatishning dramatik usuli sifatida ishlatsangiz, yuqoridagi usul sizga kerak bo'ladi.

Agar sizga ko'proq narsa kerak bo'lsa, keyingi bosqichga o'ting

4 -qadam: yanada mustahkam skript

Oxirida men yetib kelgan skript. Skriptni Github -da bu erda ko'rishingiz mumkin: [Gist. Github]

  • Agar kimdir "tunda" tugmachani bossa, u "Tiger Rag" ni ijro etadi (mening qo'shiqim 1) va keyin cheksiz aylanadigan kutish tartibiga o'tadi.
  • Agar Tiger Rag o'ynab turgan paytda tugma bosilsa, u mening ikkinchi qo'shig'im Hallelujani boshlaydi va keyin noma'lum muddatga kutish tartibiga o'tadi.
  • Ammo agar kimdir kunduzi yoki kechqurun tugmani bossa, u bir marta Tiger Rag o'ynaydi va keyin hamma chiroqlarni o'chiradi.

Bu tugmani kunning istalgan vaqtida ishlashiga imkon beradi, lekin chiroqlar doimo yonib turishi shart emas. Qaysi qo'shiq hozirda ijro etilayotganini aniqlash, shu qo'shiqni tugatish va "keyingi" qo'shiqni ijro etish orqali 1 tugmachadan bir nechta qo'shiqlarni ijro etish imkonini beradi.

Siz bu erda FPP-da skriptlar uchun ko'proq manbalarni topishingiz mumkin: https://github.com/FalconChristmas/fpp-scriptsGoogle "bash skript _" murakkabroq mantiq uchun, pastki chiziq siz nima qilmoqchi bo'lsangiz. Siz skriptlaringizni FPP Shell (foydalanuvchi nomi fpp parol falcon) yordamida sinab ko'rishingiz mumkin. Asosiy buyruqlar quyidagicha.

Katta harflarga e'tibor bering !!

  • Capital -P bir marta pleylist o'ynaydi, kichik harf -p uni takrorlaydi.
  • fpp -v 66 Ovoz balandligini 66% ga sozlash
  • fpp -c stop Ko'rgazmani darhol to'xtating
  • fpp -C stop Bu durust ko'rsatuv bo'lishi mumkin
  • fpp -p thisPlaylistName ThisPlaylistName takrorlanadi
  • fpp -P thisPlaylistName ThisPlaylistName -ni bir marta o'ynaydi
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" Skriptni ishga tushiradi. Chapdagi holatda, agar sizda skript nomingiz yuqoridagi o'zgaruvchiga saqlangan bo'lsa, u ishlaydi, masalan thisScriptVariable = "PlayTheSong.sh"

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#Tugma bosilsa ishga tushadi.
#Har bir qo'shiq uchun ikkita pleylist bo'lishi kerak - bittasi
# faqat "birinchi o'yin" sifatida qo'shiq va hech qanday asosiy narsa,
# va boshqasi qo'shiq bilan birinchi ijro va kutish rejimida
# ketma -ketlik "Asosiy" ketma -ketlik sifatida. (Hech bo'lmaganda xohlasangiz
# Men qilayotgan ishni aniq bajarish uchun)
#
#Masalan, agar sizning qo'shig'ingiz Tiger Rag bo'lsa, sizda bo'lishi kerak
# "TigerRag", "TigerRagStandby" va "Standby" pleylistlari
#
###########################################################
# Pleylistlar 6 dan 11 gacha bo'lsa, ishga tushadi
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "Kutish"
# Pleylistlar kunduzi yoki 11dan keyin ishlaydi
DaySong1 = "TigerRag"
DaySong2 = "Halleluja"
DayStandby = "Kutish"
#24 soatlik ochiq va yopiq vaqtlar. Agar siz daqiqalarni xohlasangiz, omad tilaymiz
OnHour = 17
OffHour = 23
###########################################################
# Skriptning jasorati. #
###########################################################
# Hozirgi holatimizni oling (IDLE = 0, O'YIN = 1, xushmuomalalik bilan to'xtatish = 2)
STATUS = $ (fpp -s | kesish -d ',' -f2)
#Ishlayotgan pleylistni oling va 7 ta harfga qisqartiring
PLAYLIST = $ (fpp -s | kesish -d ',' -f4 | kesish -c1-7)
#Bu qo'shiq ijro etilsa "ikkalasi", kutish holatida esa "ketma -ketlik" bo'ladi
#kutish tartibining ishlayotganligini aniqlash uchun ishlatiladi
STANDBYSTRING = $ (fpp -s | kesish -d ',' -f5)
#Taqqoslash uchun pleylistlar nomlarining birinchi 7 harfi
#7 ta harf, shuning uchun "Song1Standby" va "Song1" bir xil bo'ladi
#OK, aslida bu birinchi x harfi bo'lishi kerak va x sizdagi eng qisqa qo'shiq nomi bo'lishi kerak
StandbyPlaylist = $ (echo $ NightStandby | kesib -c1-7)
Song1Playlist = $ (echo $ NightSong1 | kesib -c1-7)
Song2Playlist = $ (echo $ NightSong2 | kesib -c1-7)
STARTITEM = ""
#Harbiy vaqtdagi hozirgi soatni oling
CurrentHour = $ (sana +"%H")
#Ba'zi narsalarning holatini chop eting - "echo" ko'p tillarda "bosma" ga o'xshaydi
#Har xil narsalar kesilgan yoki to'g'ri hisoblanganligini tekshirish uchun foydalidir
echo CurrentHour - $ CurrentHour
echo Ishlayotgan pleylist: $ PLAYLIST
echo Song2Playlist bu: $ Song2Playlist
echo holati: $ STATUS
#Kechasi ovoz balandligini 80% ga o'rnating, aks holda 100%
#Shunday qilib, agar men uxlayotgan bo'lsam, ovoz baland emas
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; keyin
# fpp -v 100
#boshqa
# fpp -v 80
#fi
# Bizda mazmunli narsa borligini tekshiring
agar [-z "$ {STATUS}"]; keyin
echo "Holat qiymatidagi xato"> & 2
chiqish 1
fi
# Joriy holat bo'yicha harakat qiling
$ {STATUS} holat
# Bo'sh
0)
#Kechki vaqt - kutish rejimida 1 -qo'shiqni ijro eting
agar [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; keyin
echo NightSong ijro etish1
fpp -c to'xtatish
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Kunduzi yoki juda kech - 1 -qo'shiqni bir marta ijro eting, keyin chiroqlarni o'chiring
boshqa
echo DaySong o'ynash 1
fpp -c to'xtatish
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# O'YNASH yoki TO'XTIRISH (rejalashtirilgan pleylist tugashi bilan tugma bosilsa chiroyli bo'ladi)
1 | 2)
#Standby ishlamoqda - bu ishlaydi, chunki kutish - bu mening ommaviy axborot vositalaridan tashqari ketma -ketligim
agar ["$ STANDBYSTRING" == "ketma -ketlik"]; keyin
#Kechki vaqt - kutish rejimida 1 -qo'shiqni ijro eting
agar [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; keyin
echo NightSong1 -ni tungi vaqtda ijro etish
fpp -c to'xtatish
fpp -p "$ {NightSong1}"
#Kunduzi yoki kechmi - bir marta yo'lbars latta o'ynang, keyin chiroqni o'chiring
boshqa
o'ynashdan echo PlayingDaySong1
fpp -c to'xtatish
fpp -P "$ {DaySong1}"
fi
#Ko'proq qo'shiqlarni qo'llab -quvvatlash uchun ushbu bo'limdan nusxa ko'chiring va oxirgi qismdagi "Song2Playlist" ni Qo'shiq#Pleylistga o'zgartiring
#Song1 ishlamoqda
elif ["$ PLAYLIST" == "$ Song1Playlist"]; keyin
#Kechki payt - Hallelujani kutish rejimida o'ynang
agar [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; keyin
echo Tiger Rag dan HallelujahStandby o'ynayapti
fpp -c to'xtatish
fpp -p "$ {NightSong2}"
#Kunduzi yoki juda kech - Song2 ni o'ynang, keyin chiroqni o'chiring
boshqa
echo Yo'lbars lattasidan Hallelujani o'ynab yugurmoqda
fpp -c to'xtatish
fpp -P "$ {DaySong2}"
fi
#SON SO'NGI QO'SHIQ YUQOR - STANDBY BO'LING
elif ["$ PLAYLIST" == "$ Song2Playlist"]; keyin
#Kecha - kutish rejimida o'ynang
agar [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; keyin
echo Takrorlashda kutish rejimida o'ynash
fpp -c to'xtatish
fpp -p "$ {NightStandby}"
#Kunduzi yoki juda kech - bir marta kutish rejimida o'ynang
boshqa
echo bir marta kutish rejimida o'ynash
fpp -c to'xtatish
fpp -P "$ {DayStandby}"
fi
boshqa
echo Negadir oxirgi marta bajarilgan.
fpp -c to'xtatish
fpp -P "$ {DaySong1}"
fi
;;
esak

rawButtonSuperScript.sh ni GitHub tomonidan ❤ bilan joylashtirilganini ko'ring

5 -qadam: (Ixtiyoriy) tugmachaning tashqi ko'rinishi

Men Makerspace orqali Clemson -dagi lazer kesgichdan foydalanishim mumkin, shuning uchun men tezda kesish+chizish uchun dizaynni chizdim. Mening tugmachamning o'rtasida teshik bor, Rojdestvo shriftida "Menga suring" deb yozilgan va tugma atrofida qor parchasi bor. Men yog'ochni oq rangga bo'yadim, so'ngra uni lenta bilan o'rab qo'ydim (shuning uchun lazerni kesish kerak bo'lmagan qismlar kuyib ketmasligi uchun). Men ishlatgan fayl biriktirilgan.

Tavsiya: