VEXcode IQ-ൽ കോഡ് ചെയ്യുമ്പോൾ VEX IQ സ്മാർട്ട് മോട്ടോറിന് ഉപയോഗിക്കാൻ നിരവധി ഫംഗ്ഷനുകളുണ്ട്. ആയുധങ്ങൾ, നഖങ്ങൾ, ഇൻടേക്കുകൾ, ഡ്രൈവ്ട്രെയിനുകൾ, VEX IQ ഉപയോഗിച്ച് സൃഷ്ടിച്ച മറ്റ് സംവിധാനങ്ങൾ എന്നിവ കോഡ് ചെയ്യുമ്പോൾ ഇത് ഉപയോഗപ്രദമാകും. മോട്ടോറുകൾ എങ്ങനെ കോഡ് ചെയ്യാമെന്ന് മനസ്സിലാക്കുന്നത് പ്രോജക്ടുകൾ സ്തംഭിക്കുന്നതോ മോട്ടോറുകൾ ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിക്കാത്തതോ പോലുള്ള പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ സഹായിക്കും.
മോട്ടോർ എൻകോഡർ
മിക്ക മോട്ടോറുകളെയും പോലെ, VEX IQ സ്മാർട്ട് മോട്ടോർ വൈദ്യുതോർജ്ജത്തെ മെക്കാനിക്കൽ ഊർജ്ജമാക്കി മാറ്റുക മാത്രമല്ല, മിക്ക മോട്ടോറുകളിലും ഇല്ലാത്ത സവിശേഷതകളും ഇതിനുണ്ട്, അത് അതിനെ "സ്മാർട്ട്" ആക്കുന്നു. അതിന്റെ പ്രധാന സവിശേഷതകളിൽ ഒന്ന് ക്വാഡ്രേച്ചർ എൻകോഡറാണ്. മോട്ടോർ ഷാഫ്റ്റിന്റെ വേഗതയും സ്ഥാനവും ട്രാക്ക് ചെയ്യുന്നതിനായി ഈ എൻകോഡർ മോട്ടോറിന്റെ ഉൾഭാഗത്ത് ഘടിപ്പിച്ചിരിക്കുന്നു.
VEX IQ സ്മാർട്ട് മോട്ടോറിന്റെ എൻകോഡറിൽ നിന്നുള്ള റിപ്പോർട്ടുകൾ ഇത് മനസ്സിലാക്കാൻ സഹായിക്കുന്നു:
- മോട്ടോറിന്റെ ഭ്രമണ ദിശ (മുന്നോട്ട്/റിവേഴ്സ് അല്ലെങ്കിൽ തുറന്ന/അടച്ച)
- മോട്ടോറിന്റെ സ്ഥാനവും മോട്ടോറിന്റെ ടേണിന്റെയും സ്ഥാനത്തിന്റെയും അളവ് (വളവുകളിലോ ഡിഗ്രികളിലോ)
- മോട്ടോറിന്റെ ടേണിന്റെ വേഗത (കാലക്രമേണ എൻകോഡറിന്റെ സ്ഥാനത്തെ അടിസ്ഥാനമാക്കി)
എൻകോഡർ മോട്ടോറിന്റെ അവസ്ഥകൾ റിപ്പോർട്ട് ചെയ്യുന്നതിനാൽ, VEXcode IQ-യിൽ നിരവധി മോഷൻ, സെൻസിംഗ് കമാൻഡുകൾ പ്രവർത്തിക്കുന്നതിന് പിന്നിലെ കണക്കുകൂട്ടലുകളിൽ അവ ഉപയോഗിക്കാൻ കഴിയും.
വ്യക്തിഗത മോട്ടോറുകൾ കോഡ് ചെയ്യുന്നു
VEXcode IQ-യിൽ വ്യക്തിഗത സ്മാർട്ട് മോട്ടോറുകൾ കോഡ് ചെയ്യാൻ തുടങ്ങുന്നതിനുമുമ്പ്, നിങ്ങൾ മോട്ടോർ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്. ഇൻടേക്കുകൾ, ആംസ്, നഖങ്ങൾ തുടങ്ങിയ അധിക സംവിധാനങ്ങൾക്കായി വ്യക്തിഗത മോട്ടോറുകൾ പതിവായി ഉപയോഗിക്കുന്നു. എന്നിരുന്നാലും, എല്ലാ വിവരങ്ങളും വ്യക്തിഗത മോട്ടോറുകൾ ഉപയോഗിക്കുന്ന മറ്റ് സംവിധാനങ്ങൾക്ക് ഇപ്പോഴും ബാധകമാണ്.
VEXcode IQ-യിൽ നിങ്ങളുടെ വ്യക്തിഗത മോട്ടോർ കോൺഫിഗർ ചെയ്യുന്നതിന് ഈ ലേഖനം ലെ ഘട്ടങ്ങൾ പാലിക്കുക.
ഒരു മോട്ടോർ കോൺഫിഗർ ചെയ്താൽ, ആ മോട്ടോർ നിയന്ത്രിക്കാനുള്ള കമാൻഡുകൾ ടൂൾബോക്സിൽ ദൃശ്യമാകും. വ്യത്യസ്ത തരം കമാൻഡുകൾ ഉണ്ടെന്ന് നിങ്ങൾ ശ്രദ്ധിക്കും: വെയ്റ്റിംഗ്, നോൺ-വെയ്റ്റിംഗ്.
വെയ്റ്റിംഗ് vs നോൺ-വെയ്റ്റിംഗ് കമാൻഡുകൾ
ഇവിടെയുള്ള എല്ലാ ചിത്രങ്ങളും ബ്ലോക്കുകൾ കാണിക്കുന്നുവെന്ന് ശ്രദ്ധിക്കുക. ഈ പ്രോജക്റ്റുകളെല്ലാം പൈത്തണിലോ സി++-ലോ പുനർനിർമ്മിക്കാൻ കഴിയും കൂടാതെ ബ്ലോക്കുകളുടെ അതേ പ്രവർത്തനക്ഷമതയും ഇതിൽ അടങ്ങിയിരിക്കാം.
പ്രവർത്തനം പൂർത്തിയാകുന്നതുവരെ വെയ്റ്റിംഗ് കമാൻഡുകൾ പ്രോജക്റ്റ് തുടരുന്നതിൽ നിന്ന് തടയുന്നു. [Spin for], [Spin to position] തുടങ്ങിയ കമാൻഡുകൾ ഇതിൽ ഉൾപ്പെടുന്നു.
ഇവിടെ കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റ് ഒരു Clawbot (2-motor) ടെംപ്ലേറ്റ് ഉപയോഗിക്കുന്നു, എല്ലാ കമാൻഡുകളും കാത്തിരിക്കുന്നു. അങ്ങനെ പരമ്പരയിൽ, ക്ലാവ് മോട്ടോർ 90 ഡിഗ്രി അടയ്ക്കും, റോബോട്ട് റിവേഴ്സ് ഡ്രൈവ് ചെയ്യും, തുടർന്ന് കൈ മുകളിലേക്ക് കറങ്ങി 180 ഡിഗ്രി സ്ഥാനത്ത് എത്തും.
ഇതിനു വിപരീതമായി നോൺ-വെയ്റ്റിംഗ് കമാൻഡുകൾ ഉണ്ട്. ഒരു നോൺ-വെയ്റ്റിംഗ് കമാൻഡ് ആ പെരുമാറ്റം അനിശ്ചിതമായി നടപ്പിലാക്കും അല്ലെങ്കിൽ മറ്റൊരു പെരുമാറ്റത്തിലേക്ക് മാറാൻ പറയുന്നതുവരെ നടപ്പിലാക്കും. ഇതിൽ [സ്പിൻ] പോലുള്ള കമാൻഡുകൾ ഉൾപ്പെടുന്നു.
ഇവിടെ കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റ് ഒരു ഇൻടേക്ക് ചേർത്ത ഒരു ബേസ്ബോട്ട് ഉപയോഗിക്കുന്നു. ഇവിടെ ഇൻടേക്ക് മോട്ടോർ കറങ്ങാൻ തുടങ്ങും. [Wait] കമാൻഡ് ഒരു വെയിറ്റിംഗ് കമാൻഡാണ്, അതിനാൽ 2 സെക്കൻഡ് കഴിയുന്നതുവരെ ഇൻടേക്ക് കറങ്ങിക്കൊണ്ടിരിക്കും, തുടർന്ന് പ്രോജക്റ്റിലെ അടുത്ത കമാൻഡായ [Stop] കമാൻഡിലേക്ക് നീങ്ങും. അപ്പോൾ മോട്ടോർ കറങ്ങുന്നത് നിർത്തും.
മോട്ടോർ ടൈംഔട്ടുകൾ
ഒരു മോട്ടോർ ഒരു കൈയുടെയോ നഖത്തിന്റെയോ ഭാഗമായി കോഡ് ചെയ്യുമ്പോൾ, കാത്തിരിക്കുന്നതും കാത്തിരിക്കാത്തതുമായ ബ്ലോക്കുകൾ തമ്മിലുള്ള വ്യത്യാസവും അവ നിങ്ങളുടെ റോബോട്ടിന്റെ ചലനത്തെ എങ്ങനെ ബാധിക്കുമെന്നും ഓർമ്മിക്കേണ്ടത് പ്രധാനമാണ്. മോട്ടോർ ഉദ്ദേശിച്ച ലക്ഷ്യ സ്ഥാനത്ത് എത്തുന്നതിനുള്ള സമയപരിധി സജ്ജമാക്കാൻ മോട്ടോർ ടൈംഔട്ടുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. സമയം കഴിയുമ്പോൾ ആ സ്ഥാനത്ത് എത്തിയില്ലെങ്കിൽ, മോട്ടോർ കറങ്ങാൻ ശ്രമിക്കുന്നത് നിർത്തുകയും പ്രോജക്റ്റ് അടുത്ത കമാൻഡിലേക്ക് നീങ്ങുകയും ചെയ്യും.
ഈ ഉദാഹരണത്തിൽ, മോട്ടോർ ടൈംഔട്ട് 2 സെക്കൻഡായി സജ്ജീകരിച്ചിരിക്കുന്നു. രണ്ട് സെക്കൻഡിനുള്ളിൽ നഖം 90 ഡിഗ്രിയിൽ അടയുന്നില്ലെങ്കിൽ, രണ്ട് സെക്കൻഡ് മാർക്കിൽ മോട്ടോർ കറങ്ങുന്നത് നിർത്തി അടുത്ത കമാൻഡിലേക്ക് നീങ്ങി മുന്നോട്ട് പോകും.
ഒരു മോട്ടോർ എത്ര ദൂരം നീക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പില്ലെങ്കിൽ, സെൻസർ ഡാഷ്ബോർഡ് ഉപയോഗിക്കുക. ഡാഷ്ബോർഡ് മോട്ടോറിന്റെ സ്ഥാനം ഡിഗ്രികളിലും പരിക്രമണങ്ങളിലും റിപ്പോർട്ട് ചെയ്യുന്നു, അതിനാൽ നിങ്ങൾ ഒരു മോട്ടോർ ചലിപ്പിക്കുമ്പോൾ (ഒരു നഖം തുറക്കുന്നതും അടയ്ക്കുന്നതും പോലെ) അക്കങ്ങൾ മാറും. ഒരു നഖം അടയ്ക്കുന്നതിനും, ഒരു കൈ ഉയർത്തുന്നതിനും, ഒരു ഇൻടേക്ക് കറക്കുന്നതിനും എത്ര ഡിഗ്രി അല്ലെങ്കിൽ ഭ്രമണം ആവശ്യമാണെന്ന് നിർണ്ണയിക്കാൻ ഈ പരിശോധന ഉപയോഗിക്കുക.
സെൻസർ ഡാഷ്ബോർഡ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് അറിയാൻ ഈ ലേഖനങ്ങൾ കാണുക.
ഒരു ഡ്രൈവ്ട്രെയിനിന്റെ ഭാഗമായി സ്മാർട്ട് മോട്ടോറുകൾ കോഡ് ചെയ്യുന്നു
VEXcode IQ-യിൽ ഒരു ഡ്രൈവ്ട്രെയിൻ കോഡ് ചെയ്യാൻ തുടങ്ങുന്നതിനുമുമ്പ്, ഉപയോഗിക്കുന്ന മോട്ടോറുകൾ ഉൾപ്പെടെ ഡ്രൈവ്ട്രെയിൻ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്. [Drive], [Drive for] പോലുള്ള അതേ കമാൻഡുകൾ ഉപയോഗിച്ചാണ് മോട്ടോറുകൾ നിയന്ത്രിക്കുന്നതെന്ന് ഉറപ്പാക്കാൻ ഡ്രൈവ്ട്രെയിനിനുള്ളിൽ തന്നെ മോട്ടോറുകൾ കോൺഫിഗർ ചെയ്തിരിക്കുന്നു.
കാത്തിരിക്കുന്നതും കാത്തിരിക്കാത്തതുമായ കമാൻഡുകൾ
ഒരു ഡ്രൈവ്ട്രെയിൻ കോഡ് ചെയ്യുമ്പോൾ, റോബോട്ടിന്റെ ചലനം നിയന്ത്രിക്കുന്നതിന് വെയ്റ്റിംഗ്, നോൺ-വെയ്റ്റിംഗ് കമാൻഡുകൾ ലഭ്യമാണ്.
പ്രവർത്തനം പൂർത്തിയാകുന്നതുവരെ വെയ്റ്റിംഗ് കമാൻഡുകൾ പ്രോജക്റ്റ് തുടരുന്നതിൽ നിന്ന് തടയുന്നു. [Drive for] [Turn for], [Turn to heading] തുടങ്ങിയ കമാൻഡുകൾ ഇതിൽ ഉൾപ്പെടുന്നു.
ഇവിടെ കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റ് ഒരു Clawbot (2-motor) ടെംപ്ലേറ്റ് ഉപയോഗിക്കുന്നു, എല്ലാ കമാൻഡുകളും കാത്തിരിക്കുന്നു. അങ്ങനെ പരമ്പരയിൽ, റോബോട്ട് 200 മില്ലിമീറ്റർ മുന്നോട്ട് ഓടിച്ചശേഷം ഡ്രൈവ്ട്രെയിൻ ഉപയോഗിച്ച് വലത്തേക്ക് തിരിയും.
ഇതിനു വിപരീതമായി നോൺ-വെയ്റ്റിംഗ് കമാൻഡുകൾ ഉണ്ട്. ഒരു നോൺ-വെയ്റ്റിംഗ് കമാൻഡ് ആ പെരുമാറ്റം അനിശ്ചിതമായി നടപ്പിലാക്കും അല്ലെങ്കിൽ മറ്റൊരു പെരുമാറ്റത്തിലേക്ക് മാറാൻ പറയുന്നതുവരെ നടപ്പിലാക്കും. ഇതിൽ [ഡ്രൈവ്] പോലുള്ള കമാൻഡുകൾ ഉൾപ്പെടുന്നു.
ഇവിടെ കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റ് ഒരു ബേസ്ബോട്ട് ഉപയോഗിക്കുന്നു. ഇവിടെ ബമ്പർ സ്വിച്ച് അമർത്തുന്നത് വരെ റോബോട്ട് അനിശ്ചിതമായി മുന്നോട്ട് ഓടിച്ചുകൊണ്ടേയിരിക്കും. തുടർന്ന് പ്രോജക്റ്റ് അടുത്ത കമാൻഡിലേക്ക് നീങ്ങുകയും റോബോട്ട് ഡ്രൈവിംഗ് നിർത്തി 90 ഡിഗ്രി വലത്തേക്ക് തിരിയുകയും ചെയ്യും.