विषयसूची:

स्टेकर आर्केड गेम: 6 कदम (चित्रों के साथ)
स्टेकर आर्केड गेम: 6 कदम (चित्रों के साथ)

वीडियो: स्टेकर आर्केड गेम: 6 कदम (चित्रों के साथ)

वीडियो: स्टेकर आर्केड गेम: 6 कदम (चित्रों के साथ)
वीडियो: FREE FIRE X NARUTO NEXT COLLAB SOON 😈😈😈😈😈 #freefire #naruto 2024, नवंबर
Anonim
स्टेकर्स आर्केड गेम
स्टेकर्स आर्केड गेम

हाय दोस्तों, आज मैं आपके साथ इस अद्भुत आर्केड गेम को साझा करना चाहता हूं जिसे आप Ws2812b LED और एक माइक्रोकंट्रोलर / FPGA के साथ बना सकते हैं। स्टैक ओवरफ़्लो देखें - क्लासिक आर्केड गेम का हमारा हार्डवेयर कार्यान्वयन। एक स्कूल प्रोजेक्ट के रूप में जो शुरू हुआ वह जल्दी ही प्यार का श्रम बन गया क्योंकि हमने अपने खेल को विकसित करने और उससे अधिक सीखने में अधिक से अधिक समय देना शुरू कर दिया (और प्रक्रिया xD में अपने अध्ययन की उपेक्षा करना)। अंत में, हमारे खेल को इतनी अच्छी तरह से बनाया गया था और हमारे स्कूल द्वारा अच्छी तरह से प्राप्त किया गया था कि इसे जब्त कर लिया गया था (छात्र के अगले बैच के लिए डेमो सामग्री के रूप में)। खैर, हम हमेशा दूसरा निर्माण कर सकते हैं। आएँ शुरू करें!

खेल का ऑनलाइन संस्करण:

चरण 1: आपको क्या चाहिए?

तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?
तुम्हें किस चीज की आवश्यकता है?

सामग्री:

1. एक माइक्रोकंट्रोलर/माइक्रो कंप्यूटर/एफपीजीए - हमारे गेम के तर्क को लागू करने के लिए एफपीजीए का उपयोग किया जाता है। अपना बोर्ड चुनें, हमारे प्रोजेक्ट के लिए हमें Mojo FPGA बोर्ड का उपयोग करना होगा। अशिक्षित के लिए, यह एक प्रकार का बोर्ड है जो कोड के बजाय अपने कार्यों को लागू करने के लिए हार्डवेयर का उपयोग करता है। इसलिए, यदि आप Arduino या Pi का उपयोग कर रहे हैं, तो मैं इसके बजाय निम्न स्तर और पूरी तरह से अलग कहूंगा। यदि आप अन्य बोर्डों का उपयोग करते हैं, तो आपको अपना कोड लिखना होगा, लेकिन यह गेम कोड करना बहुत आसान है और हे! अब आप कोडिंग भी सीख सकते हैं!

2. Ws2812b LED - यहां हम अपने गेम के डिस्प्ले के निर्माण के लिए LED का उपयोग कर रहे हैं। यदि आपने XD से पहले Ws2812b को स्पर्श नहीं किया है तो आप निर्माता नहीं बन सकते। यह सिंगल एड्रेसेबल है जिसका मतलब है कि आप सिंगल एलईडी को काट सकते हैं और उन्हें अपनी पसंद के किसी भी फॉर्मेशन में पेस्ट कर सकते हैं। और यह आरजीबी है जिसका अर्थ है कि आप अपनी पसंद के किसी भी रंग को आउटपुट कर सकते हैं। इसके अलावा, FastLED - Ws2812b को नियंत्रित करने के लिए Arduino लाइब्रेरी बहुत अच्छी तरह से विकसित है। मैं लोगों को FPGA के स्थान पर Arduino का उपयोग करने की सलाह दूंगा यदि आपके पास एक नहीं है। आप Taobao/Amazon से एलईडी खरीद सकते हैं लेकिन हमने सिंगापुर के सिम लिम टावर से अपनी एलईडी खरीदी।

3. लकड़ी - बाहरी आवरण के लिए हमने 1 सेमी-मोटी प्लाईवुड का इस्तेमाल किया और एलईडी मैट्रिक्स के लिए हमने 0.3 सेमी-मोटी प्लाईवुड का इस्तेमाल किया। हमें अपने स्कूल की फैब लैब से स्क्रैप लकड़ी की आपूर्ति मिली।

4. लाइट डिफ्यूजिंग ऐक्रेलिक - हमारी स्क्रीन के लिए, हमने विभिन्न प्रकार के ऐक्रेलिक की कोशिश की और हमें पीएल -422 नामक यह फ्रॉस्टेड ऐक्रेलिक मिला, जो प्रकाश को फैलाने के लिए वास्तव में अच्छा है। यदि आपको सटीक मॉडल नहीं मिल रहा है, तो पाले सेओढ़ लिया एक्रेलिक की तलाश करें। हमने सिंगापुर में दामा प्लास्टिक्स में अपना खरीदा।

5. फोम बोर्ड - प्रकाश के प्रत्येक व्यक्तिगत पिक्सेल को अलग करने के लिए, हमें एक ग्रिड संरचना की आवश्यकता होती है और ऐसा करने के लिए यह फोम आदर्श सामग्री है। हमने अपने स्कूल की किताबों की दुकान पर 0.5 सेमी मोटा फोम बोर्ड खरीदा।

6. बड़ा लाल बटन - ठीक है, हमारे लिए इतना बड़ा लाल बटन होना जरूरी नहीं है, लेकिन लोगों को स्लैम करने के लिए एक बटन रखना हमेशा अच्छा होता है! xD हमने इसे सिंगापुर के सिम लिम टावर में खरीदा था।

उपकरण:

1. लकड़ी का गोंद

2. सोल्डरिंग आयरन

3. मिलाप

4. तार। यह सबसे अच्छा है यदि आपके पास कठोर तारों की तुलना में नरम तार हैं। और मल्टीकोर की तुलना में सिंगल कोर।

5. वायर स्ट्रिपर

6. वायर कटर

7. 1 मिमी ड्रिल बिट के साथ ड्रिल

8. स्क्रॉल देखा

9. बैंड देखा

डिबगिंग:

1. परिवर्तनीय विद्युत आपूर्ति इकाई

2. ऑसिलोस्कोप

चरण 2: रैपिड प्रोटोटाइप

तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग
तीव्र प्रोटोटाइपिंग

हमारी परियोजना के लिए, हमने अपने एलईडी मैट्रिक्स के निर्माण और हमारे खेल की प्रोग्रामिंग करने से पहले तेजी से प्रोटोटाइप का इस्तेमाल किया। ऐसा करने का कारण यह है कि हम केवल यह महसूस करने के लिए एलईडी मैट्रिक्स का निर्माण नहीं करना चाहते हैं कि हमारे कोड काम नहीं करते हैं या हमारा गेम लॉजिक किसी तरह से त्रुटिपूर्ण है।

हार्डवेयर पक्ष पर, पहले चरण में हमने अपने स्वयं के साधारण एलईडी मैट्रिक्स पर प्रकाश पैटर्न को स्थानांतरित करने पर अपने तर्क का परीक्षण किया। एक बार जब हमने परीक्षण कर लिया कि तर्क ठीक काम करता है, तो हम अलग-अलग पंक्तियों के साथ अपने गेम लॉजिक का परीक्षण करने के लिए 5 Ws2812b LED के स्ट्रिप्स को काटने के लिए निकले। एक बार जब यह काम कर जाता है, तो हम एलईडी मैट्रिक्स को पूर्ण पैमाने पर गढ़ने के लिए आगे बढ़ते हैं।

हमने पीएल -422 को सर्वश्रेष्ठ प्रकाश विसारक के रूप में स्थापित करने से पहले एलईडी के साथ विभिन्न ऐक्रेलिक नमूनों का भी परीक्षण किया। और विभाजक संरचना के लिए हमने एलईडी को पूरी तरह से फैलाने के लिए अलग-अलग ऊंचाइयों का भी परीक्षण किया। अंत में हमने महसूस किया कि ३ सेमी * ३ सेमी वर्ग ४ सेमी ऊंचाई के साथ प्रसार के लिए सबसे अच्छा है। इस इष्टतम आकार के आधार पर, हमने यह भी तय किया कि वर्गों के बीच फोम के लिए 0.5 सेमी अंतर छोड़कर 5 x 11 एलईडी मैट्रिक्स के लिए आवश्यक प्लाईवुड का आकार क्या है।

सॉफ़्टवेयर की ओर, हम यथासंभव मॉड्यूलर होने का प्रयास करते हैं - हम पहले परीक्षण करते हैं कि क्या शिफ्ट फ़ंक्शन को जोड़ने के लिए आगे बढ़ने से पहले एलईडी को जलाया जा सकता है, और फिर अन्य। यदि आप ऐसा नहीं करते हैं तो परिणाम भयावह हो सकते हैं। हमने इसे कठिन तरीके से सीखा क्योंकि हमने यह महसूस करने से पहले पूरे गेम को एक बड़े हिस्से में कोड करने का प्रयास किया था कि हम इसे डीबग नहीं कर सके। आउच!

चरण 3: आवरण बनाना

आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना

हमारे आवरण के लिए, हम क्लासिक आर्केड मशीन फील और लुक के साथ गए। सबसे पहले, हम आकार को जल्दी से प्रोटोटाइप करने के लिए कुछ पतले प्लाईवुड को काटते हैं क्योंकि पतली प्लाईवुड को काटना और परीक्षण करना आसान और तेज़ होता है। एक बार जब हम अपने आयामों और आकार से संतुष्ट हो गए, तो हमने आवरण बनाने के लिए मोटे प्लाईवुड का उपयोग करना शुरू कर दिया। हमने मोटे प्लाईवुड के माध्यम से काटने के लिए एक बैंड का उपयोग किया और पतले लोगों के माध्यम से काटने के लिए एक स्क्रॉल देखा। उसके बाद, हमने उन्हें एक साथ चिपकाने के लिए लकड़ी के गोंद का इस्तेमाल किया।

प्लाईवुड के पिछले हिस्से के लिए, हम इलेक्ट्रॉनिक्स को आसानी से अंदर तक पहुंचाना चाहते थे इसलिए हमने इसे एक लॉक-इन-प्लेस पीस में बनाया जिसे आप जब चाहें आसानी से हटा सकते हैं।

बटन को संलग्न करने के लिए, हमने पहले बटन के माइक्रोस्विच व्यास (बटन के नीचे का लंबा भाग) के आकार का एक वृत्त खींचा। फिर हमने किनारे के पास एक छेद ड्रिल किया और एक वृत्त को देखने के लिए स्क्रॉल आरी का उपयोग किया। फिर हमने बटन रखा और उसमें पेंच लगा दिया।

हमने पहले गणना किए गए आकारों के अनुसार हमारे एलईडी मैट्रिक्स के आधार के रूप में प्लाईवुड का एक पतला टुकड़ा भी काट दिया।

नोट: चरण-दर-चरण प्रक्रिया की कमी के लिए मैं क्षमा चाहता हूं। हमने सभी चरणों का दस्तावेजीकरण नहीं किया और जब तक हमें एहसास हुआ कि हमें चरणों का दस्तावेजीकरण करने की आवश्यकता है, तब तक आवरण पहले ही हो चुका था। आरेख भी अंतिम आयाम नहीं है।

चरण 4: एलईडी मैट्रिक्स बनाना

एलईडी मैट्रिक्स बनाना
एलईडी मैट्रिक्स बनाना
एलईडी मैट्रिक्स बनाना
एलईडी मैट्रिक्स बनाना

पहले काटे गए पतले टुकड़े का उपयोग करते हुए, हम पहले प्रत्येक एलईडी की स्थिति को अपनी फोम संरचना के आधार पर एक वर्ग बनाकर और वर्ग के बीच में एक क्रॉस को उस स्थान के रूप में चिह्नित करते हैं जहां हमें एलईडी चिपकानी चाहिए। फिर हम तारों के माध्यम से आने के लिए एलईडी के प्रत्येक तरफ 3 छोटे छेद ड्रिल करते हैं और उन्हें प्रत्येक एलईडी में मिलाते हैं।

हम एलईडी की प्रत्येक पंक्ति को उनके डेटा इन और डेटा आउट पिन द्वारा डेज़ी-चेन करते हैं और हम प्रत्येक GND और VCC को एक सामान्य तार में मिलाते हैं। अग्रणी डेटा इन प्रत्येक पंक्ति के लिए प्रकाश पैटर्न उत्पन्न करेगा और हमने इसे माइक्रोकंट्रोलर/एफपीजीए के पिनआउट से जोड़ा है। आप एक पंक्ति के अंतिम डेटा को दूसरी पंक्ति के अग्रणी डेटा में भी मिला सकते हैं। जिस तरह से Ws2812b LED काम करता है, वह यह है कि प्रत्येक LED में एक IC होता है जो तार से आवश्यक डेटा लेगा और बाकी को श्रृंखला में पास करेगा। हमने अपने एलईडी को एक और शानदार इंस्ट्रक्शंस पर आधारित किया (वास्तव में, हमने इसे बिल्कुल कॉपी किया! xD)

यहां हम नरम तारों के उपयोग के महत्व पर भी जोर देना चाहेंगे। यदि आप अग्रणी डेटा इन पिन के लिए कठोर, कठोर तारों का उपयोग करते हैं, तो क्या होता है कि हर बार जब आप तार को खींचते हैं तो यह आपके Ws2812b पर तांबे की गद्दी को खींच सकता है जो इसे नष्ट कर देगा। इस परियोजना में, नरम तारों में बदलने से पहले, हमने कुल 40 एलईडी को नष्ट कर दिया, जो कि हमारी परियोजना के लिए आवश्यक एलईडी का 1/3 है।

निर्देश योग्य:

चरण 5: गेम कोड लिखना और हार्डवेयर डिबगिंग करना

गेम कोड लिखना और हार्डवेयर डिबगिंग करना
गेम कोड लिखना और हार्डवेयर डिबगिंग करना
गेम कोड लिखना और हार्डवेयर डिबगिंग करना
गेम कोड लिखना और हार्डवेयर डिबगिंग करना
गेम कोड लिखना और हार्डवेयर डिबगिंग करना
गेम कोड लिखना और हार्डवेयर डिबगिंग करना

मोजो ल्यूसिड एचडीएल पर चलता है, जो वहां की सबसे लोकप्रिय भाषा नहीं है। हमें ल्यूसिड में कोई Ws2812b एलईडी लाइब्रेरी नहीं मिल रही है इसलिए हमने अपनी खुद की लाइब्रेरी लिखने का सहारा लिया, जो एक बहुत ही दिलचस्प अनुभव है। ऐसा करने के लिए, हमने पहले उस सिग्नल का विश्लेषण किया जो Arduino की FastLED लाइब्रेरी का उपयोग करके पारित किया गया है और इसे दोहराने के लिए कोड लिखे हैं। यहाँ हार्डवेयर डिबगिंग की एक तरकीब है, संकेतों का विश्लेषण करने के लिए आस्टसीलस्कप बहुत, बहुत उपयोगी है, चाहे वह आपके स्वयं के सिग्नल को डीबग करना हो, जिसके बारे में आप सुनिश्चित नहीं हैं या अन्य संकेतों की जाँच और प्रतिलिपि बना रहे हैं।

Ws2812b के लिए पुस्तकालय लिखने के बाद, हम फिर खेल के लिए कोड के लिए आगे बढ़ते हैं, हमने प्रत्येक ब्लॉक को बाईं और दाईं ओर ले जाने के लिए बिट शिफ्ट फ़ंक्शन का उपयोग किया और पिछली पंक्ति में प्रत्येक पंक्ति के बिटवाइज़ और से और वर्गों का उपयोग किया। आप इसे Arduino में लागू करने के बारे में भी सोच सकते हैं, जो इतना कठिन नहीं होना चाहिए। हमने इसके मज़े के लिए गेम स्क्रीन को भी कोडित किया है!

हमारे खेल में 2 स्तर थे, जो दृश्य स्टैकिंग गेम (हरा) और दूसरा स्तर अदृश्य स्टैकिंग गेम (नीला) है।

हमारे पास काम करने वाले कोड और काम करने वाले एलईडी मैट्रिक्स होने के बाद भी, कभी-कभी हमें अभी भी समस्याओं का सामना करना पड़ता है जैसे रोशनी टिमटिमाती है या रोशनी नहीं होनी चाहिए। समस्या आमतौर पर अनुचित ग्राउंडिंग, बिजली आपूर्ति स्तर या हस्तक्षेप के कारण होती है। यह वह जगह है जहाँ आपको अन्य हार्डवेयर डिबगिंग टूल की आवश्यकता होगी जैसे कि चर बिजली आपूर्ति इकाई की जाँच करने के लिए कि क्या Mojo/Arduino की बिजली आपूर्ति पर्याप्त है या बहुत अधिक है। मेरे अनुभव में, Ws2812b में 2.8v - 5v से काम करने वाले वोल्टेज की एक विस्तृत श्रृंखला है। यहां मेरे पास एक वीडियो है जो दिखाता है कि बिजली बढ़ाने के बाद रोशनी पागल हो रही है।

हालाँकि, आगे की जाँच से पता चला कि हमारे पास कुछ अनुचित मिलाप था, उन्हें एक बार फिर से मिलाने के बाद, हमारी समस्या हल हो गई। हस्तक्षेप या क्रॉस-टॉकिंग में भी समस्या हो सकती है, लेकिन शुक्र है कि हमने कभी भी उनमें से किसी का सामना नहीं किया।

जीथब कोड:

Arduino बिटवाइज़ शिफ्ट:

Arduino बिटवाइज़ और:

चरण 6: सब कुछ एक साथ रखना

सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना

आपके पास आवरण और एलईडी मैट्रिक्स है। अब सब कुछ एक साथ रखने का समय आ गया है। सबसे पहले हम फोम को सामने और एलईडी मैट्रिक्स को उसके पीछे रखते हैं और स्थिति को समायोजित करते हैं। क्योंकि फोम में बहुत अधिक घर्षण होता है, यह सिर्फ घर्षण घुड़सवार था, जबकि एलईडी मैट्रिक्स गर्म जगह पर चिपका हुआ था। उसके बाद हमने स्क्रीन को ग्रिड के सामने रखा। फिर हमने प्रत्येक पंक्ति के पिन को माइक्रोकंट्रोलर से जोड़ दिया और खेलना शुरू कर दिया!:डी

इस परियोजना के बारे में एक चीज जो मुझे पसंद है वह है इसका लचीलापन, आप हमेशा माइक्रोकंट्रोलर को दूसरे गेम का हिस्सा बनने के लिए रिप्रोग्राम कर सकते हैं और कुछ ऐसा करने की कोशिश कर सकते हैं जैसे एनीमेशन या प्रतिक्रिया गेम बनाना। आशा है कि आप लोगों को इसे बनाने में मज़ा आया होगा और इसे बनाने के लिए कुछ सीखें। जीजीईज़!

सिफारिश की: