Sportiduino - खेल की घटनाओं के लिए इलेक्ट्रॉनिक अंकन प्रणाली, भाग 3

भाग 1 , भाग 2

अंतिम प्रकाशन के बाद एक साल बीत चुका है, और मुझे अक्सर यह सवाल पूछा जाता है कि तब से क्या बदल गया है। संक्षेप में, Ntag चिप्स के लिए संक्रमण किया गया था, बेहतर संवेदनशीलता प्रदान करने के लिए सर्किट में छोटे बदलाव किए गए थे, सिग्नल की मात्रा और सही घड़ी की गति, और सिस्टम के साथ काम करने के लिए सॉफ्टवेयर बनाया गया था। सामान्य तौर पर, सिस्टम स्थिर हो गया है और प्लेबैक और उपयोग के लिए तैयार है। अधिक विवरण नीचे।

सबसे पहले, मैं आपको RFID चिप्स के बारे में बताता हूँ, क्यों संक्रमण को Ntag के लिए बनाया गया था। आपको याद दिला दूं कि Mifare Classic 1K मेमोरी में 1024 बाइट्स हैं, जिनमें से 752 बाइट्स स्टोर करने की जानकारी के लिए उपलब्ध हैं। मेमोरी संरचना को 16 ब्लॉकों में विभाजित किया गया है, जिसमें 16 बाइट्स के 4 पृष्ठ हैं, जिनमें से एक एन्क्रिप्शन के लिए आरक्षित है। यदि आप सेवा के रूप में एक पृष्ठ का उपयोग करते हैं, तो रिकॉर्डिंग अंक के लिए अभी भी 46 पृष्ठ थे।

विकास की शुरुआत में, मैंने मेमोरी का स्वतंत्र रूप से उपयोग किया - प्रति अंक 16 बाइट्स का एक पृष्ठ, जो मध्यम आकार के प्रारंभ का उपयोग सीमित करता है। और घूमने-फिरने, टूरिस्ट ओरिएंटियरिंग या एडवेंचर रेसिंग के लिए 46 स्टेशन कम हैं। इसलिए, संघनन के विचार को महसूस किया गया: प्रत्येक पृष्ठ पर दो अंक लिखे गए थे। उसी समय, डेटा हानि का जोखिम था, क्योंकि रिकॉर्डिंग इकाई एक पृष्ठ है, और जब पुन: रिकॉर्डिंग होती है, तो आपको इसे फिर से लिखने के लिए पहले से रिकॉर्ड किए गए आधे को पढ़ने की आवश्यकता होती है। दरअसल, मैंने पिछले नवंबर में रोजिंग के दौरान इस रैक पर कदम रखा था, डेटा का एक छोटा हिस्सा खो गया था, मुझे मैन्युअल रूप से बहुत कुछ संपादित करना था। और, हालांकि कोड में एक त्रुटि का पता चला था, मैंने पुनर्लेखन के दौरान डेटा हानि के जोखिम के बिना अधिक कैपेसिटिव चिप्स पर स्विच करने का निर्णय लिया।

संभावित विकल्पों में से एक मिफारे 4K चिप्स का उपयोग करना है, जिनमें से संरचना 1K से केवल चार गुना बड़ी मात्रा में मेमोरी में भिन्न होती है। लेकिन ऐसे चिप्स अधिक महंगे हैं और सफाई की अवधि, उनके उपयोग के साथ निशान बढ़ जाएंगे। एक अन्य विकल्प Ntag श्रृंखला चिप्स (213/215/216) का उपयोग करना है। Ntag चिप्स की मेमोरी संरचना काफी सरल है - मेमोरी को 4 बाइट्स के पन्नों में विभाजित किया गया है, पहले 4 और अंतिम 5 पेज सेवा जानकारी संग्रहीत करने के लिए आरक्षित हैं, बाकी का उपयोग किया जा सकता है। Ntag श्रृंखला के चिप्स मेमोरी साइज़ में भिन्न होते हैं, Ntag213 में 36 पृष्ठ (144 बाइट्स) मुफ्त हैं, Ntag215 में 126 पृष्ठ (504 बाइट्स) हैं, और Ntag216 में 222 पृष्ठ (888 बाइट्स) हैं। नतीजतन, मैंने इस श्रृंखला में सभी चिप्स के लिए समर्थन लागू किया, हालांकि Ntag215 को इष्टतम माना जा सकता है, जिसकी मेमोरी 120 अंक के लिए पर्याप्त है, और कीमत काफी कम है (स्टिकर के रूप में प्रति चिप लगभग $ 0.2 और चाबी का गुच्छा के रूप में $ 0.4)। इसके अलावा, एसएफआर की सलाह पर, उन्होंने महत्वपूर्ण जानकारी के भंडारण को छोड़ने का फैसला किया - इसकी बाइनरी खोज के पक्ष में अंतिम मुफ्त पृष्ठ की संख्या। इससे समय की मुहर बढ़ी, लेकिन विश्वसनीयता बढ़ी।

मेमोरी के Ntag पेज में 4 बाइट्स होते हैं, जिसमें आपको स्टेशन नंबर - 1 बाइट और टाइम स्टैम्प - 4 बाइट्स फिट करने होते हैं। समस्या को इस तथ्य से हल किया गया था कि चिप के आरंभीकरण (सफाई) का पूरा समय एक अलग पृष्ठ में लिखा जाता है, और जब चिह्नित किया जाता है, तो समय से केवल 3 बाइट्स। फिर, जब पढ़ा जाता है, तो आरंभ के समय के आधार पर अंकों का समय पूरी तरह से बहाल हो जाता है। चिप में एक और पेज चिप नंबर के कब्जे में है और दो रिजर्व में हैं। परिणामी संरचना नीचे प्रस्तुत की गई है:



Ntag का उपयोग करके चिप पर बड़ी संख्या में निशानों की सुरक्षित रिकॉर्डिंग के मुद्दे को हल करने की अनुमति दी गई, लेकिन एक और समस्या उत्पन्न हुई। Ntag चिप्स को एक ही एंटीना क्षेत्र के साथ Mifare की तुलना में अधिक ट्रांसमीटर शक्ति की आवश्यकता होती है, और चाबी का गुच्छा चिप्स जिसमें एंटीना 2 सेमी ^ 2 के क्रम का होता है, मानक के रूप में RC522 मॉड्यूल पर अच्छी तरह से काम नहीं कर सकता है। समस्या का समाधान मॉड्यूल पर अधिक शक्तिशाली लोगों के लिए टांका लगाने का था। इसी समय, प्रतिक्रिया सीमा में काफी वृद्धि हुई, Ntag चिप्स के लिए 2 सेमी तक, और Mifare के लिए 3 सेमी तक। लेकिन कुछ सोल्डरिंग के कारण कुछ मॉड्यूल खराब काम करना शुरू कर दिया: चिप्स केवल संचारण एंटीना से दूरी की एक निश्चित और बल्कि अप्रत्याशित सीमा के साथ दर्ज किए गए थे। मुझे RC522 अर्डुइनो लाइब्रेरी में जाना पड़ा और वहां पर लाभ पैरामीटर मिला, जो एंटीना के लिए जिम्मेदार है, इसे अलग-अलग स्टेशनों के लिए संपादित करने से समस्या हल हो गई। उन्होंने स्टिकर से ब्रेसलेट पर चिप्स के मैनुअल निर्माण में भी महारत हासिल की। अलीबाबा पहले से ही बिक्री के लिए तैयार और सुंदर है, लेकिन उनका एंटीना क्षेत्र लगभग आधा है, यह निशान कम स्थिर है। मैं यह भी ध्यान देता हूं कि मैंने मिफारे 1K चिप्स के लिए समर्थन छोड़ दिया है, आप उनके साथ काम कर सकते हैं, लेकिन इसके लिए आपको अलग फर्मवेयर का उपयोग करने की आवश्यकता है, और चिप की क्षमता 42 अंकों तक सीमित है, लेकिन वे RC522 मॉड्यूल के साथ आते हैं।



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

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



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

32 बाइट्स के पैकेटों को प्रसारित करके सूचना को संचरित और क्रमिक रूप से प्राप्त किया जाता है। यदि प्रेषित डेटा पैकेट में फिट नहीं होता है, तो ट्रांसमिशन पैकेट को क्रमिक रूप से अग्रेषित करके बनाया जाता है। पैकेट स्टार्ट बाइट 0xFE से शुरू होता है, उसके बाद कमांड नंबर, पैकेट की लंबाई, डेटा और चेकसम के अंत में होता है। कमांड केवल चेकसम के सही मूल्य के साथ गुजरते हैं और बाइट्स शुरू करते हैं। बहुत सरल और विश्वसनीय।



कनेक्शन स्थापित किया गया था, लेकिन कंप्यूटर के लिए सामान्य सॉफ़्टवेयर लिखना आवश्यक था, प्रसंस्करण पर मेरे शिल्प इसके लिए उपयुक्त नहीं थे। सिस्टम के साथ काम करने के लिए पायथन मॉड्यूल बनाने वाले शिमोन याकिमोव ने इसे उठाया, जिसके लिए वह बहुत आभारी हैं। मॉड्यूल आपको प्रवेश द्वार के साथ संवाद करने, संचारित करने और एक सुविधाजनक प्रारूप में डेटा प्राप्त करने की अनुमति देता है। उसके बाद, मैंने पहले अनुमान के रूप में पायथन में महारत हासिल की और इस मॉड्यूल और PyQt पर आधारित एक सरल GUI एप्लिकेशन लिखा, जिसका उपयोग सिस्टम को कॉन्फ़िगर करने के लिए किया जा सकता है, साथ ही JSON फ़ाइल के रूप में चिप्स से डेटा एकत्र करने के लिए भी किया जा सकता है। ठीक है, फिर डेटा को विभिन्न स्थितियों और नियमों के साथ प्रतियोगिताओं के लिए छोटी लिपियों का उपयोग करके संसाधित किया जा सकता है, एक सुविधाजनक रूप में जारी किया जाता है ( पर्यटक अभिविन्यास , घूमना )। लेकिन, फिर भी, यह कुछ कौशल का अर्थ है, और खुशी अधूरी होगी यदि यह स्पोर्टऑर्ग कार्यक्रम के डेवलपर्स के लिए नहीं था, जिन्होंने स्पोर्टिडीनो (स्पोर्टिडेंट और एसएफआर के अलावा) के लिए समर्थन जोड़ा। कार्यक्रम सक्रिय रूप से विकसित हो रहा है और बहुत सी चीजें ओरिएंटियरिंग शुरू करने में सक्षम हैं।

निष्कर्ष


इस प्रकार, इस समय एक स्थिर कामकाजी हार्डवेयर और सॉफ्टवेयर है। मेरा मानना ​​है कि उपक्रम का लक्ष्य हासिल कर लिया गया है: एक सस्ता इलेक्ट्रॉनिक अंकन प्रणाली दिखाई दी है। मैं इस योजना के ढांचे के भीतर कुछ भी बदलने वाला नहीं हूं, सिवाय इसके कि कुछ प्रकार की बग हो। अंकन प्रणाली को विभिन्न प्रतियोगिताओं की एक बड़ी संख्या में पहले से ही विकसित और परीक्षण किया गया था: ओरिएंटिंग, रॉगिंग, मार्च-थ्रो, ट्रेल, पर्यटक चरण। मेरे अलावा, यह विभिन्न स्थानों में कई लोगों द्वारा उपयोग किया जाता है। किसी ने प्रणाली को खेला, किसी ने वहां परिवर्धन किया, उदाहरण के लिए, एक रेडियो मॉड्यूल या मुख्य रूप से लिथियम बैटरी और मिफारे चिप्स का उपयोग।

विकास खुला और गैर-वाणिज्यिक है, जिसे जीएनयू जीपीएलवी 3 के तहत लाइसेंस प्राप्त है। कोई भी इसे स्वतंत्र रूप से कॉपी, पुन: पेश, संशोधित और उपयोग कर सकता है। पिछले एक साल में, मैं कई सवालों के साथ आया हूं कि क्या मैं एक स्टेशन बिक्री कर रहा हूं। नहीं, मैं ऐसा नहीं करना चाहता। दूसरी ओर, मुझे कोई आपत्ति नहीं है अगर कोई इस जगह को भरता है। मैं केवल विधानसभा और उपयोग पर सलाह देने के लिए तैयार हूं, क्योंकि वहां सब कुछ काफी सरल है।

यह परियोजना जीथब पर उपलब्ध है, इसमें आरेख, निर्देश और अन्य उपयोगी सामग्री हैं। आपका ध्यान के लिए धन्यवाद।

Source: https://habr.com/ru/post/hi427661/


All Articles