विषयसूची:

बॉक्स कैप्चर करें: 8 कदम
बॉक्स कैप्चर करें: 8 कदम

वीडियो: बॉक्स कैप्चर करें: 8 कदम

वीडियो: बॉक्स कैप्चर करें: 8 कदम
वीडियो: मास्क बनाने का सबसे सरल तरीका सिर्फ 5 मिनट में / very easy fabric mask/ diy mask making tutorial 2024, नवंबर
Anonim
बॉक्स कैप्चर करें
बॉक्स कैप्चर करें
बॉक्स कैप्चर करें
बॉक्स कैप्चर करें

Capture The Box एक टीम बिल्डिंग गेम है जिसे आप अपने पड़ोस में दोस्तों के साथ खेल सकते हैं।

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

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

आपूर्ति

माइक्रोकंट्रोलर और कंप्यूटर

  • रास्पबेरी पाई
  • Arduino (Mega)मैंने एक सामान्य Uno के बजाय Arduino Mega को चुना, क्योंकि इसमें बहुत अधिक पिन हैं। यह आवश्यक है क्योंकि हम ड्रैगिनो लोरा शील्ड का उपयोग कर रहे हैं, जो यूएनओ का उपयोग करते समय हमें बहुत कम डिजिटल पिन के साथ छोड़ देगा। सुझाव: असली का उपयोग करना सबसे अच्छा है, क्योंकि चीनी क्लोन हमेशा अपेक्षा के अनुरूप काम नहीं करते हैं।

सेंसर और मॉड्यूल

  • 4 MAX7219 डॉट मैट्रिक्स मॉड्यूल DOUT को DIN, CS से CS, CLK से CLK से कनेक्ट करें…
  • लाइट डिपेंडेंट रेजिस्टर (10K) + रेसिस्टर (10K)
  • NEO-7M (या समान) GPS मॉड्यूलमैं वेल्लेमैन से VMA430 का उपयोग कर रहा हूँ
  • RC522 RFID मॉड्यूल + कुछ RFID बैज/कार्ड

लोरा (वायरलेस तकनीक) का उपयोग करने के लिए

ड्रैगिनो लोरा शील्ड

वैकल्पिक सेंसर और मॉड्यूल

एक एलसीडी डिस्प्लेरास्पबेरी पाई का आईपी पता प्रदर्शित करने के लिए

परीक्षण सेटअप करने के लिए

एक ब्रेडबोर्ड और ड्यूपॉन्ट केबल्स (पुरुष-पुरुष.)

वैकल्पिक (आवरण)

  • सोल्डरिंग आयरन
  • एक पुराना टूल केस
  • 3डी प्रिंटिंग के लिए सामग्री
  • कुछ पतले लकड़ी के तख्ते
  • कुछ बोल्ट और नट (जो Arduino छेद में फिट हो सकते हैं)। मेरे स्क्रू का व्यास लगभग 3 मिमी है।

अनुमानित मूल्य नीचे शामिल बीओएम (सामग्री का बिल) में पाया जा सकता है।

चरण 1: रास्पबेरी पाई की स्थापना

रास्पबेरी पाई परियोजना का दिल है।

यह फ्रंटएंड, बैकएंड और डेटाबेस चलाएगा। यह बैकएंड और Arduino के बीच संचार के लिए भी जिम्मेदार होगा।

रास्पबेरी पाई का उपयोग करने के लिए, हमें निम्नलिखित कार्य करने होंगे:

भाग 1: रास्पबेरी पाई पर रास्पियन स्थापित करें

इसे कैसे करें इस पर एक ट्यूटोरियल यहां पाया जा सकता है:https://thepi.io/how-to-install-raspbian-on-the-ra…

भाग 2: रास्पबेरी पाई पर रास्पियन स्थापित करेंअपना घर वाईफाई स्थापित करना।

यह wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf का उपयोग करके किया जा सकता है

पाई को रीबूट करें और ifconfig में टाइप करते समय आपको एक आईपी पता देखना चाहिए

भाग 3: वेबसर्वर और डेटाबेस स्थापित करें

एक बार जब आप अपना पाई अप और चालू कर लेते हैं, तो अपना पासवर्ड बदलना सबसे अच्छा होता है। यह कमांड के साथ किया जा सकता है passwd ।

एक बार यह हो जाने के बाद, आगे बढ़ें और Apache, PHP, MariaDB और PHPMyAdmin इंस्टॉल करें।

Apache, PHP sudo apt install apache2 -y sudo apt install php libapache2-mod-php -y

मारियाडीबी सुडो एपीटी स्थापित मारियाडब-सर्वर मारियाडब-क्लाइंट -वाई सुडो एपीटी स्थापित php-mysql -y sudo systemctl पुनरारंभ apache2.service

PHPMyAdminsudo उपयुक्त phpmyadmin -y. स्थापित करें

एक सुरक्षित MySQL पासवर्ड सेट करना न भूलें।

भाग 4: आवश्यक पायथन पुस्तकालय स्थापित करना

बैकएंड के लिए, हमें कुछ पुस्तकालयों की आवश्यकता होगी। इन्हें pip3 कमांड का उपयोग करके स्थापित किया जा सकता है।

pip3 mysql-कनेक्टर-अजगर स्थापित करें

pip3 फ्लास्क-सॉकेटियो स्थापित करें

pip3 फ्लास्क-कोर्स स्थापित करें

pip3 geventpip3 स्थापित करें gevent-websocket स्थापित करें

pip3 ttn स्थापित करें

चरण 2: इलेक्ट्रॉनिक्स को बिछाना

इलेक्ट्रॉनिक्स बाहर रखना
इलेक्ट्रॉनिक्स बाहर रखना
इलेक्ट्रॉनिक्स बाहर रखना
इलेक्ट्रॉनिक्स बाहर रखना

इस परियोजना को काम करने के लिए, हमें सभी इलेक्ट्रॉनिक्स को जोड़ने की जरूरत है।

लोरा शील्ड को आसानी से लगाया जा सकता है। बस अपने Arduino पर पिन के साथ पिन को संरेखित करें।

अन्य कनेक्शन मेरी फ्रिट्ज़िंग योजना में वर्णित हैं। जिसे यहां डाउनलोड किया जा सकता है:

चरण 3: डेटाबेस डिजाइन करना

डेटाबेस डिजाइनिंग
डेटाबेस डिजाइनिंग

सभी गेम और सेंसर डेटा को स्टोर करने में सक्षम होने के लिए, मैंने कुछ टेबल बनाए:

मीटरिंग और सेंसरसेंसर से माप, सेंसर टेबल में पाया जाता है। इसमें सेंसर का संदर्भ होता है, माप का मूल्य (जैसे समन्वय: 51.123456; 3.123456) और एक वैकल्पिक गेम आईडी (यदि माप के दौरान कोई गेम सक्रिय था).

spelerखिलाड़ी के नाम और उनके RFID बैज का UID। एक वैकल्पिक फ़ील्ड मॉडरेटर जोड़ा जाता है, यह व्यक्ति खेल को संशोधित कर सकता है (उदा. इसे समय से पहले रोकना)।

खेल की जानकारी (प्रारंभ और समाप्ति समय)।

spel_has_spelerवर्तनी और स्पेलर के बीच संबंध। यह वह जगह है जहाँ खिलाड़ियों को एक खेल सौंपा जाता है।

bezitइस तालिका में, स्कोर सहेजा गया है। इसमें गेम आईडी, प्लेयर आईडी, जिस समय उसने बॉक्स चुराया था और वह समय खो गया था (जब कोई और इसे चुरा लेता है या जब गेम समाप्त होता है)। समाप्ति समय से प्रारंभ समय घटाकर, आप उस कैप्चर से प्राप्त स्कोर की गणना कर सकते हैं।

डेटाबेस का एक निर्यात मेरे GitHub (https://github.com/BoussonKarel/CaptureTheBox) पर पाया जा सकता है।

PHPMyAdmin/MySQL वर्कबेंच में एसक्यूएल खोलें और इसे चलाएं। डेटाबेस अब आयात किया जाना चाहिए।

चरण 4: टीटीएन पर एक खाता स्थापित करना

चरण 1: TTN पर एक खाते के लिए साइन अप करें और एक एप्लिकेशन बनाएं।

TheThingsNetwork पर एक खाते के लिए साइन अप करें, फिर कंसोल > एप्लिकेशन जोड़ें पर जाएं।

अपने आवेदन के लिए एक नाम चुनें और आवेदन जोड़ें पर क्लिक करें।

चरण 2: एक उपकरण पंजीकृत करें

जब आप अपना आवेदन कर लें, तो रजिस्टर डिवाइस पर जाएं।

एक डिवाइस आईडी चुनें, यह वही हो सकता है जो आप चाहते हैं (जब तक यह सांप का मामला है) और रजिस्टर पर क्लिक करें।

डिवाइस ईयूआई के तहत जेनरेट आइकन पर क्लिक करें, इसलिए टीटीएन आपके लिए एक जेनरेट करेगा।

चरण 3: अपनी साख लिखना

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

कॉपी करने से पहले, स्विच बटन पर क्लिक करें और सुनिश्चित करें कि आपका देव EUI और ऐप EUI LSB FIRST हैं।

आपकी ऐप कुंजी MSB पहले बनी रहनी चाहिए (उसे न बदलें)।

अगले चरण में आपको इन चाबियों की आवश्यकता होगी: Arduino की स्थापना।

चरण 4: अपना एप्लिकेशन एक्सेस कुंजी लिखना

अब हमें अपने रास्पबेरी पाई पर एमक्यूटीटी स्थापित करने के लिए एक और कुंजी की आवश्यकता होगी।

अपने एप्लिकेशन पर जाएं और एक्सेस कीज़ तक स्क्रॉल करें।

बैकएंड चरण में आपको इसकी आवश्यकता होगी।

चरण 5: Arduino सेट करना

Arduino कोड मेरे GitHub पर Arduino (https://github.com/BoussonKarel/CaptureTheBox) के तहत भी पाया जा सकता है।

इस कोड को व्यवस्थित रखने के लिए इसे कई टैब में विभाजित किया गया है।

main.inoमुख्य कोड: पिन डिक्लेरेशन, सेटअप () और लूप ()

0_LoRa.inoयह कोड लोरा का उपयोग करके संचार को संभालता है।

यह LDR, GPS और RFID टैग के डेटा को 13 बाइट्स की एक सरणी में रखता है और इसे TheThingsNetwork को भेजता है।

1_LDR.inoएनालॉग रीड () का उपयोग करते हुए, यह लाइट डिपेंडेंट रेसिस्टर पर वोल्टेज की मात्रा को मापता है।

इसके बाद इसे प्रकाश के प्रतिशत में बदल दिया जाता है (0 कुछ भी नहीं, 100 सेलफोन फ्लैशलाइट होने के नाते)।

2_GPS.inoयह TX1 और RX1 (सीरियल 1) का उपयोग करके सीरियल संचार का उपयोग करता है।

यह बॉक्स के अक्षांश और देशांतर को खोजने के लिए NMEA संदेशों (सटीक होने के लिए $GPRMC संदेशों) का उपयोग करता है।

3_RFID.inoMFRC522 पुस्तकालय का उपयोग करते हुए, यह कोड नए RFID टैग के लिए स्कैन करता है। जब भी कोई मौजूद होता है, तो यह RFID_lastUID के रूप में संग्रहीत होता है।

4_DotMatrix.ino इस कोड का उपयोग डॉट मैट्रिक्स डिस्प्ले को इनिशियलाइज़ और सेट करने के लिए किया जाता है। इसमें लोडिंग एनीमेशन आदि की परिभाषाएँ शामिल हैं…

इसे स्थापित करना।

इससे पहले कि आप इस कोड को अपने Arduino पर अपलोड कर सकें, आपको कुछ लाइब्रेरी स्थापित करने की आवश्यकता होगी।

मैथिजस्कूइजमैन द्वारा Arduino-LMIC लाइब्रेरी (https://github.com/matthijskooijman/arduino-lmic)

RFID रीडर के लिए MFRC522 लाइब्रेरी (https://github.com/miguelbalboa/rfid)

अब, main.ino पर जाएं और DEVEUI, APPEUI और APPKEY को बदल दें, जिन्हें आपने अंतिम चरण में कॉपी किया था।

चरण 6: बैकएंड की स्थापना

इस प्रोजेक्ट का बैकएंड मेरे GitHub पर RPI> बैकएंड (https://github.com/BoussonKarel/CaptureTheBox) के तहत पाया जा सकता है।

यह कैसे काम करता है?

  1. हर 10 सेकंड में, कोड एक सक्रिय गेम की तलाश करता है। यदि कोई मिल जाता है, तो इसे huidigSpel (currentGame) नामक एक चर में सहेजा जाता है।
  2. यदि मोड सीरियल पर सेट है, तो Arduino और Pi के बीच एक केबल का उपयोग किया जाता है। Pi LDR और GPS के मानों के लिए मतदान करता है। Arduino एक JSON प्रारूप के साथ प्रतिक्रिया करता है। जब भी उन्हें प्रस्तुत किया जाता है तो RFID टैग भेजे जाते हैं। यह मोड पूरी तरह से विकास उद्देश्यों के लिए उपयोग किया गया था और अब वास्तव में आवश्यक नहीं है।
  3. यदि मोड लोरा पर सेट है, तो एक एमक्यूटीटी क्लाइंट बनाया जाता है जो टीटीएन द्वारा लोरा डेटा प्राप्त होने पर कॉलबैक को ट्रिगर करता है। इसमें एलडीआर, जीपीएस और आरएफआईडी डेटा शामिल हैं।
  4. फ्रंटएंड एपीआई एंडपॉइंट्स का उपयोग करके डेटा को पुनः प्राप्त कर सकता है। अधिकांश डेटा huidigSpel.id का उपयोग करके पुनर्प्राप्त किया जाता है। डेटा JSON प्रारूप में jsonify () का उपयोग करके वापस कर दिया जाता है

सेटिंग्स को संशोधित करेंसीक्रेट्स.py पर जाएं और अपने लोरा एप्लिकेशन और अपनी एक्सेस की (आपने पहले लिखा था) का नाम भरें।

config.py पर जाएं और अपने डेटाबेस क्रेडेंशियल (जैसे पासवर्ड, उपयोगकर्ता…) भरें

इसे सेवा के रूप में सेट करना app.py चलाने का प्रयास करें, एक बार जब आप पुष्टि कर लें कि यह काम कर रहा है, तो हम इसे एक सेवा के रूप में उपयोग कर सकते हैं। जब आप अपना पीआई बूट करते हैं तो यह स्वचालित रूप से पृष्ठभूमि में कोड शुरू कर देगा।

ऐसा करने के लिए ctb_service.service को /etc/systemd/system/ctb_service.service पर कॉपी करें। सुडो सीपी ctb_service.service /etc/systemd/system/ctb_service.service

अब systemctl enable ctb_service.service का उपयोग करके इसे सक्षम करें

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

यदि आपको लॉग (त्रुटियों के कारण) से परामर्श करने की आवश्यकता है, तो आप journalctl -u ctb_service.service का उपयोग कर सकते हैं।

सेवाओं के बारे में अधिक जानकारी यहां पाई जा सकती है:

चरण 7: फ्रंटएंड सेट करना

हमेशा की तरह, मेरे GitHub पर, RPI > Frontend(https://github.com/BoussonKarel/CaptureTheBox) के तहत फ्रंटएंड पाया जा सकता है।

इसे अपने रास्पबेरी पाई के /var/html फ़ोल्डर में पेस्ट करें।

इसमें खेल के लिए सभी आवश्यक वेब पेज शामिल हैं।

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

चरण 8: एक आवरण जोड़ना

एक आवरण जोड़ना
एक आवरण जोड़ना
एक आवरण जोड़ना
एक आवरण जोड़ना

मामले के लिए, मैंने निम्नलिखित सामग्रियों/तकनीकों के साथ एक पुराने टूल केस का उपयोग किया:

  • 3 डी प्रिंटिग
  • बैटरी को यथावत रखने के लिए फोम
  • पुनर्नवीनीकरण लकड़ी के तख्ते
  • गर्म गोंद
  • पेंच और नट

आप अपने मामले के साथ क्या करते हैं यह आपकी पसंद है! मैं तुम्हें कलात्मक स्वतंत्रता देने जा रहा हूं।

प्रेरणा के लिए, मैंने अपने (समाप्त) मामले की कुछ तस्वीरें जोड़ी हैं।

सिफारिश की: