instructables-লোগো

নির্দেশনা VHDL মোটর গতি নিয়ন্ত্রণ সিদ্ধান্ত দিক এবং গতি বাম এবং ডান গতি নিয়ন্ত্রক

নির্দেশনা-ভিএইচডিএল-মোটর-গতি-নিয়ন্ত্রণ-নির্দেশ-নির্দেশ-এবং-গতি-বাম-ও-ডান-গতি-নিয়ন্ত্রক-প্রডাক্ট

দ্রষ্টব্য: এই পৃষ্ঠাটি একটি বড় বিল্ডের একটি অংশ। অনুগ্রহ করে নিশ্চিত করুন যে আপনি এখানে শুরু করেছেন, যাতে আপনি বুঝতে পারেন যে বৃহত্তর প্রকল্পের মধ্যে নিম্নলিখিতগুলি কোথায় ফিট করে৷

ওভারview

মোটর গতি এবং দিক নিয়ন্ত্রণ ফটোডিটেক্টর রোবটের দুটি প্রধান বিভাগের মধ্যে একটি, অন্যটি ফটোডিটেক্টর বা আলো আবিষ্কারক বিভাগ। ফটোডিটেক্টর ডিভিশন রোবটের দৃষ্টিকে ফোকাস করে, মোটর স্পিড এবং ডিরেকশন কন্ট্রোল ডিভিশন রোবটের গতিবিধির উপর ফোকাস করে। মোটর গতি এবং দিক নিয়ন্ত্রণ প্রক্রিয়া তথ্য ফটোডিটেক্টর বিভাগ থেকে প্রদত্ত এবং মোটর চলাচলের আকারে একটি শারীরিক আউটপুট দেয়।

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

এটি অর্জন করার জন্য, আপনাকে এই VHDL মডিউলগুলি তৈরি করতে হবে (নিচে লিঙ্ক করা হয়েছে):

  1. নিয়ন্ত্রণ
  2. ভুল হিসাব
  3. বাইনারি রূপান্তর
  4.  আলোর উৎসের অনুপস্থিতি

আপনি এখানে এই বিভাগের জন্য VHDL কোড দেখতে পারেন।

সরবরাহ
আমরা ISE ডিজাইন স্যুট 14.7 দিয়ে কোড করার পরামর্শ দিই কারণ এটি VHDL-এ কোড পরীক্ষা করতেও ব্যবহার করা যেতে পারে। যাইহোক, কোডটি BASYS 3-এ আপলোড করার জন্য, আপনাকে Vivado (ver. 2015.4 বা 2016.4) ইনস্টল করতে হবে এবং .xdc এক্সটেনশন দিয়ে সীমাবদ্ধতা লিখতে হবে।নির্দেশনা-ভিএইচডিএল-মোটর-গতি-নিয়ন্ত্রণ-নির্দেশ-নির্দেশ-এবং-গতি-বাম-ও-ডান-গতি-নিয়ন্ত্রক-চিত্র-1

ভিএইচডিএল মোটর গতি নিয়ন্ত্রণ: দিকনির্দেশ এবং গতি নির্ধারণ করুন, বাম এবং ডান গতি নিয়ন্ত্রক: পৃষ্ঠা 1

নির্দেশের ধাপ

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

ব্যবহৃত অ্যালগরিদমটি একটি RC রোবট কন্ট্রোলারের সাথে সাদৃশ্যপূর্ণ, একটি লিভার যা বাম বা ডানে বাঁকানো যায় এবং আরেকটি লিভার যা সামনে বা পিছনে ঘুরানো যায়।

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

তারপরে, আপনি চান রোবটটি যদি আলোর উৎস অনেক দূরে (ছোট আলোর উৎস) হয়, অথবা শনাক্ত করা আলোর উৎস খুব কাছাকাছি (বড় আলোর উৎস) হয় তাহলে পিছনের দিকে যেতে চান। আপনি আরও চান যে রোবটটি আলোর উত্স থেকে যত দূরে থাকে, রোবট তত দ্রুত চলে যায়। এটি একটি RC কন্ট্রোলারের ডান লিভারের সাথে সাদৃশ্যপূর্ণ, যেখানে আপনি নিয়ন্ত্রণ করতে পারেন আপনি এগিয়ে বা পিছনে যেতে চান কিনা এবং আপনি কত দ্রুত এটি সরাতে চান।

তারপরে আপনি প্রতিটি মোটরের গতির জন্য একটি গাণিতিক সূত্র বের করতে পারেন এবং আমরা -255 থেকে 255 এর মধ্যে গতির সীমা বেছে নিই। একটি নেতিবাচক মান মানে মোটরটি পিছনের দিকে ঘুরবে, যখন একটি ধনাত্মক মান মানে মোটরটি সামনের দিকে ঘুরবে৷

এটি এই রোবটের চলাচলের জন্য মৌলিক অ্যালগরিদম। এই মডিউল সম্পর্কে আরও জানতে, এখানে ক্লিক করুন.

ধাপ 2: ত্রুটি গণনা
যেহেতু আপনার কাছে ইতিমধ্যেই মোটরগুলির জন্য লক্ষ্য গতি এবং দিক রয়েছে, তাই আপনি মোটরগুলির পরিমাপিত গতি এবং দিক বিবেচনা করতে চান। যদি এটি গতির লক্ষ্যে পৌঁছে যায়, আমরা চাই মোটরটি কেবলমাত্র তার গতির উপর চলে। যদি এটি না থাকে তবে আমরা মোটরটিতে আরও গতি যোগ করতে চাই। নিয়ন্ত্রণ তত্ত্বে, এটি একটি বন্ধ-লুপ প্রতিক্রিয়া নিয়ন্ত্রণ ব্যবস্থা হিসাবে পরিচিত।

এই মডিউল সম্পর্কে আরও জানতে, এখানে ক্লিক করুন.নির্দেশনা-ভিএইচডিএল-মোটর-গতি-নিয়ন্ত্রণ-নির্দেশ-নির্দেশ-এবং-গতি-বাম-ও-ডান-গতি-নিয়ন্ত্রক-চিত্র-2

ধাপ 3: বাইনারি রূপান্তর
পূর্ববর্তী গণনা থেকে, আপনি ইতিমধ্যে প্রতিটি মোটরের জন্য প্রয়োজনীয় ক্রিয়া সম্পর্কে জানেন। যাইহোক, গণনাগুলি স্বাক্ষরিত বাইনারি ব্যবহার করে করা হয়। এই মডিউলটির উদ্দেশ্য হল এই স্বাক্ষরিত মানগুলিকে এমন একটি মানতে রূপান্তর করা যা PWM জেনারেটর দ্বারা পড়তে পারে, যেটি দিক (হয় ঘড়ির কাঁটার দিকে বা ঘড়ির কাঁটার বিপরীতে) এবং গতি (0 থেকে 255 এর মধ্যে)। এছাড়াও, যেহেতু মোটর থেকে প্রতিক্রিয়াটি স্বাক্ষরবিহীন বাইনারিতে পরিমাপ করা হয়, তাই স্বাক্ষরবিহীন মানগুলিকে (দিক ও গতি) একটি স্বাক্ষরিত মানতে রূপান্তর করতে আরেকটি মডিউল প্রয়োজন যা ত্রুটি গণনা মডিউল দ্বারা গণনা করা যেতে পারে। এই মডিউল সম্পর্কে আরও জানতে, এখানে ক্লিক করুন.

ধাপ 4: আলোর উত্সের অনুপস্থিতি
আপনি এমন একটি রোবট তৈরি করেছেন যা রোবট দ্বারা আলো শনাক্ত হলে আলোর সন্ধানে চলে। কিন্তু রোবট আলো শনাক্ত না করলে কী হয়? এই মডিউলটির উদ্দেশ্য হল এই ধরনের অবস্থা উপস্থিত হলে কী করতে হবে তা নির্দেশ করা।

রোবটটিকে জায়গায় ঘোরানোর জন্য সবচেয়ে সহজ উপায় এবং একটি আলোর উত্স সন্ধান করা। নির্দিষ্ট সংখ্যক সেকেন্ডের জন্য ঘোরার পরে, যদি রোবটটি এখনও আলোর উত্স খুঁজে না পায়, তাহলে আপনি শক্তি সঞ্চয় করার জন্য রোবটটি নড়াচড়া বন্ধ করতে চান৷ সেকেন্ডের আরও একটি সেট সংখ্যক পরে, রোবটটি আলোর সন্ধানের জন্য আবার জায়গায় ঘুরতে হবে। এই মডিউল সম্পর্কে আরও জানতে, এখানে ক্লিক করুন.

ধাপ 5: এটি কিভাবে কাজ করে
এই ব্যাখ্যার জন্য আপনি উপরের ছবিটি উল্লেখ করতে পারেন। এই নির্দেশের শুরুতে উল্লিখিত হিসাবে, আপনার থ্রেশহোল্ডিং বিভাগ থেকে ইনপুট "আকার" এবং "পজিশন" প্রয়োজন হবে। এই ইনপুটগুলি বৈধ ছিল তা নিশ্চিত করতে (উদাহরণস্বরূপample, আপনি যখন সাইজ = 0 পাবেন, তখন সাইজ সত্যিই শূন্য কারণ ক্যামেরা আলো শনাক্ত করতে পারে না, এবং নয় কারণ ক্যামেরাটি তখনও আরম্ভ করছিল) আপনারও একধরনের সূচকের প্রয়োজন হবে, যাকে আমরা "রেডি" বলি। প্রতিটি মোটরের লক্ষ্য গতি নির্ধারণ করতে (9 বিট, স্বাক্ষরিত) এই ডেটাগুলি নিয়ন্ত্রণ (Ctrl. vhd) দ্বারা প্রক্রিয়া করা হবে।

মোটরের আরও স্থিতিশীল আউটপুটের জন্য, আপনি একটি বন্ধ-লুপ সিস্টেমে প্রতিক্রিয়া ব্যবহার করতে চান। এর জন্য মোটর গতি পরিমাপ বিভাগ থেকে প্রতিটি মোটরের ইনপুট "দিকনির্দেশ" এবং "গতি" প্রয়োজন। যেহেতু আপনি এই ইনপুটগুলিকে আপনার গণনায় অন্তর্ভুক্ত করতে চান, তাই আপনাকে এই স্বাক্ষরবিহীন মানগুলিকে 9-বিট স্বাক্ষরিত বাইনারিতে রূপান্তর করতে হবে। এটি স্বাক্ষরিত বাইনারি রূপান্তরকারী (US2S.vhd) এর স্বাক্ষরবিহীন দ্বারা করা হয়।

ত্রুটি গণনা (ত্রুটি. ভিএইচডি) যা করে তা হল প্রতিটি মোটরের জন্য ক্রিয়া নির্ধারণ করতে লক্ষ্য গতি থেকে পরিমাপ করা গতি বিয়োগ করা। এর মানে হল যে যখন উভয়েরই একই মান থাকে, তখন বিয়োগ শূন্য হয়ে যায় এবং মোটরটি শুধুমাত্র তার ভরবেগের উপর চলে যায়। আপনি গুণের একটি ফ্যাক্টর যোগ করতে পারেন যাতে রোবট দ্রুত লক্ষ্য গতিতে পৌঁছাতে পারে।

যেহেতু মোটর কন্ট্রোলারের প্রতিটি মোটরের গতি এবং দিকনির্দেশ প্রয়োজন, তাই আপনাকে অ্যাকশনের স্বাক্ষরিত মান দুটি পৃথক স্বাক্ষরবিহীন মানগুলিতে অনুবাদ করতে হবে: গতি (1 বিট) এবং দিক (8 বিট)। এটি স্বাক্ষরিত থেকে স্বাক্ষরবিহীন বাইনারি রূপান্তরকারী (S2US.vhd) দ্বারা করা হয় এবং এটি মোটর নিয়ন্ত্রণ বিভাগে ইনপুট হয়ে উঠবে।

আলো শনাক্ত না হলে কী করতে হবে তা নির্ধারণ করার জন্য আমরা একটি মডিউলও যুক্ত করেছি (কোন আলোর কাউন্টার নেই। Bhd)। যেহেতু এই মডিউলটি মূলত একটি কাউন্টার, তাই এটি গণনা করবে কতক্ষণ রোবটটিকে ঘোরাতে হবে বা জায়গায় থাকতে হবে। এটি রোবটটি তার সামনে যা আছে তা না করে তার পরিবেশ "দেখবে" তা নিশ্চিত করবে এবং যখন কোনও আলোর উত্স সত্যই উপলব্ধ না হয় তখন ব্যাটারি শক্তি সংরক্ষণ করবে৷নির্দেশনা-ভিএইচডিএল-মোটর-গতি-নিয়ন্ত্রণ-নির্দেশ-নির্দেশ-এবং-গতি-বাম-ও-ডান-গতি-নিয়ন্ত্রক-চিত্র-3

ধাপ 6: একত্রিত করুন Files
একত্রিত করতে files, আপনাকে প্রতিটি মডিউল থেকে সংকেত সংযোগ করতে হবে। এটি করার জন্য, আপনাকে একটি নতুন শীর্ষ স্তরের মডিউল তৈরি করতে হবে file. পূর্ববর্তী মডিউলগুলির ইনপুট এবং আউটপুটগুলিকে উপাদান হিসাবে সন্নিবেশ করান, সংযোগগুলির জন্য সংকেত যোগ করুন এবং প্রতিটি পোর্ট সংশ্লিষ্ট জোড়ায় বরাদ্দ করুন। আপনি উপরের চিত্রে সংযোগগুলি উল্লেখ করতে পারেন এবং এখানে কোডটি দেখতে পারেন।নির্দেশনা-ভিএইচডিএল-মোটর-গতি-নিয়ন্ত্রণ-নির্দেশ-নির্দেশ-এবং-গতি-বাম-ও-ডান-গতি-নিয়ন্ত্রক-চিত্র-4

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

ধাপ 8: হার্ডওয়্যারে এটি ব্যবহার করে দেখুন
আপনার কম্পিউটারে আপনার কোড পরীক্ষা করার পরে, আপনি আসল হার্ডওয়্যারে কোডটি পরীক্ষা করতে পারেন। আপনাকে সীমাবদ্ধতা তৈরি করতে হবে file Vivado (.xdc) এ file BASYS 3) কোন ইনপুট এবং আউটপুট কোন পোর্টে যায় তা নিয়ন্ত্রণ করতে।

গুরুত্বপূর্ণ টিপ: আমরা কঠিন উপায়ে শিখেছি যে বৈদ্যুতিক উপাদানগুলির কারেন্ট বা ভলিউমের সর্বাধিক মান থাকতে পারেtages মানগুলির জন্য ডেটাশিট উল্লেখ করতে ভুলবেন না। PMOD HB5 এর জন্য, ভলিউম সেট করতে ভুলবেন নাtage 12 ভোল্টে পাওয়ার উত্স থেকে (যেহেতু এটি প্রয়োজনীয় ভলিউমtage মোটরের জন্য), এবং মোটর সরানোর জন্য যতটা প্রয়োজন তত কম কারেন্ট।

ধাপ 9: অন্যান্য অংশের সাথে এটি একত্রিত করুন
পূর্ববর্তী পদক্ষেপগুলি সফল হলে, চূড়ান্ত কোডটি রোবটে আপলোড করার জন্য অন্যান্য গোষ্ঠীর সাথে কোডটি একত্রিত করুন। তারপর, ভয়েলা! আপনি সফলভাবে একটি আলো-সন্ধানী রোবট তৈরি করেছেন।

ধাপ 10: অবদানকারী
বাম থেকে ডানে:

  • অ্যান্টোনিয়াস গ্রেগোরিয়াস ডেভেন রিভালদি
  • ফেলিক্স উইগুনা
  • নিকোলাস সঞ্জয়া
  • রিচার্ড মেডিয়ান্টোনির্দেশনা-ভিএইচডিএল-মোটর-গতি-নিয়ন্ত্রণ-নির্দেশ-নির্দেশ-এবং-গতি-বাম-ও-ডান-গতি-নিয়ন্ত্রক-চিত্র-6

খুব সুন্দর: ভিএইচডিএল মোটর গতি নিয়ন্ত্রণ: দিকনির্দেশ এবং গতি নির্ধারণ করুন, বাম এবং ডান গতি নিয়ন্ত্রক: পৃষ্ঠা 6
পুনরায় জন্য আপনাকে ধন্যবাদviewing! এই প্রকল্পটি আসলে একটি ক্লাস প্রকল্পের শুধুমাত্র একটি অংশ (BASYS 3 বোর্ড এবং OV7670 ক্যামেরা সহ লাইট সিকিং রোবট), তাই আমি শীঘ্রই ক্লাসের নির্দেশযোগ্য লিঙ্কটি যুক্ত করব!

অসাধারণ: আমি সবকিছু একসাথে করা দেখার জন্য উন্মুখ.

দলিল/সম্পদ

নির্দেশনা VHDL মোটর গতি নিয়ন্ত্রণ সিদ্ধান্ত দিক এবং গতি বাম এবং ডান গতি নিয়ন্ত্রক [পিডিএফ] নির্দেশনা
ভিএইচডিএল মোটর স্পিড কন্ট্রোল ডিসাইড ডিরেকশন এবং স্পিড লেফট অ্যান্ড রাইট স্পিড কন্ট্রোলার, ভিএইচডিএল মোটর স্পিড, কন্ট্রোল ডিসাইড ডিরেকশন এবং স্পিড বাম ও ডান স্পিড কন্ট্রোলার

তথ্যসূত্র

একটি মন্তব্য করুন

আপনার ইমেল ঠিকানা প্রকাশ করা হবে না. প্রয়োজনীয় ক্ষেত্রগুলি চিহ্নিত করা হয়েছে *