Skip to main content

পাঠ ২: 'A' অক্ষরের দিকে গাড়ি চালান

দেয়াল এড়াতে দূরত্ব সেন্সর ব্যবহার করা 

এখন যেহেতু আপনি তুলনামূলক অপারেটর কী এবং কীভাবে সেগুলি একটি প্রকল্পে ব্যবহার করা যেতে পারে সে সম্পর্কে শিখেছেন, আপনিWall Maze Playground-এ VR রোবটটিকে 'A' অক্ষরে চালানোর জন্য সেই শিক্ষাটি প্রয়োগ করবেন। এই প্রকল্পটি দূরত্ব সেন্সর ব্যবহার করে ওয়াল মেজ প্লেগ্রাউন্ড এ দেয়ালের সাথে ধাক্কা না খেয়ে নেভিগেট করবে।

প্রকল্পের নাম এবং সংরক্ষণ করুন

  • একটি নতুন টেক্সট প্রজেক্ট শুরু করুন এবং অনুরোধ করা হলে ওয়াল মেজ প্লেগ্রাউন্ডনির্বাচন করুন। ওয়াল মেজ খেলার মাঠের নির্বাচনের টাইল।
  • প্রকল্পটির নাম দিন Unit5 Lesson2
    VEXcode VR টুলবার এবং কেন্দ্রে প্রকল্পের নামের ডায়ালগটিতে ইউনিট 5 পাঠ 2 লেখা আছে।
  • whileলুপ টেনে আনুন, টাইপ করুন, অথবা কপি করুন এবং নতুন টেক্সট প্রজেক্ট টেমপ্লেটের অংশ হিসেবে উপস্থিত Drivetrain কমান্ডটি সরিয়ে দিন, যাতে আপনার প্রজেক্টটি এইরকম দেখায়। লক্ষ্য করুন কমান্ডটি while লুপ তৈরি করবে এবং এর ভিতরে একটি wait কমান্ড থাকবে। wait কমান্ডটি সরাবেন না, এটি নিশ্চিত করবে যে VR রোবট প্রকল্পটি সঠিকভাবে সম্পাদন করছে।

    def main():
        while শর্ত:
            অপেক্ষা (5, MSEC)
  • লুপের ভেতরে non-waiting drive কমান্ডটি টেনে আনুন, টাইপ করুন অথবা কপি করুন, যাতে আপনার প্রকল্পটি এরকম দেখায়।

    def main():
        while শর্ত:
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
    • ইন্ডেন্টেশনটি সঠিক কিনা এবং ড্রাইভ কমান্ডটি waitকমান্ডের সাথে সারিবদ্ধ কিনা তা পরীক্ষা করুন।

get_distanceফাংশন এবং greater than অপারেটর যোগ করুন।

  • while লুপের 'condition'-এ get_distanceকমান্ডটি টেনে আনুন অথবা টাইপ করুন, যাতে আপনার প্রকল্পটি এরকম দেখায়। "greater than" অপারেটর এবং দ্বিতীয় অপারেন্ডটি '50' টাইপ করুন। 
  • def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
  • while লুপের বাইরে একটি stop কমান্ড যোগ করুন, যাতে আপনার প্রকল্পটি এইরকম দেখায়। while লুপের পরে স্টপ কমান্ডের প্রয়োজন কারণ VR রোবটটি থামার নির্দেশ না দেওয়া পর্যন্ত গাড়ি চালাতে থাকবে।

    def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
            
        drivetrain.stop()
  • যদি প্লেগ্রাউন্ড উইন্ডোটি ইতিমধ্যে খোলা না থাকে তবে এটি খুলুন, নিশ্চিত করুন যেওয়াল মেজ প্লেগ্রাউন্ডখোলে এবং প্রকল্পটি চালান।
  • ভিআর রোবটকে এগিয়ে যেতে দেখুন যতক্ষণ না দূরত্ব সেন্সর রিপোর্ট করে যে ভিআর রোবট এবং দেয়ালের মধ্যে দূরত্ব ৫০ মিলিমিটার (মিমি) এর চেয়ে নয়, বেশি।শুরুর স্থানের বিপরীতে প্রথম দেয়ালের সামনে থামিয়ে থাকা ভিআর রোবট সহ ওয়াল মেজ খেলার মাঠের উপর থেকে নীচের দৃশ্য।
  • VR রোবটটিকে আবার শুরুর অবস্থানে নিয়ে যেতে খেলার মাঠ রিসেট করুন।

'A' অক্ষরে ড্রাইভ করার জন্য প্রকল্পটি চালিয়ে যান

while লুপের শর্ত হিসেবে get_distanceকমান্ড সহ (>) অপারেটর ব্যবহার করলে VR রোবটকে এগিয়ে যেতে নির্দেশ দেওয়া হয় যতক্ষণ পর্যন্ত VR রোবট এবং দেয়ালের মধ্যে দূরত্ব 50 মিলিমিটার (মিমি) এর বেশি হয়। একবার দূরত্ব সেন্সর VR রোবট থেকে দেয়ালের দূরত্ব ৫০ মিলিমিটারের বেশি না হলে, VR রোবটটি গাড়ি চালানো বন্ধ করে দেবে। 'A' অক্ষরটি চালিয়ে যেতে, VR রোবটটি দেয়ালের কাছে গেলে তাকে ঘুরতে হবে। 

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

  • stopকমান্ডটি turn_forকমান্ড দিয়ে প্রতিস্থাপন করুন, যাতে আপনার প্রকল্পটি এইরকম দেখায়। turn_forকমান্ডটি প্রয়োজন কারণ একবার দূরত্ব সেন্সরটি দেয়ালের ৫০ মিলিমিটার (মিমি) মধ্যে চলে গেলে, VR রোবটটি 'A' অক্ষরের দিকে বাম দিকে ঘুরবে।

    • মোড়ের প্যারামিটারগুলি "LEFT, 90, DEGREES" এ সেট করুন।
    def main():
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(LEFT, 90, DEGREES)
    • turn_for কমান্ডের নিচে ড্রাইভ কমান্ড সহ আরও একটি whileলুপ যোগ করুন। প্রথম অপারেন্ড হিসেবে get_distanceকমান্ড, দ্বিতীয় অপারেন্ড হিসেবে বৃহত্তর দ্যান অপারেটর এবং ধ্রুবক '50' ব্যবহার করে শর্ত সেট করুন।
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    • অবশেষে, দ্বিতীয় while লুপের নীচে নিম্নলিখিত কমান্ডগুলি যোগ করুন যাতে VR রোবট 'A' অক্ষরের পিছনের শেষ প্রাচীরটি সনাক্ত করে গাড়ি চালানো বন্ধ করে। নিশ্চিত করুন যে turn_for কমান্ড এবং stop কমান্ড তাদের নিজ নিজ এবং লুপের বাইরে রয়েছে।
        drivetrain.turn_for(LEFT, 90, DEGREES)
    
        while front_distance.get_distance(MM) > 50:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.stop()
    • ওয়াল মেজ প্লেগ্রাউন্ড চালু করুন যদি এটি ইতিমধ্যে খোলা না থাকে এবং প্রকল্পটি চালান।
    • ওয়াল ধাঁধাঁর শুরু থেকে 'A' অক্ষর পর্যন্ত VR রোবট ড্রাইভ দেখুন এবং তারপর থামুন।

    খেলার মাঠের মাঝখানে নীচের দিকে শুরুর স্থানে ভিআর রোবট সহ ওয়াল মেজ খেলার মাঠের উপর থেকে নীচের দৃশ্য। A অক্ষরটি রোবটের সরাসরি বাম দিকে, একটি ছোট দেয়াল দ্বারা পৃথক করা হয়েছে।

    • লক্ষ্য করুন যে VR রোবটটি 'A' অক্ষরের দিকে যাওয়ার সময় কোনও দেয়ালে ধাক্কা খায় না। যখন দূরত্ব সেন্সরের মান রিপোর্ট করে যে VR রোবটটি দেয়াল থেকে ৫০ মিলিমিটার (মিমি) এর বেশি দূরে নয়, তখন VR রোবটটিকে প্রকল্পের মধ্যে ঘুরতে বা থামতে নির্দেশ দেওয়া হয়।

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