Skip to main content

പാഠം 3: ഡൗൺ ഐ സെൻസർ ചേർക്കുന്നു

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

 

നിലവിലുള്ളതുപോലെ, മുന്നോട്ടും തിരിയുന്നതുമായ സ്വഭാവരീതികൾ പ്രോജക്റ്റ് എന്നെന്നേക്കുമായി ആവർത്തിക്കുന്നു. എന്നിരുന്നാലും, കളിസ്ഥലത്തിന് ചുറ്റുമുള്ള ചുവന്ന ബോർഡർ പരിശോധിക്കാൻ ഒരു വ്യവസ്ഥയും ഇല്ല. അങ്ങനെ, മുന്നോട്ട് വാഹനമോടിക്കുമ്പോൾ വിആർ റോബോട്ട് കളിസ്ഥലത്ത് നിന്ന് വീഴാം.

ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ ഒരു കോണീയ കാഴ്ച, VR റോബോട്ട് ഒരു കോട്ടയുടെ ബ്ലോക്ക് തള്ളുന്നത് കാണിക്കുന്നു. കളിസ്ഥലത്തിന്റെ അരികിൽ നിന്ന് കാസിൽ ബ്ലോക്ക് തള്ളിയിടുന്നതിനു മുമ്പ് വിആർ റോബോട്ട് നിന്നു.

ഡൗൺ ഐ സെൻസർ ചേർക്കുന്നു

വിആർ റോബോട്ടിന് പ്ലേഗ്രൗണ്ടിന്റെ അരികിലേക്ക് അടുത്താണോ എന്ന് നിർണ്ണയിക്കാൻ മറ്റൊരു സെൻസർ ആവശ്യമാണ്. പ്ലേഗ്രൗണ്ടിന് ചുറ്റുമുള്ള ചുവന്ന ബോർഡർ കണ്ടെത്തി, വിആർ റോബോട്ട് പ്ലേഗ്രൗണ്ടിന്റെ അരികിലേക്ക് അടുത്താണോ എന്ന് നിർണ്ണയിക്കാൻ ഡൗൺ ഐ സെൻസർ ഉപയോഗിക്കാം.VR റോബോട്ടിന്റെ ഡൗൺ ഐ സെൻസർ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന, 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എന്ന് മാറ്റുക.
    പ്രോജക്റ്റിന്റെ പേരുകൾ കാണിക്കുന്ന VEXcode VR ടൂൾ ബാറിൽ ഒരു ചുവന്ന ബോക്സ് ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു. പ്രോജക്റ്റിന്റെ പേര് യൂണിറ്റ് 9 പാഠം 3 എന്നാണ്.
  • ഡൗൺ ഐ സെൻസറിനൊപ്പം 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 റോബോട്ടിനോട് പറയുന്നില്ല, അതിനാൽ അത് ഡ്രൈവിംഗ് തുടരുകയും ഒടുവിൽ പ്ലേഗ്രൗണ്ടിൽ നിന്ന് വീഴുകയും ചെയ്യുന്നു.

    ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച, VR റോബോട്ട് കളിസ്ഥലത്തിന്റെ അരികിൽ നിന്ന് ഒരു കോട്ടയെ തള്ളിയിടുന്നത് കാണിക്കുന്നു, പക്ഷേ കളിസ്ഥലത്ത് നിന്ന് വീഴുന്നില്ല.

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

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