विषयसूची:

मोर्स में Arduino जल्लाद: 9 कदम
मोर्स में Arduino जल्लाद: 9 कदम

वीडियो: मोर्स में Arduino जल्लाद: 9 कदम

वीडियो: मोर्स में Arduino जल्लाद: 9 कदम
वीडियो: High speed morse telegraphy using a straight key 2024, जून
Anonim
मोर्स में Arduino जल्लाद
मोर्स में Arduino जल्लाद

इस ट्यूटोरियल में मैं आपको दिखाऊंगा कि अपने फोन से एक साधारण टॉर्च या टॉर्च फंक्शन के साथ मोर्स कोड भेजकर जल्लाद खेलने के लिए अपना खुद का Arduino कैसे सेट करें।

आप सभी को साथ में पालन करने की आवश्यकता है: एक Arduino Board.10 LED-lightsWires यह सब कनेक्ट करने के लिए। अतिरिक्त: एक पीजो तत्व (ध्वनि जोड़ने के लिए)।

चरण 1: एलईडी-लाइट सेट करना

एलईडी-लाइट सेट करना
एलईडी-लाइट सेट करना

मोर्स का यह गेम उस शब्द में 4 अक्षरों को इंगित करने के लिए 4 रोशनी का उपयोग करेगा जिसका अनुमान लगाने की आवश्यकता है और 5 रोशनी उस जीवन को इंगित करने के लिए जिसे खिलाड़ी ने अनुमान लगाया है, इसलिए सबसे पहले आपको 9 एलईडी कनेक्ट करना होगा -सामान्य तरीके से रोशनी, जैसा कि चित्र में देखा जा सकता है।

चरण 2: एक अस्थायी प्रकाश संवेदक जोड़ें

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

आपको बस एलईडी-लाइट के प्लस-साइड को अपने एक एनालॉग पोर्ट (मेरे मामले में A0) और माइनस-साइड को अपने ग्राउंड से कनेक्ट करना है।

चरण 3: अपना शब्दकोश जोड़ें

अपना शब्दकोश जोड़ें
अपना शब्दकोश जोड़ें

सबसे पहले चीज़ें, अक्षरों को उनके संबंधित मोर्स कोड में अनुवाद करने के लिए एक प्रकार का शब्दकोश जोड़कर शुरू करें। ऐसा करने के लिए, हम केवल 26 बटा 5 की एक सरणी बनाते हैं, प्रत्येक माध्यमिक सरणी के पहले स्लॉट में अक्षर होता है और 4 अगले स्लॉट में संबंधित मोर्स कोड या एक स्थान होता है यदि कोई कोड नहीं बचा है। तो उदाहरण के लिए अक्षर s के साथ, पहले स्लॉट में 's' है, दूसरे, तीसरे और चौथे स्लॉट में '.' है। और अंतिम स्लॉट में '' 'है।

चरण 4: रोशनी को डिफ़ॉल्ट रूप से हल्का करें

रोशनी को डिफ़ॉल्ट रूप से हल्का करें
रोशनी को डिफ़ॉल्ट रूप से हल्का करें
रोशनी को डिफ़ॉल्ट रूप से हल्का करें
रोशनी को डिफ़ॉल्ट रूप से हल्का करें

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

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

चरण 5: इनपुट जोड़ना

इनपुट जोड़ना
इनपुट जोड़ना

अब हम यह जांचने के लिए कोड लिखेंगे कि क्या खिलाड़ी हमारे एनालॉग पोर्ट A0 से जुड़ी एलईडी-लाइट पर प्रकाश चमक रहा है, और यदि वे इसे सही अक्षर में अनुवाद करना चाहते हैं।

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

msBtnPushed उस समय की मात्रा का प्रतिनिधित्व करता है जब प्रकाश चालू रहा है। lastPressed एक बूलियन है जो ट्रैक करता है कि पिछले लूप में प्रकाश चालू था या नहीं।

चरण 6: इनपुट को संभालना

इनपुट को संभालना
इनपुट को संभालना
इनपुट को संभालना
इनपुट को संभालना

इस कदम के लिए, हम देखेंगे कि एक बार पर्याप्त समय बीत जाने के बाद क्या करना है, यह मानने के लिए कि कोई और मोर्स नहीं जोड़ा जाएगा, और हमें यह जांचना होगा कि क्या मोर्स ने एक पत्र के रूप में भेजा है और क्या यह एक सही पत्र है।

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

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

पुनश्च: सभी Serial.println फ़ंक्शन केवल परीक्षण उद्देश्यों के लिए हैं। पूरा होने पर उन्हें हटाया जा सकता है।

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

चरण 7: सही ढंग से अनुमान लगाए गए अक्षरों को मोर्स करना

सही ढंग से अनुमान लगाए गए अक्षरों को मोर्सिंग करना
सही ढंग से अनुमान लगाए गए अक्षरों को मोर्सिंग करना

जैसा कि पहले वादा किया गया था, इस चरण में हम उन रोशनी को बनाएंगे जो उन अक्षरों का प्रतिनिधित्व करते हैं जिनका सही अनुमान लगाया गया है मोर्स उनके पत्र।

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

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

चरण 8: हमारे सेटअप और रीसेट की समीक्षा करना

हमारे सेटअप और रीसेट की समीक्षा करना
हमारे सेटअप और रीसेट की समीक्षा करना

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

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

चरण 9: एक तस्वीर में सभी चर

एक चित्र में सभी चर
एक चित्र में सभी चर

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

अब मोर्स में जल्लाद खेलने का आनंद लें!

सिफारिश की: