विषयसूची:

अज़ीमुथल प्रोजेक्शन 3डी मैप डेकोरेशन X लोक संगीत पहेली गेम - Arduino: 7 Steps
अज़ीमुथल प्रोजेक्शन 3डी मैप डेकोरेशन X लोक संगीत पहेली गेम - Arduino: 7 Steps

वीडियो: अज़ीमुथल प्रोजेक्शन 3डी मैप डेकोरेशन X लोक संगीत पहेली गेम - Arduino: 7 Steps

वीडियो: अज़ीमुथल प्रोजेक्शन 3डी मैप डेकोरेशन X लोक संगीत पहेली गेम - Arduino: 7 Steps
वीडियो: Different map projections 2024, जुलाई
Anonim
Image
Image
बोर्ड डिजाइन करें
बोर्ड डिजाइन करें

परिचय

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

डेकोरेशन मोड को सक्रिय करते समय, मानचित्र के महाद्वीप आरजीबी एलईडी के उपयोग के माध्यम से आरजीबी मूल्यों के यादृच्छिक संयोजन द्वारा निर्धारित विभिन्न रंगों में चमकेंगे।

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

_

आपूर्ति

वास्तविक सामग्री

  • 5 मिमी आरजीबी एलईडी * 20
  • तारों
  • प्रतिरोधक *9
  • Arduino Board *1 (किसी भी प्रकार का)
  • ब्रेडबोर्ड्स *3
  • बटन *7
  • एलसीडी डिस्प्ले बोर्ड I2C * 1
  • कार्डबोर्ड बॉक्स (13*9*5.7 इंच; 33*23*14.5 सेमी)
  • लकड़ी का बोर्ड (37.5*29*0.8 सेमी)
  • एक्रिलिक बोर्ड (पारदर्शी * 2, अर्ध-पारदर्शी * 1)
  • पोर्टेबल चार्जर *1

उपकरण:

  • ब्लेड *1
  • यूवी इलाज चिपकने वाले *1
  • दो तरफा टेप *1 रोल
  • हॉट ग्लू गन *1

मशीनें:

लेजर काटना मशीन

सॉफ्टवेयर:

  • एडोब इलस्ट्रेटर
  • एडोब फोटोशॉप
  • राइनो ३डी

चरण 1: बोर्ड डिजाइन करें

आप संलग्न फ़ाइल को सीधे डाउनलोड कर सकते हैं या नीचे दिए गए चरणों का पालन कर सकते हैं।

मानचित्र को रेखांकित करना

  1. Google से मानचित्र की रूपरेखा डाउनलोड करें

    1. गूगल "संयुक्त राष्ट्र लोगो"
    2. "उपकरण - आकार - बड़ा" चुनें
    3. अपनी सबसे पसंदीदा छवि डाउनलोड करें (इस परियोजना द्वारा उपयोग की गई एक: लिंक) *कोशिश करें कि महाद्वीपीय भूमि के साथ अतिव्यापी जटिल रेखाओं वाले लोगों का चयन न करें*
  2. डाउनलोड किए गए मानचित्र को मुद्रण संस्करण में स्थानांतरित करें

    1. एडोब फोटोशॉप में पेंटब्रश फ़ंक्शन का उपयोग करके अवांछित क्षेत्रों को सफेद रंग में रंग दें
    2. फ़ाइल निर्यात करें (जेपीईजी)
    3. फ़ाइल को Adobe Illustrator में आयात करें और मानचित्र को ट्रेस करने के लिए "इमेज ट्रेस" फ़ंक्शन का उपयोग करें
    4. फ़ाइल निर्यात करें (डीएक्सएफ)

षट्भुज पृष्ठभूमि जोड़ना

  1. dxf फ़ाइल को राइनो में आयात करें
  2. "बहुभुज" फ़ंक्शन का चयन करें और "NumSides" विकल्प के लिए "6" में कुंजी का चयन करें
  3. त्रिज्या मान के लिए "3.5" में कुंजी
  4. 28 समान आकार के षट्भुज बनाएं
  5. फ़ाइल को 3dm. में निर्यात करें

चरण 2: लेजर काटना

Image
Image
लेजर द्वारा काटना
लेजर द्वारा काटना
लेजर द्वारा काटना
लेजर द्वारा काटना
लेजर द्वारा काटना
लेजर द्वारा काटना
  1. पहले पूर्ण की गई फ़ाइल को xxx में आयात करें।
  2. लेजर कटिंग मशीन का उपयोग करके, लकड़ी के बोर्ड पर मुख्य बॉडी और ऐक्रेलिक बोर्ड पर महाद्वीपों का प्रिंट आउट लें (2 पारदर्शी और 1 अर्ध-पारदर्शी) (वीडियो ऊपर दिए गए हैं)

चरण 3: डिवाइस बनाएं

डिवाइस बनाएं
डिवाइस बनाएं
डिवाइस का निर्माण करें
डिवाइस का निर्माण करें
डिवाइस बनाएं
डिवाइस बनाएं

लेजर कटिंग के बाद बोर्ड

  • एक्रिलिक महाद्वीप

    1. प्रत्येक महाद्वीप के तीन बोर्डों को एक साथ चिपकाने के लिए यूवी इलाज योग्य चिपकने का उपयोग करें (मध्य परत के रूप में अर्ध-पारदर्शी के साथ)
    2. चिपके हुए क्षेत्रों पर चमकने के लिए यूवी प्रकाश का उपयोग करें ताकि ग्लू को जमने दिया जा सके
  • लकड़ी के बोर्ड फाउंडेशन

    1. मुख्य लकड़ी के बोर्ड पर फंसे छोटे भूमि क्षेत्रों को मैन्युअल रूप से हटा दें
    2. *यदि लकड़ी के बोर्ड का कोई हिस्सा टूट गया है, तो उन्हें वापस गोंद करने के लिए यूवी इलाज योग्य चिपकने का उपयोग करें*

आधार का निर्माण (संपूर्ण उपकरण का निचला आधार)

  1. १३*९*५.७ इंच (३३*२३*१४.५ सेमी) के करीब आयामों के साथ एक पर्याप्त आकार का कार्डबोर्ड बॉक्स खोजें
  2. संदर्भ मॉडल के रूप में लकड़ी के बोर्ड का उपयोग करते हुए, महाद्वीपीय भागों को बॉक्स की ऊपरी सतह पर ट्रेस करें
  3. बॉक्स की ऊपरी सतह पर बटनों के निचले हिस्से को ट्रेस करें, प्रत्येक बटन को प्रत्येक ट्रेस किए गए महाद्वीपीय भागों के भीतर केंद्रित करें
  4. निशानों का पालन करके बटन के हिस्सों को काटने के लिए ब्लेड का उपयोग करें
  5. ट्रेस किए गए महाद्वीपीय भागों के भीतर, बटन के आस-पास के छोटे खंडों को काटने के लिए ब्लेड का उपयोग करें
  6. बॉक्स के दाईं ओर बटन के दो और निचले हिस्सों को ट्रेस करें (समान ऊंचाई के साथ निशान संरेखित करने का प्रयास करें)
  7. एलसीडी डिस्प्ले बोर्ड को बॉक्स के दाईं ओर ट्रेस करें (पिछले चरण में दो बटनों के ऊपर)
  8. चरण 6 और 7 में दिए गए निशानों का पालन करके दो बटन भागों और एलसीडी भाग को काटने के लिए एक ब्लेड का उपयोग करें

चरण 4: सर्किट बनाएं

सर्किट बनाएं
सर्किट बनाएं

ऊपर दिए गए स्कीमैटिक्स का जिक्र करते हुए, सर्किट का निर्माण करें।

ध्यान दें:

  • आरजीबी एल ई डी और बटन के लिए प्रतिरोधी अलग हैं, स्पष्ट रूप से देखें!
  • चूंकि ऊपर दिए गए LCD डिस्प्ले बोर्ड में I2C मॉडल नहीं है, इसलिए यह पूरी तरह से कनेक्ट नहीं है। (I2C मॉडल वाले LCD डिस्प्ले बोर्ड में केवल चार पिन लगाने होते हैं)

    • डिस्प्लेर और Arduino बोर्ड पर GND कनेक्ट करें
    • ब्रेडबोर्ड पर सकारात्मक पिन के साथ डिस्प्लेर पर वीसीसी कनेक्ट करें
    • एसडीए को डिस्प्लेर और Arduino बोर्ड पर कनेक्ट करें
    • डिस्प्लेर और Arduino बोर्ड पर SCL को कनेक्ट करें

चरण 5: कोड अपलोड करें

इस परियोजना के लिए कोड यहां या नीचे पाया जा सकता है।

प्रत्येक कोडिंग लाइन में एक साइड नोट होता है जो इसके उद्देश्य और कार्य को समझाता है।

ध्यान दें:

  • आपके सर्किट के लेआउट के आधार पर सभी विशिष्ट डी पिन को बदला और समायोजित किया जा सकता है
  • सभी विलंबित सेकंड को अलग-अलग मानों में बदला जा सकता है, लेकिन उन्हें DELETE न करें! (ये विलंबित सेकंड कोड को अधिक तार्किक रूप से प्रवाहित करने की अनुमति देते हैं। उनके बिना, कोड के कुछ हिस्से काम नहीं कर सकते हैं!)
  • लाइन 24 ("लूप के लिए" की शुरूआत) पर, आप उस दोहराव की संख्या को निर्दिष्ट कर सकते हैं जिसके लिए आप लूप को चलाना चाहते हैं (मूल मान 5 है)
  • प्रत्येक बटन के "अगर दबाया गया" और "अगर दबाया नहीं गया" छोरों में आरजीबी एलईडी का रंग संयोजन समायोजित और अनुकूलित किया जा सकता है। (मूल रूप से, आरजीबी एल ई डी दबाए जाने पर हरे रंग में चमकेंगे जबकि वे दबाए जाने पर लाल रंग में चमकेंगे। आप सही और गलत उत्तर देने के लिए रचनात्मक रंग रखने के लिए मूल्यों को बदल सकते हैं)

#शामिल

#लिक्विड क्रिस्टल_आई२सी एलसीडी_आई२सी_२७(०x२७, १६, २) शामिल करें; // 16 वर्णों और 2 लाइन डिस्प्ले int _R के लिए LCD पता सेट करें; // चर R का परिचय दें, जो RGB LED int _G के लाल मान के लिए है; // वैरिएबल G का परिचय दें, जो RGB LED int _B के ग्रीन वैल्यू के लिए है; // वेरिएबल बी पेश करें, जो आरजीबी एल ई डी int _SongNumber के ब्लू वैल्यू के लिए खड़ा है; // वैरिएबल सॉन्गनंबर शून्य सेटअप () {पिनमोड (10, INPUT) का परिचय दें; // मानचित्र-सजावट बटन पिनमोड (9, INPUT) के लिए इनपुट के रूप में D10 सेट करता है; // पहेली-गेम बटन पिनमोड (8, INPUT) के लिए इनपुट के रूप में D9 सेट करता है; // यूरेशिया बटन पिनमोड (4, INPUT) के लिए इनपुट के रूप में D8 सेट करता है; // उत्तरी अमेरिका बटन पिनमोड (3, INPUT) के लिए इनपुट के रूप में D4 सेट करता है; // दक्षिण अमेरिका बटन पिनमोड (2, INPUT) के लिए इनपुट के रूप में D3 सेट करता है; // अफ्रीका बटन पिनमोड (1, INPUT) के लिए इनपुट के रूप में D2 सेट करता है; // ओशिनिया बटन LCD_I2C_27.init () के लिए इनपुट के रूप में D1 सेट करता है; // LCD डिस्प्ले बोर्ड को इनिशियलाइज़ करें LCD_I2C_27.backlight (); // एलसीडी डिस्प्ले बोर्ड की बैकलाइट चालू करें} शून्य लूप () {अगर (डिजिटलरेड (10)) {// यदि नक्शा-सजावट बटन दबाया जाता है (int i = 0; i <5; ++i) {// निम्नलिखित लूप को 5 बार चलाएं _R = random(0, 1023); // चर R को 0 से 1023 तक एक यादृच्छिक मान दें _G = random(0, 1023); // चर G को 0 से 1023 तक एक यादृच्छिक मान दें _B = random(0, 1023); // वेरिएबल बी को 0 से 1023 एनालॉग्राइट (13, (_R / 4)) से एक यादृच्छिक मान दें; // पहले समूह के विकल्प के लिए आरजीबी एलईडी का आर मान और 0 से 255 एनालॉग्राइट (12, (_G / 4)) के लिए चर मान लिखता है; // पहले समूह के विकल्प के लिए आरजीबी एलईडी का जी मान और 0 से 255 एनालॉग्राइट (11, (_B / 4)) के चर मान को लिखता है; // पहले समूह के विकल्प के लिए आरजीबी एलईडी का बी मान और 0 से 255 एनालॉग्राइट (7, (_R / 4)) के चर मान को लिखता है; // दूसरे समूह के विकल्प के लिए RGB LED का R मान और 0 से 255 एनालॉग्राइट (6, (_G / 4)) के चर मान को लिखता है; // दूसरे समूह के विकल्प के लिए RGB LED का G मान 0 से 255 एनालॉग्राइट (5, (_B / 4)) के लिए चर मान लिखता है; // दूसरे समूह के विकल्प के लिए RGB LED का B मान और 0 से 255 विलंब (3000) तक चर मान लिखता है; // 3000 मिलीसेकंड (3 सेकंड) के लिए प्रतीक्षा करें} // चूंकि चर R, G, B के मान लूप में निर्धारित होते हैं, प्रति लूप पांच अलग-अलग रंग संयोजन होंगे} अगर (डिजिटलरेड (9)) {//if पहेली-गेम बटन दबाया जाता है _SongNumber = random(1, 20); // परिवर्तनीय SongNumber को 1 से 20 तक एक यादृच्छिक मान दें LCD_I2C_27.setCursor(0, 0); // कर्सर सेट करें, गिनती 0 LCD_I2C_27.print(_SongNumber) से शुरू होती है; // SongNumber के मान को LCD डिस्प्ले बोर्ड एनालॉगराइट (13, 0) पर प्रिंट करें; // रीसेट करें और D13 के मान को 0 एनालॉगवर्इट (12, 0) के रूप में लिखें; // रीसेट करें और D12 के मान को 0 एनालॉगवर्इट (11, 0) के रूप में लिखें; // रीसेट करें और D11 के मान को 0 एनालॉगवर्इट (7, 0) के रूप में लिखें; // रीसेट करें और D7 के मान को 0 एनालॉगवर्इट (6, 0) के रूप में लिखें; // रीसेट करें और D6 के मान को 0 एनालॉगवर्इट (5, 0) के रूप में लिखें; // रीसेट करें और D5 का मान 0 के रूप में लिखें यदि (_SongNumber>= 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// यदि का मान परिवर्तनीय SongNumber 18 से 20 विलंब (60000) से है; // लोक संगीत सुनने के लिए खिलाड़ियों के लिए ६०००० मिलीसेकंड की प्रतीक्षा करें (६० सेकंड; १ मिनट) अगर (डिजिटलरेड (१)) {// यदि ओशिनिया बटन को एनालॉगवाइट (13, 0) दबाया जाता है; //एनालॉगD13 के मान को 0 एनालॉगवर्इट(12, 255) के रूप में लिखें; //एनालॉगD12 के मान को 255 एनालॉगवर्इट (11, 0) के रूप में लिखें; //एनालॉगD11 के मान को 0 एनालॉगवर्इट (7, 0) के रूप में लिखें; //एनालॉगD7 के मान को 0 एनालॉगवर्इट (6, 255) के रूप में लिखें; //एनालॉगD6 255 का मान लिखेंएनालॉगराइट(5, 0); //analogD5 के मान को 0 के रूप में लिखें} // सभी RGB LED हरे रंग में चमकेंगे अन्यथा {// यदि ओशिनिया बटन को एनालॉगवाइट (13, 255) नहीं दबाया जाता है; //एनालॉगD13 के मान को 255 एनालॉगवर्इट(12, 0) के रूप में लिखें; //analogD12 के मान को 0 एनालॉगवर्इट (11, 0) के रूप में लिखें; //एनालॉगD11 के मान को 0 एनालॉगवर्इट (7, 255) के रूप में लिखें; //एनालॉगD7 के मान को 255 एनालॉगवर्इट (6, 0) के रूप में लिखें; //एनालॉगD6 के मान को 0 एनालॉगवर्इट (5, 0) के रूप में लिखें; //analogD5 के मान को 0 के रूप में लिखें} // सभी RGB LED लाल रंग में चमकेंगे} // चूंकि SongNumber 18 से 20 के लिए सही उत्तर सभी ओशिनिया हैं, यह "अगर लूप" एक्सेस करता है कि खिलाड़ी का उत्तर सही है या नहीं नहीं LCD_I2C_27.clear(); // एलसीडी डिस्प्ले बोर्ड विलंब (1000) को साफ़ करें; // 1000 मिलीसेकंड (1 सेकंड) के लिए प्रतीक्षा करें}}

चरण 6: डिवाइस को खत्म करना

  1. कार्डबोर्ड बॉक्स खोलें और पहले से निर्मित सर्किट में डालें (सभी तत्वों सहित, उदा: तीन ब्रेडबोर्ड, Arduino बोर्ड, पोर्टेबल चार्जर)
  2. बॉक्स के शीर्ष पर कोड और ट्रेस किए गए महाद्वीपीय भागों का जिक्र करते हुए, बटनों को उनकी प्रत्येक संबंधित स्थिति में भर दें

    *आप यह सुनिश्चित करने के लिए कोड के पीछे के साइड नोट देख सकते हैं कि कौन सा पिन बटन किस महाद्वीप के लिए है*

  3. बॉक्स के दाईं ओर प्रत्येक कट-पार्ट में दो "फ़ंक्शन बटन" (D10 का मैप-डेको और D9 का पज़ल-गेम) भर दें
  4. बॉक्स के दाईं ओर एलसीडी डिस्प्ले बोर्ड को उसके कटे हुए हिस्से में स्थापित करें
  5. बॉक्स खोलें और सुनिश्चित करें कि सभी तार बोर्ड से ठीक से जुड़े हुए हैं
  6. दो तरफा टेप का उपयोग करके लकड़ी के बोर्ड की नींव को बॉक्स के शीर्ष भाग पर चिपका दें (सुनिश्चित करें कि बटन ठीक से लकड़ी के बोर्ड के कट-भाग में फिट हो सकते हैं)
  7. छोटे क्षेत्र के हिस्सों को भरने के लिए गर्म गोंद बंदूक का प्रयोग करें (मुख्य महाद्वीप नहीं)

चरण 7: हो गया !!!!

पहेली खेल के लिए, परीक्षण प्लेलिस्ट के लिंक पर जाएं!

सिफारिश की: