विषयसूची:

एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: 5 कदम
एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: 5 कदम

वीडियो: एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: 5 कदम

वीडियो: एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: 5 कदम
वीडियो: मैंने एक घर पर 1,000,000 क्रिसमस लाइट्स लगाई (विश्व रिकॉर्ड) 2024, जुलाई
Anonim
एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें
एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें

संगीत के साथ समन्वयित क्रिसमस लाइट शो चलाते समय आप एक बटन दबाकर शो शुरू करना चाह सकते हैं। यह ट्यूटोरियल केवल एक शो के लिए लागू होता है जिसे रास्पबेरी पाई पर चलने वाले फाल्कन पाई प्लेयर (FPP) के माध्यम से नियंत्रित किया जाता है। यदि आप FPP चला रहे हैं तो आप शायद Falcon नियंत्रकों का उपयोग कर रहे हैं और अपने शो को अनुक्रमित करने के लिए xLights या LightORama का उपयोग कर रहे हैं। यदि उन शब्दों में से कोई भी आपके लिए कुछ भी मायने नहीं रखता है, तो यह ट्यूटोरियल शायद आपके सिर के ऊपर थोड़ा सा है और आपको इस विकी को पढ़कर शुरू करना चाहिए https://auschristmaslighting.com/wiki/ और नीचे दिए गए फेसबुक समूह में शामिल होना चाहिए

  • xLights:
  • सामान्य उन्नत क्रिसमस रोशनी:
  • फाल्कन पाई प्लेयर:
  • संलग्नक/प्रोप विचार साझाकरण:
  • "विशेष रूप से xLights या LOR संबंधित नहीं":
  • xLights हॉलिडे लाइट विक्रेता:
  • डू इट योरसेल्फ क्रिसमस:

चरण 1: भागों की सूची

आपको निम्नलिखित मदों की आवश्यकता होगी:

  • एक बटन। मैंने इसके चारों ओर एक एलईडी रिंग लाइट के साथ इसका इस्तेमाल किया: [अमेज़ॅन]
  • एक रोकनेवाला। अधिमानतः 200Ω या अधिक (इनमें से 2 यदि आप एलईडी बटन का उपयोग कर रहे हैं) मानक 1/4W या 1/8W ठीक है
  • कनेक्टर तार। आपको जिस गेज का उपयोग करना चाहिए वह इस बात पर निर्भर करता है कि बटन आपके पाई से कितनी दूर होगा। मैंने अपने पाई से लगभग 10 फीट के लिए 18awg तार का उपयोग किया और इसने त्रुटिपूर्ण रूप से काम किया
  • तार को पाई के GPIO पिन से जोड़ने का एक तरीका। आप ब्रेकआउट ब्रेडबोर्ड के साथ एक रिबन केबल का उपयोग कर सकते हैं, या आप कुछ महिला कनेक्टरों का उपयोग कर सकते हैं जैसे मैंने किया। हमें केवल 3 तार चाहिए - ग्राउंड, 5V, और बटन के लिए डेटा। [अमेज़ॅन]
  • (वैकल्पिक) आसान रखरखाव के लिए प्रत्येक छोर पर एक वाटरप्रूफ कनेक्टर। मैं 3-पिन समुद्री ग्रेड कनेक्टर का उपयोग करता हूं: [अमेज़ॅन]
  • (वैकल्पिक) हीट हटना बट कनेक्टर [अमेज़ॅन]

चरण 2: वायरिंग आरेख

वायरिंग का नक्शा
वायरिंग का नक्शा
वायरिंग का नक्शा
वायरिंग का नक्शा
वायरिंग का नक्शा
वायरिंग का नक्शा
वायरिंग का नक्शा
वायरिंग का नक्शा

चित्र एक शामिल एलईडी के बिना एक बटन के लिए एक वायरिंग आरेख दिखाते हैं, और एक एलईडी के साथ एक बटन। जिस तरह से मैंने वायरिंग आरेख सेट किया है, वह आपको केवल 3 तारों के साथ एक बटन और एक लाइट (लगातार चालू) चलाने की अनुमति देता है।

GPIO पिन के लिए, pi पर कोई भी GPIO पिन चुनें। +5V और Gnd पिन का भी उपयोग करें। आप शायद 3.3V पिन का उपयोग करके दूर हो सकते हैं, लेकिन कई फीट के तार में वोल्टेज ड्रॉप सिग्नल को अविश्वसनीय बना सकता है या एलईडी को हल्का करने के लिए पर्याप्त नहीं हो सकता है।

नोट: 3-पिन कनेक्टर उस छेद के माध्यम से फिट नहीं होगा जिसे आपको एलईडी रिंग लाइट वाले बटन के लिए ड्रिल करने की आवश्यकता है। इसलिए अपने फेसप्लेट में बटन लगाने के बाद कनेक्टर को अटैच करें।

चरण 3: फाल्कन पाई प्लेयर बेसिक सेटअप

नोट - FPP को लगातार अपडेट किया जा रहा है, और यह पूरी तरह से संभव है कि वे अपने स्क्रिप्टिंग समर्थन में सुधार करेंगे या वे "पुश बटन टू स्टार्ट" को एक डिफ़ॉल्ट सुविधा के रूप में शामिल करेंगे जिसके लिए कम प्रोग्रामिंग की आवश्यकता होती है।

मैंने शुरू में सब कुछ सेट करने के लिए उपरोक्त वीडियो का अनुसरण किया।

मुझे वीडियो उबाऊ और धीमे लगते हैं, इसलिए इसका सारांश यहां दिया गया है:

  • फ़ाइल प्रबंधक का उपयोग करके अपने अनुक्रम को fpp में आयात करें
  • इसमें अनुक्रम के साथ एक प्लेलिस्ट बनाएं। अगले चरणों के लिए प्लेलिस्ट को "playme" कहा जाएगा
  • एक खाली नोटपैड फ़ाइल खोलें और निम्न टाइप करें:

    • #!/बिन/श
    • एफपीपी-पी प्लेमे
  • इसे अपने कंप्यूटर पर.sh फ़ाइल के रूप में सहेजें
  • FPP में फ़ाइल प्रबंधक पर जाएँ और अपनी स्क्रिप्ट फ़ाइल अपलोड करें। "स्क्रिप्ट" टैब पर जाएं और सुनिश्चित करें कि यह वहां है
  • स्थिति/नियंत्रण के अंतर्गत ईवेंट पर जाएं
  • एक नया ईवेंट बनाएं। इवेंट आईडी 1/1, इवेंट का नाम जो भी हो, प्रभाव अनुक्रम कोई नहीं, इवेंट स्क्रिप्ट
  • इनपुट/आउटपुट सेटअप के अंतर्गत जाएं और GPIO ट्रिगर्स पर क्लिक करें
  • उस पिन को टॉगल करें जिससे आपका बटन जुड़ा हुआ है। यदि बटन दबाने पर यह कम हो जाता है तो ईवेंट को फ़ॉलिंग विकल्प पर रखें, यदि यह सक्रिय उच्च है तो ईवेंट को राइजिंग पर रखें।
  • आपके द्वारा सभी परिवर्तन करने के बाद दिखाई देने वाली चेतावनी द्वारा रिबूट बटन पर क्लिक करें

यह सब करने के बाद, आपको अपना शो शुरू करने के लिए बटन दबाने में सक्षम होना चाहिए। वू हू!

हालाँकि, इस पद्धति की कुछ सीमाएँ हैं। यदि आप प्लेलिस्ट के चलते समय फिर से बटन दबाते हैं, तो यह 1) कुछ भी नहीं करेगा या 2) FPP को क्रैश कर देगा और आपके बटन के साथ कुछ भी करने से मना कर देगा जब तक कि आप इसे रीबूट नहीं करते। इसलिए यदि आप केवल एक बटन का उपयोग नाटकीय तरीके से कमांड पर अपना शो चलाने के लिए कर रहे हैं, तो उपरोक्त विधि आपके लिए आवश्यक होगी।

अगर आपको कुछ और चाहिए, तो अगले चरण पर जाएं

चरण 4: एक और मजबूत स्क्रिप्ट

नीचे वह स्क्रिप्ट है जिस पर मैं अंततः पहुंचा। आप यहाँ Github पर स्क्रिप्ट देख सकते हैं: [Gist. Github]

  • यदि कोई "रात" घंटों के दौरान बटन दबाता है तो वह टाइगर राग (मेरा गीत 1) बजाएगा और फिर स्टैंडबाय सीक्वेंस पर जाएगा जो अनंत रूप से लूप करता है।
  • यदि टाइगर राग बजते समय बटन दबाया जाता है तो यह मेरा दूसरा गीत, हलेलुजाह शुरू करता है, और फिर अनिश्चित काल के लिए स्टैंडबाय अनुक्रम में चला जाएगा।
  • लेकिन अगर कोई दिन में या बहुत देर रात को बटन दबाता है तो वह एक बार टाइगर राग बजाएगा और फिर सभी लाइट बंद कर देगा।

यह बटन को दिन के किसी भी समय काम करने की अनुमति देता है लेकिन रोशनी हर समय चालू नहीं होती है। यह 1 बटन से कई गानों को चलाने की अनुमति देता है, यह पहचान कर कि कौन सा गाना वर्तमान में चल रहा है, उस गाने को समाप्त कर रहा है, और "अगला" गाना चला रहा है।

आप यहां FPP में स्क्रिप्टिंग के लिए और अधिक संसाधन पा सकते हैं: https://github.com/FalconChristmas/fpp-scriptsअधिक जटिल तर्क के लिए केवल Google "bash script _" जहां अंडरस्कोर वह है जो आप करने का प्रयास कर रहे हैं। आप एफपीपी शेल (उपयोगकर्ता नाम एफपीपी पासवर्ड फाल्कन) का उपयोग करके अपनी स्क्रिप्ट का परीक्षण कर सकते हैं मूल आदेश इस प्रकार हैं।

पूंजीकरण पर ध्यान दें !!

  • कैपिटल -पी एक बार प्लेलिस्ट चलाएगा, लोअरकेस -पी इसे दोहराएगा।
  • fpp -v ६६ वॉल्यूम को ६६% पर सेट करें
  • fpp -c स्टॉप शो तुरंत बंद करो
  • fpp -C स्टॉप यह हो सकता है स्टॉप शो इनायत से हो
  • fpp -p thisPlaylistName इस PlaylistName को बार-बार चलाता है (इसलिए परिचय गीत एक बार बजता है, फिर मुख्य सामग्री अनिश्चित काल तक दोहराई जाएगी।
  • fpp -P thisPlaylistName इस प्लेलिस्टनाम को एक बार चलाएं
  • इवेंटस्क्रिप्ट "${MEDIADIR}/scripts/${thisScriptVariable}" एक स्क्रिप्ट चलाता है। बाईं ओर के मामले में यह काम करता है यदि आपने अपनी स्क्रिप्ट का नाम कहीं ऊपर एक चर में सहेजा है, जैसे thisScriptVariable=“PlayTheSong.sh”

ButtonSuperScript.sh

#!/बिन/श
###########################################################
#बटन दबाने पर चलाने के लिए।
#आपके पास प्रत्येक गीत के लिए दो प्लेलिस्ट होनी चाहिए - एक के साथ
# केवल गीत "फर्स्ट प्ले" के रूप में और मुख्य रूप से कुछ भी नहीं,
# और दूसरा गाने के साथ पहला प्ले और आपका स्टैंडबाय
# अनुक्रम "मुख्य" अनुक्रम के रूप में। (कम से कम अगर आप चाहते हैं
# ठीक वही करने के लिए जो मैं कर रहा हूं)
#
#उदाहरण के लिए, यदि आपका गाना टाइगर राग है, तो आपके पास होना चाहिए
# प्लेलिस्ट "TigerRag", "TigerRagStandby", और "Standby"
#
###########################################################
# प्लेलिस्ट चलने के लिए अगर यह 6 और 11 के बीच है
NightSong1="TigerRagStandby"
NightSong2="हालेलुजाह स्टैंडबाय"
नाइटस्टैंडबाय = "स्टैंडबाय"
# प्लेलिस्ट दिन के दौरान या 11. के बाद चलने के लिए
DaySong1 = "टाइगरराग"
DaySong2 = "हालेलुजाह"
डेस्टैंडबाय = "स्टैंडबाय"
24 घंटे के समय में #चालू और बंद समय। यदि आप मिनट चाहते हैं, शुभकामनाएँ
घंटे=17
ऑफ आवर=23
###########################################################
#स्क्रिप्ट की हिम्मत। #
###########################################################
# हमारी वर्तमान स्थिति प्राप्त करें (IDLE = 0, PLAYING = 1, शान से रोकना = 2)
स्थिति = $ (एफपीपी-एस | कट-डी', '-एफ 2)
#चल रही प्लेलिस्ट प्राप्त करें और 7 अक्षरों में ट्रिम करें
PLAYLIST=$(fpp -s | cut -d', ' -f4 | cut -c1-7)
#यह "दोनों" होगा अगर यह एक गाना बजा रहा है, और "अनुक्रम" अगर यह स्टैंडबाय है
#यह निर्धारित करने के लिए उपयोग किया जाता है कि स्टैंडबाय अनुक्रम चल रहा है या नहीं
STANDBYSTRING=$(fpp -s | cut -d', '-f5)
# तुलना के लिए प्लेलिस्ट के नामों के पहले 7 अक्षर
#सिर्फ 7 अक्षर ताकि "Song1Standby" और "Song1" एक जैसे हों
#ठीक है तो वास्तव में यह पहला x अक्षर होना चाहिए और x आपके पास सबसे छोटा गीत नाम होना चाहिए
स्टैंडबायप्लेलिस्ट=$(गूंज $NightStandby|कट-सी1-7)
Song1Playlist=$(गूंज $NightSong1 | कट -c1-7)
Song2Playlist=$(गूंज $NightSong2 | कट -c1-7)
STARTITEM=""
#सैन्य समय में वर्तमान समय प्राप्त करें
करंटआवर = $ (दिनांक + "% एच")
#कुछ चीजों की स्थिति प्रिंट करें - अधिकांश भाषाओं में "इको" "प्रिंट" जैसा होता है
# परीक्षण के लिए उपयोगी है कि क्या विभिन्न चीजों को सही ढंग से छंटनी या गणना की जाती है
इको करंट आवर $CurrentHour. है
इको रनिंग प्लेलिस्ट है: $PLAYLIST
इको सॉन्ग2प्लेलिस्ट है: $Song2Playlist
इको स्थिति है: $STATUS
#रात में आवाज को ८०% पर सेट करें, नहीं तो १००%
#ताकि अगर मैं सो रहा हूं तो यह उतना जोर से नहीं है
#if [$CurrentHour -lt $OffHour -a $CurrentHour -ge 11]; फिर
# एफपीपी -वी 100
#अन्यथा
# एफपीपी -वी 80
#fi
# जांचें कि हमें कुछ सार्थक मिला है
अगर [-z"${STATUS}"];तो
गूंज "स्थिति मान के साथ त्रुटि">&2
बाहर निकलें 1
फाई
#वर्तमान स्थिति पर कार्रवाई
केस${STATUS}में
# बेकार
0)
#रात का समय - स्टैंडबाय के साथ Song1 चलाएं
अगर [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];तो
इको प्लेइंग नाइटसॉन्ग1
एफपीपी-सी स्टॉप
fpp -p "${NightSong1}"${STARTITEM}
#दिन का समय या वास्तव में देर से - गाना 1 एक बार बजाएं फिर लाइट बंद कर दें
अन्यथा
इको प्लेइंग डेसॉन्ग1
एफपीपी-सी स्टॉप
fpp -P "${DaySong1}"${STARTITEM}
फाई
;;
# शानदार ढंग से खेलना या रोकना (सुंदर तब होता है जब एक अनुसूचित प्लेलिस्ट समाप्त होने पर बटन दबाया जाता है)
1 | 2)
#स्टैंडबाय चल रहा है - यह काम करता है क्योंकि स्टैंडबाय मेरा एकमात्र गैर-मीडिया अनुक्रम है
अगर ["$STANDBYSTRING"=="अनुक्रम"];तो
#रात का समय - स्टैंडबाय के साथ Song1 चलाएं
अगर [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];तो
रात के समय के लिए इको प्लेइंग नाइटसॉन्ग1
एफपीपी-सी स्टॉप
fpp -p "${NightSong1}"
#दिन का समय या वास्तव में देर से - एक बार बाघ का चीर-फाड़ खेलें फिर लाइट बंद कर दें
अन्यथा
इको PlayingDaySong1 खेलने से
एफपीपी-सी स्टॉप
एफपीपी-पी "${DaySong1}"
फाई
#अधिक गीतों का समर्थन करने के लिए, इस अनुभाग को कॉपी करें और अंतिम अनुभाग में "Song2Playlist" को गीत#प्लेलिस्ट में बदलें
#Song1 चल रहा है
elif ["$PLAYLIST"=="$Song1Playlist"];फिर
#रात का समय - स्टैंडबाय के साथ हलेलुजाह खेलें
अगर [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];तो
टाइगर रैग से इको बजाना हालेलुजाह स्टैंडबाय चल रहा है
एफपीपी-सी स्टॉप
fpp -p "${NightSong2}"
#दिन का समय या वास्तव में देर से - Song2 एक बार चलाएं फिर लाइट बंद कर दें
अन्यथा
टाइगर रैग से एक बार हेललुजाह बजाना गूंज रहा है
एफपीपी-सी स्टॉप
एफपीपी-पी "${DaySong2}"
फाई
#पिछला गाना चल रहा है - स्टैंडबाय चलाएं
elif ["$PLAYLIST"=="$Song2Playlist"];फिर
#रात का समय - लूप पर स्टैंडबाय खेलें
अगर [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];तो
इको प्लेइंग स्टैंडबाय ऑन रिपीट
एफपीपी-सी स्टॉप
fpp -p "${NightStandby}"
#दिन का समय या वास्तव में देर से - एक बार स्टैंडबाय खेलें
अन्यथा
इको प्लेइंग स्टैंडबाय वंस
एफपीपी-सी स्टॉप
fpp -P "${DayStandby}"
फाई
अन्यथा
गूंज किसी कारण से अंतिम अन्य निष्पादित किया गया।
एफपीपी-सी स्टॉप
एफपीपी-पी "${DaySong1}"
फाई
;;
esac

देखें rawButtonSuperScript.sh गिटहब द्वारा ❤ के साथ होस्ट किया गया

चरण 5: (वैकल्पिक) बटन के लिए फेसप्लेट

मेरे पास मेकर्सस्पेस के माध्यम से क्लेम्सन में एक लेजर कटर तक पहुंच है, इसलिए मैंने जल्दी से कट + ईच करने के लिए एक डिज़ाइन तैयार किया। मेरे बटन के बीच में एक छेद है, क्रिसमस फ़ॉन्ट में शब्द "पुश मी" और बटन के चारों ओर एक हिमपात का एक टुकड़ा है। मैंने कुछ लकड़ी को सफेद रंग से स्प्रे किया और फिर इसे मास्किंग टेप में ढक दिया (ताकि लेजर कटर उन हिस्सों को झुलसा न दे जिन्हें मैं खोदना नहीं चाहता)। मेरे द्वारा उपयोग की गई फ़ाइल संलग्न है।

सिफारिश की: