কিভাবে Arduino দিয়ে সার্ভো মোটর নিয়ন্ত্রণ করবেন

Kibhabe Arduino Diye Sarbho Motara Niyantrana Karabena



সার্ভো মোটরস এক ধরনের বৈদ্যুতিক যন্ত্র যা অত্যন্ত নির্ভুলতার সাথে বস্তুর অবস্থান পরিবর্তন বা ঘোরাতে পারে। শুরুতে তারা আরসি প্লেন উইংস নিয়ন্ত্রণ করতে ব্যবহার করা হয়েছিল কিছুক্ষণ পরে তারা রোবোটিক্স, হিউম্যানয়েড রোবট এবং অনেক অটোমেশন প্রকল্পে তাদের পথ তৈরি করে। স্টেপার মোটরগুলির বিপরীতে তাদের গতি 0o থেকে 180o এর মধ্যে সীমাবদ্ধ।

সাধারণত, সার্ভো মোটরগুলিতে অস্ত্র থাকে যা Arduino ব্যবহার করে নিয়ন্ত্রণ করা যায়। সার্ভো মোটর একটি নিয়ন্ত্রণ ব্যবস্থা নিয়ে গঠিত যা প্রদান করে প্রতিক্রিয়া মোটর শ্যাফ্টের বর্তমান অবস্থান সম্পর্কে এই প্রতিক্রিয়াটি দুর্দান্ত নির্ভুলতায় যেতে দেয়।

সার্ভো মোটর পিনআউট

সাধারণত, বেশিরভাগ সার্ভো মোটরের তিনটি পিন থাকে:







  • Vcc পিন (সাধারণত লাল 5V)
  • GND পিন (সাধারণত কালো 0V)
  • ইনপুট সিগন্যাল পিন (Arduino থেকে PWM সিগন্যাল পান)



সার্ভো মোটর এর কাজ

আমরা Vcc পিনকে 5V এবং GND পিনকে 0V-তে সংযুক্ত করে সার্ভো মোটর নিয়ন্ত্রণ করতে পারি। হলুদ রঙের টার্মিনালে, আমরা একটি প্রদান করি PWM সংকেত যা সার্ভো মোটরের ঘূর্ণায়মান কোণ নিয়ন্ত্রণ করে। PWM সিগন্যালের প্রস্থ আমাদেরকে সেই কোণ দেয় যেখানে মোটরটি তার বাহু ঘুরবে।



আমরা যদি সার্ভো মোটরগুলির ডেটাশিটটি দেখি, আমরা নিম্নলিখিত পরামিতিগুলি পাই:





  • PWM সংকেত সময়কাল
  • PWM এর জন্য ন্যূনতম প্রস্থ
  • PWM এর জন্য সর্বাধিক প্রস্থ

এই সমস্ত পরামিতি Arduino Servo লাইব্রেরিতে পূর্বনির্ধারিত।

আরডুইনো সহ সার্ভো মোটরস

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



উপরে উল্লিখিত তিনটি পরামিতি সার্ভো লাইব্রেরিতে স্থির করা আছে। এই পরামিতিগুলি ব্যবহার করে, আমরা নিম্নলিখিত উপায়ে সার্ভো মোটরের কোণ নিয়ন্ত্রণ করতে পারি:

  • যদি PWM সংকেত প্রস্থ = WIDTH_MAX, সার্ভো 180o ঘোরে
  • যদি PWM সংকেত প্রস্থ = WIDTH_MIIN, servo 0o এ ঘুরবে
  • যদি PWM সিগন্যালের প্রস্থ এর মধ্যে থাকে WIDTH_MAX এবং WIDTH_MIN , servo মোটর 0o এবং 180o এর মধ্যে ঘুরবে

আমরা কিছু Arduino পিনে একটি কাঙ্ক্ষিত PWM সংকেত তৈরি করতে পারি। সার্ভো মোটরের ইনপুট সিগন্যাল পিনে PWM সিগন্যাল দেওয়া হবে। আরডুইনোর 5v এবং GND এর সাথে সার্ভোর অবশিষ্ট দুটি পিন সংযুক্ত করা হচ্ছে।

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

এখানে আমি ব্যাখ্যা করব কিভাবে আমরা Arduino ব্যবহার করে আমাদের সার্ভো মোটর সংযোগ এবং প্রোগ্রাম করতে পারি। তোমার যা দরকার তা হল:

  • আরডুইনো ইউএনও
  • ইউএসবি বি কেবল
  • সার্ভো মোটর
  • জাম্পার তারের

কিভাবে Arduino দিয়ে সার্ভো প্রোগ্রাম করবেন

নিম্নলিখিত কিছু সহজ পদক্ষেপ:

ধাপ 1: পূর্বনির্ধারিত সার্ভো লাইব্রেরি অন্তর্ভুক্ত করুন:

# অন্তর্ভুক্ত < Servo.h >

ধাপ ২: সার্ভো অবজেক্ট তৈরি করুন:

সার্ভো মাইসার্ভো;

টিপ: আপনি যদি একাধিক সার্ভো মোটর নিয়ন্ত্রণ করেন, তাহলে আপনাকে আরও সার্ভো বস্তু তৈরি করতে হবে:

সার্ভো myservo1;
সার্ভো myservo2;

ধাপ 3: Arduino Uno-এ কন্ট্রোল পিন (9) সেট করুন যা সার্ভোর ইনপুট সিগন্যাল পোর্টে PWM সিগন্যাল পাঠায়:

myservo.attach ( 9 ) ;

ধাপ 4: সার্ভো মোটর কোণকে পছন্দসই মানতে ঘোরান উদাহরণস্বরূপ 90o:

myservo.write ( অবস্থান ) ;

আরডুইনো কোড

থেকে সার্ভো মোটর উদাহরণ প্রোগ্রাম খুলুন ফাইল>উদাহরণ>সার্ভো>সুইপ , একটি নতুন উইন্ডো খুলবে আমাদের সার্ভো স্কেচ দেখাবে:

#অন্তর্ভুক্ত করুন

সার্ভো মাইসার্ভো; // servo অবজেক্ট তৈরি হয় জন্য সার্ভো মোটর নিয়ন্ত্রণ
int pos = 0 ; // servo পজিশন সংরক্ষণ করতে একটি নতুন ভেরিয়েবল তৈরি করা হয়
অকার্যকর সেটআপ ( ) {
myservo.attach ( 9 ) ; // এটা হবে সেট আরডুইনো পিন 9 জন্য PWM আউটপুট
}
অকার্যকর লুপ ( ) {
জন্য ( pos = 0 ; pos = 0 ; pos -= 1 ) { // থেকে যায় 180 প্রতি 0 ডিগ্রী
myservo.write ( অবস্থান ) ; // সার্ভোকে 'pos' অবস্থানে যেতে বলুন
বিলম্ব ( 5 ) ; // অপেক্ষা করে জন্য 5 ms যাতে servo অবস্থানে পৌঁছাতে পারে
}
}

একবার প্রোগ্রামটি কম্পাইল এবং আপলোড হয়ে গেলে, সার্ভো মোটরটি ধীরে ধীরে ঘোরানো শুরু করবে 0 ডিগ্রী থেকে 180 ডিগ্রী পর্যন্ত, ধাপের মতই এক সময়ে এক ডিগ্রী। মোটর যখন 180-ডিগ্রী ঘূর্ণন সম্পন্ন করে, তখন এটি তার সূচনা বিন্দু অর্থাৎ 0 ডিগ্রির দিকে বিপরীত দিকে তার ঘূর্ণন শুরু করবে।

স্কিম্যাটিক্স

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

আমরা হাত দ্বারা সার্ভো মোটর অবস্থান নিয়ন্ত্রণ করতে পারি। এটি করার জন্য আমাদের একটি প্রয়োজন পটেনশিওমিটার . পটেনশিওমিটারে তিনটি পিন রয়েছে। দুটি বাইরের পিনকে Arduino-এর 5V Vcc এবং GND এর সাথে সংযুক্ত করুন এবং Arduino বোর্ডের মাঝের একটি A0 পিনের সাথে সংযুক্ত করুন।

কিভাবে পোটেনটিওমিটার দিয়ে সার্ভো প্রোগ্রাম করবেন

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

int potpin = A0;
int val;

লুপ বিভাগে অ্যানালগ পিন A0 ফাংশন সহ পটেনটিওমিটারের মান পড়তে ব্যবহৃত হয় analogRead() . আরডুইনো বোর্ডে 10-বিট ADC (ডিজিটাল কনভার্টার থেকে অ্যানালগ) থাকে যা আমাদের 0 থেকে 1023 এর মধ্যে মান দেয় পটেনশিওমিটারের অবস্থানের উপর নির্ভর করে:

val = analogRead ( সাবপিন ) ;

সবশেষে, আমরা ব্যবহার করেছি মানচিত্র() Servo এর কোণ অনুসারে 0 থেকে 1023 পর্যন্ত সংখ্যাগুলিকে পুনরায় ম্যাপ করার ফাংশন যেমন আমরা জানি সার্ভো মোটরগুলি শুধুমাত্র 00 এবং 1800 এর মধ্যে ঘোরাতে পারে।

val = মানচিত্র ( ভাল 0 , 1023 , 0 , 180 ) ;

আরডুইনো কোড

Arduino IDE-তে উপলব্ধ ওপেন নব স্কেচ, যান ফাইল>উদাহরণ>সার্ভো>নব . একটি নতুন উইন্ডো খুলবে যা আমাদের সার্ভোর জন্য আমাদের নব স্কেচ দেখায়:

# অন্তর্ভুক্ত করুন
সার্ভো মাইসার্ভো; // একটি servo বস্তুর নাম myservo তৈরি করা
int potpin = A0; // অ্যানালগ পিন সংজ্ঞায়িত করা জন্য potentiometer
int val; // পরিবর্তনশীল যা ইচ্ছাশক্তি পড়া এনালগ পিনের মান জন্য potentiometer

অকার্যকর সেটআপ ( ) {
myservo.attach ( 9 ) ; // সংজ্ঞায়িত পিন 9 জন্য আরডুইনোতে সার্ভোর PWM ইনপুট সংকেত
}
অকার্যকর লুপ ( ) {
val = analogRead ( সাবপিন ) ; // potentiometer থেকে মান পড়ে ( মধ্যে মান 0 এবং 1023 )
val = মানচিত্র ( ভাল 0 , 1023 , 0 , 180 ) ; // servo-এর সাথে ব্যবহার করার মান স্কেল করুন ( মধ্যে মান 0 এবং 180 )
myservo.write ( ভাল ) ; // স্কেল করা মান সহ সার্ভো অবস্থান সেট করে
বিলম্ব ( পনের ) ; // অপেক্ষা করে জন্য সার্ভো অবস্থান পেতে
}

উপরের কোডটি আমাদের পোটেনটিওমিটার ব্যবহার করে সার্ভো মোটর শ্যাফ্ট নিয়ন্ত্রণ করতে সাহায্য করবে, শ্যাফ্টটি 0 থেকে 180 ডিগ্রির মধ্যে ঘোরবে। আমরা এটি ব্যবহার করে সার্ভোর দিক সহ গতি বজায় রাখতে পারি।

বর্তনী চিত্র

আরডুইনোর সাথে আমি কতগুলি সার্ভো মোটর সংযোগ করতে পারি?

সার্ভোর জন্য Arduino লাইব্রেরি সহ সর্বোচ্চ সংখ্যক সার্ভো মোটর Arduino UNO পরিচালনা করতে পারে 12 পর্যন্ত, এবং সর্বাধিক 48 servos মেগা মত বোর্ডের সাথে সংযুক্ত করা যেতে পারে.

পরামর্শ: আমরা আরডুইনো কারেন্ট ব্যবহার করে সরাসরি সার্ভো চালাতে পারি তবে মনে রাখবেন সার্ভো মোটর এর চেয়ে বেশি আঁকেন 500mA তাহলে আপনার Arduino বোর্ড স্বয়ংক্রিয়ভাবে রিসেট করতে পারে এবং শক্তি হারাতে পারে। সার্ভো মোটরগুলির জন্য সর্বদা একটি ডেডিকেটেড পাওয়ার সাপ্লাই ব্যবহার করার পরামর্শ দেওয়া হয়।

উপসংহার

এই টিউটোরিয়ালে, আমরা আরডুইনো দিয়ে সার্ভো মোটরগুলির নিয়ন্ত্রক প্রক্রিয়াটি কভার করেছি। আমরা potentiometer ব্যবহার করে সার্ভো অবস্থান এবং গতি নিয়ন্ত্রণের মৌলিক বিষয়গুলি কভার করেছি৷ এখন আপনি সার্ভো সম্পর্কে ধারণা পেয়েছেন এবং আপনার রোবোটিক্সের জন্য সম্ভাবনা, আরসি প্রকল্প এবং সার্ভো ব্যবহার করে অটোমেশন অফুরন্ত।