विषयसूची:
- चरण 1: आपको क्या चाहिए
- चरण 2: सर्किट
- चरण 3: कोड
- चरण 4: संलग्नक
- चरण 5: Minecraft फोर्ज और सीरियल क्राफ्ट मोड
- चरण 6: सीरियल क्राफ्ट मोड का उपयोग करना
वीडियो: Minecraft क्रीपर डिटेक्टर: 6 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
AllwinedesignsAllwine Designs द्वारा लेखक द्वारा अधिक का पालन करें:
के बारे में: मैं अपने पूरे जीवन में एक सॉफ्टवेयर डेवलपर रहा हूं, कॉलेज में 3 डी ग्राफिक्स पर ध्यान देने के साथ कंप्यूटर विज्ञान का अध्ययन किया, ड्रीमवर्क्स एनिमेशन के लिए एक प्रभाव कलाकार था और यहां बच्चों और वयस्कों को तकनीक सिखाई है … सभी वाइन डिजाइन के बारे में अधिक »
कुछ वर्षों के लिए, मैंने Bozeman के बच्चों के संग्रहालय को उनके STEAMlab के लिए पाठ्यक्रम विकसित करने में मदद की। मैं हमेशा बच्चों को इलेक्ट्रॉनिक्स और कोडिंग से जोड़ने के लिए मजेदार तरीकों की तलाश में रहता था। Minecraft बच्चों को दरवाजे पर लाने का एक आसान तरीका है और मज़ेदार और शैक्षिक तरीकों से इसका उपयोग करने के लिए बहुत सारे संसाधन हैं। हालाँकि, Minecraft और इलेक्ट्रॉनिक्स को मिलाना मुश्किल था। Arduino प्रोजेक्ट्स को Minecraft के साथ एकीकृत करने में मदद करने के लिए, मैंने SerialCraft नाम से अपना खुद का Minecraft मॉड विकसित करना समाप्त कर दिया। विचार यह था कि आप धारावाहिक संचार का उपयोग करने वाले किसी भी उपकरण को हुक कर सकते हैं और मेरे मॉड का उपयोग करके संदेश भेज सकते हैं और Minecraft से संदेश प्राप्त कर सकते हैं। अधिकांश Arduinos USB पर सीरियल संचार करने में सक्षम हैं, इसलिए एक सर्किट को वायर करना और सीरियल कनेक्शन पर कुछ डेटा भेजना आसान है। मैंने कंट्रोलर किट बनाए जिन्हें बच्चे अपने चरित्र को नियंत्रित करने, ट्रिगर करने और रेडस्टोन संकेतों का जवाब देने के लिए प्रोग्राम कर सकते हैं, और कुछ घटनाओं जैसे कि कम जीवन या जब एक लता निकट हो, के बारे में सचेत करने के लिए एल ई डी को ब्लिंक करने के लिए। यह निर्देशयोग्य क्रीपर अलर्ट कार्यक्षमता पर केंद्रित है और इसे Adafruit Neopixels और एक लेजर कट ऐक्रेलिक और प्लाईवुड बाड़े का उपयोग करके एक कदम आगे ले जाता है। क्रीपर डिटेक्टर आपको निकटतम लता के बारे में बहुमूल्य जानकारी देने के लिए 8 एलईडी नियोपिक्सल स्टिक का उपयोग करता है। जब सभी एलईडी बंद हो जाती हैं, तो इसका मतलब है कि 32 ब्लॉक के भीतर कोई लता नहीं है। जब सभी एल ई डी चालू होते हैं (वे भी चमकते रहेंगे), तो आप लता के 3 ब्लॉक विस्फोट त्रिज्या के भीतर होते हैं (जिस त्रिज्या पर लता रुकेगी, उसके फ्यूज को हल्का करें और विस्फोट करें)। बीच में कुछ भी आपको अनुमान लगा सकता है कि एक लता आपसे कितनी दूर है। जब 8 में से 4 एलईडी जलाई जाती हैं, तो आप एक लता से लगभग 16 ब्लॉक दूर होते हैं, जो कि वह सीमा है जिस पर यदि कोई लता आपको देखता है, तो वह हमला करेगा। जब आप लता (7 ब्लॉक) के ब्लास्ट रेडियस के भीतर होंगे तो एल ई डी फ्लैश करना शुरू कर देंगे। यह त्रिज्या भी है कि यदि आप बाहर निकलते हैं, तो लता अपने फ्यूज को बंद कर देगी और आपके पीछे आती रहेगी। इस ज्ञान के साथ, आप किसी भी अप्रत्याशित लता के हमले से बचने या पास के किसी भी लता का शिकार करने में सक्षम होना चाहिए!
इस निर्देशयोग्य में, हम आपको अपना खुद का क्रीपर डिटेक्टर बनाने के लिए और सीरियलक्राफ्ट मॉड को कैसे स्थापित और उपयोग करना है, जो आपको अपने Arduino प्रोजेक्ट्स के साथ Minecraft को इंटरफ़ेस करने की अनुमति देता है। यदि आप इसे पसंद करते हैं, तो कृपया इसके लिए Minecraft प्रतियोगिता और एपिलॉग चैलेंज में मतदान करने पर विचार करें। आएँ शुरू करें!
चरण 1: आपको क्या चाहिए
मैंने अपने द्वारा उपयोग किए गए सटीक उत्पादों से लिंक करने के लिए अपनी पूरी कोशिश की है, लेकिन कभी-कभी मुझे अमेज़ॅन पर सबसे नज़दीकी चीज़ मिलती है। कभी-कभी बड़ी मात्रा में ऑनलाइन खरीदारी से बचने के लिए अपने स्थानीय इलेक्ट्रॉनिक्स स्टोर या हार्डवेयर स्टोर से कुछ चीजें लेना सबसे अच्छा होता है।
- मैंने एक 8 LED RGBW NeoPixel स्टिक का उपयोग किया, लेकिन मैंने सफ़ेद (W) LED का उपयोग बिल्कुल नहीं किया, इसलिए एक 8 LED RGB NeoPixel स्टिक करेगा। आप इसे किसी भी RGB या RGBW NeoPixel उत्पाद के लिए स्थानापन्न कर सकते हैं, लेकिन कुछ शक्ति विचार हैं जिन पर हम अगले चरण में चर्चा करेंगे और कोड परिवर्तन जो मैं यहां आने पर इंगित करूंगा। आप एक ऐसा चुनना चाह सकते हैं जिसमें सोल्डरिंग की आवश्यकता न हो, लेकिन मैं आपको दिखाऊंगा कि मैंने स्टिक पर तारों को कैसे मिलाया।
- एक माइक्रोकंट्रोलर और उसका मिलान करने वाला यूएसबी केबल। मैंने SparkFun के RedBoard का उपयोग किया जो एक Arduino Uno क्लोन है। यह एक मिनी बी यूएसबी कनेक्टर का उपयोग करता है (मुझे यकीन नहीं है कि यह अमेज़ॅन पर इतना महंगा क्यों है, आप इसे सीधे स्पार्कफुन से प्राप्त कर सकते हैं, या अमेज़ॅन पर एक विकल्प के लिए जा सकते हैं, जैसे यह एक)। हम कोडिंग को सरल बनाने के लिए एक Arduino लाइब्रेरी का उपयोग करेंगे, लेकिन यह केवल मूल सीरियल संचार का उपयोग करता है, इसलिए लाइब्रेरी को किसी भी माइक्रोकंट्रोलर पर काम करने के लिए पोर्ट किया जा सकता है जो USB सीरियल कर सकता है। लगभग कोई भी Arduino करेगा। सुनिश्चित करें कि इसमें यूएसबी सीरियल है (अधिकांश करते हैं, लेकिन कुछ मूल ट्रिंकेट की तरह नहीं हैं)।
- तार, सोल्डरिंग आयरन और सोल्डर (वायर स्ट्रिपर्स और तीसरा हाथ भी काम आता है)। हम NeoPixel स्टिक में टांका लगाने वाले तार होंगे ताकि इसे Arduino में प्लग किया जा सके। ये अनावश्यक हो सकते हैं यदि आप एक NeoPixel उत्पाद चुनते हैं जिसमें पहले से ही तार जुड़े हुए हैं या एक माइक्रोकंट्रोलर है जो बोर्ड पर NeoPixels के साथ आता है (जैसे कि सर्किट प्लेग्राउंड एक्सप्रेस, जिसे मैंने भविष्य के चरण में कोड शामिल किया है)। 8 एलईडी स्टिक का फॉर्म फैक्टर वह है जिसके लिए मैंने अपने क्रीपर डिटेक्टर के बाड़े को डिजाइन किया है, इसलिए यदि आप एक अलग फॉर्म फैक्टर के लिए जाते हैं तो आपको संशोधन करना होगा या बिना बाड़े के जाना होगा।
- संलग्नक सामग्री। मैंने 1/8 "फ्रॉस्टेड ऐक्रेलिक, 1/8" स्पष्ट ऐक्रेलिक और 1/8 "प्लाईवुड का उपयोग किया था जिसे मैंने एक साथ रखने के लिए लेजर कट और एम 3 मशीन स्क्रू और नट्स का उपयोग किया था। मैंने नियोपिक्सल स्टिक को बाड़े में जकड़ने के लिए कुछ #2 x 1/4" लकड़ी के शिकंजे का भी इस्तेमाल किया। संलग्नक अनावश्यक है, लेकिन निश्चित रूप से कुछ अतिरिक्त क्रीपर फ्लेयर जोड़ता है। मेरे बाड़े को केवल NeoPixels के लिए डिज़ाइन किया गया था, माइक्रोकंट्रोलर को नहीं। अगर आप चाहते हैं कि यह पूरी तरह से स्वयं निहित हो, आपको संशोधन करने की आवश्यकता होगी!
- एक Minecraft खाता, Minecraft Forge 1.7.10 और SerialCraft (मॉड और Arduino लाइब्रेरी)। क्रीपर डिटेक्टर सीरियल क्राफ्ट मॉड पर निर्भर करता है, जो केवल Minecraft 1.7.10 पर Minecraft Forge के साथ काम करता है। हम चर्चा करेंगे कि इन्हें कैसे डाउनलोड किया जाए और भविष्य के चरणों में इन्हें कैसे सेट किया जाए।
- Arduino IDE या Arduino Create और Arduino Create पर एक खाता प्लगइन (मैं Arduino Create का उपयोग करने की सलाह देता हूं क्योंकि आप सीधे मेरे Arduino पर जा सकेंगे स्केच बनाएं और संकलित करें और इसे वहां से अपलोड करें)।
चरण 2: सर्किट
सर्किट बहुत सरल है, सिर्फ 3 तार, NeoPixel स्टिक और एक Arduino। सभी Adafruit NeoPixels का अपना कंट्रोलर होता है जो सिंगल डेटा वायर को किसी भी संख्या में जंजीर एलईडी को नियंत्रित करने की अनुमति देता है। मैंने इसे अपने Arduino पर 12 पिन करने के लिए जोड़ा।
अन्य दो तार बिजली और जमीन के लिए हैं। NeoPixels को पावर देने के लिए, हमें 5V पावर स्रोत की आवश्यकता होगी। हमें यह सुनिश्चित करने की आवश्यकता है कि हमारा शक्ति स्रोत पर्याप्त करंट प्रदान करने में सक्षम है, हालाँकि। प्रत्येक NeoPixel पूर्ण चमक पर 60mA (RGBW LED के साथ 80mA) तक खींच सकता है। 8 एलईडी के साथ, इसका मतलब है कि हमारा अधिकतम करंट 480mA (RGBW LED के साथ 640mA) है। Arduino को चालू होने में ~ 40mA लगता है। पहली नज़र में, ऐसा लगता है कि हमें बाहरी बिजली की आपूर्ति का उपयोग करने की आवश्यकता होगी। USB अधिकतम 500mA की अनुमति देता है जिसे हम अधिक कर सकते हैं यदि हम अपने सभी LED को अधिकतम (480+40=520 RGB LED के साथ या 640+40=680 RGBW LED के साथ) पर सेट करते हैं। सौभाग्य से, हमें कभी भी एल ई डी को उनकी पूर्ण चमक में बदलने की आवश्यकता नहीं होगी (पूर्ण चमक बहुत अंधा कर रही है), इसलिए हम अपने Arduino के 5V रेल का उपयोग करके सुरक्षित रहेंगे, जिसे USB के माध्यम से प्लग किया गया है। वास्तव में, मेरे द्वारा चुने गए हरे रंग का उपयोग केवल ~ 7-8mA अधिकतम प्रति एलईडी का उपयोग कुल ~ 100mA अधिकतम वर्तमान ड्रॉ के लिए किया जाएगा, जो कि USB द्वारा लगाए गए 500mA अधिकतम के तहत है।
तो, हमें बस इतना करना है कि NeoPixel स्टिक के DIN पिन को 12 पिन करने के लिए हुक करें (लगभग कोई भी पिन काम करेगा, लेकिन यह वही है जिसका मैंने उपयोग किया है), NeoPixel पर 5V पिन Arduino पर 5V पर चिपक जाता है, और NeoPixel पर GND पिन Arduino पर GND से चिपक जाता है। सबसे पहले, हमें अपने तारों को NeoPixel स्टिक में मिलाप करने की आवश्यकता है।
कनेक्टर्स को अपने तारों के एक छोर से काटें और सिरों को पट्टी करें। उनमें से प्रत्येक को टिन करें (प्रत्येक छोर पर सोल्डर लगाएं)। फिर प्रत्येक पैड पर थोड़ा सा सोल्डर लगाएं। टांका लगाने वाले लोहे के साथ प्रत्येक पैड को सावधानी से स्पर्श करें, संबंधित तार के अंत को पैड पर रखें, फिर लोहे को हटा दें।
चरण 3: कोड
अद्यतन (2/19/2018): मैंने GitHub रेपो में एक नया Arduino स्केच पोस्ट किया जिसमें क्रीपर डिटेक्टर के लिए सर्किट प्लेग्राउंड एक्सप्रेस पर काम करने के लिए सभी आवश्यक परिवर्तन शामिल हैं (यह बाड़े के साथ काम नहीं करेगा, लेकिन इसमें सभी हैं एलईडी और कुछ सेंसर बोर्ड में बने हैं, इसलिए सोल्डरिंग की आवश्यकता नहीं है)। इसमें इसके बटन और स्लाइड स्विच से जुड़ी कुछ अतिरिक्त कार्यक्षमता शामिल है!
पूरे कोड के लिए, आप मेरे Arduino Create स्केच या GitHub रिपॉजिटरी में जा सकते हैं। यदि आप सुनिश्चित नहीं हैं कि कोड को कैसे संकलित और अपलोड किया जाए, तो यहां दिए गए निर्देशों का पालन करें। यदि आप Arduino IDE का उपयोग करना चुनते हैं, तो आपको SerialCraft Arduino लाइब्रेरी को स्थापित करना होगा। ऐसा करने के लिए यहां "एक ज़िप आयात करना" के अंतर्गत दिए गए चरणों का पालन करें। यदि आप Arduino Create Web Editor का उपयोग करते हैं, तो आप सेट होने के बाद सीधे मेरे स्केच पर जा सकते हैं और आप SerialCraft लाइब्रेरी को स्थापित करने की आवश्यकता से बच सकते हैं।
मैं नीचे जाऊंगा कि कोड नीचे क्या कर रहा है।
पहली दो पंक्तियों में पुस्तकालय शामिल हैं। पहला, SerialCraft.h, एक पुस्तकालय है जिसे मैंने लिखा है जो SerialCraft मॉड के साथ आसान संचार को सक्षम बनाता है। मैं आपको उन सुविधाओं के बारे में बताऊंगा जिनका मैं नीचे उपयोग करता हूं, लेकिन आप इसके GitHub रिपॉजिटरी में उदाहरण और कुछ दस्तावेज देख सकते हैं जिन्हें कुछ काम की आवश्यकता है। दूसरी लाइब्रेरी Adafruit की NeoPixel लाइब्रेरी है और NeoPixel स्ट्रिप्स पर LED को एडजस्ट करने के लिए API प्रदान करती है।
#शामिल
#शामिल
4-17 पंक्तियाँ स्थिरांक हैं जो आपके सेटअप के आधार पर बदल सकती हैं। यदि आपने भिन्न संख्या में पिक्सेल वाली NeoPixel पट्टी का उपयोग किया है या यदि आपने अपने NeoPixels को किसी भिन्न पिन से जोड़ा है, तो आपको पहले दो परिभाषाओं, NUMLEDS और PIN में परिवर्तन करने की आवश्यकता होगी। आपको LED_TYPE को उस प्रकार में बदलना होगा जो आपके पास है, यदि आपको समस्या हो रही है तो NEO_GRBW को NEO_RGB या NEO_RGBW में बदलने का प्रयास करें। यदि आप उस सीमा को समायोजित करना चाहते हैं जिससे आप रेंगने वालों का पता लगा सकते हैं, तो आप BLOCKS_PER_LED बदल सकते हैं।
// अपने सेटअप से मेल खाने के लिए इन चरों को बदलें
// आपकी पट्टी में एलईडी की संख्या # परिभाषित करें NUMLEDS 8 // पिन करें कि एलईडी डेटा पिन #define पिन 12 से जुड़ा है // ब्लॉक की संख्या जो प्रत्येक एलईडी का प्रतिनिधित्व करती है #define BLOCKS_PER_LED 4 // आपके पास एलईडी पट्टी का प्रकार है (यदि आपके एलईडी हरे नहीं हो रहे हैं, तो आपको GRBW का क्रम बदलना होगा) #define LED_TYPE (NEO_GRBW+NEO_KHZ800) // END चर
पंक्तियाँ १९-२७ कुछ मूल्यों को परिभाषित करती हैं जिनका उपयोग हम बाद में करेंगे। DETONATE_DIST Minecraft में दूरी है कि एक लता हिलना बंद कर देगी, उसके फ्यूज को जलाएगी और विस्फोट करेगी। SAFE_DIST एक लता का विस्फोट त्रिज्या है। इन मूल्यों को बदलने से एल ई डी के व्यवहार पर असर पड़ेगा, लेकिन मैं उन्हें वही रखने की सलाह देता हूं जो वे Minecraft में व्यवहार को दर्शाते हैं। MAX_DIST वह अधिकतम दूरी है जिस तक हम रेंगने वालों को ट्रैक करेंगे, जो कि हमारे NeoPixel स्ट्रिप में LED की संख्या और ऊपर परिभाषित BLOCKS_PER_LED स्थिरांक पर आधारित है।
// ये वे मान हैं जिनका उपयोग एलईडी चमक के लिए हमारी गणना में किया जाएगा
// दूरी लता विस्फोट करना शुरू कर देगी #define DETONATE_DIST 3 // दूरी हम एक लता विस्फोट से सुरक्षित हैं (यदि आप इस दूरी के भीतर हैं तो आप नुकसान उठाएंगे) #define SAFE_DIST 7 // अधिकतम दूरी जो हम एक लता को ट्रैक करते हैं #define MAX_DIST (NUMLEDS*BLOCKS_PER_LED)
पंक्तियाँ २९-३६ कुछ चरों को परिभाषित करती हैं जिनका उपयोग हम पूरे कार्यक्रम में करेंगे। sc वेरिएबल एक SerialCraft ऑब्जेक्ट है जो SerialCraft Minecraft मॉड के साथ संचार करने के लिए उपयोग में आसान इंटरफ़ेस प्रदान करता है। आप नीचे देखेंगे कि हम इसका उपयोग कैसे करते हैं। डिस्ट एक वैरिएबल है जिसे हम सीरियल क्राफ्ट मॉड से क्रीपर डिस्टेंस मैसेज प्राप्त होने पर निकटतम लता की दूरी पर सेट करेंगे। स्ट्रिप एक Adafruit_NeoPixel ऑब्जेक्ट है जो NeoPixel स्ट्रिप्स को नियंत्रित करने के तरीके प्रदान करता है।
// यह सीरियल क्राफ्ट माइनक्राफ्ट मॉड के साथ संचार करने के लिए सीरियल क्राफ्ट ऑब्जेक्ट है
सीरियल क्राफ्ट एससी; // लता से दूरी int dist = १००; // एलईडी की एक पट्टी शुरू करें, आपको तीसरी Adafruit_NeoPixel पट्टी = Adafruit_NeoPixel (NUMLEDS, पिन, LED_TYPE) को बदलने की आवश्यकता हो सकती है;
लाइन्स 38-47 हमारा सेटअप फंक्शन है। सभी Arduino लिपियों में एक होना चाहिए। यह एक बार चलाया जाता है जब Arduino चालू होता है, इसलिए यह चर को प्रारंभ करने के लिए एक शानदार जगह है। सीरियल क्राफ्ट मोड (115200) में कॉन्फ़िगर किए गए समान बॉड दर पर सीरियल पोर्ट को इनिशियलाइज़ करने के लिए हम अपने सीरियल क्राफ्ट ऑब्जेक्ट पर सेटअप () विधि को कॉल करते हैं। फिर हम registerCreeperDistanceCallback मेथड को कॉल करते हैं ताकि हम SerialCraft मॉड द्वारा हमें भेजे गए क्रीपर डिस्टेंस मैसेज का जवाब दे सकें। हम समय-समय पर sc.loop() मेथड को थोड़ा और नीचे कॉल करेंगे। लूप विधि में, यह यह देखने के लिए जाँच करता है कि क्या हमें सीरियल क्राफ्ट मॉड से कोई संदेश प्राप्त हुआ है या बटन दबाने जैसी कोई घटना शुरू हुई है, और संबंधित फ़ंक्शन को कॉल करता है जिसे हमने इसे संभालने के लिए पंजीकृत किया है। हम केवल निकटतम लता की दूरी की तलाश कर रहे हैं, इसलिए यह एकमात्र ऐसा कार्य है जिसे हम पंजीकृत कर रहे हैं। आप नीचे देखेंगे, कि उस फ़ंक्शन में हम जो कुछ भी करते हैं वह हमारे डिस्ट वेरिएबल को सेट करता है, जिसका उपयोग हम एल ई डी को अपडेट करते समय करेंगे। अंत में, हम अपनी एलईडी स्ट्रिप को इनिशियलाइज़ करते हैं और स्ट्रिप.बेगिन () और स्ट्रिप.शो () का उपयोग करके सभी एलईडी को बंद कर देते हैं।
शून्य सेटअप () {// SerialCraft sc.setup () प्रारंभ करें; // निकटतम लता sc.registerCreeperDistanceCallback (क्रीपर) से दूरी प्राप्त करने के लिए एक लता दूरी कॉलबैक पंजीकृत करें; // एलईडी स्ट्रिप स्ट्रिप को इनिशियलाइज़ करें। शुरू (); कपड़े उतारने का प्रदर्शन(); }
लाइन्स 49-80 लूप फंक्शन को परिभाषित करते हैं। लूप फंक्शन वह जगह है जहां सारा जादू होता है। लूप फ़ंक्शन को बार-बार कहा जाता है। जब भी लूप फ़ंक्शन चलना समाप्त करता है, तो यह फिर से शीर्ष पर वापस शुरू होता है। इसमें, हम फ़ाइल के शीर्ष पर डिस्टर्ब वेरिएबल और हमारे स्थिरांक का उपयोग करते हैं ताकि यह निर्धारित किया जा सके कि प्रत्येक एलईडी की स्थिति क्या होनी चाहिए।
लूप फ़ंक्शन के शीर्ष पर हम कुछ चर परिभाषित करते हैं।
// 0 से लेकर जब >= लता के विस्फोट त्रिज्या से MAX_DIST दूर NUMLEDS*BLOCKS_PER_LED जब लता के शीर्ष पर हो
int blockFromCreeperToMax = बाधा (MAX_DIST+DETONATE_DIST-dIST, 0, MAX_DIST); int curLED = blockFromCreeperToMax/BLOCKS_PER_LED; // 0 से NUMLEDS-1 int curLEDLevel = (blocksFromCreeperToMax%BLOCKS_PER_LED+1); // 1 से लेकर BLOCKS_PER_LED. तक है
चूंकि हम एक लता के कितने करीब हैं, इसके आधार पर हम एलईडी जला रहे हैं, हमें अपने दूरी चर को प्रभावी ढंग से उलटने की जरूरत है। हम ब्लॉक्सफ्रॉमक्रीपरटॉमैक्स को परिभाषित करते हैं ताकि लता को उस अधिकतम दूरी से ब्लॉक की संख्या का प्रतिनिधित्व किया जा सके जिसे हम ट्रैक करना चाहते हैं। जब हम लता के शीर्ष पर होते हैं (या बल्कि, लता से दूर DETONATE_DIST से कम या उसके बराबर), तो BlockFromCreeperToMax MAX_DIST होगा। जब हम एक लता से MAX_DIST से अधिक दूर होते हैं, तो BlockFromCreeperToMax 0 होगा। यह चर तब उपयोगी होगा जब हम अपने LED को जितना बड़ा करेंगे, उतनी ही अधिक LED हम जलाएंगे।
CurLED सबसे ऊपर की LED है जिसे जलाया जाएगा। प्रत्येक 4 ब्लॉक जो हम एक लता की ओर बढ़ते हैं, एक अतिरिक्त एलईडी प्रकाश करेगा (उस संख्या को फ़ाइल के शीर्ष पर BLOCKS_PER_LED चर के साथ बदला जा सकता है)। हम सबसे शीर्ष एलईडी की चमक को समायोजित करते हैं ताकि हम एक ही ब्लॉक में दूरी में परिवर्तन देख सकें। curLEDLevel एक वेरिएबल है जिसका उपयोग हम उन ब्राइटनेस परिवर्तनों की गणना के लिए करेंगे। यह 1 से 4 तक (या जो कुछ भी BLOCKS_PER_LED के रूप में परिभाषित किया गया है) है।
प्रत्येक एलईडी पर लूप करते समय हम इन चरों का उपयोग करेंगे:
for(uint16_t i = 0; i < strip.numPixels(); i++) {if(i <= curLED) {// क्रीपर के डेटोनेशन रेडियस के भीतर सबसे चमकीला, जब लता NUMLEDS*BLOCKS_PER_LED दूर फ्लोट इंटेंसिटी = (फ्लोट)ब्लॉकफ्रॉमक्रीपरटॉमैक्स /MAX_DIST; if(i == curLED) {// last LED lit//पिछले LED को उज्जवल बनाएं क्योंकि हम अगली LED फ्लोट lastIntensity = (float) curLEDLevel/BLOCKS_PER_LED; तीव्रता *= अंतिम तीव्रता; } अगर (जिला < SAFE_DIST) { तीव्रता *= (मिली ()/75)% 2; } तीव्रता = पाउ (तीव्रता, २.२); // गामा वक्र, एलईडी चमक को हमारी आंखों के लिए रैखिक बनाता है जब चमक मूल्य वास्तव में स्ट्रिप नहीं होता है। सेट पिक्सेलकलर (i, स्ट्रिप। रंग (10 * तीव्रता, 70 * तीव्रता, 10 * तीव्रता, 0)); } और {trip.setPixelColor(i, strip. Color(0, 0, 0, 0)); } }
यदि वर्तमान एलईडी जिसे हम अपडेट कर रहे हैं, वह कर्लड वैरिएबल से कम या उसके बराबर है, तो हम जानते हैं कि यह चालू होना चाहिए और हमें इसकी चमक की गणना करने की आवश्यकता है। अन्यथा, इसे बंद कर दें। हम एक तीव्रता चर का उपयोग करते हैं जिसका मान हमारे एलईडी की चमक का प्रतिनिधित्व करने के लिए 0 और 1 के बीच होगा। एलईडी का अंतिम रंग सेट करते समय, हम तीव्रता को रंग (10, 70, 10), हरे रंग से गुणा करेंगे। हम MAX_DIST से विभाजित करके प्रतिशत प्राप्त करने के लिए ब्लॉकफ्रॉमक्रीपरटॉमैक्स चर का उपयोग करते हैं, इसलिए जब हम एक लता के करीब होंगे तो एल ई डी सबसे चमकीले होंगे। यदि हम curLED की चमक की गणना कर रहे हैं, तो हम लता की दूरी के प्रत्येक ब्लॉक के लिए इसकी चमक को BLOCKS_PER_LED सेटिंग में बदल देते हैं। यह एक सूक्ष्म परिवर्तन है, लेकिन इसका उपयोग यह देखने के लिए किया जा सकता है कि एक अतिरिक्त एलईडी को प्रकाश में लाने के लिए 4 ब्लॉकों की तुलना में एक लता एक महीन दाने के करीब या अधिक दूर हो रही है या नहीं। फिर हम जाँचते हैं कि क्या हम लता के विस्फोट के दायरे में हैं और यदि हम हैं तो पलकें झपकाएँ। एक्सप्रेशन (मिलिस ()/75)% 2 बार-बार 75 मिलीसेकंड के लिए 0 और फिर 75 मिलीसेकंड के लिए 1 का मूल्यांकन करेगा, इसलिए उस एक्सप्रेशन से हमारी तीव्रता को गुणा करने से एलईडी झपकेगी।
तीव्रता में अंतिम परिवर्तन (तीव्रता = पाउ (तीव्रता, 2.2)), एक समायोजन है जिसे गामा सुधार कहा जाता है। मानव आंखें प्रकाश को अरेखीय तरीके से देखती हैं। हम उज्ज्वल प्रकाश की तुलना में मंद प्रकाश के अधिक उन्नयन देख सकते हैं, इसलिए जब हम एक उज्ज्वल प्रकाश की चमक को कम करते हैं तो हम प्रकाश के मंद होने की तुलना में अधिक नीचे कदम रखते हैं ताकि यह प्रकट हो सके कि हम एक रैखिक में नीचे कदम रख रहे हैं। मानव आंख के लिए फैशन। इस परिवर्तन का एक दुष्परिणाम यह है कि हम कम ऊर्जा का उपयोग कर रहे हैं क्योंकि हमारे पिक्सेल में उज्जवल (उच्च ऊर्जा) रेंज की तुलना में डिमर (कम ऊर्जा) रेंज में अधिक ग्रेडेशन होते हैं।
हमारे लूप फ़ंक्शन की अंतिम दो पंक्तियाँ हमारे द्वारा अभी सेट किए गए मानों के लिए LED को अपडेट करती हैं और फिर किसी भी हैंडलर को कॉल करती हैं जिन्हें SerialCraft द्वारा कॉल करने की आवश्यकता होती है (इस मामले में लता दूरी फ़ंक्शन, यदि हमें SerialCraft मॉड से कोई लता दूरी संदेश प्राप्त होता है).
कपड़े उतारने का प्रदर्शन();
एससी.लूप ();
हमारी स्क्रिप्ट की अंतिम पंक्तियाँ क्रीपर फ़ंक्शन हैं, जहाँ हम दूरी को निकटतम क्रीपर तक संग्रहीत करते हैं जब सीरियल क्राफ्ट मॉड हमें उस जानकारी के साथ एक संदेश भेजता है।
शून्य लता (int d) {dist = d; }
अब आपको केवल कोड संकलित और अपलोड करने की आवश्यकता है!
चरण 4: संलग्नक
मैंने अपने बाड़े के सभी टुकड़ों को लेजर से काट दिया, जिसमें एक पाले सेओढ़ लिया ऐक्रेलिक लता, एक स्पष्ट ऐक्रेलिक लता, प्लाईवुड के 6 टुकड़े, एक आयताकार छेद के साथ ऐक्रेलिक लता के आकार और फास्टनरों के लिए कोनों में छेद और प्लाईवुड का 1 टुकड़ा होता है। पीठ के लिए जिसमें फास्टनरों के छेद होते हैं और तारों के बाहर आने के लिए एक बड़ा छेद होता है। NeoPixel स्टिक से तारों को डिस्कनेक्ट करें ताकि हम इसे अपने बाड़े में माउंट कर सकें। नीचे दी गई दो पीडीएफ फाइलों का उपयोग मेरे द्वारा वर्णित सभी टुकड़ों को लेजर काटने के लिए किया जा सकता है।
NeoPixel स्टिक #2 लकड़ी के स्क्रू और नायलॉन स्पेसर का उपयोग करके प्लाईवुड के पिछले टुकड़े पर लगाई गई है। ऐक्रेलिक क्रीपर्स को चौकोर छेद वाले प्लाईवुड के दो टुकड़ों में जाम कर दिया जाता है। ऐसा करने से पहले, सुनिश्चित करें कि आपको याद है कि कौन सा तार रंग छड़ी पर किस पैड पर जाता है।
ऐक्रेलिक क्रीपर्स प्लाईवुड के साथ एक बहुत ही सुखद फिट प्रदान करने के लिए छेदों की तुलना में एक इंच के 1 सौवें हिस्से के आकार के होते हैं।मैंने प्रत्येक कोने पर केंद्रित दबाव डालने के लिए वायर स्ट्रिपर्स के हैंडल का उपयोग किया और एक समान फिट होने के लिए पूरे लता के चारों ओर काम किया। वैकल्पिक रूप से, ऐक्रेलिक लेजर पीडीएफ में फास्टनर छेद के साथ बाड़े के पूरे चेहरे के आकार के टुकड़े में उत्कीर्ण एक लता शामिल है ताकि आप छोटे ऐक्रेलिक लता के साथ एक तंग फिट होने से बच सकें।
पाले सेओढ़ लिया ऐक्रेलिक अलग-अलग एल ई डी से प्रकाश वितरित करता है और स्पष्ट ऐक्रेलिक लता उत्कीर्णन को बेहतर दिखाता है, इसलिए दोनों संयुक्त रूप से व्यक्तिगत रूप से मेरे लिए बेहतर दिखते हैं। एक बार लताएं लगने के बाद, अपने सभी प्लाईवुड के टुकड़ों को एक साथ ढेर कर दें और उन्हें M3 मशीन के स्क्रू और नट्स के साथ एक साथ बांध दें। फिर तारों को 5V, GND और पिन 12 से दोबारा कनेक्ट करें।
चरण 5: Minecraft फोर्ज और सीरियल क्राफ्ट मोड
एक Minecraft खाता बनाकर प्रारंभ करें, फिर Minecraft क्लाइंट को डाउनलोड और इंस्टॉल करें।
SerialCraft मॉड को स्थापित करने में सक्षम होने के लिए आपको संस्करण 1.7.10 के लिए Minecraft Forge की आवश्यकता होगी। 1.7.10 Minecraft Forge डाउनलोड पेज पर जाएं। Minecraft Forge साइट में बहुत सारे विज्ञापन हैं जो आपको गलत चीज़ पर क्लिक करने और आपको कहीं और ले जाने के लिए प्रेरित करते हैं। आप सही रास्ते पर बने रहें यह सुनिश्चित करने के लिए ऊपर दी गई छवियों का पालन करें! आप अनुशंसित 1.7.10 संस्करण के तहत इंस्टॉलर बटन पर क्लिक करना चाहेंगे (या नवीनतम, मैं वास्तव में अंतर के बारे में निश्चित नहीं हूं)। आपको पृष्ठ के शीर्ष पर एक बैनर के साथ एक पृष्ठ पर ले जाया जाएगा जो कहता है कि "इस शीर्षलेख के नीचे की सामग्री एक विज्ञापन है। उलटी गिनती के बाद, अपना फोर्ज डाउनलोड शुरू करने के लिए दाईं ओर स्थित छोड़ें बटन पर क्लिक करें।" सुनिश्चित करें कि आप उलटी गिनती की प्रतीक्षा करें और फिर डाउनलोड शुरू करने के लिए छोड़ें बटन पर क्लिक करें।
डाउनलोड होने के बाद इंस्टॉलर पर डबल क्लिक करें। डिफ़ॉल्ट चेक किए गए छोड़ दें (क्लाइंट स्थापित करें और डिफ़ॉल्ट पथ जो इसे निर्दिष्ट करता है), फिर ठीक पर क्लिक करें। यह Minecraft Forge स्थापित करेगा। जब यह समाप्त हो जाता है तो आप Minecraft Launcher को प्रारंभ करने में सक्षम होंगे, लेकिन फोर्ज के 1.7.10 संस्करण का चयन करने के लिए एक अतिरिक्त विकल्प होगा (ऊपर चित्र देखें)।
अब हमें आपके मॉड डायरेक्टरी में सीरियल क्राफ्ट मॉड को इंस्टॉल करना होगा। सीरियल क्राफ्ट मॉड का नवीनतम संस्करण यहां डाउनलोड करें। आपको jssc लाइब्रेरी की भी आवश्यकता होगी। दोनों फाइलों को अनजिप करें, जो आपको दो.jar फाइलों के साथ छोड़ देगी। आपको उन फाइलों को अपने मॉड फोल्डर में रखना होगा। विंडोज़ पर, आपको स्टार्ट मेन्यू से रन पर जाने में सक्षम होना चाहिए और रन पर क्लिक करने से पहले %appdata%\.minecraft\mods दर्ज करें। मैक पर, आप होम/लाइब्रेरी/एप्लिकेशन सपोर्ट/माइनक्राफ्ट/मोड पर नेविगेट कर सकते हैं। आपके द्वारा अभी खोले गए फ़ोल्डर में दो.jar फ़ाइलों को छोड़ दें। अब Minecraft चलाएँ और 1.7.10 Forge संस्करण लॉन्च करें। आपको मॉड्स पर क्लिक करने और बाईं ओर सूचीबद्ध सीरियल क्राफ्ट देखने में सक्षम होना चाहिए।
चरण 6: सीरियल क्राफ्ट मोड का उपयोग करना
अब जब आपने सीरियल क्राफ्ट मॉड स्थापित कर लिया है, तो आपको एक दुनिया में प्रवेश करना होगा और इसका उपयोग करना शुरू करना होगा। एक नई दुनिया बनाएं या अपनी सहेजी गई दुनिया में से एक को खोलें (यदि आप एक मल्टीप्लेयर मैप पर खेलना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि सर्वर और इससे कनेक्ट होने वाले सभी क्लाइंट में सीरियल क्राफ्ट मॉड स्थापित है)। सुनिश्चित करें कि आपका क्रीपर डिटेक्टर आपके कंप्यूटर से जुड़ा है, फिर K कुंजी दबाएं। इसे ऊपर की छवि की तरह एक संवाद लाना चाहिए (विंडोज़ पर, /dev/tty.usbserial… के बजाय इसे COM1 जैसा कुछ कहना चाहिए)। यदि कुछ भी नहीं दिखाया गया है, तो सुनिश्चित करें कि आपने क्रीपर डिटेक्टर को कनेक्ट किया है। कनेक्ट बटन पर क्लिक करें, फिर एस्केप दबाएं। यदि आपका कोड संकलित और सही तरीके से अपलोड किया गया था, तो आपका क्रीपर डिटेक्टर जाने के लिए अच्छा होना चाहिए! यदि एक लता 32 ब्लॉक के भीतर है, तो उसे प्रकाश करना चाहिए। हैप्पी हंटिंग!
यदि आपको यह निर्देश पसंद आया है, तो कृपया इसके लिए Minecraft प्रतियोगिता और एप्लियग चैलेंज में मतदान करने पर विचार करें!
Minecraft चैलेंज 2018 में दूसरा पुरस्कार
सिफारिश की:
क्रीपर-बीओटी (क्रीपर पेट): 9 कदम (चित्रों के साथ)
क्रीपर-बीओटी (क्रीपर पेट): मैं हमेशा से अपना खुद का चौगुना रोबोट बनाना चाहता था और माइनक्राफ्ट प्रतियोगिता एक अच्छा बहाना था। इसके अलावा, मैं वास्तव में एक लता 'पालतू' चाहता था। इस निर्देशयोग्य में मैं साझा करूँगा कि मैंने इसे कैसे बनाया और यदि आप अपना खुद का बनाना चाहते हैं तो आपको एक गाइड देते हैं। मुझे लगता है कि आप
नाइटलाइट क्रीपर कैसे बनाएं: 5 कदम (चित्रों के साथ)
नाइटलाइट क्रीपर कैसे बनाएं: हाय दोस्तों! यह फ्लॉपीमैन 2 है! इस नई मिनीक्राफ्ट चुनौती को देखकर मुझे एक विचार आया… इसने मुझे क्रीपर-थीम वाली नाइटलाइट बनाने के लिए प्रेरित किया था! मुझे आशा है कि आप लोग ट्यूटोरियल का आनंद लेंगे और वोट देना सुनिश्चित करेंगे
DIY यूएसबी क्रीपर नाइटलाइट: 8 कदम (चित्रों के साथ)
DIY USB क्रीपर नाइटलाइट: क्या आपने कभी सोचा है कि लता में क्या होता है? कैसे अपनी खुद की लता शरीर रचना बनाने के बारे में! एक USB लता बनाएँ जो चमकती हो! यहां बताया गया है कि आप इसे कैसे करते हैं
बाधा से बचने के लिए Minecraft क्रीपर रोबोट: 7 कदम
बाधा से बचना Minecraft क्रीपर रोबोट: इस रोबोट को Minecraft चुनौती, एपिलॉग चैलेंज IX और पहली बार लेखक प्रतियोगिता में प्रवेश करने के लिए बनाया गया था। यह सबसे प्रतिष्ठित माइनक्राफ्ट मॉब में से एक पर आधारित है: क्रीपर। यह रोबोट एक 3डी-मुद्रित शेल का उपयोग करता है, इसलिए आपको एक
IOT स्मोक डिटेक्टर: मौजूदा स्मोक डिटेक्टर को IOT से अपडेट करें: 6 चरण (चित्रों के साथ)
IOT स्मोक डिटेक्टर: IOT के साथ मौजूदा स्मोक डिटेक्टर को अपडेट करें: योगदानकर्ताओं की सूची, आविष्कारक: टैन सिव चिन, टैन यिट पेंग, टैन वी हेंग पर्यवेक्षक: डॉ चिया किम सेंग मेक्ट्रोनिक और रोबोटिक इंजीनियरिंग विभाग, इलेक्ट्रिकल और इलेक्ट्रॉनिक इंजीनियरिंग संकाय, यूनिवर्सिटी ट्यून हुसैन Onn मलेशिया.वितरित