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

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

വിആർ റോബോട്ടിന് പ്ലേഗ്രൗണ്ടിന്റെ അരികിലേക്ക് അടുത്താണോ എന്ന് നിർണ്ണയിക്കാൻ മറ്റൊരു സെൻസർ ആവശ്യമാണ്. ചുവന്ന ബോർഡർ കണ്ടെത്തുന്നതുവരെ മുന്നോട്ടും തിരിയുന്നതുമായ പെരുമാറ്റങ്ങൾ ആവർത്തിക്കേണ്ടതുണ്ട്. അങ്ങനെ, ചുവന്ന ബോർഡർ കണ്ടെത്തുന്നതിനുള്ള വ്യവസ്ഥ പാലിക്കുന്നതുവരെ മുന്നോട്ട് പോകുന്നതിനും തിരിയുന്നതിനുമുള്ള പെരുമാറ്റങ്ങൾ ആവർത്തിക്കുന്നതിന്, [Forever] ബ്ലോക്കിന് പകരം [Repeat until] ബ്ലോക്ക് സ്ഥാപിക്കാൻ കഴിയും. പ്ലേഗ്രൗണ്ടിന് ചുറ്റുമുള്ള ചുവന്ന ബോർഡർ കണ്ടെത്തി, വിആർ റോബോട്ട് പ്ലേഗ്രൗണ്ടിന്റെ അരികിലേക്ക് അടുത്താണോ എന്ന് നിർണ്ണയിക്കാൻ ഡൗൺ ഐ സെൻസർ ഉപയോഗിക്കാം.

- മുൻ പാഠത്തിൽ നിന്ന് Unit9Lesson2 പ്രോജക്റ്റ് ലോഡ് ചെയ്യുക.

- പ്രോജക്റ്റിന്റെ പേര് Unit9Lesson3എന്ന് മാറ്റുക.

- ഡൗൺ ഐ സെൻസർ തുടർച്ചയായി പരിശോധിക്കാൻ ഒരു ബ്ലോക്ക് ആവശ്യമാണ്. ഡൗൺ ഐ സെൻസർ ചുവപ്പ് നിറം കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ടിന് ഈ പെരുമാറ്റങ്ങൾ ആവർത്തിക്കേണ്ടി വരും. ആദ്യം, [Forever] ബ്ലോക്ക് നീക്കം ചെയ്യുക.

- ഒരു [Repeat until] ബ്ലോക്ക് ചേർക്കുക.

- [Repeat until] ബ്ലോക്കിനുള്ളിൽ ഒരു <Color sensing> ബ്ലോക്ക് ചേർത്ത് പാരാമീറ്ററുകൾ 'DownEye' 'red' ഡിറ്റക്ട് ചെയ്യുന്നതായി സജ്ജമാക്കുക.

ഈ പ്രോജക്റ്റിൽ [Wait until] ബ്ലോക്കിന് പകരം [Repeat until] ബ്ലോക്ക് ഉപയോഗിക്കുന്നു. കാരണം, [Wait until] ബ്ലോക്ക് എന്നത് ഒരു വെയിറ്റിംഗ് ബ്ലോക്കാണ്, അത് വ്യവസ്ഥ പാലിക്കുന്നതുവരെ പ്രോജക്റ്റിന്റെ ഒഴുക്ക് താൽക്കാലികമായി നിർത്തും. ഒരു [Wait until] ബ്ലോക്ക് ഉപയോഗിക്കുകയാണെങ്കിൽ, [Wait until] ന്റെ വ്യവസ്ഥ പാലിക്കുന്നതുവരെ [If then else] ബ്ലോക്ക് എക്സിക്യൂട്ട് ചെയ്യില്ല, കൂടാതെ [If then else] ബ്ലോക്ക് ഒരിക്കൽ മാത്രമേ എക്സിക്യൂട്ട് ചെയ്യൂ.

[Repeat until] ബ്ലോക്ക് ഉപയോഗിക്കുന്നതിലൂടെ, [If then else] അവസ്ഥ നിരന്തരം പരിശോധിച്ച് നടപ്പിലാക്കുന്നു.

- [Repeat until] ബ്ലോക്ക് ഉപയോഗിക്കുന്നതിന്റെ ഉദ്ദേശ്യം രേഖപ്പെടുത്താൻ ഒരു അഭിപ്രായം ചേർക്കുക.

- ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
-
ഈ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, VR റോബോട്ട് കണ്ടെത്തിയ ഒരു വസ്തുവിന് നേരെ ഓടിച്ചെല്ലുകയും അല്ലാത്തപക്ഷം വലത്തേക്ക് തിരിയുകയും ചെയ്യും. എന്നിരുന്നാലും, ഡൗൺ ഐ സെൻസർ ചുവന്ന ബോർഡർ തിരയുന്നുണ്ടെങ്കിലും, ചുവപ്പ് കണ്ടെത്തിയാൽ എന്തുചെയ്യണമെന്ന് VR റോബോട്ടിനോട് പറയുന്നില്ല, അതിനാൽ അത് ഡ്രൈവിംഗ് തുടരുകയും ഒടുവിൽ പ്ലേഗ്രൗണ്ടിൽ നിന്ന് വീഴുകയും ചെയ്യുന്നു.

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