ഗ്രൂവ് മെഷീൻ ചലഞ്ച് - സി++
ഗ്രൂവ് മെഷീൻ ചലഞ്ച്
ഈ വെല്ലുവിളിയിൽ, നിങ്ങൾ ടീമുകളായി വിഭജിക്കുകയും ലൂപ്പുകളെക്കുറിച്ചുള്ള നിങ്ങളുടെ അറിവ് ഉപയോഗിച്ച് ഒരു നൃത്ത പരിപാടിയിലൂടെ കടന്നുപോകാൻ നിങ്ങളുടെ റോബോട്ടിനെ പ്രോഗ്രാം ചെയ്യുകയും ചെയ്യും. നൃത്തം വികസിപ്പിക്കുന്നതിനും/പരീക്ഷിക്കുന്നതിനും നിങ്ങളുടെ അധ്യാപകൻ ഒരു സമയപരിധി നിശ്ചയിക്കും, കൂടാതെ നൃത്തത്തിന്റെ ദൈർഘ്യത്തിനും ഒരു സമയപരിധി നിശ്ചയിക്കും. മത്സരിക്കുന്ന ഹെഡ്-ടു-ഹെഡ് ഡാൻസ്-ഓഫ് ടീമുകളിൽ ഇല്ലാത്ത എല്ലാവരും നൃത്തങ്ങളെ വിലയിരുത്തി അവർക്ക് ഏറ്റവും മികച്ചതെന്ന് തോന്നുന്ന ടീമിന് വോട്ട് ചെയ്യും.
നിയമങ്ങൾ:
- 1x1 മീറ്റർ വിസ്തൃതിയിൽ ഓരോ ക്ലോബോട്ടും ഒറ്റയ്ക്ക് നൃത്തം ചെയ്യും.
- പ്രോജക്റ്റ് പ്രവർത്തിക്കുന്നത് നിർത്താൻ ബ്രെയിൻ സ്ക്രീനിലെ സ്റ്റോപ്പ് ബട്ടൺ അമർത്തുന്നതുവരെ നൃത്തം തുടരും.
- കൈ ഉയർത്തുകയും താഴ്ത്തുകയും വേണം.
- നഖം തുറക്കുകയും അടയ്ക്കുകയും വേണം.
- ക്ലോബോട്ട് ഇടത്തോട്ടും വലത്തോട്ടും തിരിയണം.
- ക്ലോബോട്ട് മുന്നോട്ടും പിന്നോട്ടും വണ്ടി ഓടിക്കണം.
- ക്ലോബോട്ട് എന്തിലെങ്കിലും കൂട്ടിയിടിക്കുകയോ മറിഞ്ഞു വീഴുകയോ ചെയ്താൽ പദ്ധതി ഉടൻ നിർത്തണം. അതൊരു തോൽവി നൃത്തമാണ്.
ടീച്ചർ ടൂൾബോക്സ്
ഈ മത്സരത്തിനായുള്ള വിധിനിർണ്ണയം പല തരത്തിൽ കൈകാര്യം ചെയ്യാൻ കഴിയും. ഇടപഴകൽ വർദ്ധിപ്പിക്കുന്നതിനുള്ള ഒരു മാർഗം, വിദ്യാർത്ഥികൾ നൃത്തം വീഡിയോയിൽ റെക്കോർഡുചെയ്യുകയും മറ്റ് ക്ലാസുകളിലെ വിദ്യാർത്ഥികൾ വിജയിയെ വോട്ടുചെയ്യാൻ അനുവദിക്കുകയും ചെയ്യുക എന്നതാണ്. അത് വളരെ അഭിലാഷകരമാണെങ്കിൽ, ഈ വെല്ലുവിളി ആരംഭിക്കുന്നതിന് മുമ്പ് നിഷ്പക്ഷരായ ജഡ്ജിമാരുടെ ഒരു പാനലിനെ നിയമിക്കുന്നതോ മറ്റ് വിദ്യാർത്ഥികളെയോ അധ്യാപകരെയോ ജീവനക്കാരെയോ കൊണ്ടുവരുന്നതോ പരിഗണിക്കുക.
താഴെയുള്ള പരിഹാരം മൂന്ന് ഉദാഹരണ നൃത്തച്ചുവടുകളുടെയും സംയോജനം മാത്രമാണ്.
// V5 ലൈബ്രറി
ഉൾപ്പെടുത്തുക #include "vex.h"
// നെയിംസ്പേസ് vex ഉപയോഗിച്ച് VEX ലൈബ്രറി
എളുപ്പത്തിൽ ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു;
int main() {
// റോബോട്ട് കോൺഫിഗറേഷൻ ആരംഭിക്കുന്നു. നീക്കം ചെയ്യരുത്!
vexcodeInit();
while (true) {
ArmMotor.spinFor(മുന്നോട്ട്, 300, ഡിഗ്രി);
ArmMotor.setStopping(ബ്രേക്ക്);
repeat(3) {
Drivetrain.turnFor(വലത്, 90, ഡിഗ്രി);
repeat(2) {
ClawMotor.spinFor(മുന്നോട്ട്, 90, ഡിഗ്രി);
ClawMotor.spinFor(റിവേഴ്സ്, 90, ഡിഗ്രി);
}
Drivetrain.turnFor(ഇടത്, 90, ഡിഗ്രി);
repeat(2) {
ClawMotor.spinFor(മുന്നോട്ട്, 90, ഡിഗ്രി);
ClawMotor.spinFor(റിവേഴ്സ്, 90, ഡിഗ്രി);
}
}
repeat(2) {
ArmMotor.spinFor(മുന്നോട്ട്, 300, ഡിഗ്രി);
ആംമോട്ടർ.സെറ്റ്സ്റ്റോപ്പിംഗ്(ബ്രേക്ക്);
ഡ്രൈവ്ട്രെയിൻ.ടേൺഫോർ(വലത്, 90, ഡിഗ്രി);
റിപ്പീറ്റ്(9) {
ഡ്രൈവ്ട്രെയിൻ.ടേൺഫോർ(ഇടത്, 10, ഡിഗ്രി);
വെയിറ്റ്(.5, സെക്കൻഡ്);
}
ആംമോട്ടർ.സ്പിൻഫോർ(റിവേഴ്സ്, 300, ഡിഗ്രി);
}
ആംമോട്ടർ.സെറ്റ്വെലോസിറ്റി(80, ശതമാനം);
ഡ്രൈവ്ട്രെയിൻ.സെറ്റ്വെലോസിറ്റി(65, ശതമാനം);
റിപ്പീറ്റ്(2) {
ആംമോട്ടർ.സ്പിൻഫോർ(മുന്നോട്ട്, 900, ഡിഗ്രി);
റിപ്പീറ്റ്(3) {
ഡ്രൈവ്ട്രെയിൻ.ടേൺഫോർ(ഇടത്, 90, ഡിഗ്രി);
ഡ്രൈവ്ട്രെയിൻ.ടേൺഫോർ(വലത്, 90, ഡിഗ്രി);
}
ആംമോട്ടർ.സ്പിൻഫോർ(റിവേഴ്സ്, 900, ഡിഗ്രി);
}
}
}