विषयसूची:
- चरण 1: चीजें जिनकी आपको आवश्यकता हो सकती है …
- चरण 2: हार्डवेयर कनेक्ट करें।
- चरण 3: Arduino को प्रोग्राम करें
- चरण 4: सॉफ़्टवेयर स्थापित करें
- चरण 5: इंटरफ़ेस प्रोग्राम का उपयोग करें
- चरण 6: रचनात्मक बनें
वीडियो: Arduino आधारित सीरियल सर्वो नियंत्रक: 6 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:24
यह Arduino पर आधारित कई सर्वो के लिए एक साधारण सीरियल कंट्रोलर है। (मेरी पहली शिक्षाप्रद भी:))
इसमें अधिकांश काम आर्डिनो के साथ बात करने के लिए सॉफ्टवेयर प्राप्त करने और डेटा को पारित करने के लिए एक प्रोटोकॉल बनाने से आया था। हार्डवेयर पहलू के लिए जो मैंने उपयोग किया वह दो सर्वो (यहाँ लंबन मानक सर्वो।) एक स्पार्कफुन अरुडिनो प्रोटोशील्ड और एक अरुडिनो ड्यूमिलानोव के साथ ATMEGA328 था, लेकिन इनमें से अधिकांश भागों को समान वस्तुओं के साथ प्रतिस्थापित किया जा सकता है। मैंने इस परियोजना को RC सिस्टम के हिस्से के रूप में सोचा था, लेकिन संचार स्थापित करने में बहुत समय लगा। अगर किसी के पास कोई सुधार, विचार या बग है तो कृपया बेझिझक टिप्पणी करें। संपादित करें: मैंने इसे कुछ समय पहले लिखा था, अभी हाल ही में इसे प्रकाशित करना है।
चरण 1: चीजें जिनकी आपको आवश्यकता हो सकती है …
इसे बनाने के लिए आपको कुछ चीजों की जरूरत पड़ेगी। 1. Arduino बोर्ड (आप चुनते हैं) 2. दो (या एक) सर्वो 3. जम्पर तार 4. विजुअल स्टूडियो 2008 एक्सप्रेस - लिंक (वैकल्पिक) 5. Arduino IDE - लिंक क्षमा करें Linux और Apple प्रशंसक, मेरा प्रोग्राम केवल चालू रहता है विंडोज़ अभी के लिए, लेकिन आप अभी भी कोड को बदले बिना मैन्युअल रूप से arduino को सीरियल कमांड भेज सकते हैं।
चरण 2: हार्डवेयर कनेक्ट करें।
इस चरण के लिए कुछ भी जटिल नहीं है। बस एक सर्वो को पिन 9 से और दूसरे को 10 पिन करने के लिए कनेक्ट करें।
चरण 3: Arduino को प्रोग्राम करें
अब आप स्केच को arduino पर अपलोड कर सकते हैं।
यहां कोड का एक सरल विश्लेषण दिया गया है: #include Servo myservo; // सर्वो सर्वो myservo1 को नियंत्रित करने के लिए सर्वो ऑब्जेक्ट बनाएं; इंट इनकमिंगबाइट = 0, डेटाकाउंट = 0, काउंटर = 0, रेडी = 0; // आने वाले सीरियल डेटा चार डेटा [10] के लिए; कास्ट चार सत्यापित करें [8] = "ma11hew"; चार कमांड [3]; शून्य सेटअप () { myservo.attach(9); myservo1.attach(10); सीरियल.बेगिन (38400); // सीरियल पोर्ट खोलता है, डेटा दर सेट करता है Serial.println ("हाय Arduino यहाँ!"); // सीरियल पोर्ट की पहचान करने में मदद के लिए जोड़ा गया यह सिर्फ सीरियल पोर्ट और सर्वो को सेट करता है। इंट आई; for(i = 0; i<180;i++) { myservo.write(i); देरी(15); } myservo.write(5); for(i = 0; i<180;i++) { myservo1.write(i); देरी(15); } myservo1.लिखें(५); } सर्वो के कार्य को सही ढंग से सत्यापित करने के लिए सरल व्यापक आंदोलन। शून्य लूप () {तैयार = 0; काउंटर = 0; जबकि (1 == 1) { अगर (सीरियल.रीड ()! = सत्यापित करें [काउंटर]) {ब्रेक; } अगर (काउंटर == 6) {देरी (20); कमांड [0] = सीरियल.रीड (); कमांड [1] = सीरियल.रीड (); // अगर (सीरियल.रीड () == ((कमांड [1] * 12)% 8)) // {रेडी = 1; //} Serial.println ("सेव्ड कमांड"); } काउंटर ++; देरी(2); } यह सही प्राधिकरण स्ट्रिंग के लिए सीरियल बफर की जांच करता है और फिर कमांड के लिए दो बाइट पकड़ लेता है। टिप्पणी की गई अगर कथन एक अस्थायी चेकसम की अनुमति देता है लेकिन मैन्युअल इंटरफेसिंग को कठिन बना देगा। तैयार को 0 पर सेट किया जा सकता है, इसलिए कमांड को पार्स नहीं किया जाएगा जैसे कि दूषित डेटा के मामले में। // कमांड के माध्यम से खोजें अगर (तैयार == 1) {अगर (कमांड [0] == 'टी') {कमांड [0] = 0; Serial.print ("पिन 9 से थ्रॉटल कंट्रोल:"); Serial.println (मानचित्र (कमांड [1], ३२, १२६, २, १८०), डीईसी); myservo.write (मानचित्र (कमांड [1], ३२, १२६, २, १८०)); } अगर (कमांड [0] == 'एस') {कमांड [0] = 0; Serial.print ("पिन 10 से थ्रॉटल कंट्रोल:"); Serial.println (मानचित्र (कमांड [1], ३२, १२६, २, १८०), डीईसी); myservo1.write (मानचित्र (कमांड [1], ३२, १२६, २, १८०)); } } } शेष कोड को वैध कमांड (टी या एस) के लिए कमांड खोजना है यदि दोनों में से कोई भी मेल खाता है तो यह अगली बाइट लेता है और इसे सर्वो को भेजता है। मानचित्र पर और अधिक (कमांड [1], ३२, १२६, २, १८०) बाद में… यहां कोड जो कुछ भी आपको चाहिए (जैसे रोशनी, मोटर्स, आईआर, आदि) के लिए विस्तार योग्य है, इस कोड को ठीक काम करना चाहिए। संशोधन
चरण 4: सॉफ़्टवेयर स्थापित करें
मेरे पास इसे स्थापित करने के दो तरीके हैं… एनएसआईएस इंस्टॉलर: नीचे स्वयं निकालने वाला इंस्टॉलर डाउनलोड करें और इसे चलाएं। आपके पास इंस्टालेशन के दौरान सोर्स इंस्टाल करने का विकल्प होगा। इंस्टॉलर बाइनरी पैकेज कोर सी ++ डीएलएस स्थापित करता है ताकि इसे कंप्यूटर पर बिना विजुअल सी ++ के पहले से स्थापित किया जा सके। एक बार इंस्टॉलर समाप्त हो जाने पर आप इसे डेस्कटॉप या स्टार्ट मेनू से चला सकते हैं। ज़िप तरीका (असत्यापित): डाउनलोड करें और चलाएं, इसे काम करना चाहिए। शायद। (ज़िप संग्रह में स्रोत के बिना, इंस्टॉलर द्वारा बनाई गई एक ही फ़ोल्डर संरचना है। मेरे पास दृश्य स्टूडियो के बिना इसे जांचने के लिए मशीन नहीं है, इसलिए यह काम नहीं कर सकता है।)
चरण 5: इंटरफ़ेस प्रोग्राम का उपयोग करें
प्रोग्राम का उपयोग करने के लिए पहले arduino स्केच में परिभाषित बॉड दर का चयन करें। अनमॉडिफाइड स्केच डिफ़ॉल्ट रूप से 38400 बॉड है, लेकिन धीमी रेडियो लिंक जैसी चीजों के लिए आपकी आवश्यकताओं के अनुरूप इसे बदला जा सकता है। नोट: 38400 से अधिक बॉड दरें बहुत स्थिर नहीं रही हैं, मुझे लगता है कि ऐसा इसलिए है क्योंकि डेटा संसाधित होने से पहले यूआर्ट भर जाता है। अगला, उपयोग करने के लिए COM पोर्ट का चयन करें। प्रोग्राम COM4 में डिफॉल्ट करता है, इसे बदलना सुनिश्चित करें या प्रोग्राम क्रैश हो जाएगा। अंत में ओपन पर क्लिक करें। यदि सब कुछ ठीक रहा तो प्रोग्राम चयनित सीरियल पोर्ट को चयनित बॉड दर पर खोलेगा। यदि नहीं तो प्रोग्राम शायद एक हैंडल न किया गया अपवाद के साथ क्रैश हो जाएगा। सुनिश्चित करें कि पोर्ट सही है और पुनः प्रयास करें। Arduino को सीधे कमांड सबमिट करने के लिए टेक्स्टबॉक्स का उपयोग करें। "मैप (कमांड [1], ३२, १२६, २, १८०)" सभी ९४ संभावित कमांडों को मापता है, *स्पेस* ~ के माध्यम से, एएससीआईआई में आर्डिनो द्वारा पठनीय सर्वो के लिए २ से १८० तक। ASCII 32 (स्पेस) से कम या 126 (~) से ऊपर का कोई भी बाइट 63 (?) पर डिफॉल्ट करता है। ट्रैक बार सीधे कमांड के लिए एक आसान इंटरफ़ेस प्रदान करते हैं। प्रत्येक चरण arduino को क्रमिक रूप से एक सीरियल कमांड भेजता है।
चरण 6: रचनात्मक बनें
इसके साथ बनाने के लिए ठंडी चीजों के बारे में सोचें। कुछ विचार: 1. कार के लिए रिमोट थ्रॉटल। 2. ३डी कैमरा माउंट ३. अंडरवाटर रोवर का आनंद लें !!
सिफारिश की:
प्रसंस्करण और Arduino को जोड़ना और 7 खंड और सर्वो GUI नियंत्रक बनाना: 4 चरण
कनेक्टिंग प्रोसेसिंग और अरुडिनो और मेक 7 सेगमेंट और सर्वो जीयूआई कंट्रोलर: कुछ परियोजनाओं के लिए आपको Arduino का उपयोग करने की आवश्यकता है क्योंकि यह एक आसान प्रोटोटाइप प्लेटफॉर्म प्रदान करता है लेकिन Arduino के सीरियल मॉनिटर में ग्राफिक्स प्रदर्शित करने में बहुत लंबा समय लग सकता है और ऐसा करना भी मुश्किल है। आप Arduino सीरियल मॉनिटर पर ग्राफ़ प्रदर्शित कर सकते हैं
हार्डवेयर सीरियल पोर्ट में SAMD21-आधारित बोर्ड USB पोर्ट बनाना !: 3 चरण
हार्डवेयर सीरियल पोर्ट में SAMD21-आधारित बोर्ड USB पोर्ट बनाना !: आजकल एक Arduino (या कोई अन्य संगत) बोर्ड USB पोर्ट को एक एमुलेटेड सीरियल पोर्ट के रूप में उपयोग करना मानक है। यह हमारे प्यारे बोर्डों से डिबगिंग, डेटा भेजने और प्राप्त करने के लिए बहुत उपयोगी है। मैं यूचिप पर काम कर रहा था, जब डेटाश के माध्यम से जा रहा था
सीरियल आधारित डिवाइस की री-इंजीनियरिंग: 6 चरण (चित्रों के साथ)
एक सीरियल आधारित डिवाइस को री-इंजीनियरिंग करना: एक सीरियल इंटरफ़ेस को फिर से बनाना फ्लूक 6500 को फिर से बनाने के लिए लक्षित मैं ऐसा इसलिए करूंगा क्योंकि फ्लूक मूल सॉफ्टवेयर बहुत "उपयोगकर्ता के अनुकूल नहीं है, सहज नहीं है" या मेरे सहकर्मी कैसे "f*d up" कहते हैं। चलो रहस्य शुरू करते हैं
एक 3D प्रिंटर का उपयोग करके Arduino के माध्यम से सीरियल कंट्रोल के साथ स्टेप सर्वो मोटर को इनकैप्सुलेट करना - Pt4: 8 चरण
एक 3D प्रिंटर का उपयोग करके Arduino के माध्यम से सीरियल कंट्रोल के साथ स्टेप सर्वो मोटर को एनकैप्सुलेट करना - Pt4: मोटर स्टेप सीरीज़ के इस चौथे वीडियो में, हम ’ जो हमने पहले सीखा है उसका उपयोग सीरियल संचार और वास्तविक के माध्यम से नियंत्रण के साथ एक स्टेपर सर्वो मोटर बनाने के लिए करेंगे। एक Arduino द्वारा मॉनिटर किए गए प्रतिरोधक एन्कोडर का उपयोग करके स्थिति प्रतिक्रिया। में
सीरियल कम्युनिकेशन का उपयोग करते हुए वेब-आधारित स्मार्टमिरर: 6 चरण
सीरियल कम्युनिकेशन का उपयोग करते हुए वेब-आधारित स्मार्टमिरर: यह निर्देश उपयोग के लिए तैयार सभी कोड के साथ दिया जाता है। विकास बहुत जटिल था लेकिन एक बार इसे स्थापित करने के बाद इसे अनुकूलित करना वास्तव में आसान है। एक नज़र डालें और आनंद लें;)