কন্ট্রোলার: ট্যাঙ্ক ড্রাইভ এক্সপ্লোরেশন - পাইথন
শিক্ষক টুলবক্স
-
এই বিভাগের উদ্দেশ্য
ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প ব্যবহার করে শিক্ষার্থীরা কন্ট্রোলার ব্যবহার করে ক্লবট নিয়ন্ত্রণ করতে সক্ষম হয়। Clawbot-এর প্রতিটি মোটরের বেগ নিয়ন্ত্রণ করতে এবং কন্ট্রোলারকে মোটর ফাংশন নিয়ন্ত্রণ করতে সক্ষম করতে শিক্ষার্থীদের left_motor.set_velocity(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position(), এবং right_motor_speed = controller_1.axis2.position() নির্দেশাবলীতে পরামিতিগুলি সামঞ্জস্য করতে হবে।
যেকোনো নির্দেশাবলী সম্পর্কে আরও তথ্যের জন্য, VEXcode V5-এর Pythonসহায়তা বিভাগটি দেখুন।
এই কার্যকলাপে শিক্ষার্থীরা কী করবে তার একটি রূপরেখা নিচে দেওয়া হল:
- ট্যাঙ্ক নিয়ন্ত্রণ উদাহরণ প্রকল্পটি অন্বেষণ করুন।
- while True infinite loopকাঠামোর ব্যবহার বুঝুন।
- রোবো-স্ল্যালম চ্যালেঞ্জটি সম্পূর্ণ করুন!
শিক্ষকদের টিপস
যদি শিক্ষার্থীরা প্রথমবারের মতো VEXcode V5 ব্যবহার করে, তাহলে তারা VEX লাইব্রেরিতে অনেক সহায়কনিবন্ধঅ্যাক্সেস করতে পারবে।
| পরিমাণ | প্রয়োজনীয় উপকরণ |
|---|---|
| 1 |
VEX V5 ক্লাসরুম স্টার্টার কিট (আপ-টু-ডেট ফার্মওয়্যার সহ) |
| 1 |
VEXcode V5 (সর্বশেষ সংস্করণ, উইন্ডোজ, ম্যাকওএস) |
| 1 |
ইঞ্জিনিয়ারিং নোটবুক |
| 1 |
ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প |
| 2 বা তার বেশি |
শ্রেণীকক্ষের অবজেক্টগুলি বাধা হিসাবে ব্যবহার করা হবে |
শিক্ষক টিপস
-
স্বয়ংসম্পূর্ণ ব্যবহার
VEXcode V5-এর একটি বৈশিষ্ট্য হল Autocomplete যা আপনার টাইপ করা বাকি কমান্ডের পূর্বাভাস দেয়। যেহেতু শিক্ষার্থীরা VEXcode V5 তে কাজ করছে, তাই পাইথন সিনট্যাক্সে সাহায্য করার জন্য তাদের Autocomplete বৈশিষ্ট্যটি ব্যবহার করতে উৎসাহিত করুন। আপনি যখন নির্দেশনা টাইপ করা শুরু করবেন তখন একটি স্বয়ংক্রিয় সম্পূর্ণ ফাংশন লক্ষ্য করতে পারেন। আপনার পছন্দের নামটি নির্বাচন করতে "Up" এবং "Down" কী ব্যবহার করুন, তারপর আপনার কীবোর্ডে "Tab" অথবা (Enter/Return) টিপুন। এই বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য পাইথন নিবন্ধদেখুন।
এই কার্যকলাপটি আপনাকে আপনার কন্ট্রোলার প্রোগ্রাম করার জন্য সরঞ্জামগুলি দেবে।
- VEXcode V5 পাইথন নির্দেশাবলী যা এই অনুসন্ধানে ব্যবহৃত হবে:
- left_motor.set_velocity()
- right_motor.set_velocity()
- left_motor.spin()
- right_motor.spin()
- controller_1.axis2.position()
- controller_1.axis3.position()
- সত্য হলেও:
- অপেক্ষা করুন(5, সেকেন্ড)
যেকোনো নির্দেশাবলী সম্পর্কে আরও তথ্যের জন্য, VEXcode V5 এর Python সহায়তা বিভাগগুলি দেখুন।

ধাপ 1: কন্ট্রোলার প্রোগ্রামিং শুরু করা যাক ।
- ফাইল এবং ওপেন উদাহরণ নির্বাচন করুন ।

- বিভিন্ন উদাহরণ প্রকল্পের মাধ্যমে স্ক্রোল করুন । ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প নির্বাচন করুন ।
- ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প খুলুন । উদাহরণ প্রকল্প ড্রাইভট্রেন এবং কন্ট্রোলার কনফিগার করে । কোডটি দেখতে নিচের স্নিপেটের মতো হবে:
# VEX আমদানি
থেকে লাইব্রেরি আমদানি *
# প্রজেক্ট কোড শুরু করুন
# মেইন কন্ট্রোলার লুপটি কন্ট্রোলার অক্ষের অবস্থানগুলিতে মোটর সেট করতে
যখন সত্য:
left_motor.set_velocity (controller_1.axis3.position (), PERCENT)
right_motor.set_velocity (controller_1.axis2.position (), PERCENT)
left_motor.spin (FORWARD)
right_motor.spin (FORWARD)
wait(5, MSEC)আপনার ইঞ্জিনিয়ারিং নোটবুকে নিম্নলিখিতগুলি করুন:
- ভবিষ্যদ্বাণী করুন যে এই প্রকল্পে ক্লবোট কী করবে । প্রকল্পটি কন্ট্রোলার ব্যবহার করে এমন বিষয়টির চেয়ে আরও ব্যাখ্যা করুন ।
- জয়স্টিকগুলি কীভাবে রোবটকে সরাতে পারে? Clawbot কী করছে?
শিক্ষক টুলবক্স
-
উত্তর
- এই প্রকল্পটি while True ইনফিনিট লুপ কাঠামো ব্যবহার করে বাম এবং ডান জয়স্টিকের অবস্থানগুলি ক্রমাগত পরীক্ষা করবে। যখন বাম (অথবা ডান) জয়স্টিকটি উপরে ঠেলে দেওয়া হয়, তখন জয়স্টিকটি কতদূর সামনে ঠেলে দেওয়া হবে তার উপর বেগ নির্ধারিত হয়।
- সুতরাং, জয়স্টিকটিকে যত সামনের দিকে ঠেলে দেওয়া হবে, বেগ তত দ্রুত সেট হবে এবং মোটরগুলি তত দ্রুত গতিতে চলবে। জয়স্টিকটিকে পিছনে ঠেলে দেওয়ার ক্ষেত্রেও একই ধারণা কাজ করে। জয়স্টিক যত পিছনে ঠেলে দেওয়া হবে, মোটরগুলি তত দ্রুত বিপরীত দিকে চলবে।
- প্রজেক্টের নাম TankControl। Python TankControl প্রকল্পটি সংরক্ষণ করুন, ডাউনলোড করুন এবং চালান।
- আরও সহায়তার তথ্যের জন্য, VEXcode V5-এ টিউটোরিয়াল ভিডিওটি দেখুন কীভাবে একটি প্রকল্প ডাউনলোড এবং চালানো যায় তা ব্যাখ্যা করে ।
- আপনার ইঞ্জিনিয়ারিং নোটবুকে প্রকল্পের আপনার ব্যাখ্যাগুলি পরীক্ষা করুন এবং প্রয়োজন অনুসারে সেগুলি সংশোধন করতে নোট যোগ করুন ।
ধাপ ২: কন্ট্রোলার: ট্যাঙ্ক নিয়ন্ত্রণ
শিক্ষক টুলবক্স
-
দ্য দ্য ট্রু ইনফিনিট লুপ স্ট্রাকচার
এই ধাপে while True অসীম লুপ কাঠামোর গুরুত্ব নিয়ে আলোচনা করা হয়েছে। আপনার তথ্যটি একটি শ্রেণি হিসেবে পর্যালোচনা করা উচিত। তুমি তোমার Clawbot এবং Controller দিয়ে আচরণটি মডেল করতে পারো, অথবা যদি সময় অনুমতি দেয়, তাহলে শিক্ষার্থীদের while True infinite loop structure ছাড়াই প্রোগ্রামটি চালাতে বলতে পারো।
যদি শিক্ষার্থীদের while True অসীম লুপ বোঝার জন্য আরও সহায়তার প্রয়োজন হয়, তাহলে এখানে ক্লিক করুন।
সত্য অসীম লুপ কাঠামো ব্যবহার করার সুবিধাগুলি কী কী?
এখানে সত্য অসীম লুপ কাঠামো ছাড়া আমাদের প্রকল্প রয়েছে:
# VEX আমদানি
থেকে লাইব্রেরি আমদানি *
# প্রজেক্ট কোড শুরু করুন
# প্রধান কন্ট্রোলার লুপ নিয়ন্ত্রণকারী অক্ষ পদের জন্য মোটর সেট
করতে left_motor.set_velocity (controller_1.axis3.position (), PERCENT)
right_motor.set_velocity (controller_1.axis2.position (), PERCENT)
left_motor.spin (FORWARD)
right_motor.spin (FORWARD)
এই প্রোগ্রামটি চালানো হলে আপনার কী মনে হয়? একটি দল হিসাবে আলোচনা করুন । ইঞ্জিনিয়ারিং নোটবুকে আপনার ভবিষ্যদ্বাণী লিখুন ।
শিক্ষক টুলবক্স
-
কাঠামো বোঝা
while True অসীম লুপ ছাড়া, প্রকল্পটি চালানোর সাথে সাথে প্রতিটি মোটরের জন্য বেগের মান সেট করা হয় এবং প্রকল্পটি বন্ধ না হওয়া পর্যন্ত সেই মান স্থির থাকে। অন্য কথায়, যদি আপনি জয়স্টিকটি না সরালেও প্রকল্পটি চালান, কারণ জয়স্টিকের অক্ষের উপর ডিফল্ট অবস্থান 0, তাহলে উভয় মোটরের বেগ 0 থাকবে, এমনকি যদি আপনি জয়স্টিকটি নাড়ান।
একইভাবে, ধরুন আপনি বাম জয়স্টিকটিকে অক্ষ ৩ বরাবর যতদূর যেতে পারে ততদূর উপরে নিয়ে যান এবং সেখানে ধরে রাখুন। উপরের প্রকল্পটি চালালে, বাম মোটরটি পূর্ণ গতিতে চলবে এবং জয়স্টিকটিকে ৩ নম্বর অক্ষ বরাবর নীচে নামানেও সেই গতিতে থাকবে। কারণ প্রকল্পটি চালানোর সাথে সাথে Clawbot কন্ট্রোলারের কাছ থেকে প্রাথমিক নির্দেশনা পায়; তবে, Loop ছাড়া, সেই প্রাথমিক মান আপডেট করা যাবে না।
while True ইনফিনিট লুপ Clawbot কে ক্রমাগত বেগ আপডেট করতে এবং প্রকল্পের সময়কাল ধরে চলতে বলে। অন্য কথায়, এই প্রকল্পে while True ইনফিনিট লুপ আপনাকে জয়স্টিককে অক্ষ 2 বা 3 বরাবর সরানোর মাধ্যমে প্রতিটি মোটরের বেগ পরিবর্তন করতে সক্ষম করে এবং Clawbot সেই অনুযায়ী সাড়া দেবে যতক্ষণ না আপনি প্রকল্পটি বন্ধ করেন বা Clawbot বন্ধ করেন।
# লাইব্রেরি ইমপোর্ট
থেকে ভেক্স ইমপোর্ট *
# বিগিন প্রজেক্ট কোড
# মোটরগুলিকে কন্ট্রোলার অক্ষের অবস্থান
সেট করার জন্য প্রধান কন্ট্রোলার লুপ, যখন True:
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
wait(5, MSEC)
একটি স্লালম কোর্স নেভিগেট করুন!
শিক্ষক টুলবক্স
-
কার্যকলাপ সেট আপ করুন
শিক্ষার্থীদের ২ বা ৪ জনের ছোট ছোট দলে সংগঠিত করুন। একজন শিক্ষার্থীকে ড্রাইভার হিসেবে মনোনীত করা উচিত - যিনি কন্ট্রোলার ব্যবহার করে ক্লবটটি চালাবেন।
শিক্ষার্থীদের প্রতিটি "পতাকার" বাইরের দিকে ক্লাবটটি সরাতে কন্ট্রোলার ব্যবহার করে এই স্ল্যালমটি সম্পূর্ণ করতে বলুন। ক্লবটের পথ অবশ্যই এটিকে কোনও পতাকা স্পর্শ করতে বাধা দেবে এবং এটিকে শেষ রেখা অতিক্রম করতে দেবে। পতাকা আপনার হাতে থাকা যেকোনো শ্রেণীকক্ষের উপকরণ/বস্তু (ইরেজার, টেপের রোল, টিস্যু বক্স) হতে পারে এবং ক্লবট চালানোর আগে এগুলি স্থাপন করা যেতে পারে।
যদি সময় অনুমতি দেয়, তাহলে শিক্ষার্থীদের ভূমিকা পরিবর্তন করতে বলুন যাতে অন্যরা ক্লবট চালানোর সুযোগ পায়। প্রতিটি চালক কত দ্রুত স্ল্যালম চালাতে পারে তা দেখে আপনি এটিকে দলের মধ্যে বা দলের মধ্যে প্রতিযোগিতায় পরিণত করতে পারেন।
Slaloms হল এমন কোর্স যা অংশগ্রহণকারীকে অবশ্যই সেট ফ্ল্যাগ বা মার্কারের চারপাশে নেভিগেট করতে হবে । স্কি স্ল্যালম একটি জনপ্রিয় শীতকালীন খেলা এবং শীতকালীন অলিম্পিকে অন্তর্ভুক্ত।
এখন যেহেতু কন্ট্রোলারটি জোড়া হয়েছে এবং পাইথন প্রকল্পটি ডাউনলোড করা হয়েছে, আপনি কন্ট্রোলার ব্যবহার করে আপনার ক্লবটটি সরাতে প্রস্তুত!
- শিক্ষকের কাছ থেকে চারটি শ্রেণীকক্ষের আইটেমগুলি সংগ্রহ করুন যা আপনি আপনার স্লালমে পতাকা হিসাবে ব্যবহার করবেন ।
- স্লালম ডায়াগ্রাম অনুযায়ী, ড্রাইভারকে ক্লবোটের চারপাশে নেভিগেট করার জন্য পতাকাগুলি স্থাপন করতে সহযোগিতা করুন ।
- ট্যাঙ্ক কন্ট্রোল উদাহরণ প্রকল্প ডাউনলোড করুন । কোনও প্রকল্প কীভাবে ডাউনলোড করবেন সে সম্পর্কে কোনও প্রশ্ন থাকলে, ডাউনলোডটি দেখুন এবং একটি প্রকল্প টিউটোরিয়াল চালান ।
প্রতিটি "ফ্ল্যাগের" বাইরে আপনার Clawbot সরানোর জন্য কন্ট্রোলার ব্যবহার করুন । রোবটের পথ অবশ্যই এটিকে কোনও পতাকা স্পর্শ করা থেকে বিরত রাখতে হবে এবং এটি ফিনিস লাইনটি অতিক্রম করার অনুমতি দিতে হবে ।
- প্রকল্পটি চালান এবং ক্লবটটি সামনে এবং বিপরীত দিকে চালান এবং জয়স্টিক ব্যবহার করে বাম এবং ডানদিকে ঘুরুন ।
- ক্লবোটের কোর্সটি সম্পূর্ণ করতে কত সময় লাগে । ইঞ্জিনিয়ারিং নোটবুকে সময় নথিভুক্ত করুন ।
- Slalom কোর্সের মাধ্যমে আপনি কত দ্রুত Clawbot পেতে পারেন?
অনুপ্রেরণামূলক আলোচনা
-
কার্যকলাপ সম্পর্কে চিন্তাভাবনা
প্রশ্ন: ক্লবট কি কন্ট্রোলারের কাছে আপনার প্রত্যাশা অনুযায়ী সাড়া দিয়েছে?
A: উত্তর ভিন্ন হবে; তবে, এই প্রশ্নের লক্ষ্য হল জ্ঞানীয় চিন্তাভাবনাকে উৎসাহিত করা। শিক্ষার্থীরা আচরণ পরীক্ষা করার আগে ভবিষ্যদ্বাণী করে, তাদের ফলাফল নথিভুক্ত করে এবং প্রতিফলিত করে শুরু করে।
প্রশ্ন: ক্লবটকে সরলরেখায় সামনে বা বিপরীত দিকে সরানোর ক্ষেত্রে সবচেয়ে বড় চ্যালেঞ্জ কী?
A: যদিও উত্তর ভিন্ন হতে পারে, একটি সাধারণ উত্তর হল উভয় জয়স্টিককে একে অপরের সাথে সুসংগতভাবে চলতে হবে যাতে নিশ্চিত করা যায় যে ক্লবটের মোটর একই দিকে এবং একই বেগে চলছে।
প্রশ্ন: কিভাবে while True ইনফিনিট লুপ লুপ ব্যবহার করলে আপনি ক্রমাগত কন্ট্রোলার ব্যবহার করে Clawbot সরাতে পারবেন?
A: while True অসীম লুপ ছাড়া, Clawbot শুধুমাত্র একবার প্রকল্পের নির্দেশাবলী দ্বারা নির্ধারিত আচরণগুলি সম্পাদন করবে। while True ইনফিনিট লুপ Clawbot কে ক্রমাগত বেগ আপডেট করতে এবং প্রকল্পের সময়কাল ধরে চলতে বলে। অন্য কথায়, while True ইনফিনিট লুপ আপনাকে কন্ট্রোলার ব্যবহার করে Clawbot অনির্দিষ্টকালের জন্য বা ব্যাটারি শেষ না হওয়া পর্যন্ত সরাতে সক্ষম করে।