জয়স্টিক ব্যবহার করে সার্ভো মোটর কীভাবে নিয়ন্ত্রণ করবেন

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





এই পোস্টে আমরা শিখব কীভাবে জয়স্টিক এবং আরডুইনো ব্যবহার করে সার্ভো মোটর নিয়ন্ত্রণ করতে হবে। আমরা জয়স্টিক, এর পিনগুলি, এর নির্মাণ এবং কাজ সম্পর্কে সংক্ষিপ্ত বিবরণ দেখতে পাব। আমরা জয় স্টিক থেকে দরকারী ডেটা বের করব যা সার্ভো মোটরগুলি নিয়ন্ত্রণ করার জন্য ভিত্তি হবে।

ভূমিকা

এই নিবন্ধটির মূলমন্ত্রটি কেবল তাই নয় সারো মোটর নিয়ন্ত্রণ করুন তবে, কীভাবে ব্যবহার করতে হয় তা শিখতে নিয়ন্ত্রণের জন্য জয়স্টিক অন্যান্য অনেক পেরিফেরাল ডিভাইস।



এবার জয়স্টিকটি একবার দেখুন।

জয়স্টিক হ'ল একটি ইনপুট ডিভাইস যা একটি লিভার নিয়ে থাকে যা এক্স এবং ওয়াই অক্ষের বিভিন্ন দিকে যেতে পারে। লিভারের চলাচল মোটর বা কোনও পেরিফেরাল ইলেকট্রনিক ডিভাইস নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়।



জয়স্টিকগুলি আরসি খেলনা থেকে বোয়িং বিমানগুলিতে ব্যবহৃত হয় এবং অনুরূপ ফাংশন সম্পাদন করে। অতিরিক্তভাবে গেমিং এবং আরও ছোট আনন্দ লাঠিগুলির জেড অক্ষে একটি পুশ বোতাম রয়েছে যা অনেকগুলি দরকারী ক্রিয়া করার জন্য প্রোগ্রাম করা যেতে পারে।

জয়স্টিকের চিত্র:

জয়স্টিকের চিত্র:

জয়স্টিকস সাধারণভাবে বৈদ্যুতিন ডিভাইস তাই, আমাদের শক্তি প্রয়োগ করা দরকার। লিভারের চলন আউটপুট পিনগুলিতে ভোল্টেজের পার্থক্য তৈরি করে। ভোল্টেজের স্তরগুলি একটি মোটর যেমন আউটপুট ডিভাইস নিয়ন্ত্রণ করতে একটি মাইক্রোকন্ট্রোলার দ্বারা প্রক্রিয়া করা হয়।

ইলাস্ট্রেটেড জোস্টস্টিকটি একই রকম, যা প্লেস্টেশন এবং এক্সবক্স নিয়ামকগুলিতে পাওয়া যায়। একজনকে উদ্ধার করার জন্য আপনাকে এই নিয়ন্ত্রণকারীদের ভাঙার দরকার নেই। এই মডিউলগুলি স্থানীয় ইলেকট্রনিক শপ এবং ই-কমার্স সাইটে সহজেই উপলব্ধ available

এখন এই জয়স্টিকটির নির্মাণকাজটি দেখি।

এটিতে দুটি 10 ​​কিলো ওহম রয়েছে সম্ভাবনাময় এক্স এবং ওয়াই অক্ষগুলিতে স্প্রিংস সহ এমনভাবে অবস্থিত যাতে ব্যবহারকারী যখন লিভার থেকে বাহিনীকে ছেড়ে দেয় তখন এটি তার আসল অবস্থানে ফিরে আসে। এটি জেড অক্ষের ওপেন বোতামে রয়েছে।

এটিতে 5 পিন, 5 ভোল্ট ভিসি, জিএনডি, ভেরিয়েবল এক্স, ভেরিয়েবল ওয়াই এবং এসডাব্লু (জেড অক্ষ অক্ষর স্যুইচ) রয়েছে। যখন আমরা ভোল্টেজ প্রয়োগ করি এবং জয়স্টিকটি তার মূল লিভারের অবস্থানে ছেড়ে যাই। এক্স এবং ওয়াই পিন প্রয়োগ করা ভোল্টেজের অর্ধেক উত্পাদন করবে।

যখন আমরা লিভারটি সরিয়ে ফেলি তখন ভোল্টেজ এক্স এবং ওয়াই আউটপুট পিনে পরিবর্তিত হয়। এবার আসুন কার্যত জোড়স্টিককে আরডিনোতে ইন্টারফেস করি।

পরিকল্পিত ডায়াগ্রাম:

জয়স্টিক ব্যবহার করে আরডুইনো সার্ভো মোটর কন্ট্রোল

পিন সংযোগের বিশদটি সার্কিটের পাশে দেওয়া আছে। সম্পন্ন হার্ডওয়্যার সেটআপটি সংযুক্ত করুন এবং কোডটি আপলোড করুন।

কার্যক্রম:

//---------------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--------------//

সিরিয়াল মনিটরটি খুলুন আপনি ভোল্টেজ স্তরটি এক্স এবং ওয়াই অক্ষ পিনগুলিতে এবং জেড অক্ষের স্থিতি অর্থাৎ নীচের চিত্রের মতো ধাক্কা বোতামটি দেখতে পাবেন।

এই এক্স, ওয়াই, জেড অক্ষের মানগুলি লিভারের অবস্থানটি ব্যাখ্যা করতে ব্যবহৃত হয়। আপনি দেখতে পাচ্ছেন যে মানগুলি 0 থেকে 1023 পর্যন্ত।

এর কারণ, আরডুইনো এডিসি রূপান্তরকারী তৈরি করেছে যা ভোল্টেজ 0 ভি - 5 ভি থেকে 0 থেকে 1023 মানকে রূপান্তর করে।

আপনি সিরিয়াল মনিটরের কাছ থেকে সাক্ষ্য দিতে পারবেন যে লিভারটি যখন আউটচুড হয় তখন লিভারটি এক্স এবং ওয়াই উভয় অক্ষের মাঝখানে থাকে এবং 1023 এর অর্ধেক মান দেখায়।

আপনি দেখতে পাচ্ছেন যে এটি 1023 এর ঠিক অর্ধেক নয় কারণ এই জয়স্টিকগুলি উত্পাদন কখনই নিখুঁত ছিল না।

এতক্ষণে, আপনি জয়স্টিকস সম্পর্কে কিছু প্রযুক্তিগত জ্ঞান পেয়েছেন।

এবার আসুন দেখি কীভাবে একটি জয়স্টিক ব্যবহার করে দুটি সার্ভো মোটর নিয়ন্ত্রণ করতে হয়।

বর্তনী চিত্র:

লিভার পজিশনের উপর নির্ভর করে আপনি পিন # 7 এ সংযুক্ত সারো ক্লকওয়াইজ এবং অ্যান্টি-ক্লক ওয়াইজ এক্স এক্স অক্ষ বরাবর জোয়স্টিকটি সরালে দুটি সার্ভো মোটর একটি জয়স্টিক দ্বারা নিয়ন্ত্রিত হয়।

আপনি যদি কোনও নির্দিষ্ট অবস্থানে জোস্টস্টিক স্তরটি ধরে রাখেন তবে আপনি কোনও পদে সার্ভো অ্যাকুয়েটরও ধরে রাখতে পারেন।

পিন # 6 এ সংযুক্ত সার্ভো মোটরের জন্য অনুরূপ, আপনি Y অক্ষের সাথে লিভারটি স্থানান্তর করতে পারেন।

আপনি যখন Z অক্ষ বরাবর লিভারটি টিপেন, দুটি মোটর 180 ডিগ্রি সুইপ সম্পাদন করবে।

আপনি হয় এর সাথে আরডুইনোকে সংযুক্ত করতে পারেন 9 ভি ব্যাটারি বা কম্পিউটারে। আপনি যদি আরডুইনোকে কম্পিউটারের সাথে সংযুক্ত করেন তবে আপনি সিরিয়াল মনিটরটি খুলতে পারেন এবং সার্ডো অ্যাকিউটিউটর এবং ভোল্টেজের স্তরের কোণটি দেখতে পারেন।

সার্ভো মোটর নিয়ন্ত্রণের জন্য প্রোগ্রাম:

//---------------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--------------//

এই প্রকল্পের বিষয়ে আপনার যদি কোনও নির্দিষ্ট প্রশ্ন থাকে তবে মন্তব্য বিভাগে নির্দ্বিধায় যোগাযোগ করুন, আপনি একটি দ্রুত উত্তর পেতে পারেন।




পূর্ববর্তী: আরডুইনো ব্যবহার করে ডিজিটাল ক্যাপাসিট্যান্স মিটার সার্কিট পরবর্তী: আরডুইনো সহ ডিজিটাল পোটেন্টিওমিটার এমসিপি 41XX ব্যবহার করে