പാഠം 2: [വരെ കാത്തിരിക്കുക] ബ്ലോക്ക് ഉപയോഗിക്കുന്നു
ഈ പാഠത്തിൽ, നിങ്ങൾ ബമ്പർ സെൻസറും [വരെ കാത്തിരിക്കുക] ബ്ലോക്കും ഉപയോഗിച്ച് ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കും. മിനി-ചലഞ്ചിൽ, വാൾ മേസിന്റെ തുടക്കം മുതൽ 'A' എന്ന അക്ഷരം വരെ നാവിഗേറ്റ് ചെയ്യാൻ നിങ്ങൾ ഈ കഴിവുകൾ പ്രയോഗിക്കും.

പഠന ഫലങ്ങൾ
- ബ്ലോക്കിന്റെ സ്വഭാവം ഇതുവരെ പൂർത്തിയായിട്ടില്ലെങ്കിൽ പോലും, നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകളിൽ സ്റ്റാക്ക് തുടരുന്നുണ്ടെന്ന് തിരിച്ചറിയുക.
- ഒരു വെയിറ്റിംഗ് ബ്ലോക്ക്, ആ ബ്ലോക്കിന്റെ സ്വഭാവം പൂർത്തിയാകുന്നതുവരെ സ്റ്റാക്കിനെ താൽക്കാലികമായി നിർത്തുന്നുവെന്ന് തിരിച്ചറിയുക.
- പ്രോജക്റ്റിന്റെ നിർവ്വഹണത്തിന്റെ ഹൈലൈറ്റിംഗ് കാത്തിരിപ്പ് vs നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകളെ ദൃശ്യവൽക്കരിക്കുന്നുവെന്ന് തിരിച്ചറിയുക.
- [Wait until] ബ്ലോക്ക് ബൂളിയൻ മൂല്യങ്ങൾ സ്വീകരിക്കുന്ന ഒരു കൺട്രോൾ ബ്ലോക്കാണെന്ന് തിരിച്ചറിയുക.
- [Wait until] ബ്ലോക്ക് ഒരു ബൂളിയൻ അവസ്ഥ ആവർത്തിച്ച് പരിശോധിക്കുമെന്നും ആ അവസ്ഥ TRUE എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നതുവരെ അടുത്ത ബ്ലോക്കിലേക്ക് നീങ്ങില്ലെന്നും തിരിച്ചറിയുക.
- സെൻസർ അവസ്ഥ പരിശോധിക്കുന്നതിനായി [Wait until] ബ്ലോക്ക് ഒരു നോൺ-വെയിറ്റിംഗ് ബ്ലോക്കിനൊപ്പം (ഉദാ. ഡ്രൈവ്) ഉപയോഗിക്കുന്നുവെന്ന് തിരിച്ചറിയുക.
- [Wait until] ബ്ലോക്കിൽ <Pressing bumper> ബ്ലോക്ക് ഒരു TRUE അല്ലെങ്കിൽ FALSE മൂല്യം റിപ്പോർട്ട് ചെയ്യുന്നുവെന്ന് തിരിച്ചറിയുക.
- [Drive for] ഉം [Turn for] ബ്ലോക്കുകളും വെയ്റ്റിംഗ് അല്ലെങ്കിൽ നോൺ-വെയ്റ്റിംഗ് ആകാവുന്ന പ്രത്യേക ബ്ലോക്കുകളാണെന്ന് തിരിച്ചറിയുക.
- ബമ്പർ സെൻസർ അമർത്തുന്നത് വരെ ഒരു VR റോബോട്ട് ഡ്രൈവ് മുന്നോട്ട് പോകുന്ന ഒരു പ്രോജക്റ്റ് എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് വിവരിക്കുക.
പ്രോജക്റ്റിന് പേര് നൽകി സംരക്ഷിക്കുക
- VEXcode VR-ൽ ഒരു പുതിയ പ്രോജക്റ്റ് ആരംഭിച്ച് പ്രോജക്റ്റിന് എന്ന് പേരിടുക Unit4Lesson2.

[കാത്തിരിക്കുക] ബ്ലോക്കുകൾ
[Wait until] ബ്ലോക്ക് ബൂളിയൻ വ്യവസ്ഥകൾ അംഗീകരിക്കുന്ന ഒരു കൺട്രോൾ ബ്ലോക്കാണ്. [കാത്തിരിക്കുക] ബ്ലോക്കുകൾ ഒരു ബൂളിയൻ അവസ്ഥ ആവർത്തിച്ച് പരിശോധിച്ച് പ്രോജക്റ്റ് ഫ്ലോ നിയന്ത്രിക്കുന്നു. [Wait until] ബ്ലോക്കിലെ അവസ്ഥ TRUE ആയി റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നതുവരെ ഒരു പ്രോജക്റ്റ് സ്റ്റാക്കിലെ അടുത്ത ബ്ലോക്കിലേക്ക് നീങ്ങില്ല. [Wait until] ബ്ലോക്കുകൾ [ഡ്രൈവ്] അല്ലെങ്കിൽ [ടേൺ] പോലുള്ള നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകൾക്കൊപ്പം ഉപയോഗിക്കുന്നു.
നിങ്ങളുടെ അറിവിലേക്കായി
അടുത്ത ബ്ലോക്ക് ഒരു പെരുമാറ്റം ആരംഭിക്കുന്നത് എപ്പോഴാണെന്ന് നോൺ-വെയ്റ്റിംഗ്, വെയ്റ്റിംഗ് ബ്ലോക്കുകൾ നിർണ്ണയിക്കുന്നു. [Drive for], [Turn for] പോലുള്ള വെയിറ്റിംഗ് ബ്ലോക്കുകൾ, സ്റ്റാക്കിലെ അടുത്ത ബ്ലോക്കിലേക്ക് നീങ്ങുന്നതിനുമുമ്പ് അവയുടെ പെരുമാറ്റങ്ങൾ പൂർത്തിയാക്കുന്നു. [ഡ്രൈവ്], [ടേൺ] പോലുള്ള നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകൾ, നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കിന്റെ സ്വഭാവം പൂർത്തിയായില്ലെങ്കിൽ പോലും സ്റ്റാക്കിലെ അടുത്ത ബ്ലോക്കിലേക്ക് നീങ്ങുന്നത് തുടരുന്നു.
[Drive for], [Turn for] പോലുള്ള ചില ബ്ലോക്കുകൾ വെയ്റ്റിംഗ് ബ്ലോക്കുകളോ നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകളോ ആകാം. ബ്ലോക്കിലെ അമ്പടയാളം തിരഞ്ഞെടുക്കുന്നത് ബ്ലോക്ക് വെയിറ്റിംഗിൽ നിന്ന് നോൺ-വെയിറ്റിംഗ് ബ്ലോക്കായി മാറ്റും.

സ്വിച്ച് ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു
സ്വിച്ച് നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്ക് ബ്ലോക്കിന്റെ അവസാനം "wait=False" പാരാമീറ്റർ ചേർക്കുന്നു. "wait=False" എന്നത് പൈത്തൺ കമാൻഡാണ്, അത് ബ്ലോക്കിനോട് കാത്തിരിക്കേണ്ടതില്ലെന്നും സ്റ്റാക്കിലെ അടുത്ത ബ്ലോക്കുകളിലേക്ക് നീങ്ങുന്നത് തുടരാനും പറയുന്നു.

-
[ഡ്രൈവ്] നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്ക് വർക്ക്സ്പെയ്സിലേക്ക് വലിച്ചിടുക.

-
[ഡ്രൈവ്] ബ്ലോക്കിന് താഴെ ഒരു [വരെ കാത്തിരിക്കുക] ബ്ലോക്ക് അറ്റാച്ചുചെയ്യുക.

-
[Wait until] ബ്ലോക്ക് ബൂളിയൻ വ്യവസ്ഥകൾ അംഗീകരിക്കുന്നു. ഈ പ്രോജക്റ്റ് വാൾ മെയ്സ് പ്ലേഗ്രൗണ്ട്ലൂടെ ഓടിക്കാൻ ബമ്പർ സെൻസർ ഉപയോഗിക്കും. <Pressing bumper> ബൂളിയൻ ബ്ലോക്ക് [Wait until] ബ്ലോക്കിലേക്ക് വലിച്ചിടുക.

-
ഒരു [സ്റ്റോപ്പ് ഡ്രൈവിംഗ്] ബ്ലോക്ക് ഡ്രാഗ് ചെയ്ത് പ്രോജക്റ്റിലേക്ക് ചേർക്കുക.

- Wall Maze Playground തുറന്നിട്ടില്ലെങ്കിൽ അത് സമാരംഭിച്ച് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
- വാൾ മെയ്സിന്റെ തുടക്കം മുതൽ VR റോബോട്ട് ഡ്രൈവ് ചെയ്യുന്നത് കാണുക, ബമ്പർ സെൻസർ ഭിത്തിയിൽ അമർത്തുമ്പോൾ നിർത്തുക.
-
[ഡ്രൈവ്] ബ്ലോക്ക്, <Pressing bumper> ബ്ലോക്ക് ഉപയോഗിച്ച് ബമ്പർ സെൻസറിന്റെ അവസ്ഥ പരിശോധിക്കുമ്പോൾ VR റോബോട്ടിനെ മുന്നോട്ട് ഓടിക്കാൻ അനുവദിക്കുന്നു. <Pressing bumper> TRUE ആയി റിപ്പോർട്ട് ചെയ്തുകഴിഞ്ഞാൽ, VR റോബോട്ട് സ്റ്റാക്കിലെ അടുത്ത ബ്ലോക്കിലേക്ക് നീങ്ങുകയും ഡ്രൈവിംഗ് നിർത്തുകയും ചെയ്യും.

നിങ്ങളുടെ അറിവിലേക്കായി
വെയ്റ്റിംഗ്, നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകളുടെ ദൃശ്യവൽക്കരണം പിന്തുടരാൻ, VEXcode VR-ലെ കോഡ് എക്സിക്യൂഷൻ ഹൈലൈറ്റിംഗ് ഫംഗ്ഷൻ കാണുക. ഈ പ്രോജക്റ്റിന്റെ തുടക്കത്തിൽ, വ്യവസ്ഥ പാലിക്കുന്നത് വരെ [Wait until] ബ്ലോക്കിന് ചുറ്റും പച്ച ഹൈലൈറ്റ് ദൃശ്യമാകും. [Wait until] ബ്ലോക്ക് ഒരു വെയിറ്റിംഗ് ബ്ലോക്കായതിനാലാണിത്. ഈ കമാൻഡുകൾ വേഗത്തിൽ നടപ്പിലാക്കുന്നതിനാൽ, പച്ച ഹൈലൈറ്റ് നോൺ-വെയ്റ്റിംഗ് ബ്ലോക്കുകൾ ഒഴിവാക്കുന്നതായി ദൃശ്യമാകും.

സ്വിച്ച് ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു
ഇതാണ് <Bumper pressed>ഉള്ള [Wait until] കമാൻഡ് അടങ്ങിയിരിക്കുന്ന സ്വിച്ച് ബ്ലോക്ക്.
ബൂളിയൻ റിപ്പോർട്ടർ. 
എന്നാൽ left_bumper.pressed() അല്ല:എന്നത് പൈത്തൺ കമാൻഡാണ്, ഇത് നിലവിൽ ഇടത് ബമ്പർ അമർത്തുന്നുണ്ടോ എന്ന് പരിശോധിക്കുന്നു. wait (5, MSEC)എന്നത് ഒരു പൈത്തൺ കമാൻഡാണ്, ഇത് പരിശോധനയുടെ നിർവ്വഹണം 5 മില്ലിസെക്കൻഡ് (MSEC) താൽക്കാലികമായി നിർത്തുന്നു, അതിനാൽ ഓരോ 5 MSec-ലും ഇടത് ബമ്പർ അമർത്തുന്നുണ്ടോ ഇല്ലയോ എന്ന് പ്രോജക്റ്റ് പരിശോധിക്കുന്നു. ഈ കോഡ് വരി കോഡിന്റെ ആദ്യ വരിയുടെ അടിയിൽ ഇൻഡന്റ് ചെയ്തിരിക്കുന്നു, കാരണം ഈ കമാൻഡ് അവസ്ഥ (ഈ സാഹചര്യത്തിൽ, ഇടത് ബമ്പർ അമർത്തുന്നത്) പാലിക്കുന്നതുവരെ ആവർത്തിക്കുന്ന സ്വഭാവമാണ്. VEXcode VR-ൽ, ഒരു കണ്ടീഷണൽ ലൂപ്പിനൊപ്പം wait കമാൻഡ് എപ്പോഴും ചേർക്കുന്നു. വെയിറ്റ് കമാൻഡിന്റെ ഉദ്ദേശ്യം, VEXcode VR പ്ലാറ്റ്ഫോമിന്റെ വെബ് അധിഷ്ഠിത സ്വഭാവം കാരണം, VEXcode VR-ന് ഉദ്ദേശിച്ച രീതിയിൽ പ്രോജക്റ്റ് ശരിയായി പ്രവർത്തിപ്പിക്കാൻ കഴിയുമെന്ന് ഉറപ്പാക്കുക എന്നതാണ്. ഒരു കണ്ടീഷണൽ ലൂപ്പ് ഉപയോഗിക്കുമ്പോൾ wait കമാൻഡ് ഒരിക്കലും ഇല്ലാതാക്കരുത്, കാരണം നിങ്ങളുടെ പ്രോജക്റ്റ് ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിച്ചേക്കില്ല. ഇടതുവശത്തെ ബമ്പർ അമർത്തിയാൽ, റോബോട്ട് ഡ്രൈവിംഗ് നിർത്തും.
ഈ പാഠത്തിന്റെ ബാക്കി ഭാഗം തുടരാൻ അടുത്തത് ബട്ടൺ തിരഞ്ഞെടുക്കുക.