- आवश्यक सामग्री
- HC-06 ब्लूटूथ मॉड्यूल
- सर्किट आरेख
- सर्वो नियंत्रित करने के लिए Roboremo ऐप कॉन्फ़िगर करना:
- कोड और स्पष्टीकरण
- ब्लूटूथ का उपयोग करके सर्वो मोटर नियंत्रण का कार्य:
रोबोटिक्स में सटीक नियंत्रण के लिए सर्वो मोटर का उपयोग आम है। यहां, इस ट्यूटोरियल में हम आपको दिखाने के लिए जा रहे हैं कि कैसे एक Arduino UNO और ब्लूटूथ कनेक्शन के माध्यम से Android डिवाइस के साथ वायरलेस मोटर का उपयोग करें । हमने पहले से ही Arduino के साथ सर्वो को नियंत्रित किया है, इस बार हम Arduino और ब्लूटूथ का उपयोग करके सर्वो मोटर को नियंत्रित कर रहे हैं ।
आवश्यक सामग्री
- Arduino UNO
- HC-05 या HC-06 ब्लूटूथ मॉड्यूल
- सर्वो मोटर
- प्लेस्टोर से Roboremo ऐप
- ब्रेड बोर्ड
- तार जोड़ना
HC-06 ब्लूटूथ मॉड्यूल
ब्लूटूथ निम्नलिखित दो मोड में काम कर सकता है:
- कमांड मोड
- ऑपरेटिंग मोड
में कमान मोड हम ब्लूटूथ सिग्नल के नाम की तरह ब्लूटूथ प्रॉपर्टी कॉन्फ़िगर करने में सक्षम हो जाएगा, उसका पासवर्ड, ऑपरेटिंग बॉड दर आदि ऑपरेटिंग मोड एक जिसमें हम भेजने में सक्षम हो सकता है और पीआईसी Microcontroller के बीच डेटा प्राप्त होगा और ब्लूटूथ मॉड्यूल। इसलिए इस ट्यूटोरियल में हम केवल ऑपरेटिंग मोड के साथ ही रहेंगे। कमांड मोड को डिफ़ॉल्ट सेटिंग्स पर छोड़ दिया जाएगा। डिवाइस का नाम HC-05 होगा (मैं HC-06 का उपयोग कर रहा हूं) और पासवर्ड 0000 या 1234 होगा और सबसे महत्वपूर्ण बात यह है कि सभी ब्लूटूथ मॉड्यूल के लिए डिफ़ॉल्ट बॉड दर 9600 होगी।
मॉड्यूल 5V आपूर्ति पर काम करता है और संकेत पिन 3.3V पर काम करता है, इसलिए 3.3V नियामक मॉड्यूल में ही मौजूद है। इसलिए हमें इसकी चिंता करने की जरूरत नहीं है। छह पिनों में से केवल चार का उपयोग ऑपरेटिंग मोड में किया जाएगा। पिन कनेक्शन तालिका नीचे दिखाई गई है
एस.एन.ओ. | HC-05 / HC-06 पर पिन करें | MCU पर पिन नाम | पीआईसी में पिन नंबर |
1 | Vcc | Vdd | 31 सेंट पिन |
२ | Vcc | गाण्ड | 32 एन डी पिन |
३ | टेक्सास | आरसी 6 / टीएक्स / सीके | 25 वें पिन |
४ | आरएक्स | आरसी 7 / आरएक्स / डीटी | 26 वें पिन |
५ | राज्य | एनसी | एनसी |
६ | एन (सक्षम करें) | एनसी | एनसी |
अन्य माइक्रोकंट्रोलर्स के साथ ब्लूटूथ मॉड्यूल HC-05 के बारे में अधिक जानने के लिए हमारी अन्य परियोजनाओं की जाँच करें:
- Arduino का उपयोग कर ब्लूटूथ नियंत्रित खिलौना कार
- 8051 का उपयोग कर ब्लूटूथ नियंत्रित होम ऑटोमेशन सिस्टम
- रास्पबेरी पाई का उपयोग करके आवाज नियंत्रित रोशनी
- स्मार्ट फोन Arduino और प्रसंस्करण का उपयोग कर एफएम रेडियो नियंत्रित
- PIC Microcontroller के साथ ब्लूटूथ मॉड्यूल HC-06 को इंटरफेज करना
साथ ही ब्लूटूथ से संबंधित सभी प्रोजेक्ट को यहां देखें।
सर्किट आरेख
इस Arduino ब्लूटूथ सर्वो मोटर नियंत्रण परियोजना के लिए सर्किट आरेख नीचे दिया गया है:
सर्वो नियंत्रित करने के लिए Roboremo ऐप कॉन्फ़िगर करना:
चरण 1: - एंड्रॉइड प्ले स्टोर से रोबोरेमो ऐप डाउनलोड करें और इसे अपने स्मार्टफोन में इंस्टॉल करें। इसे इंस्टॉल करने के बाद आपको आकृति 1 में दिखाई गई ऐप विंडो दिखाई देगी और 'मेनू' बटन पर क्लिक करके आप आंकड़ा 2 में दिखाई गई विंडो देखेंगे:
स्टेप 2: - इसके बाद कनेक्ट बटन पर क्लिक करें और आपको नीचे फिगर 3 में दिखाई गई विंडो दिखाई देगी फिर आपको ' ब्लूटूथ आरएफसीओएमएम' को सेलेक्ट करना होगा और फिर आप अपने एंड्रॉइड ऐप 'रोबोरेमो' के साथ अपने HC-06 ब्लूटूथ मॉड्यूल को कनेक्ट कर पाएंगे।
चरण 3: - HC-06 ब्लूटूथ मॉड्यूल से कनेक्ट करने के बाद वापस फिगर 2 विंडो पर आएं और फिर अपनी जरूरत के अनुसार यूजर इंटरफेस बनाने के लिए ' एडिट यूआई ' पर क्लिक करें ।
जब 'एडिट यूआई' पर क्लिक करेंगे तो आपको फिर से फिगर 1 में दिखाई गई विंडो दिखाई देगी, फिर स्क्रीन पर कहीं भी क्लिक करें आपको फिगर की तरह ऐप विंडो दिखाई देगी और बटन 'स्ट्रक्चर' मिलेगा।
चरण 4: - बटन का चयन करने के बाद आपको संपादित करने के लिए स्क्रीन पर एक बटन संरचना मिलेगी। आप स्क्रीन पर कहीं भी संरचना का आकार बदल सकते हैं और स्थानांतरित कर सकते हैं। अब, ब्लूटूथ के माध्यम से क्लिक पर भेजे जाने वाले मूल्य को सेट करने के लिए आपने 'सेट प्रेस एक्शन' (जैसा कि आंकड़ा 6 में दिखाया गया है) और उस विशेष बटन से आप जो मूल्य भेजना चाहते हैं उसे टाइप करें। जैसे, हम रोबोरेमो एंड्रॉइड एप्लिकेशन में 'स्टार्ट' बटन दबाकर सर्वो को घुमाने के लिए '1' भेज रहे हैं।
आप बाद में दिए गए तालिका में, विभिन्न बटन पर क्लिक करके भेजे जा रहे सभी मानों की जाँच कर सकते हैं।
चरण 5: - अंत में हमारे पास स्मार्टफ़ोन का उपयोग करके सर्वो मोटर को नियंत्रित करने के लिए उपयोगकर्ता इंटरफ़ेस है ।
कोड और स्पष्टीकरण
Arduino कंट्रोल सर्वो मोटर वाया ब्लूटूथ के लिए पूरा कोड अंत में दिया गया है।
Arduino में इमदादी मोटर्स के लिए पुस्तकालय है और यह इमदादी को घुमाने के लिए सभी पीडब्लूएम से संबंधित चीजों को संभालता है, आपको बस उस कोण को दर्ज करने की आवश्यकता है जिसमें आप घुमाना चाहते हैं और फ़ंक्शन सर्वो 1।राइट (कोण) है; जो सर्वो को वांछित कोण पर घुमाएगा।
इसलिए यहां हम सर्वो मोटर और सॉफ्टवेयर के लिए लाइब्रेरी को परिभाषित करके शुरू कर रहे हैं और सॉफ्टवेयर सीरियल लाइब्रेरी का उपयोग आरएक्स और टीएक्स पिन को परिभाषित करने के लिए किया जाता है।
#शामिल
नीचे दिए गए कोड में, हम Rx और Tx के लिए Arduino पिनों की शुरुआत कर रहे हैं, सर्वो और अन्य चीजों के लिए चर को परिभाषित कर रहे हैं ।
सर्वो myServo; int TxD = 11; int RxD = 10; int सर्वोपयोगी; इंट सर्वोपोस; int new1; SoftwareSerial bluetooth (TxD, RxD);
अब, प्रारंभिक चरण में सभी चर और घटकों को सेटअप करें । यहाँ हमने Arduino के 9 वें पिन पर सर्वो संलग्न किया है और सर्वो की प्रारंभिक स्थिति को 0 डिग्री कर दिया है। धारावाहिक और ब्लूटूथ संचार के लिए बॉड दर भी 9600 निर्धारित की गई है।
शून्य सेटअप () { int pos = 0; myServo.attach (9); myServo.write (0); सीरियल.बेगिन (9600); // 9600bps ब्लूटूथ पर सीरियल संचार शुरू करें। एल्गिन (9600); }
में शून्य पाश समारोह, Arduino भेजे मूल्यों हर समय की जाँच की जाएगी और स्मार्ट फोन से प्राप्त मूल्य के अनुसार इमदादी बारी बारी से। सीरियल कम्युनिकेशन का उपयोग करके सभी मान प्राप्त किए जाएंगे।
यदि मान 0 है तो सर्वो 0 डिग्री तक घूम जाएगा। इसी तरह अगर हम ब्लूटूथ एप्लिकेशन से 45, 90, 135 और 180 भेजते हैं, तो सर्वो क्रमशः 45, 90, 135 और 180 डिग्री के कोण पर घूमेगा।
शून्य लूप () { if (bluetooth.available ()) { स्ट्रिंग मान = bluetooth.readString (); servoposition = value.toInt (); if (value.toInt () == 0) { Serial.println (servoposition); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposition); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
यदि हम Start बटन दबाकर '1' मान भेजते हैं तो सर्वो लगातार घूमता रहेगा जब तक कि स्टॉप बटन दबाया नहीं जाता है। यहाँ हम दबाने पर भेज रहे हैं '2' स्टॉप बटन, जो Arduino द्वारा पढ़ा जाएगा और यह टूट जाएगा , जबकि पाश और इमदादी रोक दिया जाएगा।
जबकि (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); सीरियल.प्रिंट (मान); if (value.toInt () == 2) {Serial.println ("YYY"); टूटना; }} सर्वोपोस ++; देरी (30); सिरियल.प्रिंटल (सर्वोपोस); myServo.write (सर्वोपोस); if (सर्वोपोस == 180) {सर्वोपोस = ०; ब्रेक;}}}}}
ब्लूटूथ का उपयोग करके सर्वो मोटर नियंत्रण का कार्य:
इस परियोजना में, हम एंड्रॉइड एप्लिकेशन "रोबोरेमो" का उपयोग करके सर्वो मोटर को नियंत्रित कर रहे हैं । इस एप्लिकेशन के इंटरफ़ेस में, हमने सर्वो मोटर को नियंत्रित करने के लिए 5 बटन बनाए हैं जैसा कि पहले बताया गया है। हर बटन का कार्य नीचे दी गई तालिका में दिया गया है:
क्र.सं. |
बटन का नाम |
मूल्य भेज रहा है |
विवरण |
१। |
शुरू |
1 |
इस बटन का उपयोग सर्वो को 0⁰ से 180 start तक घुमाने के लिए किया जाता है। |
२। |
रुकें |
२ |
यह बटन किसी भी बिंदु पर सर्वो को रोकने के लिए उपयोग किया जाता है। |
३। |
0 |
० |
इस बटन का उपयोग सर्वो को 0 is घुमाने के लिए किया जाता है। |
४। |
90 |
90 |
इस बटन का उपयोग सर्वो को 90 is में घुमाने के लिए किया जाता है। |
५। |
180 |
180 |
इस बटन का उपयोग सर्वो को 180 is में घुमाने के लिए किया जाता है। |
तो, अपने एंड्रॉइड ऐप रॉबरेमो पर इन बटन को दबाकर, डेटा स्मार्टफोन के ब्लूटूथ के माध्यम से एचसी -06 ब्लूटूथ मॉड्यूल को भेजा जाएगा। उस से HC-06 मॉड्यूल डेटा Arduino द्वारा प्राप्त किया जाता है और Arduino विशेष बटन के लिए कोड में परिभाषित कोण पर सर्वो को घुमाता है। हमने कोण 45 और 135 के लिए भी कोडित किया है, लेकिन रोबोरेमो ऐप की सीमा के कारण, आप केवल 5 बटन बना सकते हैं, इसलिए हमने दो बटन छोड़ दिए।
तो यह है कि कैसे आप ब्लूटूथ का उपयोग करके स्मार्टफ़ोन से डेटा को Arduino पर भेज सकते हैं ताकि सर्वो को नियंत्रित किया जा सके। इसका उपयोग कई अनुप्रयोगों में किया जा सकता है जैसे टॉय कार, रोबोट आदि।