কন্ট্রোলার: ট্যাঙ্ক ড্রাইভ এক্সপ্লোরেশন - C++
শিক্ষক টুলবক্স
-
এই কার্যকলাপের উদ্দেশ্য
ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প ব্যবহার করে শিক্ষার্থীরা কন্ট্রোলার ব্যবহার করে ক্লবট নিয়ন্ত্রণ করতে সক্ষম হয়। Clawbot-এর প্রতিটি মোটরের বেগ নিয়ন্ত্রণ করতে এবং কন্ট্রোলারকে মোটর ফাংশন নিয়ন্ত্রণ করতে সক্ষম করতে শিক্ষার্থীদেরLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),এবংrightMotorSpeed = Controller1.Axis2.position() নির্দেশাবলীপরামিতিগুলি সামঞ্জস্য করতে হবে।
যেকোনো নির্দেশাবলী সম্পর্কে আরও তথ্যের জন্য, VEXcode V5 এরC++বিভাগে সহায়তা দেখুন।
এই কার্যকলাপে শিক্ষার্থীরা কী করবে তার একটি রূপরেখা নিচে দেওয়া হল:
-
ট্যাঙ্ক নিয়ন্ত্রণ উদাহরণ প্রকল্পটি অন্বেষণ করুন।
-
while Trueinfinite loopকাঠামোর ব্যবহার বুঝুন।
-
রোবো-স্ল্যালম চ্যালেঞ্জটি সম্পূর্ণ করুন!
শিক্ষকদের টিপস
যদি শিক্ষার্থীরা প্রথমবারের মতো VEXcode V5 ব্যবহার করে, তাহলে তারা VEX নলেজ বেসে অনেক সহায়কনিবন্ধঅ্যাক্সেস করতে পারবে।
| পরিমাণ | প্রয়োজনীয় উপকরণ |
|---|---|
| 1 |
VEX V5 ক্লাসরুম স্টার্টার কিট (আপ-টু-ডেট ফার্মওয়্যার সহ) |
| 1 |
VEXcode V5 (সর্বশেষ সংস্করণ, উইন্ডোজ, ম্যাকওএস) |
| 1 |
ইঞ্জিনিয়ারিং নোটবুক |
| 1 |
ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প |
| 2 বা তার বেশি |
শ্রেণীকক্ষের আইটেমগুলি বাধা হিসাবে ব্যবহার করা হবে |
শিক্ষক টিপস
-
স্বয়ংসম্পূর্ণ ব্যবহার
VEXcode V5-এর একটি বৈশিষ্ট্য হল Autocomplete যা আপনার টাইপ করা বাকি কমান্ডের পূর্বাভাস দেয়। যেহেতু শিক্ষার্থীরা VEXcode V5 তে কাজ করছে, তাই তাদেরসিনট্যাক্সএর সাথে সাহায্য করার জন্য Autocomplete বৈশিষ্ট্যটি ব্যবহার করতে উৎসাহিত করুন। Autocompleteনিবন্ধে Autocomplete বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন তা আলোচনা করা হয়েছে।

এই ক্রিয়াকলাপটি আপনাকে আপনার কন্ট্রোলার প্রোগ্রাম করার সরঞ্জাম দেবে ।
ধাপ 1: কন্ট্রোলার প্রোগ্রামিং শুরু করা যাক ।
- ট্যাঙ্ক কন্ট্রোলউদাহরণ প্রকল্পটি খুলুন।
-

তোমার ইঞ্জিনিয়ারিং নোটবুকে নিম্নলিখিত কাজগুলো করো:
এই প্রকল্পে Clawbot কী করবে তা ভবিষ্যদ্বাণী করো। প্রকল্পটি যে কন্ট্রোলার ব্যবহার করে তার চেয়েও বেশি কিছু ব্যাখ্যা করুন।
জয়স্টিকগুলি কীভাবে রোবটটিকে নাড়াচাড়া করে? Clawbot কী করছে?int main() { //রোবট কনফিগারেশন শুরু করা । মুছে ফেলবেন না! vexcodeInit(); //প্রজেক্ট কোড শুরু করুন । // প্রধান কন্ট্রোলার লুপ (সত্য) {LeftMotor.setVelocity (কন্ট্রোলার1.Axis3.position (), শতাংশ); RightMotor.setVelocity (কন্ট্রোলার1.Axis2.position ( ), শতাংশ; LeftMotor.spin (ফরোয়ার্ড) ; RightMotor.spin (ফরোয়ার্ড ); অপেক্ষা করুন(5, msec); } রিটার্ন 0; }
শিক্ষক টুলবক্স
-
উত্তর
- এই প্রকল্পটি while True ইনফিনিট লুপ কাঠামো ব্যবহার করে বাম এবং ডান জয়স্টিকের অবস্থানগুলি ক্রমাগত পরীক্ষা করবে। যখন বাম (অথবা ডান) জয়স্টিকটি উপরে ঠেলে দেওয়া হয়, তখন জয়স্টিকটি কতদূর সামনে ঠেলে দেওয়া হবে তার উপর বেগ নির্ধারিত হয়।
- সুতরাং, জয়স্টিকটিকে যত সামনের দিকে ঠেলে দেওয়া হবে, বেগ তত দ্রুত সেট হবে এবং মোটরগুলি তত দ্রুত গতিতে চলবে। জয়স্টিকটিকে পিছনে ঠেলে দেওয়ার ক্ষেত্রেও একই ধারণা কাজ করে। জয়স্টিক যত পিছনে ঠেলে দেওয়া হবে, মোটরগুলি তত দ্রুত বিপরীত দিকে চলবে।
- ট্যাঙ্ক কন্ট্রোলউদাহরণ প্রকল্পটি সংরক্ষণ করুন, ডাউনলোড করুন এবং (C++) চালান।
-
সাহায্যের জন্যC++এর VEX লাইব্রেরি বিভাগগুলি দেখুন অথবা VEXcode V5 এর টিউটোরিয়ালটি দেখুন যেখানে একটি প্রকল্প ডাউনলোড এবং চালানোর পদ্ধতি ব্যাখ্যা করা হয়েছে।

- আপনার ইঞ্জিনিয়ারিং নোটবুকে প্রকল্পের আপনার ব্যাখ্যাগুলি পরীক্ষা করুন এবং প্রয়োজন অনুসারে সেগুলি সংশোধন করতে নোট যোগ করুন ।
ধাপ 2: কন্ট্রোলার: ট্যাঙ্ক কন্ট্রোল
শিক্ষক টুলবক্স
-
দ্য দ্য ট্রু ইনফিনিট লুপ স্ট্রাকচার
এই ধাপে while True অসীম লুপ কাঠামোর গুরুত্ব নিয়ে আলোচনা করা হয়েছে। আপনার তথ্যটি একটি শ্রেণি হিসেবে পর্যালোচনা করা উচিত। তুমি তোমার Clawbot এবং Controller দিয়ে আচরণটি মডেল করতে পারো, অথবা যদি সময় অনুমতি দেয়, তাহলে শিক্ষার্থীদের while True infinite loop structure ছাড়াই প্রোগ্রামটি চালাতে বলতে পারো।
সত্য অসীম লুপ কাঠামো ব্যবহার করার সুবিধাগুলি কী কী?
এখানে সত্য অসীম লুপ কাঠামো ছাড়া আমাদের প্রকল্প রয়েছে:
int main() {
//রোবট কনফিগারেশন শুরু করা । মুছে ফেলবেন না!
vexcodeInit();
//প্রজেক্ট কোড শুরু করুন ।
// প্রধান কন্ট্রোলার লুপ কন্ট্রোলার অক্ষ পজিশন LeftMotor.setVelocity (কন্ট্রোলার1.Axis3.position
(), শতাংশ); RightMotor.setVelocity (
কন্ট্রোলার1.Axis2.position (), শতাংশ); LeftMotor.spin
(ফরোয়ার্ড); RightMotor.spin
(ফরোয়ার্ড);
}এই প্রোগ্রামটি চালানো হলে আপনার কী মনে হয়? একটি দল হিসাবে আলোচনা করুন । ইঞ্জিনিয়ারিং নোটবুকে আপনার ভবিষ্যদ্বাণী লিখুন ।
শিক্ষক টুলবক্স
-
কাঠামো বোঝা
while True অসীম লুপ ছাড়া, প্রকল্পটি চালানোর সাথে সাথে প্রতিটি মোটরের জন্য বেগের মান সেট করা হয় এবং প্রকল্পটি বন্ধ না হওয়া পর্যন্ত সেই মান স্থির থাকে। অন্য কথায়, যদি আপনি জয়স্টিকটি না সরালেও প্রকল্পটি চালান, কারণ জয়স্টিকের অক্ষের উপর ডিফল্ট অবস্থান 0, তাহলে উভয় মোটরের বেগ 0 থাকবে, এমনকি যদি আপনি জয়স্টিকটি নাড়ান।
একইভাবে, ধরুন আপনি বাম জয়স্টিকটিকে অক্ষ ৩ বরাবর যতদূর যেতে পারে ততদূর উপরে নিয়ে যান এবং সেখানে ধরে রাখুন। উপরের প্রকল্পটি চালালে, বাম মোটরটি পূর্ণ গতিতে চলবে এবং জয়স্টিকটিকে ৩ নম্বর অক্ষ বরাবর নীচে নামানেও সেই গতিতে থাকবে। কারণ প্রকল্পটি চালানোর সাথে সাথে Clawbot কন্ট্রোলারের কাছ থেকে প্রাথমিক নির্দেশনা পায়; তবে, Loop ছাড়া, সেই প্রাথমিক মান আপডেট করা যাবে না।
while True ইনফিনিট লুপ Clawbot কে ক্রমাগত বেগ আপডেট করতে এবং প্রকল্পের সময়কাল ধরে চলতে বলে। অন্য কথায়, এই প্রকল্পে while True ইনফিনিট লুপ আপনাকে জয়স্টিককে অক্ষ 2 বা 3 বরাবর সরানোর মাধ্যমে প্রতিটি মোটরের বেগ পরিবর্তন করতে সক্ষম করে এবং Clawbot সেই অনুযায়ী সাড়া দেবে যতক্ষণ না আপনি প্রকল্পটি বন্ধ করেন বা Clawbot বন্ধ করেন।
ধাপ 3: একটি স্লালম কোর্স নেভিগেট করুন!
শিক্ষক টুলবক্স
-
অ্যাক্টিভিটি সেটআপ করুন
শিক্ষার্থীদের ২ বা ৪ জনের ছোট ছোট দলে সংগঠিত করুন। একজন শিক্ষার্থীকে ড্রাইভার হিসেবে মনোনীত করা উচিত - যিনি কন্ট্রোলার ব্যবহার করে ক্লবটটি চালাবেন।
শিক্ষার্থীদের প্রতিটি "পতাকার" বাইরের দিকে ক্লাবটটি সরাতে কন্ট্রোলার ব্যবহার করে এই স্ল্যালমটি সম্পূর্ণ করতে বলুন। ক্লবটের পথ অবশ্যই এটিকে কোনও পতাকা স্পর্শ করতে বাধা দেবে এবং এটিকে শেষ রেখা অতিক্রম করতে দেবে। পতাকা আপনার হাতে থাকা যেকোনো শ্রেণীকক্ষের উপকরণ/বস্তু (ইরেজার, টেপের রোল, টিস্যু বক্স) হতে পারে এবং ক্লবট চালানোর আগে এগুলি স্থাপন করা যেতে পারে।
যদি সময় অনুমতি দেয়, তাহলে শিক্ষার্থীদের ভূমিকা পরিবর্তন করতে বলুন যাতে অন্যরা ক্লবট চালানোর সুযোগ পায়। প্রতিটি চালক কত দ্রুত স্ল্যালম চালাতে পারে তা দেখে আপনি এটিকে দলের মধ্যে বা দলের মধ্যে প্রতিযোগিতায় পরিণত করতে পারেন।

Slaloms হল এমন কোর্স যা অংশগ্রহণকারীকে অবশ্যই সেট ফ্ল্যাগ বা মার্কারের চারপাশে নেভিগেট করতে হবে । স্কি স্ল্যাম একটি জনপ্রিয় শীতকালীন খেলা এবং শীতকালীন অলিম্পিকে অন্তর্ভুক্ত করা হয় ।
এখন যেহেতুকন্ট্রোলারটিজোড়া হয়েছে এবংC++প্রকল্পটি ডাউনলোড করা হয়েছে, আপনি কন্ট্রোলার ব্যবহার করে আপনার Clawbot সরাতে প্রস্তুত!
- শিক্ষকের কাছ থেকে চারটি শ্রেণীকক্ষের আইটেমগুলি সংগ্রহ করুন যা আপনি আপনার স্লালমে পতাকা হিসাবে ব্যবহার করবেন ।
- স্লালম ডায়াগ্রাম অনুযায়ী, ড্রাইভারকে ক্লবোটের চারপাশে নেভিগেট করার জন্য পতাকাগুলি স্থাপন করতে সহযোগিতা করুন ।
- ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প ডাউনলোড করুন । কোনও প্রকল্প কীভাবে ডাউনলোড করবেন সে সম্পর্কে কোনও প্রশ্ন থাকলে, ডাউনলোডটি দেখুন এবং একটি প্রকল্প টিউটোরিয়াল চালান ।
ধাপ 4: Robo-Slalom

প্রতিটি "ফ্ল্যাগের" বাইরে আপনার Clawbot সরানোর জন্য কন্ট্রোলার ব্যবহার করুন । রোবটের পথ অবশ্যই এটিকে কোনও পতাকা স্পর্শ করা থেকে বিরত রাখতে হবে এবং এটি ফিনিস লাইনটি অতিক্রম করার অনুমতি দিতে হবে ।
- প্রকল্পটি চালান এবং ক্লবটটি সামনে এবং বিপরীত দিকে চালান এবং জয়স্টিক ব্যবহার করে বাম এবং ডানদিকে ঘুরুন ।
- ক্লবোটের কোর্সটি সম্পূর্ণ করতে কত সময় লাগে । ইঞ্জিনিয়ারিং নোটবুকে সময় নথিভুক্ত করুন ।
- Slalom কোর্সের মাধ্যমে আপনি কত দ্রুত Clawbot পেতে পারেন?
অনুপ্রেরণামূলক আলোচনা
-
কার্যকলাপ সম্পর্কে চিন্তাভাবনা
প্রশ্ন:ক্লবট কি কন্ট্রোলারের কাছে আপনার প্রত্যাশা অনুযায়ী সাড়া দিয়েছে?
A:উত্তর ভিন্ন হবে; তবে, এই প্রশ্নের লক্ষ্য হল জ্ঞানীয় চিন্তাভাবনাকে উৎসাহিত করা। শিক্ষার্থীরা আচরণ পরীক্ষা করার আগে ভবিষ্যদ্বাণী করে, তাদের ফলাফল নথিভুক্ত করে এবং প্রতিফলিত করে শুরু করে।
প্রশ্ন:ক্লবটকে সরলরেখায় সামনে বা বিপরীত দিকে সরানোর ক্ষেত্রে সবচেয়ে বড় চ্যালেঞ্জ কী?
A:যদিও উত্তর ভিন্ন হতে পারে, একটি সাধারণ উত্তর হল উভয় জয়স্টিককে একে অপরের সাথে সুসংগতভাবে চলতে হবে যাতে নিশ্চিত করা যায় যে ক্লবটের মোটর একই দিকে এবং একই বেগে চলছে।
প্রশ্ন:কিভাবেwhile Trueইনফিনিট লুপ লুপ ব্যবহার করলে আপনি ক্রমাগত কন্ট্রোলার ব্যবহার করে Clawbot সরাতে পারবেন?
A:while Trueঅসীম লুপ ছাড়া, Clawbot শুধুমাত্র একবার প্রকল্পের নির্দেশাবলী দ্বারা নির্ধারিত আচরণগুলি সম্পাদন করবে। while Trueইনফিনিট লুপ Clawbot কে ক্রমাগত বেগ আপডেট করতে এবং প্রকল্পের সময়কাল ধরে চলতে বলে। অন্য কথায়,while Trueইনফিনিট লুপ আপনাকে কন্ট্রোলার ব্যবহার করে Clawbot অনির্দিষ্টকালের জন্য বা ব্যাটারি শেষ না হওয়া পর্যন্ত সরাতে সক্ষম করে।