কীভাবে একটি ডিআইওয়াই আরডুইনো এবং ব্লুটুথ নিয়ন্ত্রিত রোবোটিক আর্ম তৈরি করবেন?

সাম্প্রতিক শতাব্দীতে, রোবোটিক্স গবেষণার সবচেয়ে উদীয়মান ক্ষেত্র। রোবটগুলি মানুষ করত প্রায় সমস্ত কিছুর নিয়ন্ত্রণ নিয়েছে। আমরা আমাদের সমাজে স্বায়ত্তশাসিত রোবটগুলি বিভিন্ন কাজ সম্পাদন করতে দেখতে পাচ্ছি। কিছু রিমোট নিয়ন্ত্রিত রোবটও রয়েছে যা আমাদের বিভিন্ন ক্রিয়াকলাপ চালিয়ে যেতে সহায়তা করে। ইঞ্জিনিয়ারিংয়ের ক্ষেত্রে ন্যানো সার্কিট তৈরি করা থেকে শুরু করে চিকিত্সা ক্ষেত্রে জটিল সার্জারি করা পর্যন্ত রোবট মানুষের চেয়ে বেশি নির্ভরযোগ্য reliable



রোবোটিক আর্ম

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



আরডুইনো ব্যবহার করে একটি রোবোটিক আর্ম কীভাবে নিয়ন্ত্রণ করতে পারি?

এখন আমরা যেমন জানি আমাদের প্রকল্পের বিমূর্ততা। আসুন আমরা সার্কিটরি সম্পর্কে আরও কিছু তথ্য সংগ্রহ করি এবং একটি ব্লুটুথ নিয়ন্ত্রিত রোবোটিক বাহু তৈরি শুরু করি এবং এটি ব্লুটুথের মাধ্যমে নিয়ন্ত্রণ করি।



পদক্ষেপ 1: উপাদান সংগ্রহ

যে কোনও প্রকল্প শুরুর সর্বোত্তম পন্থা হল উপাদানগুলির একটি সম্পূর্ণ তালিকা তৈরি করা। এটি কেবল কোনও প্রকল্প শুরু করার জন্য বুদ্ধিমান উপায় নয় এটি প্রকল্পের মাঝামাঝি অনেক অসুবিধা থেকে আমাদের বাঁচায়। এই প্রকল্পের উপাদানগুলির একটি তালিকা নীচে দেওয়া হয়েছে:



  • HC-05 ওয়্যারলেস ব্লুটুথ সিরিয়াল ট্রান্সসিভার
  • 6 ভি অ্যাডাপ্টার
  • জাম্পারের তারগুলি
  • ব্রেডবোর্ড

পদক্ষেপ 2: উপাদান অধ্যয়ন

আমরা যে সমস্ত উপাদানগুলি ব্যবহার করতে যাচ্ছি তার একটি সম্পূর্ণ তালিকা রয়েছে, আসুন আমরা একধাপ এগিয়ে চলেছি এবং সমস্ত উপাদানগুলির একটি সংক্ষিপ্ত অধ্যয়ন শুরু করি।

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

আরডুইনো ন্যানো



HC-05 ওয়্যারলেস ব্লুটুথ সিরিয়াল ট্রান্সসিভার : এই প্রকল্পে আমাদের ওয়্যারলেস যোগাযোগের প্রয়োজন, তাই আমরা ব্লুটুথ প্রযুক্তি ব্যবহার করব এবং সেই মডিউলের জন্য ব্যবহার করা হবে এইচসি -05। এই মডিউলে বেশ কয়েকটি প্রোগ্রামযোগ্য বাউড রেট রয়েছে তবে ডিফল্ট বাড রেট 9600 বিপিএস। এটি মাস্টার বা ক্রীতদাস হিসাবে কনফিগার করা যেতে পারে, অন্য একটি মডিউল এইচসি -06 কেবল দাস মোডে কাজ করতে পারে। এই মডিউলটিতে চারটি পিন রয়েছে। ভিসিসির জন্য একটি (5 ভি) এবং বাকি তিনটি জিএনডি, টিএক্স, এবং আরএক্সের জন্য। এই মডিউলটির ডিফল্ট পাসওয়ার্ড 1234 বা 0000 । আমরা যদি দুটি মাইক্রোকন্ট্রোলারের মধ্যে যোগাযোগ করতে চাই বা কোনও ফোন বা ল্যাপটপ এইচসি -05 এর মতো ব্লুটুথ কার্যকারিতা সহ কোনও ডিভাইসের সাথে যোগাযোগ করতে চাই তবে তা করতে আমাদের সহায়তা করে। ইতিমধ্যে বেশ কয়েকটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন উপলব্ধ রয়েছে যা এই প্রক্রিয়াটিকে অনেক সহজ করে তোলে।

HC-05 ব্লুটুথ মডিউল

একটি সাধারণ রোবোটিক আর্ম বেশ কয়েকটি বিভাগ নিয়ে গঠিত এবং এটিতে সাধারণত 6 টি জয়েন্ট থাকে। এটিতে সর্বনিম্ন 4 টি স্টেপার মোটর রয়েছে যা কম্পিউটার দ্বারা নিয়ন্ত্রিত হয়। স্টিপার মোটর অন্যান্য ডিসি মোটর থেকে পৃথক। তারা যথাযথভাবে ইনক্রিমেন্টে স্থানান্তরিত করে। এই রোবোটিক অস্ত্রগুলি বিভিন্ন অপারেশন চালাতে ব্যবহৃত হয়। আমরা এগুলি একটি রিমোট কন্ট্রোলের মাধ্যমে ম্যানুয়ালি পরিচালনা করতে পারি বা তাদের স্বায়ত্তশাসিতভাবে কাজ করার জন্য প্রোগ্রাম করতে পারি।

রোবোটিক আর্ম

পদক্ষেপ 3: উপাদানগুলি একত্র করা

এখন যেমন আমরা ব্যবহৃত সমস্ত প্রধান উপাদানগুলির কাজ সম্পর্কে জানি। আসুন তাদের একত্রিত করা শুরু করি এবং রিমোট-নিয়ন্ত্রিত রোবোটিক আর্ম তৈরির জন্য একটি সার্কিট তৈরি করি।

  1. .আরডিনো ন্যানো বোর্ডটি ব্রেডবোর্ডে লাগান। আরডিনো অ্যাডাপ্টারের ইতিবাচক এবং নেতিবাচক তারের মাধ্যমে চালিত হবে।
  2. ব্লুটুথ মডিউলটিও ব্রেডবোর্ডে রাখুন। আরডুইনোর মাধ্যমে ব্লুটুথ মডিউলটি আপ করুন। আরডুইনো ন্যান বোর্ডের আরএক্স পিনের সাথে ব্লুটুথ মডিউলের টিএক্স পিনটি সংযুক্ত করুন এবং ব্লুটুথ মডিউলের আরএক্স পিনকে আরডুইনো ন্যানো বোর্ডের টিএক্স পিনের সাথে সংযুক্ত করুন।
  3. যেমনটি আমরা জানি যে এখানে 4 টি স্টিপার মোটর রয়েছে। প্রত্যেকের একটি প্রযুক্তিগত নাম রয়েছে। তাদের বলা হয় কনুই , কাঁধ , বেস, এবং গ্রিপার । সমস্ত মোটরের ভিসি এবং গ্রাউন্ড সাধারণ হবে এবং 6 ভি অ্যাডাপ্টারের ইতিবাচক এবং নেতিবাচক সাথে সংযুক্ত থাকবে। চারটি মোটরের সিগন্যাল পিনটি আরডুইনো ন্যানোর পিন 5, পিন 6, পিন 9 এবং পিন 11 এর সাথে সংযুক্ত হবে।
  4. নিশ্চিত হয়ে নিন যে আপনি যে সংযোগগুলি করেছেন সেগুলি নিম্নলিখিত সার্কিট ডায়াগ্রাম অনুযায়ী হয়েছে।

    বর্তনী চিত্র

পদক্ষেপ 4: আরডুইনো দিয়ে শুরু করা

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

  1. আরডুইনো IDE এর সর্বশেষতম সংস্করণটি ডাউনলোড করুন আরডুইনো।
  2. আপনার আরডুইনো ন্যানো বোর্ডটিকে আপনার ল্যাপটপে সংযুক্ত করুন এবং কন্ট্রোল প্যানেলটি খুলুন। তারপরে, ক্লিক করুন হার্ডওয়্যার এবং শব্দ । এখন, ক্লিক করুন যন্ত্র ও প্রিন্টার. এখানে, আপনার মাইক্রোকন্ট্রোলার বোর্ডটি সংযুক্ত আছে এমন পোর্টটি সন্ধান করুন। আমার ক্ষেত্রে এটি হয় COM14 তবে এটি বিভিন্ন কম্পিউটারে ভিন্ন।

    বন্দর সন্ধান করা

  3. সরঞ্জাম মেনুতে ক্লিক করুন এবং বোর্ড সেট করুন আরডুইনো ন্যানো ড্রপ-ডাউন মেনু থেকে।

    বোর্ড নির্ধারণ

  4. একই সরঞ্জাম মেনুতে, পোর্ট নম্বরে পোর্টটি সেট করুন যা আপনি আগে দেখেছিলেন যন্ত্র ও প্রিন্টার

    পোর্ট স্থাপন করা

  5. একই সরঞ্জাম মেনুতে, প্রসেসরটি এতে সেট করুন এটিমেগ 328 পি (ওল্ড বুটলোডার)।

    প্রসেসর

  6. সার্ভো মোটর পরিচালনা করতে কোড লিখতে, আমাদের বিশেষ গ্রন্থাগার প্রয়োজন যা servo মোটরগুলির জন্য বেশ কয়েকটি ফাংশন লিখতে আমাদের সহায়তা করবে। এই গ্রন্থাগারটি নীচের লিঙ্কে কোড সহ সংযুক্ত করা হয়েছে। লাইব্রেরি অন্তর্ভুক্ত করতে, ক্লিক করুন স্কেচ> লাইব্রেরি অন্তর্ভুক্ত করুন> জিপ যুক্ত করুন। গ্রন্থাগার।

    গ্রন্থাগার অন্তর্ভুক্ত করুন

  7. নীচে সংযুক্ত কোডটি ডাউনলোড করুন এবং এটি আপনার আরডুইনো আইডিইতে পেস্ট করুন। ক্লিক করুন আপলোড আপনার মাইক্রোকন্ট্রোলার বোর্ডে কোড বার্ন করতে বোতাম।

    আপলোড করুন

কোডটি ডাউনলোড করতে, এখানে ক্লিক করুন.

পদক্ষেপ 5: অ্যাপ্লিকেশন ডাউনলোড করা

যেহেতু আমরা এখন পুরো সার্কিটরি একত্রিত করেছি এবং মাইক্রোকন্ট্রোলার বোর্ডে কোডটি আপলোড করেছি। এমন একটি মোবাইল অ্যাপ্লিকেশন ডাউনলোড করতে দিন যা রোবোটিক আর্মের রিমোট কন্ট্রোল হিসাবে কাজ করবে। গুগল প্লে স্টোরে একটি ফ্রি অ্যাপ পাওয়া যায়। অ্যাপটির নাম লিটল আর্ম রোবট কন্ট্রোল । একটি ব্লুটুথ সংযোগ তৈরি করতে, আপনার মোবাইলের ব্লুটুথ চালু করুন। সেটিংসে যান এবং আপনার মোবাইলটিকে এইচসি -05 মডিউলটির সাথে জুড়ুন। এটি করার পরে অ্যাপটিতে ব্লুটুথ বোতাম টিপুন। যদি এটি সবুজ হয়ে যায়, এর অর্থ হ'ল অ্যাপটি এখন সংযুক্ত এবং রোবোটিক বাহুটি পরিচালনা করতে প্রস্তুত। পছন্দসইভাবে রোবোটিক আর্মটি পরিচালনা করতে স্লাইডার রয়েছে।

অ্যাপ

পদক্ষেপ।: কোড বোঝা

কোডটি ভাল মন্তব্য করা এবং বুঝতে সহজ understand তবে এখনও, এটি নীচে সংক্ষেপে ব্যাখ্যা করা হয়েছে is

1. শুরুতে, একটি লাইব্রেরি সার্ভো মোটর পরিচালনা করতে একটি কোড লিখতে অন্তর্ভুক্ত করা হয়। আর একটি গ্রন্থাগার গণিত কোডটিতে বিভিন্ন গাণিতিক ক্রিয়াকলাপ সম্পাদনের জন্য অন্তর্ভুক্ত। চারটি সার্ভো মোটরের জন্য চারটি অবজেক্ট ব্যবহার করা শুরু করাও হয়েছিল।

# অন্তর্ভুক্ত // আরডুইনো লাইব্রেরি # অন্তর্ভুক্ত // স্ট্যান্ডার্ড সি লাইব্রেরি # ডিফাইন পিআই 3.141 সার্ভো বেস সার্ভো; সার্ভো কাঁধের সার্ভো; সার্ভো কনুইসারভো; সার্ভো গ্রিপারসারভো; int কমান্ড;

2. তারপরে একটি কাঠামোটি বেস, কাঁধ এবং কনুই সারো মোটরগুলির মান গ্রহণ করার জন্য ঘোষণা করা হয়।

joint joint joint joint joint joint joint joint joint joint joint joint joint joint joint{{{{ a a{ {{ a a a a a a a; a ;{ a a a a a; ;{; a a a;;;;;;;;;;;;;;; int কাঁধে; int কনুই; };

৩. এর পরে, কয়েকটি ভেরিয়েবলগুলি পছন্দসই গ্রিপ, বিলম্ব এবং সার্ভো মোটরের অবস্থান সংরক্ষণের জন্য আরম্ভ করা হয়। গতি 15 হতে সেট করা হয়েছে এবং কাঠামোর কোণটির মান নিতে একটি বস্তু তৈরি করা হয়।

int wishGrip; int gripperPos; int wishDelay; int servoSpeed ​​= 15; int প্রস্তুত = 0; কাঠামো যৌথআঙ্গলে কাঙ্ক্ষিতআঙ্গেল; সার্ভোসের // পছন্দসই কোণগুলি

চার। অকার্যকর সেটআপ() একটি ফাংশন যা আরডুইনোর পিনগুলি INPUT বা OUTPUT হিসাবে সেট করতে ব্যবহৃত হয়। এখানে এই ফাংশনে, আমরা ঘোষণা করেছি যে মোটরসগুলির পিনটি আরডুইনোর কোন পিনগুলির সাথে সংযুক্ত হবে। এটিও নিশ্চিত করা হয়েছে যে আরডুইনো খুব দীর্ঘ সময়ের জন্য সিরিয়াল ইনপুট না পড়ে। প্রাথমিক অবস্থান এবং বাড রেটও এই ফাংশনে সেট করা আছে। বাউড রেট হ'ল গতি যার মাধ্যমে মাইক্রোকন্ট্রোলার বোর্ড সংযুক্ত সার্ভো এবং ব্লুটুথ মডিউলের সাথে যোগাযোগ করবে।

অকার্যকর সেটআপ () {সিরিয়াল.বেগিন (9600); বেসসার্ভ.আটাচ (9); // সার্ভো অবজেক্টের কাঁধে সার্ভো.আত্তাচ (10) এ পিন 9-এ বেস সার্ভো সংযুক্ত করে; // সার্ভো অবজেক্ট কনুইসারভো.ট্যাচ (11) এ 9 টি পিনের কাঁধে सर्वोটি সংযুক্ত করে; // সার্ভো অবজেক্ট গ্রিপার সার্ভো.ট্যাচ (pin) তে পিন 9 এ কনুই सर्वोটি সংযুক্ত করে; // সার্ভো অবজেক্ট সিরিয়াল.সেটটাইমআউট (50) এ পিন 9-তে গ্রিপার সার্ভো সংযুক্ত করে; // নিশ্চিত করে যে আর্দুইনো খুব দীর্ঘ সিরিয়ালের জন্য সিরিয়ালটি না পড়ে pr প্রিন্টলন ('শুরু'); বেসসার্ভ.ওরাইট (90); // সার্ভোস কাঁধের সার্ভ.ওরাইটের অন্তর্নিহিত অবস্থান (150); এলবোসার্ভ.ওরাইট (১১০); প্রস্তুত = 0; }

৫। সার্ভো প্যারালালকন্ট্রোল () এটি এমন একটি ফাংশন যা রোবোটিক আর্মের বর্তমান অবস্থান সনাক্ত করতে এবং মোবাইল অ্যাপের মাধ্যমে প্রদত্ত আদেশ অনুযায়ী এটি স্থানান্তর করতে ব্যবহৃত হয়। যদি বর্তমান অবস্থানটি বাস্তবের চেয়ে কম হয় তবে বাহুটি উপরে চলে যাবে এবং তদ্বিপরীত হবে। এই ফাংশনটি বর্তমান অবস্থানের মান এবং সারোটির গতি ফিরিয়ে দেবে।

int servoParallelControl (int thePos, সার্ভো দ্য সার্ভো, int দ্য স্পিড) {int startPos = theServo.read (); // পড়ুন বর্তমানের পোস্ট ইন নিউপোস = স্টার্টপোস; // int theSpeed ​​= গতি; // পোস্টটি কমান্ডের সাথে শ্রদ্ধার সাথে কোথায় রয়েছে তা নির্ধারণ করুন // যদি বর্তমান অবস্থানটি কম থাকে তবে আসল পদক্ষেপ যদি (স্টার্টপোস (দ্য পোস্টস + 5)) {নতুনপোস = নতুনপোস - 1; theServo.write (newPos); বিলম্ব (দ্য স্পিড); প্রত্যাবর্তন 0; } অন্য {ফেরত 1; }}

।। অকার্যকর লুপ () একটি ফাংশন যা একটি লুপে বারবার চলমান। এই ফাংশনটি সিরিয়ালভাবে আসা ডেটাগুলি পড়ে এবং কাঠামোতে প্রতিটি servo এর কোণ সংরক্ষণ করে। প্রাথমিকভাবে, সমস্ত সার্ভোর স্থিতি শূন্যে সেট করা আছে। এখানে একটি ফাংশন সার্ভো প্যারালালকন্ট্রোল () বলা হয় এবং এতে প্যারামিটারগুলি পাস করা হয়। এই ফাংশনটি মানটি ফিরিয়ে দেবে এবং এটি স্থিতির পরিবর্তনশীলে সংরক্ষণ করা হবে।

অকার্যকর লুপ () {যদি (সিরিয়াল। উপলভ্য ()) {প্রস্তুত = 1; কাঙ্ক্ষিতআংল.বেস = সিরিয়াল.পার্সইন্ট (); কাঙ্ক্ষিতআংল.শোল্ডার = সিরিয়াল.পার্সইন্ট (); কাঙ্ক্ষিতআঙ্গলে.েলবো = সিরিয়াল.পার্সইন্ট (); কাঙ্ক্ষিতগ্রিপ = সিরিয়াল.পার্সইন্ট (); কাঙ্ক্ষিতডলে = সিরিয়াল.পার্সইন্ট (); if (সিরিয়াল.আড () == ' n') {// যদি শেষ বাইটটি 'ডি' হয় তবে পড়া বন্ধ করুন এবং কমান্ড 'ডি' এক্সিকিউট করুন 'সম্পন্ন' সিরিয়াল.ফ্লুশ (); // বাফারে থাকা সমস্ত অন্যান্য কমান্ড সাফ করুন // কমান্ডটি সিরিয়াল.প্রিন্ট ('ডি') এর সমাপ্তি প্রেরণ করুন; status} int স্থিতি 1 = 0; int status2 = 0; int status3 = 0; int status4 = 0; int done = 0; যখন (সম্পন্ন == 0 && == 1) {// সার্ভোকে কাঙ্ক্ষিত অবস্থানের স্থিতিতে স্থানান্তর করুন 11 সার্ভোপ্যারালালকন্ট্রোল (কাঙ্ক্ষিতআঙ্গেল.বেজ, বেসসারো, কাঙ্ক্ষিতডিলে); স্ট্যাটাস 2 = সার্ভো প্যারালালস কন্ট্রোল (কাঙ্ক্ষিত অ্যাংগল.শোল্ডার, কাঁধের সার্ভো, কাঙ্ক্ষিত ডেলি); স্ট্যাটাস 3 = সার্ভো প্যারেনালাল কন্ট্রোল (কাঙ্ক্ষিতএঙ্গেল.েলবো, কনুইসারভো, কাঙ্ক্ষিত ডেলি); স্ট্যাটাস 4 = সার্ভো প্যারালালকন্ট্রোল (কাঙ্ক্ষিত গ্রিপ, গ্রিপসার সার্ভো, কাঙ্ক্ষিতডিলে); যদি (স্থিতি 1 == 1 & স্থিতি 2 == 1 ও স্থিতি = = 1 1 এবং স্থিতি 4 == 1) {সম্পন্ন = 1}} // শেষের শেষে}

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