विषयसूची:

वायरलेस सर्वो नियंत्रण: 6 कदम
वायरलेस सर्वो नियंत्रण: 6 कदम

वीडियो: वायरलेस सर्वो नियंत्रण: 6 कदम

वीडियो: वायरलेस सर्वो नियंत्रण: 6 कदम
वीडियो: bike wireless controller ki jankari 2024, जुलाई
Anonim
वायरलेस सर्वो नियंत्रण
वायरलेस सर्वो नियंत्रण
वायरलेस सर्वो नियंत्रण
वायरलेस सर्वो नियंत्रण

यह परियोजना एक पोटेंशियोमीटर (घुंडी) के माध्यम से एक सर्वो के रोटेशन को वायरलेस तरीके से नियंत्रित करती है। रोटेशन 180 डिग्री तक सीमित है।

चरण 1: अवयव

अवयव
अवयव
अवयव
अवयव
अवयव
अवयव

इस परियोजना में शामिल हैं

  • यूएसबी कनेक्टर केबल के साथ 2 Arduino यूएनओ नियंत्रक बोर्ड
  • 2 nRF24L01 - 2.4GHz RF ट्रांसीवर मॉड्यूल (इन मॉड्यूल की सहायता के लिए
  • nRF24L01. के लिए 2 सॉकेट अडैप्टर बोर्ड (बैकपैक चिप्स)
  • 1 वैकल्पिक Arduino संगत 328 प्रोटोशील्ड प्रोटोटाइप विस्तार बोर्ड
  • 1 सर्वो
  • 1 एनालॉग पोटेंशियोमीटर
  • सोल्डरिंग आयरन और सोल्डर
  • वायर
  • सुई नाक सरौता
  • इन्सुलेट रैप, मैंने बिजली के टेप का इस्तेमाल किया

चरण 2: सर्वर बोर्ड

सर्वर बोर्ड
सर्वर बोर्ड

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

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

शील्ड बोर्ड पिन सीधे Arduino पिन से मेल खाते हैं। शील्ड बोर्ड संलग्न करने से पहले, मैंने तार और सोल्डर के साथ जमीन और 5 वोल्ट पिन को बोर्ड रेल से जोड़ा। मैंने ढाल बोर्ड रेल के घटकों के 5 वोल्ट और जमीन के तारों को भी मिलाया, फिर अंत में Arduino को ढाल बोर्ड से जोड़ा।

सर्वो बिजली के लिए 3 वोल्ट पिन और संचार के लिए डिजिटल पिन 2 से जुड़ा हुआ है।

** नोट: इस निर्माण को पूरा करने के बाद ही मैंने देखा कि मेरे Arduino बोर्ड समान नहीं हैं। मेरा सर्वर ट्रांसीवर शील्ड बोर्ड पर 5 वोल्ट रेल द्वारा संचालित है, जबकि क्लाइंट ट्रांसीवर 3 वोल्ट पिन द्वारा संचालित है, हालांकि मुझे विश्वास है कि ट्रांसीवर पर एडाप्टर चिप का एक कार्य उचित वोल्टेज प्रदान करना है। मैं निश्चित रूप से केवल इतना कह सकता हूं कि प्रदान किया गया कोड छवियों में दिखाए गए कॉन्फ़िगरेशन से मेल खाता है जो वर्णित प्रभाव उत्पन्न करता है।

चरण 3: सर्वर कोडर: कॉपी और पेस्ट करें

// सर्वर कोड/* NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> इस्तेमाल नहीं किया गया GND> GND VCC> 5V *///ट्रांसीवर वायरिंग

#शामिल

// सर्वो लाइब्रेरी

#शामिल

// ट्रांसीवर लाइब्रेरी

#सर्वोपिन 2 परिभाषित करें

// घोषणा सर्वो आउटपुट पिन

सर्वो टाइमर 2 सर्व;

// सर्वो नाम की घोषणा

RH_NRF24 nrf24;

// ट्रांसीवर नाम की घोषणा

इंट टाइमआउट = 0;

// सर्वो के लिए चर

इंट दालें = ९०;

// दालों को स्टोर करने के लिए चर

व्यर्थ व्यवस्था()

{ सर्व.अटैच (सर्वोपिन); // सर्वो सामान

सीरियल.बेगिन (९६००); // ट्रांसीवर सामान

अगर (!nrf24.init ())

Serial.println ("init विफल"); // सीरियल मॉनिटर सामान अगर (! nrf24.setChannel (12)) // चैनल को 125 सीरियल पर सेट करें। प्रिंट्लन ("सेटचैनल विफल"); अगर (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println ("setRF विफल"); // सीरियल मॉनिटर सामान}

शून्य लूप ()

{ अगर (nrf24.उपलब्ध ()) { uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t लेन = आकार (buf); if (nrf24.recv(buf, &len)) // सीरियल मॉनिटर स्टफ {Serial.print ("प्राप्त अनुरोध:"); दालें = स्ट्रेटोल ((कॉन्स्ट चार *) बफ, न्यूल, 10); // डेटा प्रकार परिवर्तन सामग्री

इंट प्रिंस = नक्शा (दालें, 750, 2250, 0, 180); // डेटा प्रकार परिवर्तन सामग्री

सीरियल.प्रिंट्लन (प्रिन); सर्व.लिखें (दालें); // सर्वो चाल बनाता है}}

}

चरण 4: क्लाइंट बोर्ड

ग्राहक बोर्ड
ग्राहक बोर्ड

क्लाइंट बोर्ड में एक ट्रांसीवर मॉड्यूल और पोटेंशियोमीटर होता है। ट्रांसीवर मॉड्यूल को सर्वर बोर्ड की तरह ही तार दिया जाता है, इस अपवाद के साथ कि शील्ड बोर्ड के बिना, इसे सीधे Arduino बोर्ड पिन में तार दिया जाता है।

पोटेंशियोमीटर 5v, जमीन लेता है, और एनालॉग पिन 2 से जुड़ा होता है।

**नोट: जैसा कि सर्वर बोर्ड चरण में बताया गया है, मेरे Arduino बोर्ड समान नहीं हैं। इस मामले में ट्रांसीवर को 3.3V लेबल वाले पिन से तार दिया जाता है, जो सीधे 5V पिन से सटा होता है, लेकिन फिर से, सब कुछ ठीक काम करता प्रतीत होता है।

चरण 5: क्लाइंट कोड: कॉपी और पेस्ट करें

// क्लाइंट कोड/* NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> इस्तेमाल नहीं किया गया GND> GND VCC> 5V *///ट्रांसीवर वायरिंग

#शामिल

// ट्रांसीवर लाइब्रेरी

इंट पोटपिन = A2; // पोटेंशियोमीटर डिलेरेशन

इंट वैल;

चार टेम्पचर [5];

स्ट्रिंग वैलस्ट्रिंग = ""; // डेटा प्रकार परिवर्तन सामग्री

RH_NRF24 nrf24; // ट्रांसीवर सामान

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); अगर (! nrf24.init ()) Serial.println ("init विफल"); // init के बाद डिफ़ॉल्ट 2.402 GHz (चैनल 2), 2Mbps, 0dBm हैं अगर (!nrf24.setChannel(12)) Serial.println ("setChannel विफल"); अगर (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println ("setRF विफल"); } //ट्रांसीवर सामान

शून्य लूप () {

वैल = एनालॉगरेड (पोटपिन); // पोटेंशियोमीटर सामान

वैल = नक्शा (वैल, 0, 1023, 750, 2250);

वैलस्ट्रिंग = वैल; स्ट्रिंग स्ट्र = (वैलस्ट्रिंग); str.toCharArray(tempChar, 5); // डेटाटाइप परिवर्तन सामग्री nrf24.send (tempChar, sizeof (tempChar));

}

चरण 6: कोड के बारे में एक नोट:

कोड में Arduino सॉफ़्टवेयर इंटरफ़ेस में सीरियल मॉनिटर से फीडबैक के रूप में कुछ सीमित समस्या निवारण कार्यक्षमता शामिल है। सर्वर कोड (ctrl + shift + M) से सीरियल मॉनिटर देखते समय, आपको 1 और 180 के बीच की संख्या के रूप में पोटेंशियोमीटर की स्थिति देखने में सक्षम होना चाहिए।

इसके अलावा, यहाँ वायरलेस और सर्वो के लिए पुस्तकालय है:

www.airspayce.com/mikem/arduino/RadioHead/

github.com/nabontra/ServoTimer2

सिफारिश की: