न्यूनतम संभव अंतराल के लिए वायरलेस तकनीक चुनना


10

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

मैं चाहता हूं कि सभी बटन (रेफरी के + एक्स खिलाड़ी) वायरलेस हों। चूंकि सर्वश्रेष्ठ क्विज़ खिलाड़ी सिग्नल के 10ms के भीतर एक बटन पर क्लिक कर सकते हैं, इसलिए यह बहुत महत्वपूर्ण है कि विभिन्न बटन के बीच पिंग में एक बहुत, बहुत कम विचरण हो। मैं खिलाड़ियों को चिल्ला नहीं सकता है "मेरा बटन खराब है!" दूसरी ओर, मैं जरूरत से ज्यादा महंगे / जटिल तकनीक का उपयोग नहीं करना चाहता।

तो, क्या उपयोग करने के लिए इष्टतम वायरलेस तकनीक होगी? कृपया अपने अनुभव को इसी तरह की परियोजनाओं से साझा करें (या सिर्फ सैद्धांतिक ज्ञान :) यहां मैंने अभी तक जो शोध किया है (यदि मैं गलत हूं तो मुझे सुधारें):

  1. ब्लूटूथ 4 LE (RFduino के रूप में) पेशेवरों: 3-6ms विलंबता (विज्ञापित), कम ऊर्जा विपक्ष: लागत, डिवाइस के लिए 7 से अधिक बटन नहीं

  2. वाई-फाई पेशेवरों: 2ms विलंबता (मैं अपने वाई-फाई रूटर पिंग किया), बटन के दर्जनों अगर जरूरत हो विपक्ष: लागत, बिजली की भूख

  3. आरएफ डेटा ट्रान्सएवर पेशेवरों: डननो, लागत थोड़ा छोटा होने लगता है विपक्ष: एक ही आवृत्ति पर कई बटन संभवतः बहुत अधिक शोर पैदा करेंगे

  4. सबसे सरल "रेडियो रिमोट" पेशेवरों: शून्य अंतराल क्योंकि यह सभी विद्युत, कोई डेटा नहीं है विपक्ष: एक ही आवृत्ति पर कई बटन काम नहीं करेंगे

तो, क्या मुझे कुछ याद आया? मैं किसी भी मार्गदर्शन की सराहना करता हूं।


कुल कितने बटन?
बिगजोश

1
सबसे छोटी संभावित आवश्यकता 4 है, सामान्य मामला 8 है, कुछ भी अधिक स्वागत योग्य होगा - मैं चाहूंगा कि यह कुछ भीड़ मनोरंजन के लिए बहुत लचीला हो।
सेर्गेई स्नेग्रीव

मानव प्रतिक्रिया समय 200ms से अधिक है। Humanbenchmark.com/tests/reactiontime/statistics देखें ,

@ user31481 तो क्या? मनुष्य 2ms के नीचे विलंबता का अनुभव कर सकता है। परिशिष्ट में लिंक देखें: danluu.com/input-lag
नवीन

जवाबों:


6

मैंने पहले NRF24L01+Arduino के साथ चिपसेट 2.4GHz वायरलेस मॉड्यूल का उपयोग किया है , और उन्हें शानदार पाया, और सुपर सस्ते (eBay पर उनमें से 10 के लिए ~ $ 10!)। उनके पास ट्रांसमिशन के 3 मोड हैं: 250kbps, 1Mbps और 2Mbps। उच्च बिटरेट के अनुसार सीमा कम हो जाती है, लेकिन संदेश भेजने में बिताया गया समय बहुत कम होता है। मॉड्यूल का उपयोग करने के लिए कई Arduino पुस्तकालयों (जैसे RF24, Mirf, RadioHead) और ट्यूटोरियल हैं (देखें http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 )। उनके पास अंतर्निहित जाल नेटवर्किंग मोड भी हैं जो उपयोग के हो सकते हैं या नहीं भी हो सकते हैं।

आरपी-एसएमए एंटीना कनेक्टर और 1000 मीटर तक की विज्ञापित रेंज वाले संस्करण भी लगभग $ 5 प्रत्येक के लिए उपलब्ध हैं। मैं कम से कम रेफरी के बटन के लिए इनमें से किसी एक का उपयोग करने की सलाह दूंगा, जो आपके लिए आवश्यक सीमा पर निर्भर करता है।

Hallard.me के चार्ल्स हॉलार्ड के अनुसार , गैर-प्रवर्धित चिप्स को 250kbps मोड में 30m लाइन-ऑफ़- विज़न रेंज मिल सकती है , और मैंने इसे अपने परीक्षण में सत्यापित किया है।

Diychristmas.org पर उपयोगकर्ता छिटपुट के अनुसार , 250kbps मोड में 32 बाइट पेलोड भेजने के लिए ट्रांसमीटर पर Tx मोड की शुरुआत से 1432 starts लेता है, रिसीवर पर पूरा संदेश प्राप्त करने के लिए। यह 1Mbps मोड पर 444µs और 2Mbps मोड पर 283 ons घट जाती है

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


धन्यवाद! यदि एक ही समय में कई बटन दबाए जाएं तो क्या होगा? क्या वे टकराएंगे और जैसे एक दूसरे को रोकेंगे?
सेर्गेई स्नेग्रीव

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

1
यह EE.SE प्रश्न बताता है कि आप अपनी स्थिति के अनुसार एक ही प्राप्त पते पर कितने नोड्स संचारित कर सकते हैं। फिर यह भेजने वाले का पता लेने की बात है कि कौन 'जीता' है।
कॉर्टिस

1
अधिक उपयोगी उदाहरणों: arduino-info.wikispaces.com/nRF24L01-RF24-Examples
cortices

1
बस थोड़ा सा ऊपर, उन NRF24L01 + एंटेना वाले चिप्स मूल नहीं हैं, यह समस्याएँ पैदा कर सकता है जब आप क्लोन और मूल के बीच संवाद करने का प्रयास करते हैं और यदि आप डायनेमिक पेलोड या शॉकबर्स्ट का उपयोग करने का प्रयास करते हैं। इसके अलावा, कि wikispace लेख पुराना है। इसके बजाय TMRh20 लाइब्रेरी का उपयोग करना चाहिए।
अवामेंडर

3

क्या आपने वास्तविक समय घड़ियों का उपयोग करने पर विचार किया है? आप उन सभी को समय से पहले सिंक्रोनाइज़ कर सकते हैं और फिर किसी भी वायरलैस प्रोटोकॉल का उपयोग कर सकते हैं। एक बार एक बटन दबाया जाता है, तो आप उस इकाई की तलाश करेंगे जो सबसे शुरुआती समय की रिपोर्ट को रिपोर्ट करती है और फिर एक बार कुछ सेकंड की एक खिड़की बीत जाने के बाद यह बताती है कि यह जीत गई। मैं ESP8266s, RTCs के साथ वाईफ़ाई (802.11) का उपयोग करने पर विचार करूंगा और वायरलेस एक्सेस प्वाइंट साथ ले जाऊंगा।

यह कम अंतराल वायरलेस का जवाब नहीं है, लेकिन इसके लिए आवश्यकता को समाप्त करता है।


2
अच्छा विचार है, लेकिन आपको RTC की आवश्यकता नहीं है। आप प्रारंभ में Arduinos को सिंक कर सकते हैं, इसलिए millis() - offsetइसमें शामिल सभी Arduinos के लिए एक ही परिणाम (+/- कुछ बहाव) देता है। offsetस्थानीय का मूल्य है millis()एक Arduino गुरु Arduino से सिंक संकेत प्राप्त जब। एक गेम जो पिछले एक या दो घंटे के लिए पर्याप्त होगा।

इसके लिए मिलिस () का उपयोग करने से उपकरणों को सिंक खोना पड़ सकता है, क्योंकि मिलिस () को बाधित होने पर वेतन वृद्धि नहीं होती है।
बोब्सबर्नर

1

मेरी विनम्र राय में यह और भी सस्ता हो सकता है यदि आप आईआर या किसी अन्य प्रकार के प्रकाश का उपयोग करते हैं, तो यह मानते हुए कि आप दृष्टि की रेखा सुनिश्चित कर सकते हैं। संकेतों की जुदाई सुनिश्चित करने के लिए आप विभिन्न तरंग दैर्ध्य का उपयोग कर सकते हैं।


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

0

कम कम तकनीकी समाधान।

  1. ट्रांसमीटर कमांड पर अपनी घड़ी संकेत भेजता है।

  2. रिसीवर को केवल उस सिग्नल की सक्रियता का पता लगाने की आवश्यकता होती है।

पूरी बात आरएफ, या प्रकाश आधारित हो सकती है - उदाहरण के लिए एलईडी रोशनी में से एक को ट्रांसमीटर के रूप में कॉन्फ़िगर किया जा सकता है।

1ms के भीतर सब कुछ ठीक होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.