പാഠം 2: താരതമ്യ ബ്ലോക്കുകൾ ഉപയോഗിക്കുകയും അടുത്തുവരെ വാഹനമോടിക്കുകയും ചെയ്യുക
ഈ പാഠത്തിൽ, <Less than> ബൂളിയൻ റിപ്പോർട്ടർ ബ്ലോക്ക് ഉപയോഗിച്ച് ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച് VR റോബോട്ടിനെ 'A' എന്ന അക്ഷരത്തിലേക്ക് നാവിഗേറ്റ് ചെയ്യുന്ന ഒരു പ്രോജക്റ്റ് നിങ്ങൾ സൃഷ്ടിക്കും. മിനി-ചലഞ്ചിൽ, വാൾ മേസിന്റെ തുടക്കം മുതൽ '1' എന്ന നമ്പറിലേക്ക് നാവിഗേറ്റ് ചെയ്യാൻ നിങ്ങൾ ഈ കഴിവുകൾ പ്രയോഗിക്കും.

പഠന ഫലങ്ങൾ
- <Greater than> ബ്ലോക്ക് ഒരു ബൂളിയൻ ബ്ലോക്കാണെന്ന് തിരിച്ചറിയുക, ആദ്യത്തെ മൂല്യം രണ്ടാമത്തെ മൂല്യത്തേക്കാൾ വലുതാണോ എന്ന് അത് റിപ്പോർട്ട് ചെയ്യുന്നു.
- <Less than> ബ്ലോക്ക് ഒരു ബൂളിയൻ ബ്ലോക്കാണെന്ന് തിരിച്ചറിയുക, ആദ്യത്തെ മൂല്യം രണ്ടാമത്തെ മൂല്യത്തേക്കാൾ കുറവാണെങ്കിൽ അത് റിപ്പോർട്ട് ചെയ്യുന്നു.
- [Wait until] ബ്ലോക്കിൽ <Greater than> അല്ലെങ്കിൽ <Less than> ബ്ലോക്കുകൾ TRUE അല്ലെങ്കിൽ FALSE മൂല്യം റിപ്പോർട്ട് ചെയ്യുന്നുവെന്ന് തിരിച്ചറിയുക.
- ഡിസ്റ്റൻസ് സെൻസറിന്റെ മൂല്യം 50 മില്ലിമീറ്റർ (മില്ലീമീറ്റർ) ത്രെഷോൾഡ് മൂല്യത്തിൽ താഴെയാകുന്നതുവരെ ഒരു VR റോബോട്ട് ഡ്രൈവ് മുന്നോട്ട് കൊണ്ടുപോകുന്ന ഒരു പ്രോജക്റ്റ് എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് വിവരിക്കുക.
പ്രോജക്റ്റിന് പേര് നൽകി സംരക്ഷിക്കുക
- VEXcode VR-ൽ ഒരു പുതിയ പ്രോജക്റ്റ് ആരംഭിച്ച് പ്രോജക്റ്റിന് എന്ന് പേരിടുക Unit5Lesson2. നിങ്ങളുടെ പ്രോജക്റ്റിനായി നിങ്ങൾക്ക് VEXcode ബ്ലോക്കുകൾ, സ്വിച്ച് ബ്ലോക്കുകൾ അല്ലെങ്കിൽ രണ്ട് ബ്ലോക്ക് തരങ്ങളുടെയും സംയോജനം ഉപയോഗിക്കാമെന്ന് ഓർമ്മിക്കുക.

മതിലുകൾ ഒഴിവാക്കാൻ ദൂര സെൻസർ ഉപയോഗിക്കുക.
- വർക്ക്സ്പെയ്സിലേക്ക് [ഡ്രൈവ്] ബ്ലോക്ക് വലിച്ചിടുക.

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

ഈ പ്രോജക്റ്റ്, ഭിത്തികളിൽ ഇടിക്കാതെ വാൾ മേസ് പ്ലേഗ്രൗണ്ട് ലൂടെ നാവിഗേറ്റ് ചെയ്യാൻ ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിക്കും. ഈ പ്രോജക്റ്റിൽ നിങ്ങൾ <Less than> ബൂളിയൻ ബ്ലോക്കിനുള്ളിലെ (Distance from) ബ്ലോക്ക് ഉപയോഗിക്കും.
<Less than>, <Greater than>, <Equal to> എന്നിവ താരതമ്യ ബ്ലോക്കുകളാണ് - അവ മൂല്യങ്ങളെ താരതമ്യം ചെയ്യുന്നു. താരതമ്യ വ്യവസ്ഥ പാലിക്കുമ്പോൾ TRUE മൂല്യം റിപ്പോർട്ട് ചെയ്യുന്നതും, വ്യവസ്ഥ അല്ല പാലിക്കുമ്പോൾ FALSE മൂല്യം റിപ്പോർട്ട് ചെയ്യുന്നതുമായ ബൂളിയൻ റിപ്പോർട്ടർ ബ്ലോക്കുകളും ഇവയാണ്.
- ആദ്യ മൂല്യം രണ്ടാമത്തെ മൂല്യത്തേക്കാൾ ചെറുതാണെങ്കിൽ <Less than> TRUE എന്നും ആദ്യ മൂല്യം രണ്ടാമത്തെ മൂല്യത്തേക്കാൾ വലുതോ തുല്യമോ ആണെങ്കിൽ FALSE എന്നും റിപ്പോർട്ട് ചെയ്യുന്നു.

- ആദ്യ മൂല്യം രണ്ടാമത്തെ മൂല്യത്തേക്കാൾ വലുതാകുമ്പോൾ <Greater than> TRUE എന്നും ആദ്യ മൂല്യം രണ്ടാമത്തെ മൂല്യത്തേക്കാൾ ചെറുതോ തുല്യമോ ആണെങ്കിൽ FALSE എന്നും റിപ്പോർട്ട് ചെയ്യുന്നു.

- രണ്ട് മൂല്യങ്ങളും കൃത്യമായി തുല്യമാകുമ്പോൾ <Equal to> TRUE എന്നും അല്ലാത്തപ്പോൾ FALSE എന്നും റിപ്പോർട്ട് ചെയ്യുന്നു.

താരതമ്യ ബ്ലോക്കുകൾക്ക് ദശാംശങ്ങൾ, പൂർണ്ണസംഖ്യകൾ അല്ലെങ്കിൽ സംഖ്യാ ബ്ലോക്കുകൾ സ്വീകരിക്കാൻ കഴിയും. (Distance from) ബ്ലോക്ക് പോലുള്ള റൗണ്ട് റിപ്പോർട്ടർ ബ്ലോക്കുകളും അവർ സ്വീകരിക്കുന്നു. ഒരു പ്രോജക്റ്റിൽ ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിക്കുമ്പോൾ (ഡിസ്റ്റൻസ് ഫ്രം) ബ്ലോക്ക് ഒരു താരതമ്യ ബ്ലോക്കിനൊപ്പം ആകാം.
ഈ ഉദാഹരണത്തിൽ, ഒരു VR റോബോട്ടിലെ ഒരു വസ്തുവിൽ നിന്നും ദൂര സെൻസറിൽ നിന്നുമുള്ള ദൂരം 50 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്റർ) കുറവാണെങ്കിൽ ബ്ലോക്ക് TRUE എന്ന് റിപ്പോർട്ട് ചെയ്യും.

- <Less than> ബൂളിയൻ ബ്ലോക്ക് [Wait until] ബ്ലോക്കിലേക്ക് വലിച്ചിടുക.
- ബൂളിയൻ റിപ്പോർട്ടർ ബ്ലോക്കിനുള്ളിൽ റൗണ്ട് (ദൂരം) ബ്ലോക്ക് സ്ഥാപിക്കുക.

- [Wait until] ബ്ലോക്ക്, വ്യവസ്ഥ പാലിക്കുന്നതുവരെ VR റോബോട്ടിനെ മുന്നോട്ട് നയിക്കും, കൂടാതെ റിപ്പോർട്ട് ചെയ്ത ദൂരം 50 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്ററിൽ) കുറവാണ്. തുടർന്ന്, പ്രോജക്റ്റ് സ്റ്റാക്കിലെ അടുത്ത ബ്ലോക്കിലേക്ക് നീങ്ങും, അത് [സ്റ്റോപ്പ് ഡ്രൈവിംഗ്] ബ്ലോക്കായിരിക്കും.

- [Wait until] ബ്ലോക്കിന് ശേഷം ഒരു [Stop driving] ബ്ലോക്ക് ആവശ്യമാണ്, കാരണം VR റോബോട്ട് നിർത്താൻ നിർദ്ദേശിക്കുന്നത് വരെ അത് ഡ്രൈവ് ചെയ്യുന്നത് തുടരും. പ്രോജക്റ്റിലേക്ക് ഒരു [സ്റ്റോപ്പ് ഡ്രൈവിംഗ്] ബ്ലോക്ക് ചേർക്കുക.

- വാൾ മെയ്സ് പ്ലേഗ്രൗണ്ട് തുറന്നിട്ടില്ലെങ്കിൽ അത് സമാരംഭിച്ച് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
- വാൾ മെയ്സിന്റെ തുടക്കം മുതൽ VR റോബോട്ട് ഡ്രൈവ് ചെയ്യുന്നത് കാണുക, തുടർന്ന് ഡിസ്റ്റൻസ് സെൻസർ അത് ഭിത്തിയിൽ നിന്ന് 50 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്റർ) താഴെയാണെന്ന് റിപ്പോർട്ട് ചെയ്യുമ്പോൾ നിർത്തുക.

- [Wait until] ബ്ലോക്കിനുള്ളിൽ (Distance from) ബ്ലോക്കുള്ള <Less than> ബ്ലോക്ക് ഉപയോഗിച്ച്, നിർത്തുന്നതിന് മുമ്പ് മതിലിൽ നിന്ന് 50 മില്ലിമീറ്ററിൽ (mm) താഴെ വരെ കാത്തിരിക്കാൻ VR റോബോട്ടിനോട് നിർദ്ദേശിക്കുന്നു.
- VR റോബോട്ടിനെ ആരംഭ സ്ഥാനത്തേക്ക് തിരികെ നീക്കാൻ പ്ലേഗ്രൗണ്ട് റീസെറ്റ് ചെയ്യുക.
സ്വിച്ച് ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു
ഈ പാഠത്തിൽ, നിങ്ങൾ <Greater than>, <Less than>, <Equal to> ബൂളിയൻ ബ്ലോക്കുകളെക്കുറിച്ച് പഠിച്ചു. താഴെയുള്ള ചിത്രം സ്വിച്ച് ബൂളിയൻ താരതമ്യ ബ്ലോക്കുകൾ കാണിക്കുന്നു. ഒരു സ്വിച്ച് ബൂളിയൻ ബ്ലോക്ക് ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിക്കണമെങ്കിൽ, സ്വിച്ച് പൈത്തൺ ഫംഗ്ഷനുകൾ ശരിയായ അക്ഷരവിന്യാസവും ചിഹ്നനവും ഉപയോഗിച്ച് നൽകണം.
ശ്രദ്ധിക്കുക, സ്വിച്ച് <Equal to> ബ്ലോക്ക് രണ്ട് തുല്യ ചിഹ്നങ്ങൾ (==)ഉപയോഗിക്കുന്നു. കാരണം, പൈത്തണിൽ, ഒരു തുല്യ ചിഹ്നം (=) ഒരു മൂല്യത്തിന്റെ അസൈൻമെന്റിനെ പ്രതിനിധീകരിക്കുന്നു (ഉദാഹരണത്തിന്, x = 10), അതേസമയം രണ്ട് തുല്യ ചിഹ്നങ്ങൾ (==) രണ്ട് മൂല്യങ്ങൾ തുല്യമാണോ എന്ന് പരിശോധിക്കുന്നു. സ്വിച്ച് <Equal to> ബ്ലോക്ക് ഉപയോഗിക്കുമ്പോൾ രണ്ട് തുല്യ ചിഹ്നങ്ങൾ ഉപയോഗിക്കുന്നത് ഉറപ്പാക്കുക. 
ഒരു വസ്തുവിൽ നിന്ന് 50 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്റർ) താഴെ ദൂരം വരെ VR റോബോട്ട് മുന്നോട്ട് ഓടിക്കുന്ന ഒരു ഉദാഹരണ പ്രോജക്റ്റും നിങ്ങൾ കണ്ടു. പിന്നെ, വിആർ റോബോട്ട് നിർത്തും. വലതുവശത്തുള്ള പ്രോജക്റ്റ് ഒരു സ്വിച്ച് ബ്ലോക്കിനുള്ളിലെ അനുബന്ധ പൈത്തൺ കമാൻഡുകൾ കാണിക്കുന്നു. കമാൻഡ്, while not front_distance.get_distance(MM) < 50, റിപ്പോർട്ട് ചെയ്ത ദൂരം ഒരു വസ്തുവിൽ നിന്ന് 50 MM-ൽ കുറവാണോ എന്ന് പരിശോധിക്കാൻ റോബോട്ടിനോട് പറയുന്നു.
അടുത്ത ഇൻഡന്റ് ചെയ്ത കോഡ് വരി,വെയിറ്റ് (5, MSEC),കോഡിനെ 5 മില്ലിസെക്കൻഡ് താൽക്കാലികമായി നിർത്തുന്നു. ഒരു വസ്തുവിൽ നിന്ന് റിപ്പോർട്ട് ചെയ്ത ദൂരം 50 MM-ൽ കുറവാണോ എന്ന് പരിശോധിക്കുന്ന കമാൻഡ്, അവസ്ഥ വീണ്ടും പരിശോധിക്കുന്നതിന് മുമ്പ് 5 MSEC വരെ കാത്തിരിക്കും.

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