- आवश्यक घटक:
- सर्किट आरेख:
- 8051 माइक्रोकंट्रोलर:
- HC-05 ब्लूटूथ मॉड्यूल:
- L293D मोटर चालक IC:
- एंड्रॉइड फोन का काम नियंत्रित रोबोट:
- कोड स्पष्टीकरण:
इस परियोजना में हम 8051 माइक्रोकंट्रोलर और ब्लूटूथ मॉड्यूल का उपयोग करके एक एंड्रॉइड फोन नियंत्रित रोबोट बनाने जा रहे हैं । रोबोट को डीसी मोटर्स का उपयोग करके डिज़ाइन किया गया है और डीसी मोटर्स की दिशा को एंड्रॉइड एप्लिकेशन से प्राप्त कमांड द्वारा नियंत्रित किया जाएगा। रोबोट की स्थिति एंड्रॉइड ऐप पर वापस भेज दी जाती है। यह परियोजना 8051 माइक्रोकंट्रोलर के साथ HC-05 ब्लूटूथ मॉड्यूल के इंटरफेसिंग के लिए भी मदद करेगी। हमने पहले से ही 8051 के साथ घरेलू उपकरणों को नियंत्रित करने के लिए ब्लूटूथ मॉड्यूल का उपयोग किया था।
आवश्यक घटक:
- 8051 माइक्रोकंट्रोलर (AT89S52)
- HC-05 ब्लूटूथ मॉड्यूल
- L293D मोटर चालक
- रोबोट चेसिस
- डीसी मोटर्स (2)
- पहियों (2)
- कैस्टर व्हील
- जम्पर के तार
- ब्लूटूथ टर्मिनल एंड्रॉइड ऐप
सर्किट आरेख:
8051 माइक्रोकंट्रोलर:
8051 माइक्रोकंट्रोलर एक 8-बिट माइक्रोकंट्रोलर है जिसमें चिप रैम पर 128 बाइट्स, चिप रॉम पर 4K बाइट्स, दो टाइमर, एक सीरियल पोर्ट और चार 8 बिट पोर्ट हैं। 8052 माइक्रोकंट्रोलर 8051 माइक्रोकंट्रोलर का विस्तार है। इस परियोजना में हम AT89S52 माइक्रोकंट्रोलर का उपयोग कर रहे हैं । नीचे दी गई तालिका में 8051 परिवार के सदस्यों की तुलना दिखाई गई है।
फ़ीचर |
8051 है |
8052 |
ROM (बाइट्स में) |
4K |
K के |
RAM (बाइट्स) |
128 |
256 |
टाइमर |
२ |
३ |
I / O पिंस |
32 |
32 |
सीरियल पोर्ट |
1 |
1 |
बाधा के स्रोत |
६ |
। |
HC-05 ब्लूटूथ मॉड्यूल:
HC-05 एक सीरियल ब्लूटूथ मॉड्यूल है। इसे AT कमांड्स का उपयोग करके कॉन्फ़िगर किया जा सकता है। यह तीन अलग-अलग कॉन्फ़िगरेशन (मास्टर, स्लेव, लूप बैक) में काम कर सकता है। हमारी परियोजना में हम इसे एक दास के रूप में उपयोग करेंगे। HC-05 मॉड्यूल की विशेषताओं में शामिल हैं,
- ठेठ -80 dBm संवेदनशीलता।
- डिफ़ॉल्ट बॉड दर: 9600bps, 8 डेटा बिट्स, 1 स्टॉप बिट, कोई समानता नहीं।
- ऑटो-पेयरिंग पिन कोड: "1234" डिफ़ॉल्ट पिन कोड
- इसमें 6 पिन हैं।
- HC-05 को पॉवर देने के लिए Vcc और Gnd पिन का उपयोग किया जाता है।
- टीएक्स और आरएक्स पिन का उपयोग माइक्रोकंट्रोलर के साथ संचार के लिए किया जाता है।
- HC-05 मॉड्यूल को सक्रिय करने के लिए पिन सक्षम करें। जब यह कम होता है, तो मॉड्यूल अक्षम हो जाता है
- स्टेट पिन स्टेटस इंडिकेटर का काम करता है। जब इसे किसी अन्य ब्लूटूथ डिवाइस के साथ जोड़ा / जोड़ा नहीं जाता है, तो एलईडी लगातार चमकती रहती है। जब यह किसी अन्य ब्लूटूथ डिवाइस के साथ जुड़ा / जोड़ा जाता है, तो एलईडी 2 सेकंड की निरंतर देरी के साथ चमकती है।
L293D मोटर चालक IC:
L293D एक डुअल H- ब्रिज मोटर ड्राइवर IC है। यह एक वर्तमान एम्पलीफायर के रूप में कार्य करता है, L293D का आउटपुट डीसी मोटर्स को ड्राइव करता है। इसमें दो इनबिल्ट एच-ब्रिज सर्किट शामिल हैं। ऑपरेशन के सामान्य मोड में, यह दोनों दिशाओं में एक साथ दो डीसी मोटर चला सकता है। नीचे दी गई तालिका L293D IC का पिन विवरण दिखाती है। यहाँ L293D मोटर चालक का उपयोग करते हुए कुछ परियोजनाएँ हैं।
पिन विवरण
पिन नं। |
नाम |
समारोह |
1 |
1,2 सक्षम करें |
मोटर के लिए पिन सक्षम करें 1 |
२ |
इनपुट 1 |
मोटर 1 के लिए इनपुट 1 |
३ |
आउटपुट 1 |
मोटर 1 के लिए आउटपुट 1 |
४ |
गाण्ड |
ग्राउंड (0V) |
५ |
गाण्ड |
ग्राउंड (0V) |
६ |
आउटपुट 2 |
मोटर 1 के लिए आउटपुट 2 |
। |
इनपुट 2 |
मोटर 1 के लिए इनपुट 2 |
। |
Vcc 2 |
मोटरों के लिए आपूर्ति वोल्टेज (5V) |
९ |
3,4 सक्षम करें |
मोटर के लिए पिन सक्षम करें 1 |
१० |
इनपुट 3 |
मोटर 2 के लिए इनपुट 1 |
1 1 |
आउटपुट 4 |
मोटर 2 के लिए आउटपुट 1 |
१२ |
गाण्ड |
ग्राउंड (0V) |
१३ |
गाण्ड |
ग्राउंड (0V) |
१४ |
आउटपुट 4 |
मोटर 2 के लिए आउटपुट 2 |
१५ |
इनपुट 4 |
मोटर 2 के लिए इनपुट 2 |
१६ |
Vcc 1 |
आपूर्ति वोल्टेज (5V) |
एंड्रॉइड फोन का काम नियंत्रित रोबोट:
इस स्मार्ट फोन नियंत्रित रोबोट में, एंड्रॉइड ऐप का उपयोगकर्ता एचसी -05 मॉड्यूल के माध्यम से 8051 माइक्रोकंट्रोलर को डेटा भेजता है। प्राप्त डेटा की तुलना 8051 माइक्रोकंट्रोलर में की जाती है और निर्णय उसी के अनुसार किया जाता है। नीचे दी गई तालिका विभिन्न प्राप्त पात्रों के लिए मोटर्स की दिशा और रोबोट की स्थिति को दर्शाती है।
चरित्र प्राप्त किया |
मोटर १ |
मोटर २ |
रोबोट की स्थिति |
च |
आगे |
आगे |
आगे बढ़ता है |
ख |
पिछड़ा |
पिछड़ा |
पिछड़ जाता है |
आर |
आगे |
पिछड़ा |
सही चलता है |
एल |
पिछड़ा |
आगे |
बाएं जाता है |
रों |
बंद |
बंद |
रोका हुआ |
ब्लूटूथ टर्मिनल एप्लिकेशन हमें एक ब्लूटूथ टर्मिनल का अनुकरण करने की अनुमति देता है। यह ऐप द्विदिश संचार का समर्थन करता है और यह ऐप अधिकांश उपकरणों के साथ संगत है।
नीचे दिए गए चरण बताते हैं कि इस ऐप को कैसे इंस्टॉल और उपयोग किया जाए।
1. अपने एंड्रॉयड फोन पर ब्लूटूथ टर्मिनल ऐप डाउनलोड करें और इंस्टॉल करें। ऐप को नीचे दिए गए लिंक से डाउनलोड किया जा सकता है।
play.google.com/store/apps/details?id=ptah.apps.blu ब्लूटूथterminal
2. ऐप को इंस्टॉल करने के बाद ऐप को खोलें और ब्लूटूथ को ऑन करें।
3. डिवाइस का चयन करें और कनेक्ट विकल्प पर क्लिक करें। सफल कनेक्शन के बाद, हम HC-05 मॉड्यूल को डेटा भेजना शुरू कर सकते हैं।
8051 माइक्रोकंट्रोलर द्वारा आवश्यक मोटर्स को घुमाने के लिए चरित्र कैसे भेजा और प्राप्त किया जाता है, यह देखने के लिए नीचे दिए गए कोड स्पष्टीकरण की जांच करें।
कोड स्पष्टीकरण:
इस परियोजना के लिए पूरा सी कार्यक्रम और प्रदर्शन वीडियो इस परियोजना के अंत में दिया गया है। कोड को छोटे अर्थों में विभाजित किया गया है और नीचे समझाया गया है।
8051 माइक्रोकंट्रोलर के साथ L293D इंटरफेस के लिए, हमें पिन को परिभाषित करना होगा, जिस पर L293D 8051 माइक्रोकंट्रोलर से जुड़ा है। मोटर 1 का In1 पिन P2.0 से जुड़ा है, मोटर 1 का In2 पिन P2.1 से जुड़ा है, मोटर 2 का In1 पिन P2.2 से जुड़ा है, मोटर 2 का In2 पिन P2.3 से जुड़ा है
sbit m1f = P2 ^ 0; // in1 पिन ऑफ मोटर 1 sbit m1b = P2 ^ 1; // इन 1 पिन ऑफ़ मोटर 1 sbit एम 2 एफ = पी 2 ^ 2; // मोटर 2 की इनबिन्ट पिन 2 एमबी 2 बी = 2 जीबी = 3 ^; // मोटर 2 का 2 पिन
आगे हमें कुछ कार्यों को परिभाषित करना होगा जो कार्यक्रम में उपयोग किए जाते हैं। विलंब फ़ंक्शन का उपयोग निर्दिष्ट समय विलंब बनाने के लिए किया जाता है। Txdata फ़ंक्शन का उपयोग सीरियल पोर्ट के माध्यम से डेटा प्रसारित करने के लिए किया जाता है। Rxdata फ़ंक्शन का उपयोग सीरियल पोर्ट से डेटा प्राप्त करने के लिए किया जाता है।
शून्य विलंब (अहस्ताक्षरित int); // देरी चार rxdata (शून्य) बनाने के लिए कार्य; // 8051 शून्य txdata (अहस्ताक्षरित चार) के सीरियल पोर्ट के माध्यम से एक चरित्र प्राप्त करने के लिए कार्य; // 8051 के सीरियल पोर्ट के माध्यम से एक चरित्र भेजने के लिए कार्य करता है
कोड के इस भाग में हम धारावाहिक संचार के लिए 8051 माइक्रोकंट्रोलर को कॉन्फ़िगर करने जा रहे हैं । TMOD रजिस्टर टाइमर 1, मोड 2 (ऑटो पुनः लोड) के लिए 0x20 के साथ लोड किया गया है। SCON रजिस्टर 8 डेटा बिट्स, 1 स्टॉप बिट के लिए 0x50 के साथ लोड किया गया है और सक्षम है। TH1 रजिस्टर प्रति सेकंड 9600 बिट्स की बॉड दर के लिए 0xfd के साथ लोड किया गया है। TR1 = 1 का उपयोग टाइमर शुरू करने के लिए किया जाता है।
टीएमओडी = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; कोड के इस भाग में, rxdata फ़ंक्शन का लौटा हुआ चरित्र आगे के उपयोग के लिए चर 's' में संग्रहीत किया गया है।
s = rxdata (); // hc-05 ब्लूटूथ मॉड्यूल से सीरियल डेटा प्राप्त करते हैं
कोड के इस भाग में, हमें अलग-अलग दिशाओं के लिए प्राप्त वर्णों के साथ प्राप्त वर्ण की तुलना करनी होगी। यदि प्राप्त वर्ण 'f' है, तो रोबोट को आगे की दिशा में बढ़ना है। यह एम 1 एफ, एम 2 एफ पिंस को उच्च और एम 1 बी, एम 2 बी पिंस को कम करके पूरा किया जाता है । एक बार यह हो जाने के बाद, हमें एंड्रॉइड ऐप पर रोबोट की स्थिति भेजनी होगी। यह txdata फ़ंक्शन की सहायता से किया जाता है । एक ही प्रक्रिया को प्राप्त विभिन्न पात्रों के लिए दोहराया जाता है और उसी के अनुसार निर्णय लिया जाता है। तालिका 1 रोबोट के आंदोलन की विभिन्न दिशाओं के लिए एम 1 एफ, एम 1 बी, एम 2 एफ, एम 2 बी के विभिन्न मूल्यों को दर्शाता है।
if (s == 'f') // दोनों मोटरों को आगे की दिशा में घुमाएँ {m1f = 1; देरी (1); m1b = 0; देरी (1); एम 2 एफ = 1; देरी (1); एम 2 बी = 0; देरी (1); for (i = 0; msg1; = '\ 0'; i ++) // ब्लूटूथ के माध्यम से एंड्रॉइड ऐप पर रोबोट की स्थिति भेजें {txdata (msg1); }}
एम 1 एफ |
एम 1 बी |
एम 2 एफ |
एम 2 बी |
मोटर 1 चक्कर |
मोटर 2 चक्कर |
रोबोट की स्थिति |
1 |
० |
1 |
० |
आगे |
आगे |
आगे बढ़ते हुए |
० |
1 |
० |
1 |
उलटना |
उलटना |
पीछे की ओर बढ़ना |
1 |
० |
० |
1 |
आगे |
उलटना |
सही चल रहा है |
० |
1 |
1 |
० |
उलटना |
आगे |
बायाँ चल रहा है |
० |
० |
० |
० |
रोका हुआ |
रोका हुआ |
रोका हुआ |
यह आप 8051 माइक्रोकंट्रोलर का उपयोग करके चार मोटर्स को नियंत्रित करके रोबोट कार को किसी भी दिशा में घुमा सकते हैं । अगर आपके पास Android फोन नहीं है तो यह रोबोट 8051 के साथ DTMF का उपयोग करके भी नियंत्रित किया जा सकता है।
साथ ही सभी रोबोटिक्स प्रोजेक्ट को यहां देखें।