Skip to main content

পাঠ ২: সবুজ ডিস্কে গাড়ি চালান তারপর নীল ডিস্কে

সবুজ ডিস্কে গাড়ি চালান তারপর নীল ডিস্কে

  • পূর্ববর্তী প্রকল্পে, যখন ফ্রন্ট আই সেন্সর একটি সবুজ ডিস্ক সনাক্ত করে তখন VR রোবট ডানদিকে ঘুরিয়ে দেয়। এখন, এমন একটি প্রকল্প তৈরি করুন যেখানে VR রোবট Disk Maze Playgroundএর চারটি ডিস্কে ড্রাইভ করবে।
  • লক্ষ্য হল একটি সামঞ্জস্যপূর্ণ প্যাটার্ন তৈরি করা যেখানে VR রোবট ডানদিকে ঘুরবে যখন ফ্রন্ট আই সেন্সর একটি সবুজ ডিস্ক শনাক্ত করে এবং বাম দিকে যখন ফ্রন্ট আই সেন্সর একটি নীল ডিস্ক সনাক্ত করে।

    ডিস্ক মেজ খেলার মাঠের উপর থেকে নীচের দৃশ্য, যেখানে একটি তীর ভিআর রোবটের উদ্দেশ্যপ্রণোদিত পথ দেখায়। রোবটটিকে প্রথম সবুজ ডিস্কে পৌঁছানোর জন্য প্রারম্ভিক প্ল্যাটফর্ম থেকে এগিয়ে যেতে হবে এবং দুটি নীল ডিস্কে বাম দিকে মোড় নেওয়ার আগে ডানদিকে মোড় নিতে হবে।
  • VR রোবটকে ডানদিকে মোড় নেওয়ার পরে এগিয়ে যাওয়ার নির্দেশ দিতে বিদ্যমান প্রকল্পে নিম্নলিখিত ব্লকটি যুক্ত করুন।

    VEXcode VR আগের প্রকল্পটিকে ব্লক করে, সাথে যোগ করা হয়েছে মন্তব্য এবং ড্রাইভ ফরোয়ার্ড ব্লক। পুরো প্রকল্পটি এখন "When Started" পড়ে আছে, তারপর "প্রথমে ডিস্কে ড্রাইভ করুন (সবুজ), তারপর ডানদিকে ঘুরুন" পড়ে আছে। এরপর, সামনের দিকে গাড়ি চালান, ফ্রন্ট আই সবুজ রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন তারপর 90 ডিগ্রি ডানদিকে ঘুরুন। এরপরে একটি মন্তব্য ব্লক আছে যেখানে লেখা আছে 'পরবর্তী ডিস্কে ড্রাইভ করুন (নীল), তারপর বাম দিকে ঘুরুন'। সবশেষে, সামনের দিকে গাড়ি চালাও।
  • 'নীল' শনাক্ত করতে <Color sensing> ব্লক সেটের সাথে আরেকটি [অপেক্ষা করুন] যোগ করুন, যেহেতু ভিআর রোবটের পরবর্তী ডিস্কটি নীল।

    VEXcode VR আগের প্রকল্পটিকে ব্লক করে, শেষ ড্রাইভ ফরোয়ার্ড ব্লকের পরে একটি Wait Until ব্লক যোগ করা হয়েছে। পুরো প্রকল্পটি এখন "When Started" পড়ে আছে, তারপর "প্রথমে ডিস্কে ড্রাইভ করুন (সবুজ), তারপর ডানদিকে ঘুরুন" পড়ে আছে। এরপর, সামনের দিকে গাড়ি চালান, ফ্রন্ট আই সবুজ রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন তারপর 90 ডিগ্রি ডানদিকে ঘুরুন। এরপরে একটি মন্তব্য ব্লক আছে যেখানে লেখা আছে 'পরবর্তী ডিস্কে ড্রাইভ করুন (নীল), তারপর বাম দিকে ঘুরুন'। সবশেষে, সামনের দিকে গাড়ি চালান এবং ফ্রন্ট আই নীল রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন।
  • একটি [Turn for] ব্লক যোগ করুন এবং প্যারামিটারটি 'বামে' সেট করুন।

    VEXcode VR আগের প্রকল্পটিকে ব্লক করে, শেষ Wait Until ব্লকের পরে একটি Turn Left For 90 Degrees ব্লক যোগ করা হয়েছে। পুরো প্রকল্পটি এখন "When Started" পড়ে আছে, তারপর "প্রথমে ডিস্কে ড্রাইভ করুন (সবুজ), তারপর ডানদিকে ঘুরুন" পড়ে আছে। এরপর, সামনের দিকে গাড়ি চালান, ফ্রন্ট আই সবুজ রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন তারপর 90 ডিগ্রি ডানদিকে ঘুরুন। এরপরে একটি মন্তব্য ব্লক আছে যেখানে লেখা আছে 'পরবর্তী ডিস্কে ড্রাইভ করুন (নীল), তারপর বাম দিকে ঘুরুন'। এরপর সামনের দিকে গাড়ি চালান এবং ৯০ ডিগ্রি বাম দিকে ঘুরার আগে সামনের চোখ নীল রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন।
  • ভিআর রোবট ডিস্ক মেজ প্লেগ্রাউন্ডএর মধ্য দিয়ে কীভাবে চলে তা দেখতে প্রকল্পটি চালান।

    ডিস্ক মেজ খেলার মাঠের উপর থেকে নীচের দৃশ্য, যেখানে একটি তীর ভিআর রোবটের উদ্দেশ্যপ্রণোদিত পথ দেখায়। রোবটটিকে প্রথম সবুজ ডিস্কে পৌঁছানোর জন্য প্রারম্ভিক প্ল্যাটফর্ম থেকে এগিয়ে যেতে হবে এবং প্রথম নীল ডিস্কে বাম দিকে মোড় নেওয়ার আগে ডানদিকে মোড় নিতে হবে।
  • লক্ষ্য করুন যে সামনের চোখের সেন্সর একটি সবুজ ডিস্ক সনাক্ত করলে VR রোবটটি ডানদিকে ঘুরবে এবং সামনের চোখের সেন্সর একটি নীল ডিস্ক শনাক্ত করলে বাম দিকে ঘুরবে৷
  • ফ্রন্ট আই সেন্সর ব্যবহার করে ডিস্ক মেজ প্লেগ্রাউন্ড এ VR রোবটটিকে আরও দুটি ডিস্কে চালাতে এই প্রকল্পটি তৈরি করা চালিয়ে যান। পরবর্তী দুটি ডিস্কে ভিআর রোবট নেভিগেট করতে নিম্নলিখিত ব্লকগুলি যোগ করুন তারপর থামুন:

    VEXcode VR আমাদের প্রকল্পের শেষে নীল তৃতীয় এবং চতুর্থ ডিস্কে পৌঁছানোর জন্য স্নিপেট ব্লক করে। তৃতীয় ডিস্কে যেতে ড্রাইভ ফরোয়ার্ড করুন, ফ্রন্ট আই নীল সনাক্ত না করা পর্যন্ত অপেক্ষা করুন এবং 90 ডিগ্রি বাম দিকে ঘুরুন। চতুর্থ ডিস্কে গাড়ি চালানোর পর, "এগিয়ে যান", "ফরওয়ার্ড" বোতামে ক্লিক করুন, "ফ্রন্ট আই নীল রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন এবং তারপর 90 ডিগ্রি বাম দিকে ঘুরুন। অবশেষে, গাড়ি চালানো বন্ধ করুন।
    তৃতীয় এবং চতুর্থ ডিস্কে পৌঁছানোর জন্য VEXcode ব্লক স্নিপেটটি এখন আমাদের প্রকল্পের নীচে যোগ করা হয়েছে। পুরো প্রকল্পটি এখন চারটি ডিস্কে পৌঁছেছে, প্রথমে একটি সবুজ ডিস্ক এবং তারপর তিনটি নীল ডিস্ক। প্রতিটি ডিস্কের জন্য কোডের নিম্নলিখিত অংশটি ব্যবহার করুন: সামনের দিকে ড্রাইভ করুন, ফ্রন্ট আই ডিস্কের রঙ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন, তারপর সবুজ হলে 90 ডিগ্রি ডানে ঘুরুন এবং নীল হলে 90 ডিগ্রি বামে ঘুরুন। তিন-ব্লকের সেই অংশটি চারবার পুনরাবৃত্তি করলে আমরা চারটি ডিস্কে পৌঁছাতে পারি, প্রথমে ডানদিকে ঘুরলে একটি সবুজ ডিস্ক এবং তারপর বাম দিকে ঘুরলে তিনটি নীল ডিস্ক। এই ১২টি ব্লক এবং প্রতিটি অংশে অতিরিক্ত মন্তব্যের পরে, গাড়ি চালানো বন্ধ করুন।
  • লক্ষ্য করুন যে একটি প্যাটার্ন আছে। ব্লকের একটি সিরিজ রয়েছে যা প্রকল্পে তিনবার পুনরাবৃত্তি হয়। কোডের এই অংশটি একটি [পুনরাবৃত্তি] ব্লক ব্যবহার করে ঘনীভূত করা যেতে পারে।

    এখন আমরা আমাদের কোডটি সরল এবং সংক্ষিপ্ত করার জন্য একটি Repeat ব্লক ব্যবহার করব। একটি লাল বাক্স নীল ডিস্কে পৌঁছানোর জন্য ব্যবহৃত তিনটি অংশ হাইলাইট করে, কারণ এটি একই কোড তিনবার, আমরা এটিকে একটি রিপিট ব্লক সেটে যোগ করতে পারি যাতে এটি 3 বার পুনরাবৃত্তি হয়। এখন, প্রকল্পটি "শুরু হলে, এগিয়ে যান এবং 90 ডিগ্রির জন্য ডানদিকে ঘুরার আগে সামনের চোখ সবুজ সনাক্ত না করা পর্যন্ত অপেক্ষা করুন" পড়ে। এরপর, একটি নীল ডিস্কে পৌঁছানোর জন্য কোডটি তিনবার পুনরাবৃত্তি করুন: সামনের দিকে গাড়ি চালান, ফ্রন্ট আই নীল সনাক্ত না করা পর্যন্ত অপেক্ষা করুন এবং তারপর 90 ডিগ্রি বাম দিকে ঘুরুন। পুনরাবৃত্তি লুপ বন্ধ করার পর, ড্রাইভিং বন্ধ করুন।
  • ডিস্ক মেজ প্লেগ্রাউন্ড খুলুন যদি এটি ইতিমধ্যে খোলা না থাকে এবং প্রকল্পটি চালান।
  • ডিস্ক মেজ প্লেগ্রাউন্ডএ ভিআর রোবটটিকে চারটি ডিস্কে নেভিগেট করতে দেখুন।

    আগের ডিস্ক মেজ খেলার মাঠের উপর থেকে নিচের দৃশ্য, যেখানে একটি তীর ভিআর রোবটের উদ্দেশ্যপ্রণোদিত পথ দেখাচ্ছে। রোবটটিকে প্রথম সবুজ ডিস্কে পৌঁছানোর জন্য প্রারম্ভিক প্ল্যাটফর্ম থেকে এগিয়ে যেতে হবে এবং ডানদিকে ঘুরতে হবে, তারপর দুটি নীল ডিস্কে বাম দিকে ঘুরতে হবে এবং তৃতীয়টিতে থামতে হবে। একটি লাল বাক্স নির্দেশ করে যে রোবটটি তৃতীয় নীল ডিস্কে থামে।
  • এই প্রজেক্টে, VR রোবট সামনের চোখের সেন্সর সবুজ রঙ সনাক্ত না করা পর্যন্ত এগিয়ে চলে।
    • VR রোবট ডানদিকে 90 ডিগ্রী ঘোরে এবং নীল রঙ শনাক্ত না হওয়া পর্যন্ত আবার এগিয়ে যায়।
    • VR রোবটটি তারপর বাম দিকে ঘুরবে এবং সামনের চোখের সেন্সর নীল শনাক্ত না করা পর্যন্ত সামনের দিকে ড্রাইভ করবে। একবার নীল রঙ শনাক্ত হয়ে গেলে, VR রোবট আবার বাম দিকে ঘুরবে।
    • অবশেষে, VR রোবট সামনের চোখের সেন্সর নীল শনাক্ত না হওয়া পর্যন্ত এগিয়ে যায়, তারপর থামে।
  • প্যাটার্নটি লক্ষ্য করুন যে যখন সামনের চোখের সেন্সর সবুজ শনাক্ত করে, তখন VR রোবট ডানদিকে ঘুরবে। যখন ফ্রন্ট আই সেন্সর নীল শনাক্ত করে, তখন ভিআর রোবটটি এই প্রকল্পে বাম দিকে ঘুরবে।

সুইচ ব্লক ব্যবহার করা

এখন পর্যন্ত, আপনি সবুজ ডিস্ক এবং তারপর তিনটি নীল ডিস্কে ড্রাইভ করার জন্য একটি প্রকল্প তৈরি করেছেন।

নীচের ছবিতে VEXcode ব্লক ব্যবহার করে পুরো প্রকল্পটি দেখানো হয়েছে, লাল রঙে বক্স করা তিনটি নীল ডিস্কে ড্রাইভ করার জন্য ব্যবহৃত পুনরাবৃত্তিমূলক আচরণগুলি সহ।

আমরা যে VEXcode VR ব্লক প্রকল্পে কাজ করছি, সেখানে "তিনবার পুনরাবৃত্তি করুন" ব্লকটি লাল রঙে হাইলাইট করা হয়েছে। প্রকল্পটিতে লেখা আছে "শুরু হলে, সামনের দিকে গাড়ি চালাও এবং ৯০ ডিগ্রি পর্যন্ত ডানদিকে ঘুরার আগে সামনের চোখ সবুজ শনাক্ত না করা পর্যন্ত অপেক্ষা করো।" এরপর, রিপিট ব্লক ব্যবহার করে নীল ডিস্কে পৌঁছানোর জন্য কোডটি তিনবার পুনরাবৃত্তি করুন: সামনের দিকে গাড়ি চালান, ফ্রন্ট আই নীল সনাক্ত না করা পর্যন্ত অপেক্ষা করুন এবং তারপর 90 ডিগ্রি বাম দিকে ঘুরুন। পুনরাবৃত্তি লুপ বন্ধ করার পর, ড্রাইভিং বন্ধ করুন।

নিচের প্রকল্পটিতে এই একই VEXcode ব্লকগুলিকে একাধিক সুইচ ব্লকে রূপান্তরিত দেখানো হয়েছে।

কেন্দ্র প্রকল্প

এই শেষ প্রকল্পটি একই সুইচ ব্লক কমান্ডগুলিকে একটি সুইচ ব্লকের মধ্যে পাইথন কমান্ডে রূপান্তরিত করে দেখায়।

VEXcode VR ব্লক প্রকল্পটি প্রথম চারটি ডিস্কে পৌঁছানোর জন্য, কিন্তু সম্পূর্ণ রিপিট লুপটি পাইথন সুইচ ব্লকে রূপান্তরিত করে। পুরো প্রকল্পটিতে লেখা আছে "শুরু হলে", "এগিয়ে যান" এবং 90 ডিগ্রি ডানদিকে ঘুরার আগে সামনের চোখ সবুজ শনাক্ত না হওয়া পর্যন্ত অপেক্ষা করুন। এরপর, সুইচ ব্লকটি হল নিম্নলিখিত পাইথন কোড ধারণকারী: 'for repeat_count in range(3): drivetrain.drive(FORWARD) while not front_eye.detect(BLUE): wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)'। এখন, সুইচ ব্লকের বাইরে, অবশেষে "ড্রাইভিং বন্ধ করুন"।

range(3): -এ repeat_count-এর জন্য হল Python কমান্ড যা রোবটকে বলে যে পরবর্তী ইন্ডেন্টেড কোড লাইনগুলি তিনবার পুনরাবৃত্তি করা উচিত। মনে রাখবেন যে for লুপের পরে আপনার একটি কোলন (:) অন্তর্ভুক্ত করা উচিত। 

পরবর্তী কোডের লাইনগুলি হল সেই আচরণগুলি যা পুনরাবৃত্তি হবে। মনে রাখবেন যে এই আচরণগুলি 4 টি স্পেসের ডিফল্টে ইন্ডেন্ট করা হয়েছে। 

অতিরিক্তভাবে, মনে রাখবেন যে শর্তসাপেক্ষে কমান্ডটি অন্তর্ভুক্ত রয়েছে, wait (5, MSEC)। VEXcode VR-তে, for লুপের সাথে সর্বদা একটি wait কমান্ড যোগ করা হয়। wait কমান্ডের উদ্দেশ্য হল VEXcode VR যাতে প্রকল্পটি যথাযথভাবে পরিচালনা করতে পারে তা নিশ্চিত করা, কারণ VEXcode VR প্ল্যাটফর্মটি ওয়েব-ভিত্তিক। for লুপ ব্যবহার করার সময় wait কমান্ডটি কখনই মুছে ফেলা উচিত নয়, অন্যথায় আপনার প্রকল্পটি ইচ্ছাকৃতভাবে নাও চলতে পারে। 

লাইন, wait (5, MSEC) front_eye.detect(BLUE) কমান্ডের নিচে ইন্ডেন্ট করা আছে, কারণ ফ্রন্ট আই সেন্সর নীল রঙের জন্য পরীক্ষা করবে, প্রতিটি চেকের মধ্যে 5 MSEC বিরতি দেবে।

এই পাঠের বাকি অংশটি চালিয়ে যেতে পরবর্তী বোতামটি নির্বাচন করুন।