Skip to main content

പാഠം 3: ഒന്നിലധികം സെൻസർ ഇൻപുട്ട്

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

റോബോട്ടിലെ ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച് കോട്ടകൾ കണ്ടെത്തുകയും പിന്നീട് അവയെ ക്രാഷ് ചെയ്യാൻ ഡ്രൈവ് ചെയ്യുകയും ചെയ്യുന്ന മുൻ പാഠത്തിലെ VEXcode VR പ്രോജക്റ്റ് ഇടതുവശത്ത് കാണിച്ചിരിക്കുന്നു. വലതുവശത്ത് പ്ലേഗ്രൗണ്ട് വിൻഡോ ഉണ്ട്, അതിൽ നിരവധി കോട്ടകൾ തകർന്നു, പക്ഷേ വിആർ റോബോട്ട് പ്ലേഗ്രൗണ്ടിന്റെ അരികിൽ നിന്ന് ഓടിക്കാൻ പോകുന്നു.

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

ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ടിലെ വിആർ റോബോട്ടിന്റെ ഒരു സൈഡ് വ്യൂ, ഒരു കോട്ടയുടെ ഒരു ഭാഗം വശത്ത് നിന്ന് തള്ളി അരികിൽ നിന്ന് തന്നെ ഓടിക്കാൻ പോകുന്നു.

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

ഒരു VEXcode VR കളർ സെൻസിംഗ് ബ്ലോക്ക് Down Eye ചുവപ്പ് തിരിച്ചറിയുന്നുണ്ടോ എന്ന് വായിക്കുന്നു?.
  • മുൻ പാഠത്തിൽ നിന്ന് Unit9Lesson2 പ്രോജക്റ്റ് ലോഡ് ചെയ്യുക.
യൂണിറ്റ് 9 പാഠം 2 പ്രോജക്റ്റ്. പ്രോജക്റ്റ് ആരംഭിക്കുന്നത് ഒരു 'When started' ബ്ലോക്കിലും ഒരു 'ഫോർഎവർ ബ്ലോക്ക്' ഘടിപ്പിച്ചിരിക്കുന്നതുമാണ്. ഫോർഎവർ ബ്ലോക്കിനുള്ളിൽ ഫ്രണ്ട് ഡിസ്റ്റൻസ് കണ്ടെത്തിയ ഒരു ഒബ്ജക്റ്റ് പാരാമീറ്ററായി ഉള്ള ഒരു If then ബ്ലോക്ക് ഉണ്ട്. "ഡിസ്റ്റൻസ് സെൻസറും ഒരു ഡ്രൈവ് ഫോർവേഡ് ബ്ലോക്കും ഉപയോഗിച്ച് കണ്ടെത്തിയ കെട്ടിടത്തിന് മുകളിലൂടെ നാക്ക് ചെയ്യുക" എന്ന് വായിക്കുന്ന ഒരു കമന്റ് If then ബ്രാഞ്ചിലുണ്ട്. മറ്റേ ബ്രാഞ്ചിൽ "ദൂര സെൻസറും വലത്തേക്ക് തിരിയുന്ന ബ്ലോക്കും ഉപയോഗിച്ച് ഒരു കെട്ടിടം കണ്ടെത്താൻ തിരിയുക" എന്നൊരു കമന്റ് ഉണ്ട്.
  • പ്രോജക്റ്റിന്റെ പേര് Unit9Lesson3എന്ന് മാറ്റുക.
VEXcode VR ടൂൾബാറിന്റെ മധ്യഭാഗത്തുള്ള പ്രോജക്റ്റ് നെയിം ബോക്സ്, Select Playground ബട്ടണിന്റെ ഇടതുവശത്ത് ഒരു ചുവന്ന ബോക്സ് ഉപയോഗിച്ച് ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു. പ്രോജക്റ്റിന്റെ പേര് യൂണിറ്റ് 9 പാഠം 3 എന്നാണ്.
  • ഡൗൺ ഐ സെൻസർ തുടർച്ചയായി പരിശോധിക്കാൻ ഒരു ബ്ലോക്ക് ആവശ്യമാണ്. ഡൗൺ ഐ സെൻസർ ചുവപ്പ് നിറം കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ടിന് ഈ പെരുമാറ്റങ്ങൾ ആവർത്തിക്കേണ്ടി വരും. ആദ്യം, [Forever] ബ്ലോക്ക് നീക്കം ചെയ്യുക.
പ്രോജക്റ്റിൽ നിന്ന് ഫോറെവർ ബ്ലോക്ക് നീക്കം ചെയ്യുന്നതിന്റെ ഒരു അവലോകനം. പുതിയ പ്രോജക്റ്റ്, 'When started' ബ്ലോക്കിൽ നിന്ന് 'If then else' ബ്ലോക്കിലേക്ക് നീങ്ങുന്നു, Forever ലൂപ്പ് ഇല്ലാതെ.
  • ഒരു [Repeat until] ബ്ലോക്ക് ചേർക്കുക.
If then else ബ്ലോക്കിന്റെ മുഴുവൻ ഭാഗത്തും Repeat until ബ്ലോക്ക് ചേർക്കുന്നതിന്റെ ഒരു അവലോകനം. പുതിയ പ്രോജക്റ്റ് ആരംഭിക്കുന്നത് When Started ബ്ലോക്കിലാണ്, തുടർന്ന് പാരാമീറ്റർ തുറന്നിരിക്കുന്ന ഒരു Repeat until ബ്ലോക്ക് ഉണ്ടായിരിക്കും. Repeat until ബ്ലോക്കിന്റെ C യിൽ If then else ബ്ലോക്ക് ആണ്.
  • [Repeat until] ബ്ലോക്കിനുള്ളിൽ ഒരു <Color sensing> ബ്ലോക്ക് ചേർത്ത് പാരാമീറ്ററുകൾ 'DownEye' 'red' ഡിറ്റക്ട് ചെയ്യുന്നതായി സജ്ജമാക്കുക.
Repeat until ബ്ലോക്കിന്റെ പാരാമീറ്ററായി Down Eye Detects എന്ന റെഡ് സെറ്റും ഇതേ പ്രോജക്റ്റിൽ തന്നെ.

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

ഒരു Repeat until ലൂപ്പിന് പകരം ഒരു Wait until ബ്ലോക്ക് ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, പ്രോജക്റ്റ് ഫ്ലോയുടെ ഒരു ഡയഗ്രം. കണ്ടീഷൻ ശരിയാണെന്ന് റിപ്പോർട്ട് ചെയ്യുന്നതുവരെ പ്രോജക്റ്റ് ബ്ലോക്ക് വരെ കാത്തിരിക്കും, അതിനുശേഷം മാത്രമേ If then else ബ്ലോക്കിലേക്ക് നീങ്ങുകയുള്ളൂ.

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

Repeat Until ബ്ലോക്കോടുകൂടിയ പ്രോജക്റ്റ് ഫ്ലോയുടെ ഒരു ഡയഗ്രം, If then else ബ്ലോക്കിന്റെ അവസ്ഥ തുടർച്ചയായി പരിശോധിച്ച്, ഒബ്ജക്റ്റ് കണ്ടെത്തിയോ (True) കണ്ടെത്തിയോ (false) കണ്ടെത്തിയില്ലേ എന്നതിനെ അടിസ്ഥാനമാക്കി നടപ്പിലാക്കുന്നുവെന്ന് കാണിക്കുന്നു.
  • [Repeat until] ബ്ലോക്ക് ഉപയോഗിക്കുന്നതിന്റെ ഉദ്ദേശ്യം രേഖപ്പെടുത്താൻ ഒരു അഭിപ്രായം ചേർക്കുക.
മുമ്പ് നിർമ്മിച്ച അതേ പ്രോജക്റ്റ്, 'When started' ബ്ലോക്കിനും 'Repeet until' ബ്ലോക്കിനും ഇടയിൽ ഒരു കമന്റ് ബ്ലോക്ക് ചേർത്തിരിക്കുന്നു. 'ചുവന്ന ബോർഡർ കണ്ടെത്തുന്നതുവരെ കെട്ടിടങ്ങൾക്കായി തിരയുക' എന്നാണ് കമന്റ്.
  • ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
  • ഈ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, VR റോബോട്ട് കണ്ടെത്തിയ ഒരു വസ്തുവിന് നേരെ ഓടിച്ചെല്ലുകയും അല്ലാത്തപക്ഷം വലത്തേക്ക് തിരിയുകയും ചെയ്യും. എന്നിരുന്നാലും, ഡൗൺ ഐ സെൻസർ ചുവന്ന ബോർഡർ തിരയുന്നുണ്ടെങ്കിലും, ചുവപ്പ് കണ്ടെത്തിയാൽ എന്തുചെയ്യണമെന്ന് VR റോബോട്ടിനോട് പറയുന്നില്ല, അതിനാൽ അത് ഡ്രൈവിംഗ് തുടരുകയും ഒടുവിൽ പ്ലേഗ്രൗണ്ടിൽ നിന്ന് വീഴുകയും ചെയ്യുന്നു.

    പ്രോജക്റ്റ് നടന്നുകൊണ്ടിരിക്കുമ്പോൾ ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട് വിൻഡോയുടെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച, നിരവധി കോട്ടകൾ തകർന്നു വീഴുകയും വിആർ റോബോട്ട് പ്ലേഗ്രൗണ്ടിന്റെ മുകളിൽ വലതുവശത്തെ അരികിൽ നിന്ന് ഒരു കാസിൽ പീസ് പിന്തുടരാൻ ഓടിക്കുകയും ചെയ്യുന്നു.

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

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