আচরণ-ভিত্তিক প্রোগ্রামিং

প্রোগ্রামিং জটিলতা
রোবটগুলিকে বিভিন্ন ধরণের কাজ সম্পাদনের জন্য ডিজাইন করা যেতে পারে। এই কাজগুলির মধ্যে কিছু খুব সহজ, যেমন একটি স্বয়ংক্রিয় দরজা খোলা। অন্যগুলো অনেক বেশি জটিল হতে পারে, যেমন একটি স্বায়ত্তশাসিত গাড়ি শহুরে পরিবেশে চলাচল করে। কাজটি যত জটিলই হোক না কেন, এটিকে আরও সহজ কাজে ভাগ করা যেতে পারে। এই কাজগুলিকে আচরণ বলা হয় এবং রোবোটিক্স প্রোগ্রামিংয়ের মূল উপাদান হিসেবে কাজ করে।
আচরণ হল একটি রোবট যেভাবে কাজ করে, এবং রোবটটি কীভাবে তৈরি বা প্রোগ্রাম করা হয়েছে তার উপর নির্ভর করে এটি জটিলতার মধ্যে বিস্তৃত হতে পারে। VEX V5 Speedbot-এর মতো একটি সাধারণ মোবাইল রোবটে মাত্র দুটি মোটর থাকে, যেখানে Clawbot-এ চারটি মোটর থাকে, যার মধ্যে Arm এবং Claw-এর জন্য দুটি অতিরিক্ত মোটর থাকে। উভয় রোবটের আচরণের মধ্যে থাকবে নির্ধারিত লক্ষ্য অর্জনের জন্য সেই মোটরগুলিকে ঘুরিয়ে দেওয়া। আরও ডিজাইন এবং প্রোগ্রামিং এর মাধ্যমে, আপনি এই সহজ আচরণ থেকে শুরু করতে পারেন এবং আরও জটিল আচরণ করতে পারেন।
স্পিডবট এবং ক্লবট উভয়ের জন্যই রোবটদের আচরণের সহজ থেকে জটিল রূপ ধারণের একটি তালিকা নিচে দেওয়া হল। বন্ধনীতে, আপনি প্রতিটি সহজ আচরণের গঠন দেখতে পাবেন।
- একটি নির্দিষ্ট পোর্টে নির্ধারিত মোটর ঘোরান
- সামনের দিকে গাড়ি চালান (ড্রাইভট্রেন ব্যবহার করে বাম এবং ডান উভয় মোটর ঘোরান)
- ৫ মিটার ভ্রমণ করুন (এগিয়ে যান, তারপর থামুন)
- দূরের কোন বস্তু ধরুন (২ মিটার ভ্রমণ করুন, ক্লো মোটরটি ঘোরান যাতে এটি ধরা যায়)
- একটি বস্তু তুলে একটি উঁচু তাকের উপর রাখুন (দূরের কোনও বস্তু ধরুন, ঘুরে দেখুন, ২ মিটার ভ্রমণ করুন, বাহু এবং নখর মোটর ব্যবহার করে বস্তুটি উপরে তুলুন এবং ছেড়ে দিন)
তুমি দেখতে পারো কিভাবে তুমি যেকোনো জটিল আচরণকে সহজ আচরণে রূপান্তর করতে পারো। এগুলো যেকোনো জটিল কাজের মূল উপাদান হয়ে ওঠে।
শিক্ষকদের টিপস
-
জটিল রোবট আচরণগুলিকে ছোট, সহজ ধাপে ভেঙে ফেলার জন্য শিক্ষার্থীদের নির্দেশ দিন। এই প্রক্রিয়াটি পচন নামে পরিচিত।
-
শিক্ষার্থীদের বুঝিয়ে বলুন যে জটিল আচরণগুলিকে সহজ কাজে বিভক্ত করা (ভাঙ্গা) পরিকল্পনা এবং প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ।
-
পর্যাপ্ত ক্লাস সময় থাকলে শিক্ষার্থীদের তাদের স্বায়ত্তশাসিত প্রকল্পগুলি চালানোর অনুমতি দিন।
তোমার শেখার পরিধি বাড়াও
এই কার্যকলাপটিকে গণনামূলক চিন্তাভাবনা এবং বিভাজনের সাথে সংযুক্ত করার জন্য, শিক্ষার্থীদেরকে নীচের কার্যকলাপগুলি সম্পন্ন করার জন্য একটি রোবট যে আচরণগত পদক্ষেপগুলি সম্পাদন করবে তার একটি মানচিত্র তৈরি করতে বা তালিকাভুক্ত করতে বলুন:
-
প্রথম কার্যকলাপ: ১ মিটার ভ্রমণ করুন এবং শুরুর স্থানে ফিরে আসুন।
-
কর্মকাণ্ড দুই: রোবটের সামনে ৬০ সেমি দূরে অবস্থিত একটি বাক্স উল্টে দিন।
-
কর্মকাণ্ড তিন: একটি বস্তু তুলে নাড়াও, ৩০ সেমি ভ্রমণ করো, বস্তুটিকে মাটিতে রাখো, এবং শুরুর স্থানে ফিরে যাও।
আলোচনা প্রেরণা দিন
শিক্ষার্থীদের উপরে "আপনার শিক্ষা বৃদ্ধি করুন" থেকে কার্যকলাপের জন্য তালিকাভুক্ত আচরণগত পদক্ষেপগুলি ভাগ করে নেওয়া উচিত। নিচের প্রতিটি প্রশ্ন যেকোনো বা সমস্ত কার্যকলাপের পরে জিজ্ঞাসা করা যেতে পারে।
প্রশ্ন:এই কার্যকলাপটি সফলভাবে সম্পন্ন করার জন্য প্রতিটি দল কোন পদক্ষেপ বা আচরণ তালিকাভুক্ত করেছে?
উত্তর:শিক্ষার্থীদের রোবটটির ভ্রমণের দৈর্ঘ্য এবং বাহুর নড়াচড়া এবং গতি বিবেচনা করতে হবে, পাশাপাশি কার্যকলাপ বা কাজটি সম্পন্ন করার জন্য প্রয়োজনীয় সহজ রোবট আচরণগুলি তালিকাভুক্ত করতে হবে (সামনে গাড়ি চালানো, বিপরীত দিকে, বাম বা ডানে ঘুরতে)। শিক্ষার্থীদের তাদের আচরণের তালিকা তৈরি করা উচিত যাতে প্রতিটি ধাপ উপস্থাপন করা হয়।
প্রশ্ন:এই কার্যকলাপের সমাধানগুলির (পদক্ষেপের তালিকা) মধ্যে মিল এবং পার্থক্য কী ছিল?
উত্তর:শিক্ষার্থীরা তাদের সমাধানের উপর ভিত্তি করে তুলনা করবে। শিক্ষার্থীদের ভাগ করা পদক্ষেপগুলি সংগঠিত করার জন্য একটি ভেন ডায়াগ্রাম একটি ভালো উপায় হতে পারে। যদি বেশিরভাগ শিক্ষার্থী একটি নির্দিষ্ট ধাপের নাম বলে, তাহলে বৃত্তগুলি যেখানে ওভারল্যাপ করে সেখানে এটিকে কেন্দ্রে যোগ করুন। যদি শুধুমাত্র একজন বা কয়েকজন শিক্ষার্থী একটি নির্দিষ্ট ধাপের নাম বলে, তাহলে এটি একটি বা অন্য বৃত্তে যোগ করুন। সম্পন্ন হলে, কেন্দ্রের ধাপগুলি নির্ভরযোগ্যভাবে সহজ হওয়া উচিত এবং আরও ভাঙা যাবে না যেখানে শুধুমাত্র একটি বৃত্তে তালিকাভুক্ত ধাপগুলি সম্ভবত ততটা সহজ নয় যতটা তারা হতে পারে। তবে, জটিল আচরণগুলিকে সহজতম ধাপে ভাগ করার ক্ষেত্রে শ্রেণীর অভিজ্ঞতার উপর নির্ভর করে এই ধরণটি বিপরীত হতে পারে।
প্রশ্ন:সফল সমাধানগুলির মধ্যে কি কোন মিল ছিল? যদি তাই হয়, তাহলে সেগুলো কী ছিল?
উত্তর:সবচেয়ে সফল সমাধানগুলি ছিল সেইগুলি যেখানে সবচেয়ে বিস্তারিত এবং সুনির্দিষ্টতা অন্তর্ভুক্ত ছিল। রোবটটি এমন একটি ভাষায় প্রোগ্রাম করা হয়েছে যেখানে খুব নির্দিষ্ট আচরণ রয়েছে এবং সেগুলোকে ক্ষুদ্রতম উপাদানে বিভক্ত করা হয়েছে। উদাহরণস্বরূপ, এটা বলা হয়ে থাকে যে একটি রোবট "১ মিটার ভ্রমণ করে এবং শুরুর স্থানে ফিরে আসে" কিন্তু প্রোগ্রামিং করার সময় সেই উচ্চ-স্তরের বর্ণনাটি সহজে অনুবাদ করা যায় না। তোমাকে এটি আরও ভেঙে ফেলতে হবে: ১ মিটার সামনের দিকে গাড়ি চালাও, ১৮০ ডিগ্রি ঘুরো, এবং ১ মিটার সামনের দিকে গাড়ি চালাও। কিন্তু সেটাও যথেষ্ট সুনির্দিষ্ট নাও হতে পারে এবং প্রোগ্রামিং-প্রস্তুত হওয়ার জন্য আপনার এই স্তরের বিশদ প্রয়োজন: ড্রাইভ এবং টার্নিং বেগ 40% এ সেট করুন, 1 মিটার এগিয়ে যান, 3 সেকেন্ড অপেক্ষা করুন, 180 ডিগ্রি বাম দিকে ঘুরুন, 1 সেকেন্ড অপেক্ষা করুন এবং 1 মিটার এগিয়ে যান। জটিল আচরণগুলিকে প্রোগ্রামিং-প্রস্তুত রোবট আচরণে পরিণত করার জন্য আমরা যত বেশি ভেঙে ফেলব, একটি প্রকল্প সম্পূর্ণ করার জন্য আমরা তত বেশি প্রস্তুত হব।