Skip to main content

പാഠം 2: അടുത്ത ഡിസ്കുകളിലേക്ക് ഡ്രൈവ് ചെയ്യുക

ബ്ലൂ ഡിസ്കുകളിലേക്ക് ഡ്രൈവ് ചെയ്യുക

മുൻ പ്രോജക്റ്റിൽ, ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ VR റോബോട്ടിനെ വലത്തേക്ക് തിരിയുന്നതാണ്, ഇത് VR റോബോട്ടിനെ മസിലിലെ ആദ്യ ചുവടുവെപ്പിലൂടെ എത്തിച്ചു. ഇനി, ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട്ലെ ആദ്യത്തെ നാല് ഡിസ്കുകളിലേക്ക് VR റോബോട്ട് ഡ്രൈവ് ചെയ്യുന്ന തരത്തിൽ ഞങ്ങൾ പ്രോജക്റ്റ് നിർമ്മിക്കുന്നത് തുടരും.

പച്ച ഡിസ്കിൽ വലത്തേക്ക് തിരിഞ്ഞ ശേഷം VR റോബോട്ട് എവിടേക്കാണ് അഭിമുഖീകരിക്കുന്നതെന്ന് നോക്കുമ്പോൾ, അടുത്ത മൂന്ന് നീല ഡിസ്കുകളിലേക്ക് നാവിഗേറ്റ് ചെയ്യാൻ, VR റോബോട്ട് ഓരോ നീല ഡിസ്കിലും മുന്നോട്ട് ഡ്രൈവ് ചെയ്ത് ഇടത്തേക്ക് തിരിയണമെന്ന് നമുക്ക് കാണാൻ കഴിയും. VR റോബോട്ട് മേജിലൂടെ മുന്നോട്ട് പോകുന്നതിനും ഒരു നീല ഡിസ്ക് കണ്ടെത്തുമ്പോൾ ഇടത്തേക്ക് തിരിയുന്നതിനും,അല്ലഎന്ന അവസ്ഥയിൽwhileലൂപ്പിന്റെ അതേ ലോജിക് നമുക്ക് ഉപയോഗിക്കാം.ഡിസ്ക് മേസ് കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച. ആദ്യത്തെ പച്ച ഡിസ്കിലെ റോബോട്ട് ആദ്യത്തെ നീല ഡിസ്കിന് നേരെ വലതുവശത്തേക്ക് അഭിമുഖമായി നിൽക്കുന്നു. റോബോട്ട് എങ്ങനെ നീങ്ങണമെന്ന് കാണിക്കാൻ കറുത്ത അമ്പടയാളങ്ങൾ കാണിച്ചിരിക്കുന്നു. ഇതിനർത്ഥം റോബോട്ട് നീല ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യും, ഇടത്തേക്ക് തിരിയും, രണ്ടാമത്തെ നീല ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യും, ഇടത്തേക്ക് തിരിയും, മൂന്നാമത്തെ നീല ഡിസ്കിൽ നിർത്തും എന്നാണ്.

  • VR റോബോട്ടിന്റെ അടുത്ത പെരുമാറ്റരീതികൾ വിവരിക്കുന്നതിന് നിലവിലുള്ള പ്രോജക്റ്റിലെ turn_for താഴെ മറ്റൊരു അഭിപ്രായം ചേർക്കുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇതുപോലെ ആയിരിക്കണം:
def main():
    # ഒന്നാം ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (പച്ച), വലത്തേക്ക് തിരിയുക
    ഫ്രണ്ട്_ഐ.ഡിറ്റെക്റ്റ് അല്ലെങ്കിലും 1:
        ഡ്രൈവ്‌ട്രെയിൻ.ഡ്രൈവ്(ഫോർവേഡ്)
        കാത്തിരിക്കുക(5, എംഎസ്ഇസി)

    ഡ്രൈവ്‌ട്രെയിൻ.ടേൺ_ഫോർ(റൈറ്റ്, 90, ഡിഗ്രി)

    # രണ്ടാമത്തെ ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), ഇടത്തേക്ക് തിരിയുക
  • പുതിയ കമന്റിന് താഴെ, കണ്ടീഷൻഉള്ള മറ്റൊരു while ലൂപ്പ് ചേർക്കുക. VR റോബോട്ട് നേരിടുന്ന അടുത്ത ഡിസ്ക് നീലയായതിനാൽ, കൺഡിഷൻ ഡിറ്റക്റ്റ്കമാൻഡിലേക്ക് സജ്ജമാക്കുക, പാരാമീറ്ററുകൾ "BLUE" ആയി സജ്ജമാക്കുക.
    # രണ്ടാമത്തെ ഡിസ്കിലേക്ക് (നീല) ഡ്രൈവ് ചെയ്യുക, front_eye.detect(BLUE) അല്ലാത്തപ്പോൾ ഇടത്തേക്ക്
    തിരിയുക:
        wait(5, MSEC)
  • while ലൂപ്പിനുള്ളിൽ, നോൺ-വെയിറ്റിംഗ് drive കമാൻഡ് ഡ്രാഗ് ചെയ്യുക അല്ലെങ്കിൽ ടൈപ്പ് ചെയ്യുക. 
    # രണ്ടാമത്തെ ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), front_eye.detect അല്ലാത്തപ്പോൾ ഇടത്തേക്ക്
    തിരിയുക(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • turn_for കമാൻഡ് ഡ്രാഗ് ചെയ്യുകയോ ടൈപ്പ് ചെയ്യുകയോ ചെയ്യുക, പാരാമീറ്ററുകൾ ഇടത്തേക്ക് 90 ഡിഗ്രി തിരിയാൻ സജ്ജമാക്കുക.
    # രണ്ടാമത്തെ ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), front_eye.detect അല്ലാത്തപ്പോൾ ഇടത്തേക്ക്
    തിരിയുക(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)
  • ഡിസ്ക് മെയ്സ് പ്ലേഗ്രൗണ്ടിലൂടെ VR റോബോട്ട് എങ്ങനെ നീങ്ങുന്നുവെന്ന് കാണാൻ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ടിലെ VR റോബോട്ടിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ചയിൽ, ഒരു കറുത്ത അമ്പടയാളം കാണാം, റോബോട്ട് ആരംഭ സ്ഥാനത്തിന് നേരെ എതിർവശത്തുള്ള പച്ച ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യും, തുടർന്ന് വലത്തേക്ക് തിരിയും, നീല ഡിസ്കിലേക്ക് മുന്നോട്ട് ഡ്രൈവ് ചെയ്യും, ഇടത്തേക്ക് തിരിഞ്ഞ് ഡ്രൈവിംഗ് നിർത്തും എന്ന് സൂചിപ്പിക്കുന്നു.
    • ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ VR റോബോട്ട് വലത്തേക്ക് തിരിയുന്നതും ഫ്രണ്ട് ഐ സെൻസർ ഒരു നീല ഡിസ്ക് കണ്ടെത്തുമ്പോൾ ഇടത്തേക്ക് തിരിയുന്നതും ശ്രദ്ധിക്കുക.
  • ഫ്രണ്ട് ഐ സെൻസർ ഉപയോഗിച്ച് ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട് ലെ രണ്ട് നീല ഡിസ്കുകളിലേക്ക് VR റോബോട്ടിനെ നയിക്കുന്നതിനുള്ള ഈ പ്രോജക്റ്റ് നിർമ്മിക്കുന്നത് തുടരുക. പ്രോജക്റ്റിലേക്ക് കമാൻഡുകൾ ചേർക്കുക, അടുത്ത രണ്ട് ഡിസ്കുകളിലേക്ക് VR റോബോട്ടിനെ നാവിഗേറ്റ് ചെയ്യുക, തുടർന്ന് നിർത്തുക. നിങ്ങളുടെ മുഴുവൻ പ്രോജക്റ്റും ഇപ്പോൾ ഇതുപോലെ ആയിരിക്കണം:
def main():
    # ഒന്നാം ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (പച്ച), വലത്തേക്ക് തിരിയുക
    front_eye.detect അല്ലാത്തപ്പോൾ(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # രണ്ടാം ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), ഇടത്തേക്ക് തിരിയുക
    front_eye.detect അല്ലാത്തപ്പോൾ(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

    # മൂന്നാം ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), ഇടത്തേക്ക് തിരിയുക
    front_eye.detect അല്ലാത്തപ്പോൾ(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)

    # നാലാമത്തെ ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), ഇടത്തേക്ക് തിരിയുക
    front_eye.detect അല്ലാത്തപ്പോൾ(BLUE):
        ഡ്രൈവ്‌ട്രെയിൻ.ഡ്രൈവ്(ഫോർവേഡ്)
        കാത്തിരിക്കുക(5, എംഎസ്‌ഇസി)

    ഡ്രൈവ്‌ട്രെയിൻ.ടേൺ_ഫോർ(ഇടത്, 90, ഡിഗ്രി)

വിആർ റോബോട്ടിന്റെ ചലനങ്ങളിലെ ഒരു പാറ്റേൺ തിരിച്ചറിയൽ

ഫ്രണ്ട് ഐ സെൻസർ ഉപയോഗിച്ച് ഡിസ്ക് മേസിൽ വിജയകരമായി നാവിഗേറ്റ് ചെയ്യുന്നതിന്റെ ലക്ഷ്യം, ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ VR റോബോട്ട് വലത്തോട്ടും ഫ്രണ്ട് ഐ സെൻസർ ഒരു നീല ഡിസ്ക് കണ്ടെത്തുമ്പോൾ ഇടത്തോട്ടും തിരിയുന്ന ഒരു സ്ഥിരതയുള്ള പാറ്റേൺ സൃഷ്ടിക്കുക എന്നതാണ്. ഇതുപോലുള്ള പാറ്റേണുകൾ തിരിച്ചറിയുന്നത് നിങ്ങളുടെ പ്രോജക്റ്റുകൾ സങ്കീർണ്ണമാകുമ്പോൾ അവ ലളിതമാക്കാൻ സഹായിക്കും.

ഡിസ്ക് മേസ് കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച. റോബോട്ട് ആരംഭ സ്ഥാനത്താണ്. അമ്പടയാളങ്ങൾ Vr റോബോട്ട് സ്വീകരിക്കുന്ന പാതയെ സൂചിപ്പിക്കുന്നു, ആദ്യത്തെ പച്ച ഡിസ്കിലേക്ക് മുന്നോട്ട് പോകുക, വലത്തേക്ക് തിരിയുക, നീല ഡിസ്കിലേക്ക് പോകുക, ഇടത്തേക്ക് തിരിയുക, രണ്ടാമത്തെ നീല ഡിസ്കിലേക്ക് പോകുക, ഇടത്തേക്ക് തിരിയുക, മൂന്നാമത്തെ നീല ഡിസ്കിൽ നിർത്തുക എന്നിവ കാണിക്കുന്നു.

നിങ്ങളുടെ അറിവിലേക്കായി

പ്രോജക്റ്റിലെ കമാൻഡുകളുടെ ക്രമത്തിലും ഒരു പാറ്റേൺ ഉണ്ടെന്ന് ശ്രദ്ധിക്കുക. പ്രോജക്റ്റിൽ മൂന്ന് തവണ ആവർത്തിക്കുന്ന ഒരു കൂട്ടം കമാൻഡുകൾ (നീല ഡിസ്കുകൾക്ക്) ഉണ്ട്. ലൂപ്പിന് എന്ന ലൂപ്പ് ഉപയോഗിച്ച് കോഡിന്റെ ഈ ഭാഗം ചുരുക്കാൻ കഴിയും. ഇവിടെ കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റ് നീല ഡിസ്കുകളുമായി ബന്ധപ്പെട്ട ആ മൂന്ന് ലൂപ്പുകളും സംയോജിപ്പിച്ച് ലൂപ്പിന് ഒരൊറ്റ ആക്കുന്നു.

def main():
    # ആദ്യത്തെ ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക (പച്ച), വലത്തേക്ക് തിരിക്കുക
    front_eye.detect അല്ലാത്തപ്പോൾ(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # അടുത്ത 3 ഡിസ്കുകളിലേക്ക് ഡ്രൈവ് ചെയ്യുക (നീല), ശ്രേണിയിലെ മൂല്യത്തിനായി ഇടത്തേക്ക്
    തിരിയുക (3): 
        while not front_eye.detect(BLUE):
            drivetrain.drive(FORWARD)
            wait(5, MSEC)

        drivetrain.turn_for(LEFT, 90, DEGREES)

ലൂപ്പിന്ലൂപ്പ് ഉപയോഗിക്കുന്നത് നിങ്ങളുടെ പ്രോജക്റ്റിനെ ലളിതവും വായിക്കാൻ എളുപ്പവുമാക്കും, എന്നാൽ ഒരു ലൂപ്പിനുള്ളിൽ ആവർത്തിച്ചുള്ള കമാൻഡുകൾ അടങ്ങിയിരിക്കും.

  • ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട് തുറന്നിട്ടില്ലെങ്കിൽ അത് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
  • ഡിസ്ക് മെയ്സ് പ്ലേഗ്രൗണ്ട്ൽ, VR റോബോട്ട് നാല് ഡിസ്കുകളിലേക്ക് നാവിഗേറ്റ് ചെയ്യുന്നത് കാണുക.

    ഡിസ്ക് മേസ് കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച. റോബോട്ട് ആരംഭ സ്ഥാനത്താണ്. ആദ്യത്തെ പച്ച ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക, വലത്തേക്ക് തിരിയുക, നീല ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക, ഇടത്തേക്ക് തിരിയുക, രണ്ടാമത്തെ നീല ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക, ഇടത്തേക്ക് തിരിയുക, മൂന്നാമത്തെ നീല ഡിസ്കിൽ നിർത്തുക എന്നിവ കാണിക്കുന്ന VR റോബോട്ട് എടുക്കുന്ന പാതയാണ് അമ്പടയാളങ്ങൾ സൂചിപ്പിക്കുന്നത്. അവസാനത്തെ നീല ഡിസ്കിൽ അവസാന സ്ഥാനം സൂചിപ്പിക്കുന്ന ഒരു ചുവന്ന ബോക്സ് ഉണ്ട്.
  • ഈ പ്രോജക്റ്റിൽ, ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ട് മുന്നോട്ട് നീങ്ങുന്നു.
    • VR റോബോട്ട് 90 ഡിഗ്രി വലത്തേക്ക് തിരിഞ്ഞ് നീല നിറം തിരിച്ചറിയുന്നതുവരെ വീണ്ടും മുന്നോട്ട് ഓടുന്നു.
    • തുടർന്ന് വിആർ റോബോട്ട് ഇടത്തേക്ക് തിരിഞ്ഞ് ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം കണ്ടെത്തുന്നതുവരെ മുന്നോട്ട് നീങ്ങുന്നു. നീല നിറം കണ്ടെത്തിക്കഴിഞ്ഞാൽ, വിആർ റോബോട്ട് വീണ്ടും ഇടത്തേക്ക് തിരിയുന്നു.
    • ഒടുവിൽ, ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ട് മുന്നോട്ട് നീങ്ങുന്നു, തുടർന്ന് നിർത്തുന്നു.
  • ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തുമ്പോൾ, VR റോബോട്ട് വലത്തേക്ക് തിരിയുന്ന പാറ്റേൺ ശ്രദ്ധിക്കുക. ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം കണ്ടെത്തുമ്പോൾ, ഈ പ്രോജക്റ്റിൽ വിആർ റോബോട്ട് ഇടത്തേക്ക് തിരിയുന്നു.

ഈ പാഠത്തിന്റെ ബാക്കി ഭാഗം തുടരാൻ അടുത്തത് ബട്ടൺ തിരഞ്ഞെടുക്കുക.