विषयसूची:
- चरण 1: भागों की सूची
- चरण 2: वायरिंग आरेख
- चरण 3: फाल्कन पाई प्लेयर बेसिक सेटअप
- चरण 4: एक और मजबूत स्क्रिप्ट
- चरण 5: (वैकल्पिक) बटन के लिए फेसप्लेट
वीडियो: एक बटन के साथ अपना क्रिसमस लाइट शो शुरू करें: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
संगीत के साथ समन्वयित क्रिसमस लाइट शो चलाते समय आप एक बटन दबाकर शो शुरू करना चाह सकते हैं। यह ट्यूटोरियल केवल एक शो के लिए लागू होता है जिसे रास्पबेरी पाई पर चलने वाले फाल्कन पाई प्लेयर (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: (वैकल्पिक) बटन के लिए फेसप्लेट
मेरे पास मेकर्सस्पेस के माध्यम से क्लेम्सन में एक लेजर कटर तक पहुंच है, इसलिए मैंने जल्दी से कट + ईच करने के लिए एक डिज़ाइन तैयार किया। मेरे बटन के बीच में एक छेद है, क्रिसमस फ़ॉन्ट में शब्द "पुश मी" और बटन के चारों ओर एक हिमपात का एक टुकड़ा है। मैंने कुछ लकड़ी को सफेद रंग से स्प्रे किया और फिर इसे मास्किंग टेप में ढक दिया (ताकि लेजर कटर उन हिस्सों को झुलसा न दे जिन्हें मैं खोदना नहीं चाहता)। मेरे द्वारा उपयोग की गई फ़ाइल संलग्न है।
सिफारिश की:
ब्रीदिंग क्रिसमस ट्री - अरुडिनो क्रिसमस लाइट कंट्रोलर: 4 कदम
ब्रीदिंग क्रिसमस ट्री - अरुडिनो क्रिसमस लाइट कंट्रोलर: यह अच्छी खबर नहीं है कि क्रिसमस से पहले मेरे 9-फीट प्री-लिट कृत्रिम क्रिसमस ट्री का कंट्रोल बॉक्स टूट गया, और निर्माता प्रतिस्थापन भागों को प्रदान नहीं करता है। यह अचूक दिखाता है कि कैसे अपने खुद के एलईडी लाइट ड्राइवर और नियंत्रक का उपयोग Ar
STM32CubeMX बटन रुकावट के साथ शुरू होता है: 5 कदम
STM32CubeMX बटन डिबेट विथ इंटरप्ट: हाय, इस ट्यूटोरियल में मैं बटन बाउंस को रोकने के लिए अपना सरल समाधान देने की कोशिश करूंगा जो कि बहुत गंभीर मुद्दा है। इंटरनेट पर इस मुद्दे के समाधान की पेशकश करने के लिए कई वीडियो हैं, लेकिन उनमें से बाहरी रुकावट के लिए नहीं हैं। इन सभी वीडियो में बटन
[HASS.IO] $100 से कम में कोडिंग के बिना अपना स्मार्ट होम बनाना शुरू करें: 6 कदम
[HASS.IO] 100 डॉलर से कम में कोडिंग के बिना अपना स्मार्ट होम बनाना शुरू करें: हाल ही में मैं गड़बड़ कर रहा हूं और सफलतापूर्वक अपने घर को "मूर्खतापूर्ण" कम कर रहा हूं। इसलिए मैं साझा करने जा रहा हूं कि कम कीमत के टैग के साथ एक स्मार्ट होम सिस्टम कैसे बनाया जाए, उच्च संगतता जो निर्बाध और स्थिर रूप से चलेगी
एवीआर माइक्रोकंट्रोलर। एक पुश बटन स्विच का उपयोग करके एलईडी को टॉगल करें। पुश बटन डिबगिंग।: 4 कदम
एवीआर माइक्रोकंट्रोलर। एक पुश बटन स्विच का उपयोग करके एलईडी को टॉगल करें। पुश बटन डिबाउंसिंग: इस खंड में, हम सीखेंगे कि एक बटन स्विच से इनपुट के अनुसार तीन एलईडी की स्थिति को टॉगल करने के लिए ATMega328PU के लिए प्रोग्राम C कोड कैसे बनाया जाए। साथ ही, हमने 'स्विच बाउंस' की समस्या का समाधान खोजा है। आमतौर पर, हम
रास्पबेरी के साथ अपना पहला प्रोजेक्ट शुरू करें: ब्लिंकिंग एलईडी: 4 कदम
रास्पबेरी के साथ अपना पहला प्रोजेक्ट शुरू करें: ब्लिंकिंग एलईडी: इस प्रोजेक्ट में मैं आपको दिखाने जा रहा हूं कि एलईडी ब्लिंक बनाने के लिए रास्पबेरी पाई को कैसे प्रोग्राम किया जाए, यदि आपने लगभग रास्पबेरी पाई खरीदी है और आपको कुछ भी नहीं पता है कि कहां से शुरू करें, तो यह ट्यूटोरियल इसमें फिट बैठता है। आपके रास्पबेरी पाई के अलावा रास्पियन चल रहा है, y