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

ഡൗൺ ഐ സെൻസർ ചേർക്കുന്നു
വിആർ റോബോട്ടിന് പ്ലേഗ്രൗണ്ടിന്റെ അരികിലേക്ക് അടുത്താണോ എന്ന് നിർണ്ണയിക്കാൻ മറ്റൊരു സെൻസർ ആവശ്യമാണ്. പ്ലേഗ്രൗണ്ടിന് ചുറ്റുമുള്ള ചുവന്ന ബോർഡർ കണ്ടെത്തി, വിആർ റോബോട്ട് പ്ലേഗ്രൗണ്ടിന്റെ അരികിലേക്ക് അടുത്താണോ എന്ന് നിർണ്ണയിക്കാൻ ഡൗൺ ഐ സെൻസർ ഉപയോഗിക്കാം.
ഡൗൺ ഐ സെൻസർ ചുവന്ന ബോർഡർ കണ്ടെത്തിയതായി റിപ്പോർട്ട് ചെയ്യുന്നതുവരെ മുന്നോട്ട് വാഹനമോടിക്കുന്നതിന്റെയും തിരിയുന്നതിന്റെയും പെരുമാറ്റങ്ങൾ ആവർത്തിക്കേണ്ടതുണ്ട്. അങ്ങനെ, അനന്തമായ while ലൂപ്പിനെ whileലൂപ്പ് ഉപയോഗിച്ച് അല്ല കണ്ടീഷൻ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാൻ കഴിയും, അങ്ങനെ ചുവന്ന ബോർഡർ കണ്ടെത്തുന്നതിനുള്ള വ്യവസ്ഥ പാലിക്കുന്നതുവരെ മുന്നോട്ട് പോകുന്നതിനും തിരിയുന്നതിനുമുള്ള പെരുമാറ്റങ്ങൾ ആവർത്തിക്കാം.
-
മുൻ പാഠത്തിൽ നിന്ന് Unit9Lesson2 പ്രോജക്റ്റ് ലോഡ് ചെയ്യുക.
def main(): while True: # ഡിസ്റ്റൻസ് സെൻസർ ഒരു കാസിൽ കണ്ടെത്തുന്നുണ്ടോ? front_distance.found_object(): ആണെങ്കിൽ # Distance Sensor drivetrain.drive(FORWARD) കണ്ടെത്തിയ ക്രാഷ് കാസിൽ else: # Distance Sensor drivetrain.turn(RIGHT) ഉപയോഗിച്ച് ഒരു കാസിൽ കണ്ടെത്താൻ തിരിയുക wait(5, MSEC) - പ്രോജക്റ്റിന്റെ പേര് Unit9Lesson3എന്ന് മാറ്റുക.

-
ഡൗൺ ഐ സെൻസറിനൊപ്പം whileലൂപ്പ് എങ്ങനെ ഉപയോഗിക്കുമെന്ന് ശ്രദ്ധിക്കാൻ ഒരു കമന്റ് ചേർക്കുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇപ്പോൾ ഇതുപോലെ ആയിരിക്കണം:
def main(): # ചുവന്ന ബോർഡർ കണ്ടെത്താത്ത സമയത്ത് കെട്ടിടം തിരയുക അതേസമയം ശരി: # ദൂര സെൻസർ ഒരു കോട്ട കണ്ടെത്തുന്നുണ്ടോ? front_distance.found_object(): ആണെങ്കിൽ # Distance Sensor drivetrain.drive(FORWARD) കണ്ടെത്തിയ ക്രാഷ് കാസിൽ else: # Distance Sensor drivetrain.turn(RIGHT) ഉപയോഗിച്ച് ഒരു കാസിൽ കണ്ടെത്താൻ തിരിയുക wait(5, MSEC) -
ഡൗൺ ഐ സെൻസർ തുടർച്ചയായി പരിശോധിക്കാൻ ഒരു കമാൻഡ് ആവശ്യമാണ്. VR റോബോട്ടിന് ഈആവർത്തിക്കേണ്ടി വരും അതേസമയം ഡൗൺ ഐ സെൻസർഅല്ല നിറം കണ്ടെത്തുന്നു. കൺഡിഷന്റെ മുന്നിൽ അല്ലഎന്ന കീവേഡ് ചേർത്ത് while ലൂപ്പ് കൺഡിഷൻ മാറ്റുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇപ്പോൾ ഇതുപോലെ ആയിരിക്കണം:
def main(): # ചുവന്ന ബോർഡർ കണ്ടെത്താത്ത സമയത്ത് കെട്ടിടം തിരയുക ശരിയല്ലെങ്കിലും: # ദൂര സെൻസർ ഒരു കോട്ട കണ്ടെത്തുന്നുണ്ടോ? front_distance.found_object(): ആണെങ്കിൽ # Distance Sensor drivetrain.drive(FORWARD) കണ്ടെത്തിയ ക്രാഷ് കാസിൽ else: # Distance Sensor drivetrain.turn(RIGHT) ഉപയോഗിച്ച് ഒരു കാസിൽ കണ്ടെത്താൻ തിരിയുക wait(5, MSEC) -
പിന്നെ, കണ്ടീഷൻ True എന്നതിൽ നിന്ന് down_eye.detectകമാൻഡിലേക്ക് മാറ്റുക. പാരാമീറ്റർ 'RED' ആയി സജ്ജമാക്കുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇപ്പോൾ ഇതുപോലെ ആയിരിക്കണം:
def main(): # ചുവന്ന ബോർഡർ കണ്ടെത്താത്ത സമയത്ത് കെട്ടിടം തിരയുക down_eye.detect(RED) അല്ലാത്തപ്പോൾ: # ഡിസ്റ്റൻസ് സെൻസർ ഒരു കാസിൽ കണ്ടെത്തുന്നുണ്ടോ? front_distance.found_object(): ആണെങ്കിൽ # Distance Sensor drivetrain.drive(FORWARD) കണ്ടെത്തിയ ക്രാഷ് കാസിൽ else: # Distance Sensor drivetrain.turn(RIGHT) ഉപയോഗിച്ച് ഒരു കാസിൽ കണ്ടെത്താൻ തിരിയുക wait(5, MSEC) - ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട് തുറന്നിട്ടില്ലെങ്കിൽ അത് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക. നിങ്ങൾ ഉദ്ദേശിച്ചതുപോലെയാണോ VR റോബോട്ട് പ്രവർത്തിക്കുന്നത്?
-
ഈ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, VR റോബോട്ട് കണ്ടെത്തിയ ഒരു വസ്തുവിന് നേരെ ഓടിച്ചെല്ലും, അല്ലാത്തപക്ഷം വലത്തേക്ക് തിരിയും. എന്നിരുന്നാലും, ഡൗൺ ഐ സെൻസർ ചുവന്ന ബോർഡർ തിരയുന്നുണ്ടെങ്കിലും, ചുവപ്പ് കണ്ടെത്തിയാൽ എന്തുചെയ്യണമെന്ന് VR റോബോട്ടിനോട് പറയുന്നില്ല, അതിനാൽ അത് ഡ്രൈവിംഗ് തുടരുകയും ഒടുവിൽ പ്ലേഗ്രൗണ്ടിൽ നിന്ന് വീഴുകയും ചെയ്യുന്നു.

whileലൂപ്പിന്റെ അവസ്ഥ പാലിച്ചുകഴിഞ്ഞാൽ, പ്രോജക്റ്റ് ഫ്ലോ while ലൂപ്പിന് പുറത്ത് എക്സിക്യൂട്ട് ചെയ്യും.
ഈ പാഠത്തിന്റെ ബാക്കി ഭാഗം തുടരാൻ അടുത്തത് ബട്ടൺ തിരഞ്ഞെടുക്കുക.