विषयसूची:

मैजिकबिट से सरल रडार सिस्टम: 6 कदम
मैजिकबिट से सरल रडार सिस्टम: 6 कदम

वीडियो: मैजिकबिट से सरल रडार सिस्टम: 6 कदम

वीडियो: मैजिकबिट से सरल रडार सिस्टम: 6 कदम
वीडियो: Haddaway - What Is Love (Moreno J Remix) 2024, जुलाई
Anonim

यह ट्यूटोरियल दिखाता है कि प्रोसेसिंग और Arduino IDE के साथ HC-SR04 सेंसर और माइक्रोबिट देव बोर्ड का उपयोग करके एक साधारण रडार सिस्टम कैसे बनाया जाता है।

आपूर्ति:

  • SG90 माइक्रो-सर्वो मोटर
  • जम्पर तार (जेनेरिक)
  • ब्रेडबोर्ड (सामान्य)
  • मैजिकबिट
  • यूएसबी-ए से माइक्रो-यूएसबी केबल
  • अल्ट्रासोनिक सेंसर - HC-SR04 (जेनेरिक)

चरण 1: कहानी

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

चरण 2: सिद्धांत और कार्यप्रणाली

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

चरण 3: हार्डवेयर सेटअप

हार्डवेयर सेटअप
हार्डवेयर सेटअप
हार्डवेयर सेटअप
हार्डवेयर सेटअप

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

पावर अप के लिए अल्ट्रासोनिक सेंसर ने 3.3 v का उपयोग किया। इसलिए हमने अल्ट्रासोनिक सेंसर को मैजिकबिट से जोड़ने के लिए मैजिकबिट बोर्ड के दाहिने निचले पोर्ट का इस्तेमाल किया। लेकिन सर्वो मोटर का उपयोग उचित कार्य के लिए 5V किया जाता है, इसलिए हमने सर्वो मोटर को मैजिकबिट से जोड़ने के लिए बाएं निचले पोर्ट का उपयोग किया। इस मामले में, हम मैजिक बिट सर्वो कनेक्टर मॉड्यूल का उपयोग करते हैं। लेकिन अगर आपके पास वह मॉड्यूल नहीं है तो आप मैजिकबिट पर 5V से 5V, Gnd से Gnd और सिग्नल पिन को 26 पिन से जोड़ने के लिए तीन जम्पर तारों का उपयोग कर सकते हैं।

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

चरण 4: सॉफ्टवेयर सेटअप

सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप

सॉफ्टवेयर पक्ष थोड़ा जटिल है। उचित रूप से समझने के लिए आप अगले भाग पर जाने से पहले निम्नलिखित लिंक देख सकते हैं।

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

आइए Arduino IDE कोड देखें और वह कोड कैसे काम करता है।

सर्वो चलाने के लिए हम ESP32 सर्वो लाइब्रेरी का उपयोग करते हैं। यह पुस्तकालय लगभग Arduino IDE में मैजिक बिट बोर्ड मैनेजर में शामिल है। अल्ट्रासोनिक सेंसर से निपटने के लिए हम न्यूपिंग लाइब्रेरी का उपयोग करते हैं। इसे निम्न लिंक से डाउनलोड किया जा सकता है।

bitbucket.org/teckel12/arduino-new-ping/do…

ज़िप फ़ाइल डाउनलोड करें और टूल्स पर जाएं> लाइब्रेरी शामिल करें> Arduino में ज़िप लाइब्रेरी जोड़ें। अब नई पिन लाइब्रेरी की अपनी डाउनलोड की गई ज़िप फ़ाइल चुनें। प्रसंस्करण के साथ संचार के लिए हमने 115200 बॉड दर के साथ धारावाहिक संचार का उपयोग किया। यह ESP32 के लिए सबसे उचित आवृत्ति है। हर कोण पर हम इस प्रोटोकॉल का उपयोग करके अपना डेटा कंप्यूटर को भेजते हैं। सेंसर से निकटतम सामने की वस्तु की दूरी, रोटेशन की दिशा और घुमाव कोण इस डेटा में शामिल हैं। लूप के लिए दो का उपयोग करके हम अपने सर्वो को दो दिशाओं में घुमाते हैं। एक डिग्री रोटेशन के दौरान हमने 4 बार सीरियल डेटा भेजा। इसका कारण आप प्रोसेसिंग पार्ट स्पष्टीकरण में समझ सकते हैं।

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

प्रोसेसिंग स्केच में सबसे पहले हम साधारण ग्राफिक फ़ंक्शंस का उपयोग करके अपने डेटा डिस्प्ले इंटरफ़ेस को डिज़ाइन करते हैं। कोड की शुरुआत में हम धारावाहिक पुस्तकालयों को शामिल करके अपना धारावाहिक संचार स्थापित करते हैं। सेटअप फंक्शन में आपको कुछ बदलाव करना होता है जिसके अनुसार आपने मैजिकबिट को कंप्यूटर से कनेक्ट करने के लिए यूएसबी पोर्ट का इस्तेमाल किया था। जब आप कोड अपलोड करने के लिए Arduino IDE सेटअप करते हैं तो आप Arduino IDE का उपयोग करके अपने पोर्ट की जांच कर सकते हैं। फिर प्रोसेसिंग स्केच में सेटअप भाग में कॉम पोर्ट का नाम बदलें। जब सीरियल डेटा उपलब्ध होता है, तो सीरियलइवेंट फ़ंक्शन स्वचालित रूप से ट्रिगर होता है। इसलिए कोड का मुख्य तर्क कोण और डेटा गायब होने से रोकने के लिए सीरियल इवेंट में शामिल है। जब नया डेटा उपलब्ध होता है, तो हम अपने कोण के अनुसार स्क्रीन में एक रेखा खींचते हैं। उस समय यदि कोई ऑब्जेक्ट डिटेक्ट नहीं होता है, तो पूरी लाइन हरे रंग की होती है। यदि नहीं तो सेंसर से वस्तु की दूरी के अनुसार लाइन का कुछ हिस्सा लाल हो जाएगा। साथ ही रोटेशन की दिशा के अनुसार हम हरे रंग के घटते स्तर के साथ उस रेखा के पास एक और 200 रेखाएँ खींचते हैं। प्रत्येक मुख्य के बीच हमारे पास 0.25 डिग्री का अंतर है। इसलिए हमें प्रत्येक डिग्री रोटेशन में मैजिकबिट से एक बार में 4 रीडिंग मिलती हैं। उसकी वजह से हम स्क्रीन में सुंदर खोज हाथ बना सकते हैं।

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

आप कोड को अपनी इच्छानुसार अनुकूलित कर सकते हैं जो आप प्रदर्शित करना चाहते हैं।

चरण 5: समस्या निवारण।

प्रसंस्करण स्केच नहीं चल रहा है।

  • कुछ समय प्रतीक्षा करें। स्टार्टअप समय के कारण आपके पीसी और जीपीयू के प्रदर्शन पर निर्भर है।
  • जाँच करें कि स्केच प्रोसेसिंग पर सीरियल पोर्ट नंबर सही है।
  • जांचें कि यूएसबी कनेक्शन सही ढंग से तय किया गया है।
  • अल्ट्रासोनिक सेंसर और मैजिकबिट के बीच कनेक्शन की जाँच करें।
  • सीरियल मॉनिटर खोलें और जांचें कि डेटा Arduino से आ रहा है। यदि नहीं, तो समस्या आपके Arduino कोड या आपके USB कनेक्शन पर है।

सर्वो काम नहीं कर रहा है।

  • जांचें कि यूएसबी कनेक्शन सही ढंग से तय किया गया है।
  • वायरिंग की जाँच करें।
  • जांचें कि सर्वो अच्छी स्थिति में है।

चरण 6: Arduino कोड

#शामिल

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 न्यूपिंग सोनार(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // सर्वो लाइब्रेरी int दूरी शामिल करें; सर्वो रडार सर्वो; शून्य सेटअप () {Serial.begin(११५२००); रडारसर्वो.अटैच(26); // परिभाषित करता है कि किस पिन पर सर्वो मोटर संलग्न विलंब (3000) है; } शून्य लूप () {// सर्वो मोटर को 15 से 165 डिग्री के लिए घुमाता है (int i=0;i<=180;i++){ RadarServo.write(i); देरी (50); दूरी = sonar.ping_cm();// प्रत्येक डिग्री के लिए अल्ट्रासोनिक सेंसर द्वारा मापी गई दूरी की गणना के लिए एक फ़ंक्शन को कॉल करता है(int j=0;j0){ break; } सीरियल.प्रिंट (i); // वर्तमान डिग्री को सीरियल पोर्ट सीरियल में भेजता है। प्रिंट ("", "); // Serial.print(j) अनुक्रमण के लिए प्रोसेसिंग आईडीई में बाद में आवश्यक पिछले मान के ठीक आगे अतिरिक्त वर्ण भेजता है; // वर्तमान डिग्री को सीरियल पोर्ट सीरियल में भेजता है। प्रिंट ("*"); सीरियल.प्रिंट(1); // सीरियल पोर्ट में दूरी मान भेजता है Serial.print("/"); // सीरियल.प्रिंट (दूरी) को अनुक्रमित करने के लिए प्रोसेसिंग आईडीई में बाद में आवश्यक पिछले मान के ठीक बगल में अतिरिक्त वर्ण भेजता है; // सीरियल पोर्ट सीरियल में दूरी मान भेजता है। प्रिंट ("।"); // अनुक्रमण के लिए प्रोसेसिंग आईडीई में बाद में आवश्यक पिछले मान के ठीक आगे अतिरिक्त वर्ण भेजता है } } // (int i=180;i>=0;i--){ RadarServo के लिए पिछली पंक्तियों को १६५ से १५ डिग्री तक दोहराता है.लिखें (मैं); देरी (50); दूरी = सोनार.पिंग_सेमी (); for(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){ जारी रखें; } सीरियल.प्रिंट (i); // वर्तमान डिग्री को सीरियल पोर्ट सीरियल में भेजता है। प्रिंट ("", "); // Serial.print(j) अनुक्रमण के लिए प्रोसेसिंग आईडीई में बाद में आवश्यक पिछले मान के ठीक आगे अतिरिक्त वर्ण भेजता है; // वर्तमान डिग्री को सीरियल पोर्ट सीरियल में भेजता है। प्रिंट ("*"); सीरियल.प्रिंट (-1); // सीरियल पोर्ट सीरियल में दूरी मान भेजता है। प्रिंट ("/"); // सीरियल.प्रिंट (दूरी) को अनुक्रमित करने के लिए प्रोसेसिंग आईडीई में बाद में आवश्यक पिछले मान के ठीक बगल में अतिरिक्त वर्ण भेजता है; // सीरियल पोर्ट सीरियल में दूरी मान भेजता है। प्रिंट ("।"); // अनुक्रमण के लिए प्रसंस्करण आईडीई में बाद में आवश्यक पिछले मान के ठीक आगे अतिरिक्त वर्ण भेजता है}}

}

सिफारिश की: