Skip to main content

പാഠം 2: പോസ്റ്റ്-പ്രോജക്റ്റ് സംഗ്രഹം

[അങ്ങനെയെങ്കിൽ] ബ്ലോക്ക് ഉപയോഗിച്ചിരിക്കുന്നതിനാൽ VR റോബോട്ടിന് ഒരു തീരുമാനമെടുക്കാൻ കഴിയും. ബൂളിയൻ അവസ്ഥ TRUE ആണെങ്കിൽ, 'If Then' ബ്രാഞ്ചിനുള്ളിലെ ബ്ലോക്കുകൾ പ്രവർത്തിക്കും. ബൂളിയൻ അവസ്ഥ തെറ്റാണെങ്കിൽ, 'Else' ബ്രാഞ്ചിനുള്ളിലെ ബ്ലോക്കുകൾ പ്രവർത്തിക്കും.

ഫോറെവർ ലൂപ്പിനുള്ളിലെ if then else ബ്ലോക്കിന്റെ പ്രോജക്റ്റ് ഫ്ലോ സൂചിപ്പിക്കുന്ന ഒരു ഡയഗ്രം. പ്രോജക്റ്റ് ആരംഭിക്കുമ്പോൾ ദൂര സെൻസറിന്റെ അവസ്ഥ പരിശോധിക്കുന്നു. ഒരു ഒബ്‌ജക്റ്റ് കണ്ടെത്തിയാൽ, ആ അവസ്ഥ ശരിയാണെങ്കിൽ, ഡ്രൈവ് ഫോർവേഡ് ബ്ലോക്ക് എക്സിക്യൂട്ട് ചെയ്യുന്നു. ഒരു വസ്തുവും കണ്ടെത്തിയില്ലെങ്കിൽ, ആ അവസ്ഥ തെറ്റാണെന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു, അല്ലെങ്കിൽ വലത്തേക്ക് തിരിയുന്ന ബ്ലോക്ക് എക്സിക്യൂട്ട് ചെയ്യുന്നു. ഇതെല്ലാം ഫോറെവർ ലൂപ്പിനുള്ളിൽ തുടർച്ചയായി ആവർത്തിക്കുന്നു.

ഈ പ്രോജക്റ്റിൽ, VR റോബോട്ട് ഒരു കെട്ടിടത്തിലേക്ക് ഓടിച്ചുപോയപ്പോൾ, ദൂര സെൻസർ ഒരു വസ്തുവിനെ കണ്ടെത്തി, <Distance found object> ബ്ലോക്ക് TRUE എന്ന് റിപ്പോർട്ട് ചെയ്തു. ഇത് പദ്ധതിയുടെ 'ഇഫ് തെൻ' ശാഖയെ പ്രവർത്തിപ്പിക്കാൻ നിർദ്ദേശിച്ചു. ഈ ശാഖയിൽ [ഡ്രൈവ്] ബ്ലോക്ക് ഉൾപ്പെടുന്നു. തുടർന്ന് വിആർ റോബോട്ട് പ്രോജക്റ്റിന്റെ 'എൽസ്' ബ്രാഞ്ച് ഒഴിവാക്കുന്നു.

പ്രോജക്റ്റ് ഇടതുവശത്താണ്, if then ബ്രാഞ്ച് നടപ്പിലാക്കുന്നതിന്റെ പ്രോജക്റ്റ് ഫ്ലോ കാണിക്കുന്ന ഒരു പച്ച ഹൈലൈറ്റും ഉണ്ട്. വലതുവശത്ത് പ്ലേഗ്രൗണ്ടിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച കാണിച്ചിരിക്കുന്നു, ഈ സന്ദർഭത്തിൽ ഡിസ്റ്റൻസ് സെൻസർ കണ്ടെത്തിയ കോട്ടയെയോ വസ്തുവിനെയോ എടുത്തുകാണിക്കുന്ന ഒരു അമ്പടയാളവും ചുവന്ന ബോക്സും ഉണ്ട്.

[If then else] ബ്ലോക്ക് ഒരു [Forever] ബ്ലോക്കിനുള്ളിൽ സ്ഥാപിച്ചിരിക്കുന്നതിനാൽ, [If then else] ബ്ലോക്കിന്റെ അവസ്ഥ പരിശോധിക്കുന്നതിനായി പ്രോജക്റ്റ് [Forever] ബ്ലോക്കിന്റെ മുകളിലേക്ക് തിരികെ ലൂപ്പ് ചെയ്യുന്നു. ഈ ലൂപ്പ് എന്നെന്നേക്കുമായി തുടരും, [ഇല്ലെങ്കിൽ] അവസ്ഥ സെക്കൻഡിൽ നൂറുകണക്കിന് തവണ തുടർച്ചയായി പരിശോധിക്കാൻ VR റോബോട്ടിനോട് നിർദ്ദേശിക്കും.

[If then else] ബ്ലോക്കിനുള്ളിലെ [Drive], [Turn] ബ്ലോക്കുകൾ നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകളാണെന്ന് ശ്രദ്ധിക്കുക. ഒരു പ്രോജക്റ്റ് പ്രവർത്തിക്കുമ്പോൾ, നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകൾ അതിന്റെ ഒഴുക്കിനെ തടയുന്നില്ല.  [If then else] ബ്ലോക്കിൽ നടപ്പിലാക്കുന്ന ഒരു നോൺ-വെയിറ്റിംഗ് സ്വഭാവം (ഉദാഹരണത്തിന്, ഒബ്ജക്റ്റ് കണ്ടെത്തിയാൽ മുന്നോട്ട് ഡ്രൈവ് ചെയ്യുക) അവസ്ഥ പരിശോധിക്കുമ്പോൾ തുടരും, അവസ്ഥ മാറുമ്പോൾ മാത്രമേ അത് മാറുകയുള്ളൂ.

Forever ബ്ലോക്കിന്റെ അടിയിൽ നിന്ന് മുകളിലേക്ക് അമ്പടയാളങ്ങൾ ചലിക്കുന്ന അതേ VEXcode VR പ്രോജക്റ്റ്, അതിനുള്ളിലെ എല്ലാ കമാൻഡുകളും ആവർത്തിക്കുന്നതിനായി Forever ലൂപ്പിന്റെ മുകളിലേക്ക് പ്രോജക്റ്റ് ഫ്ലോ തിരികെ പോകുന്നതിനെ സൂചിപ്പിക്കുന്നു.

<Distance found object> ബ്ലോക്ക് FALSE ആയി റിപ്പോർട്ട് ചെയ്താൽ, പ്രോജക്റ്റിന്റെ 'Else' ബ്രാഞ്ച് നടപ്പിലാക്കും. 'Else' ബ്രാഞ്ചിൽ [ടേൺ] ബ്ലോക്ക് ഉൾപ്പെടുന്നു.

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

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

[അങ്ങനെയെങ്കിൽ] അവസ്ഥ പരിശോധിക്കുമ്പോൾ പ്രോജക്റ്റിലെ ഒരു ബ്രാഞ്ച് മാത്രമേ പ്രവർത്തിക്കുന്നുള്ളൂ എന്ന് ഉറപ്പാക്കാൻ ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു. ഒരു സന്ദർഭമോ വ്യവസ്ഥയോ മാത്രമേ ഏത് സമയത്തും ശരിയാകാൻ കഴിയൂ. ഇത് പദ്ധതിയെ കൂടുതൽ കാര്യക്ഷമമാക്കുന്നു.

ഫോറെവർ ലൂപ്പിനുള്ളിലെ if then else ബ്ലോക്കിന്റെ പ്രോജക്റ്റ് ഫ്ലോ സൂചിപ്പിക്കുന്ന ഒരു ഡയഗ്രം. പ്രോജക്റ്റ് ആരംഭിക്കുമ്പോൾ ദൂര സെൻസറിന്റെ അവസ്ഥ പരിശോധിക്കുന്നു. ഒരു ഒബ്‌ജക്റ്റ് കണ്ടെത്തിയാൽ, ആ അവസ്ഥ ശരിയാണെങ്കിൽ, ഡ്രൈവ് ഫോർവേഡ് ബ്ലോക്ക് എക്സിക്യൂട്ട് ചെയ്യുന്നു. ഒരു വസ്തുവും കണ്ടെത്തിയില്ലെങ്കിൽ, ആ അവസ്ഥ തെറ്റാണെന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു, അല്ലെങ്കിൽ വലത്തേക്ക് തിരിയുന്ന ബ്ലോക്ക് എക്സിക്യൂട്ട് ചെയ്യുന്നു. ഇതെല്ലാം ഫോറെവർ ലൂപ്പിനുള്ളിൽ തുടർച്ചയായി ആവർത്തിക്കുന്നു.

യൂണിറ്റ് 7-ൽ സൃഷ്ടിച്ച പ്രോജക്റ്റുമായി നിലവിലെ പ്രോജക്റ്റ് താരതമ്യം ചെയ്യുക.  യൂണിറ്റ് 7 പ്രോജക്റ്റ് നാല് [അങ്ങനെയാണെങ്കിൽ] ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു.

യൂണിറ്റ് 7 ൽ നിന്നുള്ള നാല് If then ബ്ലോക്കുകൾ ക്രമത്തിൽ ഉള്ള ഒരു സാമ്പിൾ പ്രോജക്റ്റിന്റെ പ്രോജക്റ്റ് ഫ്ലോയുടെ ഒരു ഡയഗ്രം. ഓരോ സാഹചര്യത്തിലും, ഒരു പ്രത്യേക നിറം കണ്ടെത്തുന്നതിനും കണ്ടെത്തിയ നിറത്തെ അടിസ്ഥാനമാക്കി ഒരു പെരുമാറ്റം നടത്തുന്നതിനും If പാരാമീറ്റർ ഫ്രണ്ട് ഐ സെൻസർ ഉപയോഗിക്കുന്നു. നിറം കണ്ടെത്തിയാൽ, ആ If ശരിയാകും, അതിനുള്ളിലെ ബ്ലോക്ക് പ്രവർത്തിക്കും, ഇത് കോഡിന്റെ ഓരോ വിഭാഗത്തിനും ആവർത്തിച്ച് സംഭവിക്കും.

ഒന്നിലധികം [If then] ബ്ലോക്കുകളുള്ള ഒരു പ്രോജക്റ്റിലൂടെ പ്രവർത്തിക്കുമ്പോൾ, ഒന്നിലധികം അവസ്ഥകൾ TRUE ആയി റിപ്പോർട്ട് ചെയ്യപ്പെടാനും പ്രോജക്റ്റ് [Forever] ബ്ലോക്കിലെ കമാൻഡുകളിലൂടെ പ്രവർത്തിക്കാനും സാധ്യതയുണ്ട്. ഈ പ്രോജക്റ്റിൽ, ഒരേ [Forever] ലൂപ്പിൽ രണ്ട് വ്യവസ്ഥകളും TRUE ആയി റിപ്പോർട്ട് ചെയ്തേക്കാം. ഇതുപോലുള്ള സംഘർഷങ്ങൾ പ്രോജക്റ്റ് പ്രവർത്തനം നിർത്താനോ കൂടുതൽ മന്ദഗതിയിലാക്കാനോ ഇടയാക്കും.

ഒരു ഫോർഎവർ ലൂപ്പിനുള്ളിൽ രണ്ട് ക്രമീകൃത If then ബ്ലോക്ക് ചെയ്യുന്ന പ്രോജക്റ്റ് ഫ്ലോയുടെ ഒരു ഡയഗ്രം. ആരംഭിക്കുമ്പോൾ, പ്രോജക്റ്റ് ആദ്യം കൺഡിഷൻ 1 പരിശോധിക്കും, ആദ്യത്തേതാണെങ്കിൽ ബ്ലോക്ക് എന്നതിന്റെ പാരാമീറ്റർ. അത് ശരിയാണെങ്കിൽ, അതിനുള്ളിലെ 90 ബ്ലോക്കുകളുടെ വലത്തോട്ട് തിരിയും. ആ കൺഡിഷൻ തെറ്റാണെങ്കിൽ, കൺഡിഷൻ 2 പരിശോധിക്കാൻ ബ്ലോക്ക് ചെയ്താൽ പ്രോജക്റ്റ് അടുത്തതിലേക്ക് നീങ്ങും. കൺഡിഷൻ 2 ശരിയാണെങ്കിൽ, അതിനുള്ളിലെ 200mm ബ്ലോക്കിനുള്ള ഡ്രൈവ് ഫോർവേഡ് പ്രവർത്തിക്കും. അത് തെറ്റാണെങ്കിൽ, പ്രോസസ് വീണ്ടും ആവർത്തിക്കുന്നതിന് പ്രോജക്റ്റ് ഫോർഎവർ ലൂപ്പിന്റെ മുകളിലേക്ക് തിരികെ പോകും.

[If then else] ബ്ലോക്ക് ഉപയോഗിക്കുന്നത് ഇതുപോലുള്ള ബഗുകൾ ഒഴിവാക്കാൻ സഹായിക്കും, കാരണം ഈ ബ്ലോക്കിൽ ഒരു നിശ്ചിത സമയത്ത് ഒരു വ്യവസ്ഥ മാത്രമേ TRUE ആകാൻ കഴിയൂ.

ഒരു ഫോറെവർ ലൂപ്പിനുള്ളിൽ ഒരു if then else ബ്ലോക്ക് ഉപയോഗിച്ചുള്ള പ്രോജക്റ്റ് ഫ്ലോയുടെ ഒരു ഡയഗ്രം. ആരംഭിക്കുമ്പോൾ, if then ബ്രാഞ്ചിന്റെ അവസ്ഥ പരിശോധിക്കപ്പെടും. അത് ശരിയാണെങ്കിൽ, ഡ്രൈവ് നീങ്ങുന്നുണ്ടെങ്കിൽ, ഇഫ് ബ്രാഞ്ചിനുള്ളിലെ ബ്ലോക്ക് പ്രവർത്തിക്കും, റോബോട്ട് 90 ഡിഗ്രി ഇടത്തേക്ക് തിരിയും; അല്ലെങ്കിൽ, റോബോട്ട് 200mm മുന്നോട്ട് ഓടിക്കും. പ്രോജക്റ്റ് ഒരു ശാശ്വത ലൂപ്പിനുള്ളിൽ ആയതിനാൽ, ഒരു അവസ്ഥ പരിശോധിക്കാനുള്ള ഈ തീരുമാനം തുടർച്ചയായി എടുക്കും.

ചോദ്യങ്ങൾ

പാഠ ക്വിസ് ആക്‌സസ് ചെയ്യുന്നതിന് താഴെയുള്ള ലിങ്ക് തിരഞ്ഞെടുക്കുക.

ഗൂഗിൾ ഡോക് / .ഡോക്സ് / .പിഡിഎഫ്