जॉयस्टिक का उपयोग करके सर्वो मोटर को कैसे नियंत्रित किया जाए

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





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

परिचय

इस लेख का मकसद सिर्फ यह नहीं है इमदादी मोटर्स को नियंत्रित करें लेकिन, यह जानने के लिए कि कैसे उपयोग करें नियंत्रित करने के लिए जॉयस्टिक कई अन्य परिधीय उपकरण।



अब जॉयस्टिक पर एक नजर डालते हैं।

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



जॉयस्टिक का उपयोग आरसी खिलौने से लेकर बोइंग हवाई जहाज तक और इसी तरह के कार्य करने के लिए किया जाता है। इसके अतिरिक्त गेमिंग और छोटी खुशी की छड़ियों में जेड अक्ष में एक पुश बटन होता है जिसे कई उपयोगी कार्यों को करने के लिए प्रोग्राम किया जा सकता है।

जॉयस्टिक का चित्रण:

जॉयस्टिक का चित्रण:

Joysticks सामान्य रूप से इलेक्ट्रॉनिक उपकरण हैं, इसलिए हमें शक्ति लागू करने की आवश्यकता है। लीवर की गति आउटपुट पिंस में वोल्टेज अंतर पैदा करती है। एक मोटर जैसे आउटपुट डिवाइस को नियंत्रित करने के लिए वोल्टेज स्तरों को एक माइक्रोकंट्रोलर द्वारा संसाधित किया जाता है।

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

अब इस जॉयस्टिक के निर्माण को देखते हैं।

इसमें दो 10 किलो ओम हैं तनाव नापने का यंत्र स्प्रिंग्स के साथ एक्स और वाई कुल्हाड़ियों में तैनात ताकि, जब उपयोगकर्ता लीवर से बल छोड़ता है तो यह अपनी मूल स्थिति में लौट आता है। इसमें Z धुरी पर ON बटन का पुश है।

इसमें 5 पिन, 5 वोल्ट Vcc, GND, वेरिएबल X, वेरिएबल Y और SW (Z एक्सिस स्विच) हैं। जब हम वोल्टेज लागू करते हैं और जॉयस्टिक को उसकी मूल लीवर स्थिति पर छोड़ देते हैं। एक्स और वाई पिन लागू वोल्टेज का आधा उत्पादन करेगा।

जब हम लीवर को हिलाते हैं तो X और Y आउटपुट पिन में वोल्टेज बदलता रहता है। अब व्यावहारिक रूप से Arduino के जॉयस्टिक को इंटरफ़ेस करते हैं।

योजनाबद्ध आरेख:

जॉयस्टिक का उपयोग कर Arduino सर्वो मोटर नियंत्रण

पिन कनेक्शन विवरण सर्किट के बगल में दिए गए हैं। पूर्ण हार्डवेयर सेटअप कनेक्ट करें और कोड अपलोड करें।

कार्यक्रम:

//---------------Program Developed by R.Girish--------------//
int X_axis = A0
int Y_axis = A1
int Z_axis = 2
int x = 0
int y = 0
int z = 0
void setup()
{
Serial.begin(9600)
pinMode(X_axis, INPUT)
pinMode(Y_axis, INPUT)
pinMode(Z_axis, INPUT)
digitalWrite(Z_axis, HIGH)
}
void loop()
{
x = analogRead(X_axis)
y = analogRead(Y_axis)
z = digitalRead(Z_axis)
Serial.print('X axis = ')
Serial.println(x)
Serial.print('Y axis = ')
Serial.println(y)
Serial.print('Z axis = ')
if(z == HIGH)
{
Serial.println('Button not Pressed')
}
else
{
Serial.println('Button Pressed')
}
Serial.println('----------------------------')
delay(500)
}
//---------------Program Developed by R.Girish--------------//

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

इन X, Y, Z अक्षों का उपयोग लीवर की स्थिति की व्याख्या करने के लिए किया जाता है। जैसा कि आप देख सकते हैं कि मान 0 से 1023 तक हैं।

चूँकि Arduino ने ADC कनवर्टर में बनाया है जो वोल्टेज 0V - 5V को 0 से 1023 मानों में परिवर्तित करता है।

आप धारावाहिक मॉनिटर से देख सकते हैं कि जब लीवर को अछूता छोड़ दिया जाता है तो लीवर एक्स और वाई दोनों एक्सिस की मध्य स्थिति में रहता है और 1023 का आधा मूल्य दिखाता है।

आप यह भी देख सकते हैं कि यह 1023 का आधा हिस्सा नहीं है क्योंकि इन जॉयस्टिकों का निर्माण कभी भी सही नहीं रहा है।

अब तक, आपको जॉयस्टिक के बारे में कुछ तकनीकी जानकारी मिल गई होगी।

अब देखते हैं कि एक जॉयस्टिक का उपयोग करके दो सर्वो मोटर्स को कैसे नियंत्रित किया जाए।

सर्किट आरेख:

जब आप एक्स अक्ष के साथ जॉयस्टिक को घुमाते हैं तो दो इमदादी मोटर्स एक जॉयस्टिक द्वारा नियंत्रित होते हैं। लीवर पोजिशन के आधार पर # 7 मूव्स क्लॉक वाइज और एंटी-क्लॉक वार से जुड़े होते हैं।

यदि आप जॉयस्टिक स्तर को किसी विशेष स्थिति में रखते हैं, तो आप सर्वो एक्टुएटर को एक स्थिति में भी पकड़ सकते हैं।

पिन # 6 से जुड़ी सर्वो मोटर के लिए, आप ली अक्ष को Y अक्ष पर ले जा सकते हैं।

जब आप Z अक्ष के साथ लीवर दबाते हैं, तो दोनों मोटर्स 180 डिग्री स्वीप करेंगे।

आप या तो arduino को कनेक्ट कर सकते हैं 9v बैटरी या कंप्यूटर के लिए। यदि आप Arduino को कंप्यूटर से कनेक्ट करते हैं तो आप सीरियल मॉनिटर खोल सकते हैं और सर्वो एक्टुएटर्स और वोल्टेज के स्तर को देख सकते हैं।

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

//---------------Program Developed by R.Girish--------------//
#include
Servo servo_X
Servo servo_Y
int X_angleValue = 0
int Y_angleValue = 0
int X_axis = A0
int Y_axis = A1
int Z_axis = 2
int x = 0
int y = 0
int z = 0
int pos = 0
int check1 = 0
int check2 = 0
int threshold = 10
void setup()
{
Serial.begin(9600)
servo_X.attach(7)
servo_Y.attach(6)
pinMode(X_axis, INPUT)
pinMode(Y_axis, INPUT)
pinMode(Z_axis, INPUT)
digitalWrite(Z_axis, HIGH)
}
void loop()
{
x = analogRead(X_axis)
y = analogRead(Y_axis)
z = digitalRead(Z_axis)
if(z == LOW)
{
Serial.print('Z axis status = ')
Serial.println('Button Pressed')
Serial.println('Sweeping servo actuators')
for (pos = 0 pos <= 180 pos += 1)
{
servo_X.write(pos)
delay(10)
}
for (pos = 180 pos >= 0 pos -= 1)
{
servo_X.write(pos)
delay(15)
}
for (pos = 0 pos <= 180 pos += 1)
{
servo_Y.write(pos)
delay(10)
}
for (pos = 180 pos >= 0 pos -= 1)
{
servo_Y.write(pos)
delay(15)
}
Serial.println('Done!!!')
}
if(x > check1 + threshold || x {
X_angleValue = map(x, 0, 1023, 0, 180)
servo_X.write(X_angleValue)
check1 = x
Serial.print('X axis voltage level = ')
Serial.println(x)
Serial.print('X axis servo motor angle = ')
Serial.print(X_angleValue)
Serial.println(' degree')
Serial.println('------------------------------------------')
}
if(y > check2 + threshold || y {
Y_angleValue = map(y, 0, 1023, 0, 180)
servo_Y.write(Y_angleValue)
check2 = y
Serial.print('Y axis voltage level = ')
Serial.println(y)
Serial.print('Y axis servo motor angle = ')
Serial.print(Y_angleValue)
Serial.println(' degree')
Serial.println('------------------------------------------')
}
}
//---------------Program Developed by R.Girish--------------//

यदि आपके पास इस परियोजना के बारे में कोई विशिष्ट प्रश्न है, तो टिप्पणी अनुभाग में व्यक्त करने के लिए स्वतंत्र महसूस करें, आपको एक त्वरित उत्तर प्राप्त हो सकता है।




की एक जोड़ी: Arduino का उपयोग कर डिजिटल कैपेसिटेंस मीटर सर्किट अगला: Arduino के साथ डिजिटल पोटेंशियोमीटर MCP41xx का उपयोग करना