विषयसूची:

रास्पबेरी पाई जीरो के साथ इन्फ्रारेड लेजर टैग: 6 कदम (चित्रों के साथ)
रास्पबेरी पाई जीरो के साथ इन्फ्रारेड लेजर टैग: 6 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई जीरो के साथ इन्फ्रारेड लेजर टैग: 6 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पाई जीरो के साथ इन्फ्रारेड लेजर टैग: 6 कदम (चित्रों के साथ)
वीडियो: Nutrition of Hair Loss and Gray Hair with Rob English | Health & Care Ep 9 2024, नवंबर
Anonim
रास्पबेरी पाई ज़ीरो के साथ इन्फ्रारेड लेजर टैग
रास्पबेरी पाई ज़ीरो के साथ इन्फ्रारेड लेजर टैग

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

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

चरण 1: सामग्री

सामग्री
सामग्री
सामग्री
सामग्री

आवश्यक सामग्री के लिए विवरण और कुछ लिंक नीचे दिखाए गए हैं। नीचे दी गई सामग्री सूची 3 बंदूकों के लिए है।

  • सर्वर कंप्यूटर (1)
  • रास्पबेरी पाई जीरो डब्ल्यू (3) एडफ्रूट
  • कम से कम 4GB एसडी कार्ड (3) Amazon
  • आईआर एलईडी ट्रांसमीटर (3)
  • आईआर रिसीवर (6) अमेज़ॅन
  • लाल एलईडी (3)
  • ब्लू एलईडी (3)
  • ग्रीन एलईडी (3)
  • निष्क्रिय बजर (3) अमेज़न
  • पुश बटन (6)
  • I2C एडेप्टर के साथ LCD 16x2 स्क्रीन (3) Amazon
  • पोर्टेबल बैटरी पैक (3) अमेज़न
  • माइक्रो टू रेगुलर यूएसबी केबल (3) Amazon
  • PN2222 ट्रांजिस्टर (3)
  • 100Ω रोकनेवाला (3)
  • 1kΩ रोकनेवाला (9)

वैकल्पिक चीज़ें:

  • बनियान (3) अमेज़न
  • रिबन केबल एक्सटेंशन (3) Amazon

इस परियोजना में, हमने लेजर टैग गन के एक पुराने सेट से IR LED ट्रांसमीटर लिया, जिसमें प्रत्येक बंदूक के शॉट को कम करने में मदद करने के लिए ट्रांसमीटर के चारों ओर एक काला शंकु था। हालांकि, किसी भी सामान्य ट्रांसमीटर को काम करना चाहिए।

ऊपर सूचीबद्ध वस्तुओं के अलावा, लेजर बंदूकें स्वयं 3डी प्रिंटेड थीं। इसलिए इस परियोजना के लिए एक 3डी प्रिंटर और फिलामेंट तक पहुंच की भी आवश्यकता होगी। कुल मिलाकर, तीन तोपों के लिए कुल लगभग $350 आया।

चरण 2: सर्वर सेटअप

सर्वर सेटअप
सर्वर सेटअप
सर्वर सेटअप
सर्वर सेटअप
सर्वर सेटअप
सर्वर सेटअप

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

सुडो एपीटी-अपडेट प्राप्त करें

sudo apt-get उन्नयन sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

सर्वर के लिए कुछ GUI, Pygubu नामक GUI डिज़ाइनर का उपयोग करके बनाए गए थे। इसे चलाकर स्थापित किया जा सकता है:

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

पाइगुबू के बारे में अधिक जानकारी https://github.com/alejandroautalan/pygubu पर देखी जा सकती है

एक बार MQTT और Pygubu स्थापित हो जाने के बाद, एक नई निर्देशिका बनाएँ और संलग्न फ़ाइलों की प्रतिलिपि बनाएँ। निर्देशिका में शामिल होना चाहिए:

  • ltag.py
  • pregame.py
  • game_statistics.py
  • gvars.py
  • pygubu.ui
  • pygubu_limited.ui
  • होम.पीएनजी
  • स्व.पीएनजी
  • दुश्मन.पीएनजी
  • लेजर.जेपीजी

नोट: इस परियोजना में उपयोग की गई संलग्न छवियां विकास दल द्वारा नहीं बनाई गई थीं और इसलिए लेखकत्व का दावा नहीं करती हैं।

चरण 3: रास्पबेरी पाई सेटअप

रास्पबेरी पाई सेटअप
रास्पबेरी पाई सेटअप

इस चरण को प्रत्येक रास्पबेरी पाई पर दोहराना होगा।

1. ऑपरेटिंग सिस्टम स्थापित करें

सबसे पहले, रास्पियन की एक नई स्थापना के साथ शुरू करें। हम लाइट संस्करण का उपयोग करने की सलाह देंगे क्योंकि यह पीआई को संभालने के लिए कम है, लेकिन किसी भी संस्करण को ठीक काम करना चाहिए। डाउनलोड https://www.raspberrypi.org/downloads/raspbian/ पर पाया जा सकता है

2. एमक्यूटीटी स्थापित करें

आगे हमें MQTT ब्रोकर सेवा को स्थापित करने की आवश्यकता है। इसके लिए हम मच्छर का इस्तेमाल करेंगे। टर्मिनल में, निम्न आदेश चलाएँ।

सुडो एपीटी-अपडेट प्राप्त करें

sudo apt-get उन्नयन sudo apt-get install mosquitto -y sudo apt-get install python3-pip -y sudo pip3 install paho-mqtt

मच्छर वह सेवा है जो खेल के प्रत्येक उपकरण के बीच संचार के लिए एक ढांचा प्रदान करती है। यह सर्वर को सेवा से जुड़े प्रत्येक Pis को संदेश भेजने की अनुमति देता है।

3. I2C उपकरण स्थापित करें

निम्न आदेश एलसीडी स्क्रीन के लिए उपयोग किए जाने वाले पुस्तकालयों को स्थापित करेगा।

sudo apt-get install -y python3-smbus i2c-tools

sudo apt-rpi.gpio -y. इंस्टॉल करें

LCDdriver.py फ़ाइल में i2c पते को बदलने की आवश्यकता हो सकती है। पता निम्न आदेश दर्ज करके पाया जा सकता है।

i2cdetect -y 1

4. एलआईआरसी स्थापित और कॉन्फ़िगर करें

एक नई निर्देशिका बनाएं और संलग्न फाइलों को इस स्थान पर डाउनलोड करें।

अधिकांश इंटरनेट ब्राउज़र एक्सटेंशन के बिना फ़ाइलें डाउनलोड नहीं करेंगे। इससे निजात पाने के लिए, दो फाइलों को अस्थायी एक्सटेंशन के साथ अपलोड किया गया था। दोनों "lircrc.deleteExtension" और "modules.deleteExtension" वास्तव में एक्सटेंशन-कम होना चाहिए और सफलतापूर्वक डाउनलोड होने के बाद फ़ाइलों का नाम बदलकर "lircrc" और "मॉड्यूल" कर दिया जाना चाहिए।

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

पहले पुस्तकालय स्थापित करें, फिर शामिल फ़ाइलों को उनकी संबंधित निर्देशिकाओं में कॉपी करें जैसा कि नीचे दिए गए आदेशों में दिखाया गया है। अंत में, lircd सेवा को पुनरारंभ करें।

sudo apt-python3-lirc -y. स्थापित करें

नई बनाई गई निर्देशिका से कॉन्फ़िगरेशन फ़ाइलों को उनके सही स्थानों पर ले जाने के लिए निम्न कमांड निष्पादित करें।

sudo mv lircd.conf हार्डवेयर.conf lircrc lirc_options.conf /etc/lirc/

सुडो एमवी मॉड्यूल / आदि /

फिर चलकर lircd सेवा को पुनरारंभ करें:

sudo /etc/init.d/lircd पुनरारंभ करें

अगला, /boot/config.txt फ़ाइल को संपादित करें और निम्न पंक्ति जोड़ें

dtoverlay=lirc-rpi, gpio_in_pin=18, gpio_out_pin=25

परिवर्तनों को प्रभावी होने देने के लिए अपने पीआई को रीबूट करें।

सुडो रिबूट

5. I2C सक्षम करें और प्रत्येक खिलाड़ी के लिए क्लाइंट संपादित करें

अगला, हम I2C इंटरफ़ेस को सक्षम करेंगे। इसका उपयोग करके किया जा सकता है

सुडो रास्पि-कॉन्फ़िगरेशन

और "इंटरफ़ेस विकल्प" मेनू में I2C को सक्षम करना।

6. प्लेयर क्लाइंट और LTSERVER संपादित करें

खेल निर्देशिका में अब चार शेष फ़ाइलें शामिल होनी चाहिए।

  • i2c_lib.py
  • LCDdriver.py
  • ltsounds.py
  • खिलाड़ी.py

पाई को कॉन्फ़िगर करने का अंतिम चरण प्रत्येक पीआई को एक क्लाइंट नंबर निर्दिष्ट करना और सर्वर का स्थान जोड़ना है। यह प्रत्येक पीआई के लिए शामिल "player.py" फ़ाइल को संपादित करके किया जाता है ताकि उन सभी के पास एक अलग क्लाइंट नंबर हो। प्लेयर.py की लाइन 3 पर क्लाइंट नंबर असाइन किया गया है। क्लाइंट "1" होने के लिए पहला पीआई असाइन करें, दूसरा "2" होना चाहिए, और तीसरा क्लाइंट "3" होना चाहिए।

LTSERVER लाइन को सर्वर के IP पते में बदला जाना चाहिए। यह 'ifconfig |. लिखकर पाया जाता है सर्वर कंप्यूटर के टर्मिनल में grep "inet addr" '।

चरण 4: गन असेंबली

गन असेंबली
गन असेंबली
गन असेंबली
गन असेंबली

ऊपर दिए गए वायरिंग आरेख और योजनाबद्ध के अनुसार प्रत्येक बंदूक को तार करने के लिए आगे बढ़ें।

प्रत्येक परिधीय पाई ज़ीरो पर निम्नलिखित GPIO पिन से जुड़ा है:

  • बजर: GPIO5
  • ट्रिगर: GPIO26
  • पुनः लोड करें: GPIO12
  • आईआर ट्रांसमीटर: GPIO25
  • आईआर रिसीवर: GPIO18
  • लाल एलईडी: GPIO17
  • ग्रीन एलईडी: GPIO27
  • नीली एलईडी: GPIO22
  • I2C_SDA: GPIO2
  • I2C_SCL: GPIO3

अधिक विवरण के लिए योजनाबद्ध देखें।

यदि वांछित है, तो शामिल स्टेप मॉडल फाइलों का उपयोग करके लेजर गन को 3डी प्रिंट किया जा सकता है। ध्यान रखें कि "front1STL. STL" फाइलों में से दो को प्रिंट किया जाना चाहिए।

चरण 5: गेम प्ले

खेल खेलें
खेल खेलें
खेल खेलें
खेल खेलें
खेल खेलें
खेल खेलें

खेल सर्वर पर "ltag.py" फ़ाइल चलाकर शुरू किया गया है। एक बार यह हो जाने के बाद, प्रत्येक खिलाड़ी अपनी संबंधित "player.py" फ़ाइल चलाकर सर्वर से जुड़ सकता है।

नोट: बैटरी पैक में प्लग इन करने के बाद, पाई को बूट होने में एक मिनट तक का समय लग सकता है।

क्रॉन जॉब जोड़ने के लिए भी उपयोगी हो सकता है जो पीआई शुरू होने के बाद स्वचालित रूप से player.py फ़ाइल चलाता है। हमारे पास इसे काम करने में कठिन समय था और "player.py" फ़ाइल को चलाने के लिए प्रत्येक Pis पर "/etc/rc.local" फ़ाइल में एक लाइन जोड़ना समाप्त कर दिया। यह खिलाड़ी स्क्रिप्ट को चलाने के लिए पीआई में एसएसएच के बिना खेल शुरू करने की अनुमति देता है।

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

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

नोट: सॉफ्टवेयर पुस्तकालयों में सीमाओं के कारण, सटीकता रिपोर्ट टैग स्थान वास्तविक लेजर टैग के प्रतिनिधि नहीं हैं। वर्तमान संस्करण में, खिलाड़ी सटीकता रिपोर्ट छवि विशुद्ध रूप से वास्तविक टैग स्थान कार्यान्वयन के साथ भविष्य के संस्करण की उम्मीद में सौंदर्यशास्त्र के लिए है।

चरण 6: भविष्य में सुधार

भविष्य में सुधार
भविष्य में सुधार
भविष्य में सुधार
भविष्य में सुधार

कुल मिलाकर, परियोजना एक बड़ी सफलता थी। साथ ही, हमने कुछ अतिरिक्त सुविधाओं के बारे में सोचा जिन्हें भविष्य के संस्करण में जोड़ा जा सकता है।

  • 3डी प्रिंटेड गन के लिए मजबूत ट्रिगर डिजाइन
  • पिछले खेलों के आंकड़े प्रदर्शित करने के लिए GUI ड्रॉप-डाउन मेनू को समाप्त करना
  • अधिक इन्फ्रारेड रिसीवर जो खिलाड़ियों के निहित से जुड़े हो सकते हैं
  • अतिरिक्त गेम मोड जिन्हें प्रीगेम जीयूआई में चुना जा सकता है
  • खिलाड़ी आँकड़े पृष्ठ पर अधिक सटीक टैग स्थान एल्गोरिथ्म

सिफारिश की: