Arduino से किस तरह के रोबोट असेंबल किए जा सकते हैं। अपने हाथों से Arduino पर रोबोट कैसे बनाएं: घर का बना रोबोट Arduino घर पर

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

3 डीमुद्रक

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

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

थ्री डी प्रिण्टर? हर कोई शायद एक साधारण कार्यालय प्रिंटर से परिचित है जो ए4 पर हमारे लिए आवश्यक टेक्स्ट प्रिंट कर सकता है। तो, एक 3D प्रिंटर एक प्रिंटर है जो वांछित भाग को प्रिंट कर सकता है। अलग-अलग 3D प्रिंटर हैं। मेरे पास एफडीएम तकनीक वाला एक प्रिंटर है (परत दर परत जमाव)। अन्य 3डी प्रिंटिंग प्रौद्योगिकियां इंटरनेट पर उपलब्ध हैं।

कई 3D प्रिंटर Arduino पर चलते हैं। आप चाहें तो अपना खुद का 3D प्रिंटर बना सकते हैं। 3D प्रिंटर का मुख्य विचार यह है कि आप बिल्कुल कुछ भी प्रिंट कर सकते हैं, लेकिन हम रोबोट के लिए एक बॉडी प्रिंट करेंगे।

सबसे पहले, आइए प्लेटफ़ॉर्म विवरण को परिभाषित करें। मैं चाहता हूं कि प्लेटफॉर्म 2 पहियों वाला हो और उसमें एक Arduino, पावर, मोटर्स और कुछ सेंसर फिट हों।

अब आपको कागज पर प्लेटफॉर्म का लेआउट बनाने और उस पर आवश्यक घटकों को रखने की जरूरत है। उदाहरण के लिए, इस तरह।

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

यही वह मंच है जिसके साथ मैं आया हूं।

उसके बाद, आपको 3D मॉडल को 3D प्रिंटर द्वारा समझने योग्य G-कोड में बदलने की आवश्यकता है। इसके लिए विशेष कार्यक्रम हैं - स्लाइसर। मैं Sli3er स्लाइसर के साथ रिपेटियर-होस्ट प्रोग्राम का उपयोग कर रहा हूं। यहां बताया गया है कि भाग मुद्रित होने के लिए तैयार कैसा दिखता है।

और यहाँ मुद्रित मॉडल है।

केवल हाल ही में हमारे पास एक विचार था, और समाप्त भाग पहले से ही हमारे सामने है। 3डी प्रिंटर की मदद से आप सिंगल कॉपी में अनोखी चीजें बना सकते हैं। 3डी प्रिंटर कमाल का है। मैं सभी को सलाह देता हूं!

मोटर्स

अब हमें यह सोचने की जरूरत है कि हमारा मोबाइल रोबोट कैसे चलेगा। पहली बात जो दिमाग में आती है वह है पहिए। तो ये करते है।

अगर किसी को याद है, तो हमने पहले ही मोटर को Arduino से जोड़ने का प्रयास किया है। कौन याद नहीं करता, नहीं जानता या नहीं पढ़ा - देखो। MOSFET का उपयोग करके मोटर को जोड़ने में महत्वपूर्ण कमियां हैं - रोटेशन की गति और दिशा को जल्दी से बदलना असंभव है। यह Arduino को सिखाने का समय है कि वास्तविक रूप से मोटर्स को कैसे नियंत्रित किया जाए!

ऐसा करने के लिए, आप L293D चिप का उपयोग कर सकते हैं। L293D आपको एक साथ दो मोटर्स को नियंत्रित करने की अनुमति देता है, जिसमें प्रति चैनल 600 mA और 1000 mA तक का पीक करंट होता है, और यदि आप चैनलों को जोड़ते हैं, तो 1200 mA और 2000 mA पीक करंट तक। मैं नीचे एसोसिएशन के बारे में बात करूंगा।

शुरुआत के लिए, हमेशा की तरह, आपको यह पता लगाने के लिए डेटाशीट को देखना चाहिए कि कहां और क्या कनेक्ट करना है। यदि आप microcircuits के बारे में नहीं जानते हैं, तो यह लेख पढ़ने लायक है।

आएँ शुरू करें। आइए एक मोटर के साथ एक साधारण योजना को इकट्ठा करें और इसे चलाएं। विधानसभा आरेख पर ध्यान दें।

यदि आप अंग्रेजी नहीं जानते हैं या केवल डेटाशीट नहीं समझते हैं, तो यहां कनेक्शन का विवरण दिया गया है। मुझे आशा है कि हर कोई microcircuits की संख्या जानता है या microcircuits के बारे में एक लेख से सीखा है।

  • पिन 1 - मोटर के घूमने की गति के लिए जिम्मेदार। ऐसा ही एक पिन 9 पर है। यह 0 से 255 तक के मान लेता है, जिसे PWM का उपयोग करके आसानी से व्यवस्थित किया जा सकता है। मैंने EN को Arduino के पांचवें पिन से जोड़ा, जो PWM का समर्थन करता है।
  • पिन 2 और 7 - मोटर की गति की दिशा के लिए जिम्मेदार। इसी तरह के पिन 10 और 15 पर हैं। इन पिनों में से एक में एक तर्क लागू करने से मोटर एक दिशा में (मोटर के कनेक्शन के आधार पर) स्पिन कर देगा, एक तर्क को दूसरे पर लागू करने से मोटर स्पिन हो जाएगी। उल्टी दिशा।
  • पिन 3 और 6 - आपको उनसे मोटर कनेक्ट करने की आवश्यकता है। ध्रुवीयता महत्वपूर्ण नहीं है, केवल रोटेशन की दिशा कनेक्शन पर निर्भर करेगी। समान - पिन 11 और 14 पर।
  • पिन 4 और 5 ग्राउंड हैं। मुझे नहीं लगता कि इसे स्पष्टीकरण की आवश्यकता है। समान - 12 और 13.
  • पिन 8 - मोटर्स के लिए पावर। इसे 4.5 से 36 वोल्ट की सीमा में संचालित करने की आवश्यकता है।
  • पिन 16 - इसे Arduino से एक तार्किक इकाई की आपूर्ति की जाती है। 5 वोल्ट, अगर कुछ भी।

बढ़िया! मोटर जुड़ा हुआ है। अब आप कोड कर सकते हैं।

#define FRW_BUT 7 // फॉरवर्ड बटन #BCW_BUT 6 // बैक बटन #define SPD 5 // रोटेशन स्पीड कंट्रोल ... #define FRW 4 //... रोटेशन दिशा (आगे) ... # बीसीडब्ल्यू 3 परिभाषित करें / /...घूर्णन की दिशा (पीछे की ओर) #define SPD_POT A5 int xspeed = 0; // मोटर के रोटेशन की गति को निर्धारित करने के लिए चर int frw_move = 0; // "फॉरवर्ड" कमांड के लिए चर int bcw_move = 0; // "बैक" कमांड शून्य सेटअप () के लिए परिवर्तनीय (// डिज़ाइन पिन पिनमोड (एसपीडी, आउटपूट); पिनमोड (एफआरडब्ल्यू, आउटपूट); पिनमोड (बीसीडब्ल्यू, आउटपूट); पिनमोड (एसपीडी_पीओटी, इनपुट); पिनमोड (FRW_BUT, INPUT_PULLUP); पिनमोड (BCW_BUT, INPUT_PULLUP); ) शून्य लूप () (// पोटेंशियोमीटर से रीडिंग पढ़ें // और उन्हें वांछित सीमा तक लाएं - 0 से 255 तक // बाद में - इसे स्पीड कंट्रोल पिन xspeed पर पास करें = एनालॉगरेड (एसपीडी_पीओटी); बाधा (xspeed, 0, 1023); xspeed = नक्शा (xspeed, 0, 1023, 0, 255); // फॉरवर्ड बटन प्रेस निर्धारित करें अगर (! digitalRead (FRW_BUT)) ( frw_move = 1; ) और ( frw_move = 0; ) // "बैक" बटन दबाने का निर्धारण करें अगर (! digitalRead (BCW_BUT)) (bcw_move = 1;) और (bcw_move = 0;) // L293D को डेटा भेजने के लिए फ़ंक्शन को कॉल करें मोटर (); ) शून्य मोटर () (// L293D एनालॉगवाइट (एसपीडी, एक्सस्पीड) को डेटा भेजें; digitalWrite (FRW, frw_move); digitalWrite (BCW, bcw_move); )

यह कैसे काम करता है? यह सरलता से काम करता है। जब आप बायां बटन दबाते हैं, तो पहिया एक दिशा में घूमता है, और जब आप दायां बटन दबाते हैं, तो यह दूसरी दिशा में घूमता है। पोटेंशियोमीटर नॉब को घुमाकर आप मोटर के घूमने की गति को एडजस्ट कर सकते हैं। हमारे मोटर परीक्षण रिग का संचालन वीडियो में दिखाया गया है।

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

अब L293 चैनलों के कनेक्शन के बारे में। यदि आप अधिक शक्तिशाली मोटर कनेक्ट करना चाहते हैं, तो आप चैनलों को जोड़ सकते हैं।

पहला तरीका समानांतर में माइक्रोक्रिकिट के समान आउटपुट को जोड़ना है, जिससे अधिकतम वर्तमान ताकत दो के कारक से बढ़ जाएगी। माइनस - केवल एक मोटर को एक माइक्रोक्रिकिट से जोड़ा जा सकता है।

दूसरा तरीका L293 के ऊपर एक और L293 मिलाप करना है। हम पिन 1 से पिन 1, पिन 2 से पिन 2 वगैरह लेते हैं। यह विधि दो बार वर्तमान शक्ति में वृद्धि भी देती है, लेकिन, पहले के विपरीत, यह दो मोटरों को एक साथ नियंत्रित करने की क्षमता छोड़ देती है। आपके पास एक विचार हो सकता है - क्या मुझे कुछ और L293s मिलाप करना चाहिए? दुर्भाग्य से, microcircuits के बाद के सोल्डरिंग से वर्तमान ताकत में एक और 600 mA की वृद्धि नहीं होगी। वृद्धि कम होगी।

"एह, मुझे अपनी 12 वोल्ट की मोटर साफ करनी होगी..." परेशान मत होइए। अधिक शक्तिशाली मोटर्स के लिए, बड़ा भाई L293 - L298 उपयुक्त है, लेकिन अब हम इस पर विचार नहीं करेंगे। हम इसे थोड़ी देर बाद करेंगे।

मोटर कवच

सहमत हूं कि तारों के ऐसे बंडल के साथ यह सब बहुत अच्छा नहीं लगता है। इससे छुटकारा पाने के लिए, आप टांका लगाने के लिए मुद्रित सर्किट या ब्रेडबोर्ड पर L293 के साथ सर्किट को मिलाप कर सकते हैं, लेकिन क्या होगा यदि आप मिलाप नहीं करना चाहते हैं या नहीं जानते हैं कि कैसे? इसके लिए, उदाहरण के लिए, Arduino के लिए ढाल के रूप में तैयार समाधान हैं। मैं उनमें से एक के बारे में बात करूंगा - डीके इलेक्ट्रॉनिक्स से मोटर शील्ड वीएक्सएनयूएमएक्स।

यहाँ, वास्तव में, ढाल की एक तस्वीर है।

इस शील्ड में दो L293D हैं, जो आपको एक साथ चार मोटरों को नियंत्रित करने की अनुमति देता है। सर्वोमोटर्स के लिए दो संपर्क भी हैं। बिजली की आपूर्ति या तो टर्मिनल ब्लॉक को की जाती है या, Arduino बिजली की आपूर्ति से स्थापित जम्पर के साथ। जम्पर आपको शील्ड से Arduino के लिए पावर लेने की भी अनुमति देता है। इस ढाल के साथ काम करने के लिए एक विशेष पुस्तकालय है। आप इसे डाउनलोड कर सकते हैं।

बोर्ड के minuses के लिए। 0, 1, 2, 13 को छोड़कर, शील्ड के साथ काम करने के लिए लगभग सभी डिजिटल पिन का उपयोग किया जाता है। जैसा कि हम जानते हैं, फर्मवेयर के लिए Arduino द्वारा पिन 0 और 1 का उपयोग किया जाता है, इसलिए बेहतर है कि उनका उपयोग न करें।

एक अच्छा पक्ष भी है। यदि आप सर्वो कनेक्ट नहीं करते हैं, उदाहरण के लिए, पिन 9 और 10 जारी किए जाते हैं, और यदि आप किसी भी मोटर का उपयोग नहीं करते हैं, तो अप्रयुक्त मोटर के आधार पर पिन 3, 5, 6, 11 जारी किए जाएंगे। और आगे। हमारे पास अभी भी छह एनालॉग आउटपुट उपलब्ध हैं, जिन्हें वांछित होने पर डिजिटल के रूप में उपयोग किया जा सकता है।

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

हमें आवश्यकता होगी

  • Arduino UNO - किसी अन्य Arduino UNO फॉर्म फ़ैक्टर का उपयोग किया जा सकता है। उदाहरण के लिए लियोनार्डो या इस्क्रा।
  • मोटर शील्ड - इस शील्ड के अन्य संस्करण काम करेंगे।
  • 6V के लिए मोटर्स - आप मोटर शील्ड की विशेषताओं के लिए उपयुक्त कोई भी ले सकते हैं।
  • 42mm पहिए - मोटर और प्लेटफॉर्म से मेल खाने वाले पहिए
  • मोटर माउंट - मोटर्स को प्लेटफॉर्म से जोड़ा जाना चाहिए। जो आपके अनुकूल हो उसे ले लो।
  • पावर - मैंने एक बैटरी पैक लिया और लगभग 5 वोल्ट निकला, जो मोटर्स और अरुडिनो को पावर देने के लिए पर्याप्त नहीं है, इसलिए मैंने एक डीसी / डीसी कनवर्टर कनेक्ट किया और वोल्टेज को 9वी तक बढ़ा दिया। यदि कोई कनवर्टर नहीं है, तो आप इसे Arduino बिजली की आपूर्ति से जोड़कर सामान्य मुकुट का उपयोग कर सकते हैं।

यह हमारे रोबोट को इकट्ठा करने का समय है।

स्टेप 1

हम Arduino और Motor Shield को जोड़ते हैं।

चरण 2

हम मोटर्स को इकट्ठा करते हैं और उन्हें प्लेटफॉर्म पर बांधते हैं।

चरण 3

हम एक बूस्ट कन्वर्टर के माध्यम से बिजली एकत्र करते हैं।

उन लोगों के लिए जिनके पास क्रोन है। जम्पर मत भूलना!

चरण 4

हम Arduino के साथ मोटर शील्ड को मोटरों को फास्ट करते हैं।

चरण 5

हम खाना जोड़ते हैं।

चरण 6 (वैकल्पिक)

ढक्कन संलग्न करें - सौंदर्यशास्त्र के लिए।

हमारे पास एक तैयार रोबोट है। अब इसे प्रोग्राम करने का समय आ गया है। आइए कोड को देखें।

// मोटर शील्ड के साथ काम करने के लिए पुस्तकालय शामिल करें #शामिल करें // टर्मिनल ब्लॉक नंबर 2 AF_DCMotor l_motor (2) पर बाईं मोटर निर्धारित करें; // सही मोटर को टर्मिनल ब्लॉक नंबर 3 AF_DCMotor r_motor (3) में परिभाषित करें; // गति निर्धारित करने के लिए चर // और गति का समय int spd = 50; इंटटाइम (1000); शून्य सेटअप () (// प्रारंभिक गति निर्धारित करें और मोटर्स को बंद करें l_motor.setSpeed(spd); l_motor.run(RELEASE); r_motor.setSpeed(100); r_motor.run(RELEASE); ) शून्य लूप () ( // आगे की सवारी करें l_motor.run (FORWARD); r_motor.run (FORWARD); l_motor.setSpeed ​​(spd); r_motor.setSpeed ​​​​(spd); देरी (समय); // पीछे की ओर ड्राइव करें l_motor.run (बैकवर्ड); r_motor। रन (बैकवर्ड); l_motor.setSpeed ​​(spd); r_motor.setSpeed ​​(spd); देरी (समय); // स्पिन वामावर्त l_motor.run (फॉरवर्ड); r_motor.run (बैकवर्ड); l_motor.setSpeed ​​(spd); r_motor सेटस्पीड (एसपीडी); देरी (समय); // स्पिन क्लॉकवाइज r_motor.run (फॉरवर्ड); l_motor.run (बैकवर्ड); l_motor.setSpeed ​​(spd); r_motor.setSpeed ​​(spd); देरी (समय); )

बढ़िया! जाँच करने का समय। यहाँ मेरे परीक्षण से एक वीडियो है। आप क्या कहते हैं?

"क्या आपने रोबोटिक्स बोर्ड के बारे में कुछ कहा?" - पाठ्यक्रम के भाग 2 का परिचयात्मक पाठ पढ़ने वाले कह सकते हैं। हां, ऐसी फीस है। स्ट्रेला रोबोटिक प्लेटफॉर्म पर विचार करें।

रोबोटिक्स का सपना। (लगभग)। मैंने बोर्ड के फायदों के बारे में बताया। सीधा मुद्दे पर।

उस पर बड़ा भाई L293 - L298 स्थापित है। और पिन ट्रिपल में प्रदर्शित होते हैं, जो कई सेंसर को जोड़ने के लिए बिल्कुल सही है।

इस बोर्ड को Arduino UNO और Motor Shield की जगह जोड़ा जा सकता है। इसके अलावा, एम्परका के लोगों ने एरो के साथ काम करने के लिए एक पुस्तकालय लिखा, जो मोटरों को नियंत्रित करना एक मामूली काम बनाता है।

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

आप तीर के साथ और क्या कर सकते हैं - नीचे देखें। और हम ब्लूटूथ के माध्यम से वायरलेस संचार की ओर बढ़ते हैं।

ब्लूटूथ

एक रोबोट जो खुद को कमरे के चारों ओर चलाता है, निश्चित रूप से अच्छा है, लेकिन मैं रोबोट को खुद चलाना चाहता हूं। ऐसा करने के लिए, आपको Arduino और नियंत्रण उपकरण के बीच एक कनेक्शन को व्यवस्थित करने की आवश्यकता है।

एक नियंत्रण उपकरण के रूप में, मैंने एक स्मार्टफोन चुना। हम ब्लूटूथ प्रोटोकॉल का उपयोग करके संचार को व्यवस्थित करेंगे, इसलिए यह परिचित होने का समय है।

यह HC-06 मॉड्यूल है। मैं बहुत अधिक विवरण में नहीं जाऊंगा, लेकिन यदि आप रुचि रखते हैं, तो चलिए आगे बढ़ते हैं। हमारा लक्ष्य स्मार्टफोन से रोबोट को चलाना है। चलिए शुरू करते हैं, शायद।

सबसे पहले आपको HC-06 को Arduino से कनेक्ट करना होगा। हम सॉफ्टवेयर सीरियल का उपयोग करके कनेक्ट करेंगे। यह पुस्तकालय आपको उन पिनों पर सीरियल पोर्ट का अनुकरण करने की अनुमति देता है जिनकी हमें आवश्यकता है। प्रयोग के लिए, आइए इसे पिन A0(RX) और A1(TX) पर करने का प्रयास करें। किस लिए? याद रखें कि मैंने मोटर शील्ड के बारे में क्या कहा था।

हम इस तरह जुड़ते हैं:

  • वीसीसी - से 5 वी
  • GND से GND
  • RX से TX
  • TX से RX

मैं HC-06 को हमारे द्वारा ऊपर बनाए गए रोबोट से जोड़ूंगा। ऐसा करने के लिए, हम मोटर शील्ड पर तीन धारियों का उपयोग करेंगे।

रोबोट तैयार है। इसे प्रोग्राम किया जाना बाकी है।

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

इससे बचने के लिए, हम समायोजन कारक लागू करेंगे। मेरा बायां पहिया दाएं की तुलना में बहुत तेजी से घूमता है, इसलिए मैंने क्षतिपूर्ति के लिए 0.62 का कारक लगाया। गुणांक का मान प्रयोगात्मक रूप से चुना जाता है।

// मोटर शील्ड और सॉफ्टवेयर सीरियल के साथ काम करने के लिए पुस्तकालयों को शामिल करें #शामिल करें #शामिल करना // SoftwareSerial अनुकरण mySerial (A0, A1) के लिए पिन निर्धारित करें; // RX, TX // बाईं मोटर को टर्मिनल नंबर 2 AF_DCMotor l_motor (2) में परिभाषित करें; // सही मोटर को टर्मिनल ब्लॉक नंबर 3 AF_DCMotor r_motor (3) में परिभाषित करें; // गति निर्धारित करने के लिए चर // और रोटेशन फ्लोट एसपीडी = 70.0 को समायोजित करना; फ्लोट corr_l = 0.62; फ्लोट corr_r = 1; फ्लोट्रोट = 50.0; शून्य सेटअप () (// प्रारंभिक गति सेट करें और मोटर्स बंद करें l_motor.setSpeed ​​(spd); l_motor.run (रिलीज); r_motor.setSpeed ​​(spd); r_motor.run (रिलीज); // HC-06 के साथ कनेक्शन स्थापित करें) mySerial .begin(9600); ) void loop() (//यदि डेटा है, // कंट्रोल फ़ंक्शन को कॉल करें यदि (mySerial.उपलब्ध ()) (ड्राइव ();)) शून्य ड्राइव (//के लिए चर) आने वाले डेटा चार नियंत्रण = mySerial.read (); // पहले गति निर्धारित करें यदि (((नियंत्रण - "0")> = 0) && ((नियंत्रण - "0")<= 9)) { spd = (control - "0") * 25.0; //сохраняем новое значение скорости } else if (control == "q") { spd = 255.0; } //Сравниваем команды, пришедшие со смартфона else if (control == "S") //Если пришла команда "S", стоим { l_motor.run(RELEASE); r_motor. run(RELEASE); } else if (control == "F") //Если пришла команда "F", едем вперед { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); r_motor.run(FORWARD); l_motor.run(FORWARD); } else if (control == "B") //Если пришла команда "B", едем назад { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); r_motor.run(BACKWARD); l_motor.run(BACKWARD); } else if (control == "I") //Если пришла команда "I", едем вперёд и направо { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r + rot); r_motor.run(FORWARD); l_motor.run(FORWARD); } else if (control == "J")//Если пришла команда "J", едем назад и направо { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r + rot); r_motor.run(BACKWARD); l_motor.run(BACKWARD); } else if (control == "G") //Если пришла команда "G", едем вперёд и налево { l_motor.setSpeed(spd * corr_l + rot); r_motor.setSpeed(spd * corr_r); r_motor.run(FORWARD); l_motor.run(FORWARD); } else if (control == "H") //Если пришла команда "H", едем назад и налево { l_motor.setSpeed(spd * corr_l + rot); r_motor.setSpeed(spd * corr_r); r_motor.run(BACKWARD); l_motor.run(BACKWARD); } else if (control == "R") //Если пришла команда "R", крутимся вправо { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); r_motor.run(FORWARD); l_motor.run(BACKWARD); } else if (control = "L") //Если пришла команда "L", крутимся влево { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); l_motor.run(FORWARD); r_motor.run(BACKWARD); } }

रोबोट से पूछा गया था। अब एक स्मार्टफोन लेते हैं।

आरसी नियंत्रक

ब्लूटूथ के माध्यम से एक Arduino और एक स्मार्टफोन को जोड़ने के लिए कई अलग-अलग एप्लिकेशन हैं। खोज में, कीवर्ड होंगे: Arduino, ब्लूटूथ, RC।

मैंने ब्लूटूथ आरसी कंट्रोलर नामक एक ऐप चुना है। यह हमारे उद्देश्य के लिए एकदम सही है। जब बटन दबाया जाता है, तो एप्लिकेशन HC-06 को एक चार मान भेजता है, जो बदले में, आने वाले मान को Arduino पर भेजता है। बटन क्लिक करने पर भेजा गया मान स्व-सेट होता है।

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

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

जब कनेक्शन स्थापित हो जाता है, तो शीर्ष पर हरी बत्ती चालू हो जाएगी, और HC-06 झपकना बंद कर देगा। आप ड्राइविंग शुरू कर सकते हैं। शीर्ष पर पट्टी गति की गति के लिए जिम्मेदार है।

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

ऐसा करने के लिए, आपको XBee को स्ट्रेला से कनेक्ट करने की आवश्यकता है, इसे "ArduinoBluetoothRCCarOnStrela" नामक उदाहरणों से स्केच के साथ फ्लैश करें और RC नियंत्रक के माध्यम से XBee से कनेक्ट करें।

सलाह

मेरा रोबोट तैयार है और यहां तक ​​कि स्मार्टफोन से कमांड पर ड्राइव भी करता है। लेकिन सब कुछ सुचारू रूप से नहीं चल सकता। मैं कुछ समस्याओं और उनके समाधानों के बारे में बात करूंगा, साथ ही शुरुआती रोबोटिस्टों को कुछ सलाह दूंगा।

पहिए गलत दिशा में घूमते हैं- टर्मिनल ब्लॉक में या प्रोग्रामेटिक रूप से तारों को पुनर्व्यवस्थित करके यह समस्या आसानी से समाप्त हो जाती है।

ब्लूटूथ मॉड्यूल काम नहीं कर रहा- आपको मॉड्यूल पर एक जलती हुई लाल एलईडी की उपस्थिति की जांच करने की आवश्यकता है। यदि यह जलाया नहीं जाता है, तो जांचें कि ब्लूटूथ मॉड्यूल सही तरीके से जुड़ा हुआ है। यदि एलईडी चालू है, लेकिन कनेक्शन स्थापित है, तो आपको यह सुनिश्चित करने की आवश्यकता है कि मॉड्यूल का RX बोर्ड के TX से जुड़ा है और इसके विपरीत, और मानक के माध्यम से मॉड्यूल को Arduino के साथ जोड़ने की विधि का भी प्रयास करें। ब्लूटूथ इंटरफ़ेस।

रोबोट सीधे ड्राइव नहीं करता- जब मैंने ब्लूटूथ और मोटर शील्ड के बारे में बात की तो मैंने इस समस्या को थोड़ा अधिक बताया।

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

यदि एक बिजली की आपूर्ति जुड़ी हुई है जो मोटर्स के लिए पर्याप्त वर्तमान प्रदान नहीं कर सकती है, तो वोल्टेज 9 से 5 वोल्ट तक बहुत कम हो सकता है, उदाहरण के लिए, और 5V अब Arduino के लिए पर्याप्त नहीं होगा और यह पुनरारंभ होगा। समाधान एक अधिक शक्तिशाली बिजली आपूर्ति को जोड़ना है। गणना कैसे करें, मैं नीचे बताऊंगा।

यदि आप अधिक शक्तिशाली शक्ति स्रोत कनेक्ट करते हैं, तो वोल्टेज ड्रॉप केवल कुछ मिलीसेकंड के लिए हो सकता है, लेकिन वे नियंत्रक को पुनरारंभ करने के लिए पर्याप्त हो सकते हैं। समाधान बिजली के तारों के समानांतर कम से कम 1000 यूएफ के संधारित्र को स्थापित करना है, समाई को प्रयोगात्मक रूप से निर्धारित किया जा सकता है। मैंने कैपेसिटर को 3300 uF और 16V पर रखा। संधारित्र के अधिकतम वोल्टेज को देखना न भूलें।

जब बिजली की आपूर्ति पर्याप्त शक्तिशाली होती है, तो वोल्टेज ड्रॉप 0.2V से अधिक नहीं होता है।

शुरुआती रोबोटिक्स के लिए कुछ सुझाव

रोबोट के लेआउट को शुरू करने के लिए, सबसे पहले बिजली इकाई की शक्ति की गणना करने और उपयुक्त शक्ति स्रोत का चयन करने का ध्यान रखना है। यह शर्म की बात होगी यदि 4 AAA बैटरियां आपके 4 6V मोटर्स को पावर नहीं देती हैं, और अधिक बिजली आपूर्ति के लिए कोई जगह नहीं है।

शक्ति की गणना करने के लिए, हम मोटर्स, बोर्ड, सेंसर की विशेषताओं की तलाश कर रहे हैं। भौतिकी के पाठ्यक्रम से हम जानते हैं कि शक्ति की गणना सूत्र P = IU द्वारा की जा सकती है, जहाँ I वर्तमान शक्ति है, U वोल्टेज है। इस सूत्र और विशेषताओं का उपयोग करके, तैयार डिवाइस की बिजली खपत की गणना करना आसान है, और आपूर्ति की बिजली की खपत और ऑपरेटिंग वोल्टेज को जानकर, आप डिवाइस के संचालन के लिए आवश्यक इष्टतम वर्तमान ताकत का पता लगा सकते हैं, वर्तमान को जानकर ताकत, आप चयनित बैटरी से आवश्यक बैटरी क्षमता और डिवाइस के संचालन समय का निर्धारण कर सकते हैं।

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

यदि तीन अक्षरों का "पासवर्ड" बनाने का लक्ष्य है, तो आपको तीनों को एक साथ प्रोग्राम नहीं करना चाहिए। एक वर्ण से पासवर्ड बनाना बेहतर है, इसे जांचें, फिर दो से, और सत्यापन के बाद - तीन से। इससे मुझे मदद मिलती है।

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

निष्कर्ष

रोबोटिक्स कमाल का है! जल्द ही, मुझे लगता है, रोबोट ले लेंगे, और यहां तक ​​​​कि लोगों के जीवन में भी हो चुके हैं। हमने स्मार्टफोन से नियंत्रित सबसे सरल रोबोट कार बनाई, बाद में हम और अधिक गंभीर परियोजनाओं से निपटेंगे, लेकिन अभी के लिए - जल्द ही मिलते हैं!

लेख का अंतिम भाग एक छोटे रोबोट के बारे में है जिसे हम एक चेसिस पर इकट्ठा करते हैं - एक प्लास्टिक खाद्य कंटेनर से एक ढक्कन। हमारे रोबोट का दिमाग Arduino UNO बोर्ड है, ड्राइवर मोटर शील्ड बोर्ड मोटर्स और सर्वो को नियंत्रित करता है, बाधा सेंसर - अल्ट्रासोनिक सोनार - वैली जैसी आंखें (कार्टून से) - "HC-SR04 अल्ट्रासोनिक सेंसर"। ,। Arduino पर रोबोट कैसे बनाएं?

9. बैटरी और मोटर्स को जोड़ना

बैटरी कनेक्ट करते समय, आपको पूरी तरह से सुनिश्चित होना चाहिए कि ध्रुवीयता सही है, जैसा कि वे कहते हैं कि 7 बार मापें, एक बार प्लग करें। इस नियम का पालन करने का प्रयास करें - लाल तार हमेशा + शक्ति का होता है, काला तार जमीन का होता है, यह ऋणात्मक होता है, यह GND होता है। निर्माता समान नियमों का पालन करने का प्रयास करते हैं। इसलिए, हम बैटरी कंपार्टमेंट से आने वाले तारों को मोटर कंट्रोल बोर्ड पर + M और GND ब्लॉक से जोड़ते हैं। हम ड्राइव मोटर्स से तारों को मोटर कंट्रोल बोर्ड के ब्लॉक M1, M2 से जोड़ते हैं। बाईं ओर, यात्रा की दिशा में, ब्लॉक M1 से जुड़ा है, दाईं ओर ब्लॉक M2 से जुड़ा है। आपको अभी तक मोटर्स की ध्रुवीयता के बारे में चिंता नहीं करनी चाहिए, परीक्षण के दौरान कुछ गलत होने पर इसे बदला जा सकता है।

10. मॉड्यूल की ध्रुवीयता और सही कनेक्शन की जाँच करें

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

11. अरुडिनो प्रोग्रामिंग स्टेप

प्रोग्राम को एक USB केबल और एक विशेष प्रोग्राम - स्केच (प्रोग्राम) के लिए प्रोग्रामिंग और संपादन वातावरण - Arduino IDE का उपयोग करके कंप्यूटर से Arduino माइक्रोकंट्रोलर पर अपलोड किया जाता है। आप प्रोग्राम को arduino.cc वेबसाइट, डाउनलोड सेक्शन से प्राप्त कर सकते हैं, जहाँ आप हमेशा प्रोग्राम का नवीनतम, नवीनतम संस्करण डाउनलोड कर सकते हैं। प्रोग्रामिंग वातावरण स्थापित होने के बाद, यह केवल ड्राइवर प्रोग्राम के मेनू से चयन करने के लिए रहता है कि आप किस बोर्ड का उपयोग करना चाहते हैं - हमारे मामले में, Arduino UNO, और COM पोर्ट जिसके माध्यम से Arduino USB इम्यूलेशन के माध्यम से जुड़ा हुआ है। इस विषय पर बहुत सारे प्रकार के मैनुअल हैं, इसलिए हम इस चरण को छोड़ देते हैं (बस मामले में - मेनू टूल्स> सीरियल पोर्ट)।

माइक्रो रोबोट के लिए कार्यक्रम हमारी वेबसाइट से उपलब्ध है, हालांकि पंजीकरण के बाद ही, Arduino पर एक मजाक मिनी रोबोट। कार्यक्रम को काम करने के लिए, अतिरिक्त पुस्तकालयों की आवश्यकता होती है - AFMotor.h, Sevo.h, NewPing.h, वे सभी संग्रह में हैं, आपको संग्रह को स्थापित Arduino IDE प्रोग्राम के फ़ोल्डर में अनपैक करने की आवश्यकता है। मेरे लिए, यह c: प्रोग्राम फ़ाइलें (x86) Arduino निर्देशिका है, पुस्तकालयों को c: प्रोग्राम फ़ाइलें (x86) Arduino लाइब्रेरी फ़ोल्डर में रखने की आवश्यकता है। फिर c:Program Files (x86)ArduinolibrariesAPC_4_ROBOT डायरेक्टरी में जाएं और APC_4_ROBOT.ino पर डबल क्लिक करें यह स्केच ही है, फिर प्रोग्रामिंग वातावरण शुरू हो जाएगा। हम कंप्यूटर से USB केबल के माध्यम से नंगे Arduino Uno बोर्ड (अर्थात बिना कनेक्टेड मॉड्यूल के) को कनेक्ट करते हैं, बटन को दाईं ओर तीर के साथ दबाएं, प्रोग्राम कंट्रोलर पर अपलोड होना शुरू हो जाएगा। पूरी प्रक्रिया में कुछ सेकंड लगते हैं, और यदि सब कुछ सही ढंग से जुड़ा हुआ है, तो कोई लाल शिलालेख नहीं जलना चाहिए, और निचले दाएं कोने में संकेतक अपना आंदोलन 100% पूरा करेगा। Arduino के लिए प्रोग्राम Atmega328 कंट्रोलर में इंस्टॉल किया गया है।

12. रोबोट शुरू करना

Arduino पर मिनी रोबोट - चलने के लिए तैयार। रोबोट वैली

हमारे रोबोट का पहला, फिर भी ट्रायल रन करना संभव है। हमारा रोबोट सही ढंग से नहीं चला, एक पहिया सही घूम रहा था, और दूसरा विपरीत दिशा में। मुझे ब्लॉक एम 2 पर मोटर तारों की ध्रुवीयता को बदलना पड़ा। लेकिन तब हमारे छोटे रोबोट ने सम्मान के साथ कमरे के सभी कोनों और बाधाओं का सामना किया।

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

पी.एस. यह एक समय में इंटरनेट के विशाल विस्तार पर पाया गया एक लेख का काफी मुफ्त अनुवाद था, निश्चित रूप से अधिक झूठ, क्योंकि सब कुछ एक नए तरीके से किया गया था, चित्र को अंतिम रूप दिया गया था, स्रोत का कोई संदर्भ नहीं था , क्योंकि दस्तावेज़ एक Word दस्तावेज़ था।

हमारे प्रिय पाठकों, हम Arduino पर आधारित रोबोट बनाने पर लेखों की एक श्रृंखला खोल रहे हैं। यह माना जाता है कि पाठक एक नौसिखिया है और उसे विषय का केवल एक बुनियादी ज्ञान है। हम सब कुछ यथासंभव विस्तृत और समझने योग्य बताने की कोशिश करेंगे।

तो, समस्या का परिचय:

आइए अवधारणा के साथ शुरू करें: हम एक ऐसा रोबोट चाहते हैं जो अपने आप कमरे में घूम सके, और सभी बाधाओं से बच सके। कार्य निर्धारित किया गया था।

अब आइए जानें कि हमें क्या चाहिए:

  1. मंच (मामला)। यहां विकल्प हैं: सब कुछ स्वयं करें, पुर्जे खरीदें और उन्हें इकट्ठा करें, या तैयार खरीदें। आपको जो पसंद है उसे चुनें

किट आमतौर पर एक प्लेटफॉर्म और दो ड्राइविंग व्हील्स (कैटरपिलर) और एक बैटरी कम्पार्टमेंट के लिए एक मोटर के साथ आती है। ऑल-व्हील ड्राइव के विकल्प हैं - 4-व्हील मोटर पर। शुरुआती लोगों के लिए, हम टैंक-प्रकार के प्लेटफॉर्म लेने की सलाह देते हैं

दो ड्राइविंग व्हील और एक तीसरा सपोर्ट।

  1. अगला, हमें एक रेंजफाइंडर की आवश्यकता है। सोनार (उर्फ रेंजफाइंडर, उर्फ ​​​​अल्ट्रासोनिक मॉड्यूल) रेंजफाइंडर के रूप में, शुरू में विकल्प अल्ट्रासोनिक और इन्फ्रारेड के बीच था। चूंकि अल्ट्रासोनिक की विशेषताएं बहुत बेहतर हैं (अधिकतम सीमा लगभग 4-5 मीटर है, बनाम 30-60 सेमी), और कीमत लगभग समान है, पसंद अल्ट्रासोनिक पर गिर गई। सबसे आम मॉडल HC-SR04 है।

  1. इंजिन चालक।

कैसे बनें? पहली बात जो दिमाग में आती है वह है माइक्रोकंट्रोलर के आउटपुट पर एक ट्रांजिस्टर लगाना और उससे मोटरों को फीड करना। यह निश्चित रूप से अच्छा है, लेकिन अगर हम दूसरी दिशा में मोटर शुरू करना चाहते हैं तो यह काम नहीं करेगा ... लेकिन एच काम अच्छी तरह से करेगा - एक पुल, जो ट्रांजिस्टर की एक जोड़ी की तुलना में थोड़ा अधिक जटिल सर्किट है। लेकिन इस मामले में, तैयार किए गए एकीकृत सर्किट के रूप में उनमें से बहुत सारे हैं, इसलिए मुझे लगता है कि पहिया को फिर से शुरू करने की कोई आवश्यकता नहीं है - हम एक तैयार-निर्मित खरीद लेंगे। इसके अलावा, कीमत अनुकूल है - 2-3 डॉलर ... चलो आगे बढ़ते हैं। इन उद्देश्यों के लिए, हम एक L293D चिप, या उससे भी बेहतर, उस पर आधारित एक मोटर शील्ड खरीदेंगे।

L298N चिप पर मोटर शील्ड

  1. ध्वनि निर्माण - पीजो बजर

ध्वनि उत्पन्न करने का सबसे सरल विकल्प पीजो एमिटर का उपयोग करना है।

पीजोसेरेमिक उत्सर्जक (पीजोइलेक्ट्रिक उत्सर्जक) विद्युत ध्वनिक ध्वनि प्रजनन उपकरण हैं जो पीजोइलेक्ट्रिक प्रभाव का उपयोग करते हैं। (यांत्रिक तनाव (प्रत्यक्ष पीजोइलेक्ट्रिक प्रभाव) की कार्रवाई के तहत ढांकता हुआ ध्रुवीकरण की घटना का प्रभाव। एक उलटा पीजोइलेक्ट्रिक प्रभाव भी है - एक विद्युत क्षेत्र के प्रभाव में यांत्रिक विकृतियों की घटना।

प्रत्यक्ष पीजो प्रभाव: पीजो लाइटर में, स्पार्क गैप पर एक उच्च वोल्टेज प्राप्त करने के लिए;

उलटा पीजोइलेक्ट्रिक प्रभाव: पीजोइलेक्ट्रिक उत्सर्जक में (उच्च आवृत्तियों पर प्रभावी और छोटे आयाम होते हैं);)

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

पहली बार हमें बस इतना ही चाहिए। शुरू करने के लिए, हम अलग-अलग पाठों के रूप में विचार करेंगे कि कैसे इन भागों को अलग-अलग इकट्ठा किया जाए और कैसे काम किया जाए।

पाठ 2

पाठ 3. एल298एन पर आधारित अरुडिनो और मोटर शील्ड

पाठ 4

पाठ 5

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

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

चरण 1: यह कैसे काम करता है?

रोबोट के 4 पैर हैं, जिनमें से प्रत्येक पर 3 सर्वो हैं, जो इसे अपने अंगों को 3 डिग्री स्वतंत्रता में स्थानांतरित करने की अनुमति देता है। वह "रेंगने वाली चाल" के साथ चलता है। इसे धीमा होने दें, लेकिन सबसे आसान में से एक।

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

चरण 2: आवश्यक भाग

कंकालप्लेक्सीग्लस 2 मिमी मोटी से बना है।

होममेड उत्पाद के इलेक्ट्रॉनिक भाग में निम्न शामिल होंगे:

  • 12 सर्वो;
  • arduino nano (किसी भी अन्य arduino बोर्ड से बदला जा सकता है);

  • सर्वो नियंत्रण के लिए शील्ड;
  • बिजली की आपूर्ति (परियोजना में, 5V 4A बिजली आपूर्ति इकाई का उपयोग किया गया था);

  • अतिध्वनि संवेदक;
  • एचसी 05 ब्लूटूथ मॉड्यूल;

ढाल बनाने के लिए आपको आवश्यकता होगी:

  • सर्किट बोर्ड (अधिमानतः बिजली और जमीन की सामान्य लाइनों (बसों) के साथ);
  • इंटर-बोर्ड पिन कनेक्टर - 30 पीसी;
  • प्रति बोर्ड सॉकेट - 36 पीसी;

  • तार

उपकरण:

  • लेजर कटर (या कुशल हाथ);
  • सुपर गोंद;
  • गर्म गोंद।

चरण 3: कंकाल

आइए कंकाल के घटक भागों को खींचने के लिए एक ग्राफिक्स प्रोग्राम का उपयोग करें।

उसके बाद, किसी भी उपलब्ध तरीके से, हमने भविष्य के रोबोट के 30 भागों को काट दिया।

चरण 4: विधानसभा

काटने के बाद, plexiglass से सुरक्षात्मक पेपर कोटिंग हटा दें।

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

फिर आपको सर्वो को संशोधित करने की आवश्यकता है (सर्वो शाफ्ट के विपरीत एक स्क्रू गोंद)।

इस परिशोधन के साथ, हम रोबोट को और अधिक स्थिर बना देंगे। शोधन केवल 8 सर्वो के लिए किया जाना है, शेष 4 सीधे शरीर से जुड़े होंगे।

हम पैरों को जोड़ने वाले तत्व (घुमावदार भाग) से जोड़ते हैं, और यह, बदले में, शरीर पर सर्वो के लिए।

चरण 5: शील्ड बनाना

यदि आप चरण में प्रस्तुत तस्वीरों का पालन करते हैं तो बोर्ड बनाना काफी सरल है।

चरण 6: इलेक्ट्रॉनिक्स

Arduino बोर्ड पर सर्वो पिन को ठीक करें। पिनों को सही क्रम में जोड़ा जाना चाहिए, अन्यथा कुछ भी काम नहीं करेगा!

चरण 7: प्रोग्रामिंग

फ्रेंकस्टीन को जीवंत करने का समय आ गया है। सबसे पहले,legs_init प्रोग्राम को लोड करें और सुनिश्चित करें कि रोबोट चित्र में दिखाई गई स्थिति में है। इसके बाद, यह देखने के लिए quattro_test लोड करें कि क्या रोबोट आगे, पीछे, बाएं और दाएं जैसे बुनियादी आंदोलनों का जवाब देता है।

महत्वपूर्ण: आपको arduino IDE में एक अतिरिक्त लाइब्रेरी जोड़ने की आवश्यकता है। पुस्तकालय का लिंक नीचे दिया गया है:

रोबोट को 5 कदम आगे, 5 कदम पीछे, बाएँ मुड़ना 90 डिग्री, दाएँ मुड़ना 90 डिग्री लेना चाहिए। अगर फ्रेंकस्टीन सब कुछ ठीक कर रहा है, तो हम सही दिशा में आगे बढ़ रहे हैं।

पी. एस: रोबोट को कप पर स्टैंड के रूप में स्थापित करें, ताकि हर बार वह इसे मूल बिंदु पर सेट न करे। एक बार परीक्षणों ने रोबोट के सामान्य संचालन को दिखा दिया है, तो हम इसे जमीन/फर्श पर रखकर परीक्षण जारी रख सकते हैं।

चरण 8: उलटा किनेमेटिक्स

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

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

वे साधारण रोबोट बनाकर आर्डिनो सीखना शुरू करते हैं। आज मैं arduino uno पर सबसे सरल रोबोट के बारे में बात करूंगा, जो कुत्ते की तरह आपके हाथ या किसी अन्य वस्तु का अनुसरण करेगा जो अवरक्त प्रकाश को दर्शाता है। साथ ही यह रोबोट बच्चों का मनोरंजन करेगा। मेरा 3 साल का भतीजा स्वेच्छा से रोबोट के साथ खेला :)

मैं उन हिस्सों को सूचीबद्ध करके शुरू करूँगा जिनकी निर्माण करते समय आवश्यकता होगी - Arduino UNO;

इन्फ्रारेड रेंजफाइंडर;

- गियरबॉक्स और पहियों के साथ 3-वोल्ट मोटर्स;

- 3 ए बैटरी के लिए कनेक्टर;

-बैटरी (यदि पर्याप्त बैटरी नहीं है);

- मोटर्स को नियंत्रित करने के लिए रिले;

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


फिर मैं मोटरों को लकड़ी के तख्ते से जकड़ देता हूं, इस बार को खराब कर देता हूं

मामले पर आगे, मैंने एक आर्डिनो, एक रिले, एक ब्रेनबोर्ड, रेंजफाइंडर, और चेसिस बेस के नीचे एक घूर्णन रखा

अब हम सब कुछ योजना के अनुसार जोड़ते हैं

अंत में, हम निम्नलिखित स्केच को आर्डिनो में लोड करते हैं:

कॉन्स्ट इंट आर = 13; // पिन जिससे IR रेंजफाइंडर जुड़े हुए हैं const int L = 12; इंट मोटर एल = 9; // पिन जिससे रिले जुड़ा हुआ है int motorR = 11; इंट बटनस्टेट = 0; शून्य सेटअप () (पिनमोड (आर, इनपुट); पिनमोड (एल, इनपुट); पिनमोड (मोटरआर, आउटपुट); पिनमोड (मोटरएल, आउटपूट); ) शून्य लूप () ((बटनस्टेट = डिजिटलरेड (एल); अगर (बटनस्टेट) == हाई) (डिजिटलवाइट (मोटरआर, हाई);) और (डिजिटलवाइट (मोटरआर, लो);)) ((बटनस्टेट = डिजिटलरेड (आर); अगर (बटनस्टेट == हाई) (डिजिटलराइट (मोटर एल, हाई);) और (डिजिटलवाइट (मोटर एल, लो);))))

ऑपरेशन का सिद्धांत बहुत सरल है। बायां रेंजफाइंडर दाएं पहिये के लिए जिम्मेदार है, और दायां पहिया बाएं के लिए जिम्मेदार है

इसे स्पष्ट करने के लिए, आप एक वीडियो देख सकते हैं जो रोबोट की निर्माण प्रक्रिया और क्रिया को दिखाता है

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

मुझे आशा है कि आपने इस शिल्प का आनंद लिया है, याद रखें कि शिल्प अच्छे हैं!