विषयसूची:

लेगो और रास्पबेरी पाई के साथ बनाया गया शतरंज रोबोट: 6 कदम
लेगो और रास्पबेरी पाई के साथ बनाया गया शतरंज रोबोट: 6 कदम

वीडियो: लेगो और रास्पबेरी पाई के साथ बनाया गया शतरंज रोबोट: 6 कदम

वीडियो: लेगो और रास्पबेरी पाई के साथ बनाया गया शतरंज रोबोट: 6 कदम
वीडियो: 🔥 कैसे Ronaldo और Messi पुतला बन गया 😱 | ronaldo | cr7 #shorts #ytshorts 2024, नवंबर
Anonim
Image
Image

इस शतरंज रोबोट के साथ अपने दोस्तों को विस्मित करें!

यदि आपने पहले लेगो रोबोट बनाए हैं और यदि आपको कम से कम कंप्यूटर प्रोग्रामिंग और लिनक्स का प्रारंभिक ज्ञान है तो इसे बनाना बहुत मुश्किल नहीं है।

रोबोट अपनी चाल खुद बनाता है, और मानव खिलाड़ी की चाल को निर्धारित करने के लिए दृश्य पहचान का उपयोग करता है।

इस रोबोट में नई चीजों में से एक चाल पहचान के लिए कोड है। यह विज़न कोड कई अन्य तरीकों से निर्मित शतरंज रोबोट के लिए भी प्रयोग करने योग्य है (जैसे कि लिंक्समोशन रोबोटिक आर्म का उपयोग करके मेरा शतरंज रोबोट)।

कोई विशेष शतरंज बोर्ड, रीड स्विच या जो कुछ भी आवश्यक नहीं है (जैसा कि मानव की चाल दृश्य पहचान द्वारा निर्धारित की जाती है)।

मेरा कोड व्यक्तिगत उपयोग के लिए उपलब्ध है।

चरण 1: आवश्यकताएँ

लाइट्स, कैमरा, एक्शन!
लाइट्स, कैमरा, एक्शन!

सभी कोड पायथन में लिखे गए हैं, जो अन्य बातों के अलावा, रास्पबेरी पाई पर चलेगा।

रास्पबेरी पाई एक क्रेडिट-कार्ड के आकार का कंप्यूटर है जिसे एक स्क्रीन और एक कीबोर्ड में प्लग किया जा सकता है। यह एक सस्ता (लगभग $40) है, सक्षम छोटा कंप्यूटर जिसका उपयोग इलेक्ट्रॉनिक्स परियोजनाओं और रोबोटिक्स में किया जा सकता है, और आपके डेस्कटॉप पीसी में कई चीजों के लिए किया जा सकता है।

मेरा रोबोट रास्पबेरी पाई और लेगो का उपयोग करता है। आरपीआई और लेगो माइंडस्टॉर्म ईवी3 मोटर्स और सेंसर के बीच हार्डवेयर इंटरफेस डेक्सटर इंडस्ट्रीज के ब्रिकपी3 द्वारा प्रदान किया गया है।

लेगो बिल्ड "चार्ली द चेस रोबोट" पर आधारित है, डार्रस हादी द्वारा, मेरे द्वारा संशोधित, लेगो माइंडस्टॉर्म प्रोसेसर के बजाय आरपीआई का उपयोग करने के लिए मॉड सहित। लेगो माइंडस्टॉर्म EV3 मोटर्स और सेंसर का उपयोग किया जाता है।

आपको एक टेबल, एक कैमरा, लाइटिंग, एक कीबोर्ड, स्क्रीन और पॉइंटिंग डिवाइस (जैसे माउस) की भी आवश्यकता होगी।

और हां, शतरंज के टुकड़े और एक बोर्ड।

मैं इन सभी बातों का आगे के चरणों में विस्तार से वर्णन करता हूँ।

चरण 2: हार्डवेयर बिल्ड

Image
Image

जैसा कि मैंने पहले संकेत दिया था, विज़न कोड का दिल कई तरह के बिल्ड के साथ काम करेगा।

मैंने अपने रोबोट को "चार्ली द चेस रोबोट" (ईवी 3 संस्करण) पर डार्रस हादी द्वारा आधारित किया है, उस पृष्ठ की जानकारी कहती है कि बिल्ड निर्देश कैसे प्राप्त करें। भागों की सूची यहाँ है।

मैंने रोबोट को दो तरीकों से संशोधित किया।

1. पकड़ने वाला। इसने मेरे लिए काम नहीं किया। गियर फिसल गए, इसलिए मैंने इसे रोकने के लिए अतिरिक्त लेगो टुकड़े जोड़े। और फिर जब क्रेन को नीचे किया जाता था तो यह अक्सर जाम हो जाता था, इसलिए मैंने इसे रोकने के लिए एक वाट का लिंकेज जोड़ा।

ऊपर कार्रवाई में धरनेवाला है, संशोधित लिंकेज दिखा रहा है।

2. मूल निर्माण लेगो माइंडस्टॉर्म ईवी3 प्रोसेसर का उपयोग करता है, लेकिन मैं रास्पबेरी पाई का उपयोग करता हूं, जिससे पायथन का उपयोग करना आसान हो जाता है।

3. मैं रास्पबेरी पाई 3 मॉडल बी का उपयोग करता हूं।

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

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

आप रीब्रिकेबल का भी उपयोग कर सकते हैं: एक खाता खोलें, एलडीडी फ़ाइल अपलोड करें और उसमें से विक्रेताओं की सूची प्राप्त करें।

एक और अच्छा स्रोत ब्रिकलिंक है।

चरण 3: सॉफ्टवेयर जो रोबोट को गति प्रदान करता है

सभी कोड पायथन 2 में लिखे गए हैं।

  1. Dexter Industries EV3 मोटर्स आदि को स्थानांतरित करने में सहायता के लिए कोड की आपूर्ति करती है। यह BrickPi3 के साथ आता है।
  2. मैं मोटरों को इस तरह से चलाने के लिए कोड प्रदान करता हूं जैसे कि शतरंज के टुकड़ों को स्थानांतरित करना!
  3. शतरंज का इंजन स्टॉकफिश है - जो किसी भी इंसान को मात दे सकती है! "स्टॉकफिश दुनिया के सबसे मजबूत शतरंज इंजनों में से एक है। यह सर्वश्रेष्ठ मानव शतरंज ग्रैंडमास्टर्स से भी ज्यादा मजबूत है।"
  4. शतरंज इंजन को चलाने के लिए कोड, पुष्टि करता है कि एक चाल वैध है, और आगे है ChessBoard.py
  5. मैं इसके साथ इंटरफेस करने के लिए https://chess.fortherapy.co.uk से कुछ कोड का उपयोग करता हूं।
  6. मेरा कोड (उपरोक्त 2 में) उसके साथ इंटरफेस करता है!

चरण 4: मानव की चाल को पहचानने के लिए सॉफ्टवेयर

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

  • एक खाली वर्ग
  • किसी भी प्रकार का काला टुकड़ा
  • किसी भी प्रकार का सफेद टुकड़ा।

इसमें कास्टिंग और एन पासेंट सहित सभी मामले शामिल हैं।

रोबोट जांचता है कि मानव की चाल सही है, और अगर ऐसा नहीं है तो उन्हें सूचित करता है! एकमात्र मामला कवर नहीं किया गया है जहां मानव खिलाड़ी एक मोहरे को गैर-रानी में बढ़ावा देता है। खिलाड़ी को तब रोबोट को बताना होता है कि प्रचारित टुकड़ा क्या है।

अब हम बिसात के वर्गों के संदर्भ में छवि पर विचार कर सकते हैं।

प्रारंभिक बोर्ड सेट-अप पर हम जानते हैं कि सभी सफेद और काले टुकड़े कहाँ हैं और खाली वर्ग कहाँ हैं।

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

खाली बनाम कब्जे वाले वर्गों के लिए थ्रेशोल्ड मान निर्धारित करने के बाद, अब हमें कब्जे वाले वर्गों के लिए टुकड़े का रंग निर्धारित करने की आवश्यकता है:

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

एल्गोरिदम सबसे अच्छा काम करते हैं यदि शतरंज की बिसात का रंग टुकड़ों के रंग से बहुत दूर है! मेरे रोबोट में, टुकड़े ऑफ-व्हाइट और ब्राउन हैं, और शतरंज बोर्ड कार्ड में हाथ से बना है, और "ब्लैक" और "व्हाइट" वर्गों के बीच थोड़ा अंतर वाला हल्का हरा है।

संपादित करें १७ अक्टूबर २०१८: मैंने अब भूरे रंग के टुकड़ों को मैट ब्लैक में रंग दिया है, जो एल्गोरिदम को अधिक परिवर्तनशील प्रकाश स्थितियों के तहत काम करता है।

चरण 5: लाइट्स, कैमरा, एक्शन

दीपक

आपको बोर्ड पर रखे प्रकाश के एक समान स्रोत की आवश्यकता है। मैं इसका उपयोग करता हूं, जो वास्तव में सस्ता है, amazon.co.uk से - और इसमें कोई संदेह नहीं है कि amazon.com पर कुछ ऐसा ही है। कमरे की लाइट बंद होने से।

अद्यतन करें: मेरे पास अब दो रोशनी हैं, प्रकाश का और भी अधिक स्रोत देने के लिए

कैमरा

इसमें कोई संदेह नहीं है कि आप विशेष रास्पबेरी पाई कैमरा मॉड्यूल (एक लंबी केबल के साथ) का उपयोग कर सकते हैं, लेकिन मैं एक यूएसबी कैमरा का उपयोग करता हूं - "लॉजिटेक 960-001064 सी 525 एचडी वेब कैमरा - ब्लैक" - जो आरपीआई के साथ काम करता है। आपको यह सुनिश्चित करने की ज़रूरत है कि एक टावर बनाकर या इसे मजबूती से ठीक करने के लिए कहीं भी कैमरा बोर्ड के संबंध में नहीं चलता है। ज्यामितीय विरूपण को कम करने के लिए कैमरे को बोर्ड से काफी ऊपर होना चाहिए। मेरे पास मेरा कैमरा बोर्ड से 58 सेमी ऊपर है।

अपडेट करें: अब मैं एचपी वेबकैम एचडी 2300 पसंद करता हूं, क्योंकि मुझे यह अधिक विश्वसनीय लगता है।

टेबल

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

कीबोर्ड

आरपीआई को अपने पहले सेटअप के लिए एक यूएसबी कीबोर्ड की जरूरत है। और मैं इसका उपयोग कोड विकसित करने के लिए करता हूं। प्रोग्राम को शुरू करने और शतरंज की घड़ी को हिट करने का अनुकरण करने के लिए रोबोट को केवल एक कीबोर्ड की आवश्यकता होती है। मुझे इनमें से एक मिला है। लेकिन वास्तव में, आपको केवल एक माउस या एक बटन GPIO-RPi से जुड़ा होना चाहिए

प्रदर्शन

मैं विकास के लिए एक बड़ी स्क्रीन का उपयोग करता हूं, लेकिन रोबोट को केवल यह बताना है कि आपका कदम अमान्य है, चेक करें, आदि। मुझे इनमें से एक मिला, जो amazon.com पर भी उपलब्ध है।

लेकिन प्रदर्शन की आवश्यकता के बजाय, रोबोट इन वाक्यांशों को बोलेगा! मैंने यहां वर्णित कोड का उपयोग करके पाठ को वाक् में परिवर्तित करके और एक छोटा स्पीकर संलग्न करके ऐसा किया है। (मैं "हैमबर्गर मिनी स्पीकर" का उपयोग करता हूं)।

वाक्यांश रोबोट कहते हैं:

  • जाँच!
  • शह और मात
  • अमान्य चाल
  • तुम जीते!
  • गतिरोध
  • तीन गुना दोहराव द्वारा ड्रा करें
  • 50 चालों के नियम से ड्रा करें

शतरंज में पचास चाल के नियम में कहा गया है कि एक खिलाड़ी ड्रॉ का दावा कर सकता है यदि कोई कब्जा नहीं किया गया है और पिछले पचास चालों में कोई मोहरा नहीं ले जाया गया है (इस उद्देश्य के लिए एक "चाल" में एक खिलाड़ी शामिल होता है जो अपनी बारी को पूरा करता है। प्रतिद्वंद्वी अपनी बारी पूरी कर रहा है)।

आप ऊपर दिए गए छोटे "मूर्खों के साथी" वीडियो में रोबोट को बोलते हुए सुन सकते हैं (यदि आप अपनी आवाज को काफी ऊंचा करते हैं)!

चरण 6: सॉफ्टवेयर कैसे प्राप्त करें

1. स्टॉकफिश

यदि आप अपने आरपीआई पर रास्पियन चलाते हैं तो आप स्टॉकफिश 7 इंजन का उपयोग कर सकते हैं - यह मुफ़्त है। बस दौडो:

sudo apt-get install stockfish

2. ChessBoard.py

इसे यहाँ प्राप्त करें।

3. https://chess.fortherapy.co.uk/home/a-wooden-chess… पर आधारित कोड

मेरे कोड के साथ आता है।

4. BrickPi3 के लिए पायथन ड्राइवर:

इन्हें यहाँ प्राप्त करें।

5. मेरा कोड जो उपरोक्त सभी कोड को आमंत्रित करता है और जो रोबोट को चाल चलने के लिए प्राप्त करता है, और मेरा विज़न कोड।

एक टिप्पणी पोस्ट करके मुझसे इसे प्राप्त करें, और मैं जवाब दूंगा।

सिफारिश की: