പാഠം 2: പച്ച ഡിസ്കിലേക്കും പിന്നീട് നീല ഡിസ്കിലേക്കും ഡ്രൈവ് ചെയ്യുക
പച്ച ഡിസ്കിലേക്കും പിന്നീട് നീല ഡിസ്കിലേക്കും ഡ്രൈവ് ചെയ്യുക
- മുൻ പ്രോജക്റ്റിൽ, ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ VR റോബോട്ട് വലത്തേക്ക് തിരിയുന്നതാണ്. ഇനി, ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട്ൽ VR റോബോട്ട് നാല് ഡിസ്കുകളിലേക്ക് ഡ്രൈവ് ചെയ്യുന്ന ഒരു പ്രോജക്റ്റ് നിർമ്മിക്കുക.
-
ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ VR റോബോട്ട് വലത്തോട്ടും ഫ്രണ്ട് ഐ സെൻസർ ഒരു നീല ഡിസ്ക് കണ്ടെത്തുമ്പോൾ ഇടത്തോട്ടും തിരിയുന്ന ഒരു സ്ഥിരമായ പാറ്റേൺ സൃഷ്ടിക്കുക എന്നതാണ് ലക്ഷ്യം.

-
വലത്തേക്ക് തിരിഞ്ഞ ശേഷം VR റോബോട്ടിനോട് മുന്നോട്ട് പോകാൻ നിർദ്ദേശിക്കുന്നതിന് നിലവിലുള്ള പ്രോജക്റ്റിലേക്ക് ഇനിപ്പറയുന്ന ബ്ലോക്ക് ചേർക്കുക.

-
'നീല' കണ്ടെത്തുന്നതിനായി <Color sensing> ബ്ലോക്ക് സജ്ജീകരിച്ചിരിക്കുന്ന മറ്റൊരു [Wait until] ചേർക്കുക, കാരണം VR റോബോട്ട് കണ്ടുമുട്ടുന്ന അടുത്ത ഡിസ്ക് നീലയാണ്.

-
ഒരു [Turn for] ബ്ലോക്ക് ചേർത്ത് പാരാമീറ്റർ 'left' ആക്കുക.

-
ഡിസ്ക് മെയ്സ് പ്ലേഗ്രൗണ്ട്ലൂടെ VR റോബോട്ട് എങ്ങനെ നീങ്ങുന്നുവെന്ന് കാണാൻ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.

- ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ VR റോബോട്ട് വലത്തേക്ക് തിരിയുന്നതും ഫ്രണ്ട് ഐ സെൻസർ ഒരു നീല ഡിസ്ക് കണ്ടെത്തുമ്പോൾ ഇടത്തേക്ക് തിരിയുന്നതും ശ്രദ്ധിക്കുക.
-
ഫ്രണ്ട് ഐ സെൻസർ ഉപയോഗിച്ച് ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട് ലെ രണ്ട് ഡിസ്കുകളിലേക്ക് കൂടി VR റോബോട്ടിനെ നയിക്കുന്നതിനുള്ള ഈ പ്രോജക്റ്റ് നിർമ്മിക്കുന്നത് തുടരുക. അടുത്ത രണ്ട് ഡിസ്കുകളിലേക്ക് VR റോബോട്ടിനെ നാവിഗേറ്റ് ചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന ബ്ലോക്കുകൾ ചേർക്കുക, തുടർന്ന് നിർത്തുക:


-
ഒരു പാറ്റേൺ ഉണ്ടെന്ന് ശ്രദ്ധിക്കുക. പ്രോജക്റ്റിൽ മൂന്ന് തവണ ആവർത്തിക്കുന്ന ബ്ലോക്കുകളുടെ ഒരു പരമ്പരയുണ്ട്. ഒരു [ആവർത്തിക്കുക] ബ്ലോക്ക് ഉപയോഗിച്ച് കോഡിന്റെ ഈ ഭാഗം ചുരുക്കാൻ കഴിയും.

- ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട് തുറന്നിട്ടില്ലെങ്കിൽ അത് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
-
ഡിസ്ക് മെയ്സ് പ്ലേഗ്രൗണ്ട്ൽ, VR റോബോട്ട് നാല് ഡിസ്കുകളിലേക്ക് നാവിഗേറ്റ് ചെയ്യുന്നത് കാണുക.

- ഈ പ്രോജക്റ്റിൽ, ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ട് മുന്നോട്ട് നീങ്ങുന്നു.
- VR റോബോട്ട് 90 ഡിഗ്രി വലത്തേക്ക് തിരിഞ്ഞ് നീല നിറം തിരിച്ചറിയുന്നതുവരെ വീണ്ടും മുന്നോട്ട് ഓടുന്നു.
- തുടർന്ന് വിആർ റോബോട്ട് ഇടത്തേക്ക് തിരിഞ്ഞ് ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം കണ്ടെത്തുന്നതുവരെ മുന്നോട്ട് നീങ്ങുന്നു. നീല നിറം കണ്ടെത്തിക്കഴിഞ്ഞാൽ, വിആർ റോബോട്ട് വീണ്ടും ഇടത്തേക്ക് തിരിയുന്നു.
- ഒടുവിൽ, ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ട് മുന്നോട്ട് നീങ്ങുന്നു, തുടർന്ന് നിർത്തുന്നു.
- ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തുമ്പോൾ, VR റോബോട്ട് വലത്തേക്ക് തിരിയുന്ന പാറ്റേൺ ശ്രദ്ധിക്കുക. ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം കണ്ടെത്തുമ്പോൾ, ഈ പ്രോജക്റ്റിൽ വിആർ റോബോട്ട് ഇടത്തേക്ക് തിരിയുന്നു.
സ്വിച്ച് ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു
ഇതുവരെ, നിങ്ങൾ പച്ച ഡിസ്കിലേക്കും പിന്നീട് മൂന്ന് നീല ഡിസ്കുകളിലേക്കും ഡ്രൈവ് ചെയ്യുന്നതിനായി ഒരു പ്രോജക്റ്റ് സൃഷ്ടിച്ചു.
താഴെയുള്ള ചിത്രം VEXcode ബ്ലോക്കുകൾ ഉപയോഗിച്ചുള്ള മുഴുവൻ പ്രോജക്റ്റും കാണിക്കുന്നു, മൂന്ന് നീല ഡിസ്കുകളിലേക്ക് ഡ്രൈവ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന ആവർത്തിച്ചുള്ള പെരുമാറ്റങ്ങൾ ചുവപ്പ് നിറത്തിൽ ബോക്സ് ചെയ്തിരിക്കുന്നു.

താഴെയുള്ള പ്രോജക്റ്റ് ഈ VEXcode ബ്ലോക്കുകളെ ഒന്നിലധികം സ്വിച്ച് ബ്ലോക്കുകളായി പരിവർത്തനം ചെയ്തതായി കാണിക്കുന്നു.

ഒരു സ്വിച്ച് ബ്ലോക്കിനുള്ളിൽ പൈത്തൺ കമാൻഡുകളായി പരിവർത്തനം ചെയ്ത അതേ സ്വിച്ച് ബ്ലോക്ക് കമാൻഡുകൾ ഈ അവസാന പ്രോജക്റ്റ് കാണിക്കുന്നു.

range(3): ലെ repeat_count നുള്ള എന്നത് പൈത്തൺ കമാൻഡാണ്, അത് റോബോട്ടിനോട് അടുത്ത ഇൻഡന്റ് ചെയ്ത കോഡ് വരികൾ മൂന്ന് തവണ ആവർത്തിക്കണമെന്ന് പറയുന്നു. ഫോർ ലൂപ്പിന് ശേഷം ഒരു കോളൻ (:) ഉൾപ്പെടുത്തണമെന്ന് ശ്രദ്ധിക്കുക.
തുടർന്നുള്ള കോഡ് വരികൾ ആവർത്തിക്കപ്പെടുന്ന സ്വഭാവരീതികളാണ്. ഈ പെരുമാറ്റങ്ങൾ 4 സ്പെയ്സുകളുടെ ഡിഫോൾട്ടിൽ ഇൻഡന്റ് ചെയ്തിരിക്കുന്നു എന്നത് ശ്രദ്ധിക്കുക.
കൂടാതെ, കണ്ടീഷണലിൽ wait (5, MSEC)എന്ന കമാൻഡ് ഉൾപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക. VEXcode VR-ൽ, for loop-നോടൊപ്പം എപ്പോഴും wait കമാൻഡ് ചേർക്കുന്നു. VEXcode VR പ്ലാറ്റ്ഫോമിന്റെ വെബ് അധിഷ്ഠിത സ്വഭാവം കാരണം, VEXcode VR-ന് ഉദ്ദേശിച്ച രീതിയിൽ പ്രോജക്റ്റ് ശരിയായി പ്രവർത്തിപ്പിക്കാൻ കഴിയുമെന്ന് ഉറപ്പാക്കുക എന്നതാണ് wait കമാൻഡിന്റെ ലക്ഷ്യം. ഫോർ ലൂപ്പ് ഉപയോഗിക്കുമ്പോൾ wait കമാൻഡ് ഒരിക്കലും ഇല്ലാതാക്കരുത്, അല്ലെങ്കിൽ നിങ്ങളുടെ പ്രോജക്റ്റ് ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിച്ചേക്കില്ല.
ഫ്രണ്ട് ഐ സെൻസർ നീല നിറം പരിശോധിക്കുന്നതിനാൽ, ഓരോ പരിശോധനയ്ക്കിടയിലും 5 MSEC താൽക്കാലികമായി നിർത്തി, wait (5, MSEC)എന്ന വരി while not front_eye.detect(BLUE) കമാൻഡിന് കീഴിൽ ഇൻഡന്റ് ചെയ്തിരിക്കുന്നു.
ഈ പാഠത്തിന്റെ ബാക്കി ഭാഗം തുടരാൻ അടുത്തത് ബട്ടൺ തിരഞ്ഞെടുക്കുക.