विषयसूची:

पांच खेलों के साथ Arduino VGA कंसोल: 4 कदम
पांच खेलों के साथ Arduino VGA कंसोल: 4 कदम

वीडियो: पांच खेलों के साथ Arduino VGA कंसोल: 4 कदम

वीडियो: पांच खेलों के साथ Arduino VGA कंसोल: 4 कदम
वीडियो: Setting Up a Raspberry Pi 4 | Vilros 2024, जुलाई
Anonim
Image
Image
पांच खेलों के साथ Arduino VGA कंसोल
पांच खेलों के साथ Arduino VGA कंसोल
पांच खेलों के साथ Arduino VGA कंसोल
पांच खेलों के साथ Arduino VGA कंसोल

अपने पिछले अनुदेशों में, मैंने कुछ सबसे लोकप्रिय शास्त्रीय आर्केड खेलों के सरलीकृत संस्करणों को एक नंगे Arduino और कुछ अन्य घटकों के माध्यम से पुन: पेश किया है। बाद में मैंने उनमें से पांच को एक ही रेखाचित्र में एक साथ जोड़ दिया। यहां मैं दिखाऊंगा कि आप एक साधारण कंसोल कैसे बना सकते हैं जो पोंग, ब्रेकआउट, बॉम्बर, टेट्रिस और एच-ए-स्केच से प्रेरित एक ड्राइंग खिलौना खेल सकता है। इस कंसोल का उपयोग स्नेक खेलने के लिए भी किया जा सकता है, और अन्य लेखकों द्वारा लिखे गए दो और गेम: सैंड्रो माफियोडो उर्फ "स्माफ़र" द्वारा बिट निंजा और निकिता कुरीलेव द्वारा स्टेकर।

मुख्य विशेषता वीजीए सिग्नल की पीढ़ी है, वीजीएएक्स लाइब्रेरी के लिए धन्यवाद, इस प्रकार कंसोल को वीजीए मॉनिटर की आवश्यकता होती है। मेरा लक्ष्य, हमेशा की तरह, इसे बनाने के लिए किसी भी "विशेष घटक" से बचना है, आपको किसी भी सहायक आईसी या ढाल की आवश्यकता नहीं है! केवल घटक दो पोटेंशियोमीटर, पांच बटन, कुछ प्रतिरोधक और एक DSUB15 (VGA) कनेक्टर हैं। एक पीजो स्पीकर वैकल्पिक है। आप देख सकते हैं कि ये गेम इस पेज की तस्वीरों में कैसे दिखते हैं।

VGAx पुस्तकालय 120 x 60 पिक्सेल के संकल्प के साथ चार रंगों का उपयोग करने की अनुमति देता है, इस रेट्रो-गेम कंसोल के लिए बहुत अधिक नहीं बल्कि पर्याप्त है। ग्राफिक कच्चा है लेकिन, पोटेंशियोमीटर के उपयोग के लिए धन्यवाद, खेल सुचारू रूप से चलते हैं। साधारण ध्वनि प्रभाव भी उपलब्ध हैं।

चरण 1: अपना खुद का Arduino VGA कंसोल कैसे बनाएं

अपना खुद का Arduino VGA कंसोल कैसे बनाएं
अपना खुद का Arduino VGA कंसोल कैसे बनाएं
अपना खुद का Arduino VGA कंसोल कैसे बनाएं
अपना खुद का Arduino VGA कंसोल कैसे बनाएं

सबसे पहले इस पेज के नीचे ArduinoVGAgame.ino और/या Snake.ino कोड डाउनलोड करें और उन्हें उसी नाम की डायरेक्टरी में अपने पीसी में कॉपी करें। GitHub पर इस लिंक से VGAx लाइब्रेरी डाउनलोड करें। सबसे आसान तरीका यह है कि इसे "लाइब्रेरीज़" नाम के Arduino सॉफ़्टवेयर सबफ़ोल्डर में कॉपी किया जाए, ताकि इसे तुरंत पहचाना जा सके।

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

अपने Arduino बोर्ड में कोड अपलोड करें (मैंने Uno और Nano दोनों का परीक्षण किया)। कम उपलब्ध स्मृति के लिए चेतावनी सामान्य है। यदि आपके पास अन्य त्रुटियां नहीं हैं, तो सब कुछ ठीक है और आप तुरंत अपना कंसोल बनाना शुरू कर सकते हैं।

इसके लिए आपको चाहिए:

  • एक Arduino Uno Rev. 3 या Arduino Nano 3.x (ATmega328)
  • एक DSUB15 कनेक्टर, यानी एक वीजीए महिला कनेक्टर या एक वीजीए केबल काटा जाना।
  • प्रतिरोधक: 2 x 68 ओम और 2 x 470 ओम और 5 x 1 से 2 kOhm
  • दो 10 kOhm रैखिक पोटेंशियोमीटर (समान मान भी ठीक हैं)
  • पांच बटन
  • केबल का कुछ टुकड़ा
  • सभी घटकों को रखने के लिए एक या दो अच्छे बक्से।

वैकल्पिक:

  • ब्रेडबोर्ड या स्ट्रिप बोर्ड
  • एक पीजो स्पीकर

इस चरण के शीर्ष पर योजनाबद्ध की सूचना दी गई है, साथ में समाप्त "कंसोल" के उदाहरण के साथ।

योजनाबद्ध दिखाता है कि एक बटन और एक पोटेंशियोमीटर को कैसे जोड़ा जाए। अधिक विशेष रूप से, आपको पांच बटन को क्रमशः 5, 10, 11, 12 और 13 पिन से कनेक्ट करने की आवश्यकता है। प्रत्येक बटन द्वारा की गई क्रिया को योजनाबद्ध में ऊपरी दाएँ तालिका में वर्णित किया गया है। बाईं ओर यह दिखाया गया है कि एक पोटेंशियोमीटर को कैसे जोड़ा जाए (आपको A1 और A2 को पिन करने के लिए दो पोटेंशियोमीटर चाहिए)। स्पीकर को एनालॉग पिन A0 से जोड़ा जाना चाहिए।

मैंने Arduino बोर्ड को VGA कनेक्टर के साथ एक लकड़ी के बक्से में रखा, जिसमें पहला खिलाड़ी पोटेंशियोमीटर और चार बटन भी हैं, जबकि दूसरा खिलाड़ी पोटेंशियोमीटर और उसका स्टार्ट बटन एक अलग और छोटे बॉक्स में हैं।

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

चरण 2: अन्य लेखकों के खेल

Sandro Maffiodo ने हाल ही में BitNinja गेम प्रकाशित किया है। आप यहां अधिक जानकारी प्राप्त कर सकते हैं और यहां कोड डाउनलोड कर सकते हैं।

मेरे कंसोल का उपयोग करने के लिए, आपको बस उसके कोड में बटन को निम्नानुसार रीमैप करना होगा:

#परिभाषित बीटीएन_यूपी 11 (13 के बजाय)

#परिभाषित BTN_LEFT 10 (12 के बजाय)

#परिभाषित BTN_RIGHT 12 (11 के बजाय)

निकिता कुरीलेव का स्टेकर यहां उपलब्ध है। अधिक जानकारी यहाँ।

फिर से, आपको कोड के अलग-अलग हिस्से में एक बटन को रीमैप करना होगा: बस digitalRead(2) को digitalRead(13) से बदलें

चरण 3: परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी

परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी
परिशिष्ट 1: नियंत्रकों के निर्माण के बारे में अधिक जानकारी

आप उपलब्ध सामग्री और अपने स्वाद के आधार पर नियंत्रक को कई अलग-अलग तरीकों से महसूस कर सकते हैं।

मैं उन्हें लकड़ी के बक्से के साथ महसूस करना पसंद करता हूं (इस पृष्ठ में चित्र देखें)। Arduino, VGA कनेक्टर और पहले प्लेयर बटन और पोटेंज़ियोमीटर के लिए एक मुख्य बॉक्स; एक दूसरा (छोटा) सिर्फ दूसरे प्लेयर बटन और व्हील के लिए (पोंग और ड्राइंग टॉय के लिए आवश्यक)। एक और संभावना है कि सब कुछ एक बड़े बॉक्स में रखा जाए।

पहले मैं वीजीए पोर्ट को जोड़ने की सिफारिश करता हूं। पहली और दूसरी तस्वीरों में आप कुछ विवरण देख सकते हैं: लाल और हरे रंग के लिए दो 470 ओम प्रतिरोधों पर ध्यान दें जो क्रमशः पिन 6 और 7 से जुड़े हैं, और दो 68 ओम से पिन 3 और 9 क्षैतिज और ऊर्ध्वाधर सिंक्रनाइज़ेशन सिग्नल के लिए।

आप VGA DSUB15 कनेक्टर से कनेक्ट होने वाले पिन के आधार पर अलग-अलग रंग संयोजन चुन सकते हैं, पिन 1, 2 और 3 क्रमशः लाल, हरे, नीले (RGB) का प्रतिनिधित्व करते हैं। मैंने पिन 1 और 2 को जोड़ा, इस प्रकार मेरे पास निम्नलिखित रंग संयोजन हैं: (0, 0) = काला; (१, ०) = लाल; (0, 1) = हरा; (१, १) = पीला।

सभी विभिन्न संभावनाओं के लिए, मैं उस पृष्ठ में विवरण पढ़ने का सुझाव देता हूं जहां आप वीजीएएक्स पुस्तकालय डाउनलोड करते हैं।

जैसे ही वीजीए कनेक्टर तैयार हो जाता है, आप बटनों, पहियों और स्पीकर के लिए अन्य सभी केबल तैयार कर सकते हैं (चित्र 2 देखें)।

अब बस सब कुछ एक साथ रखें: याद रखें कि प्रत्येक बटन पिन को 1 या 2 kOhm रोकनेवाला के माध्यम से जमीन से जोड़ने की आवश्यकता होती है, अन्यथा जब बटन खुला होता है तो पिन की स्थिति अपरिभाषित हो सकती है। इसका मतलब यह है कि अगर पिन काट दिया जाता है तो आप उस पर एक यादृच्छिक (स्थिर) वोल्टेज रख सकते हैं जो इसे सक्रिय कर सकता है। इस निर्देश के दूसरे चरण में योजनाबद्ध अधिक विवरण के लिए देखें।

अंतिम चरण सब कुछ ठीक करना है। मैंने हॉट-गोंद-बंदूक का इस्तेमाल किया, लेकिन आप अपनी पसंदीदा विधि का उपयोग कर सकते हैं।

चरण 4: परिशिष्ट 2: स्मृति सीमा के बारे में कुछ विचार

यह आश्चर्यजनक है कि एक साधारण Arduino VGA सिग्नल और इन सभी खेलों को एक साथ उत्पन्न करने में सक्षम है। असली बोतल-गर्दन SRAM की कमी है। AVR माइक्रोकंट्रोलर में वेरिएबल्स को स्टोर करने और हेरफेर करने के लिए केवल 2048 बाइट्स उपलब्ध हैं, और VGAx लाइब्रेरी 120x60 पिक्सल फ्रेमबफर में स्क्रीन वेरिएबल्स को स्टोर करती है, जहां प्रत्येक पिक्सेल को कुल 1800 बाइट्स के लिए 2 बिट्स (4 रंग) की आवश्यकता होती है। इसका मतलब है कि स्केच वेरिएबल्स के लिए केवल 248 बाइट्स बचे हैं। इसके अलावा, मेरे अनुभव में, अस्थिरता से बचने के लिए किसी को कम से कम 100 बाइट मुक्त छोड़ देना चाहिए। 1950 से ऊपर की गतिशील मेमोरी के बाइट्स का उपयोग करते हुए, माइक्रोकंट्रोलर अजीब और अप्रत्याशित व्यवहार दिखाना शुरू कर देता है।

इसका मतलब है कि सभी चर को अलग-अलग खेलों के बीच साझा किया जाना चाहिए, और यह कोड को काफी अपठनीय और डिबग करने के लिए कठिन बनाता है। यह केवल पिछले स्केच में "एक नया गेम जोड़ने" की बात नहीं है, बल्कि सभी कोड को गहराई से संशोधित और अनुकूलित किया जाना चाहिए।

इसके अलावा, मुझे न्यूनतम संभव परिवर्तनीय प्रारूप का उपयोग करना पड़ा: उदाहरण के लिए, सभी निर्देशांक के लिए मुझे "int" के बजाय "बाइट" का उपयोग करना पड़ा या अन्य मामलों में, मुझे "फ्लोट" के बजाय "int" पसंद करना पड़ा।

अंत में, मेरी जानकारी Sandro Maffiodo उर्फ Smaffer को जाती है, जो VGAx लाइब्रेरी और भयानक गेम BitNinja के निर्माता हैं। इस पुस्तकालय के बिना, इस परियोजना को साकार नहीं किया जा सकता था।

सरल लेकिन मजेदार गेम स्टेकर के लिए निकिता कुरीलेव को भी धन्यवाद।

सिफारिश की: