പാക്കേജ് ഡാഷ് ചലഞ്ച് - പൈത്തൺ
പാക്കേജ് ഡാഷ് ചലഞ്ച്
ഈ വെല്ലുവിളിയിൽ, നിങ്ങളുടെ റോബോട്ടിനെ പാക്കേജുകൾ എടുത്ത് എത്രയും വേഗം ഒരു ലോഡിംഗ് ഡോക്കിലേക്ക് കൊണ്ടുവരാൻ പ്രോഗ്രാം ചെയ്യും!
വെല്ലുവിളി നിയമങ്ങൾ:
- റോബോട്ട് സ്റ്റാർട്ട് സോണിൽ നിന്നാണ് വെല്ലുവിളി ആരംഭിക്കേണ്ടത്.
- പാക്കേജുകൾ (അലുമിനിയം ക്യാനുകൾ) പുസ്തകങ്ങൾ, ക്ലോബോട്ടിന്റെ നഖം, ലോഡിംഗ് ഡോക്ക് എന്നിവയുമായി മാത്രമേ സമ്പർക്കത്തിൽ വരൂ.
- ഒരു പാക്കേജ് വെയർഹൗസ് ഗ്രൗണ്ടിൽ വീണാൽ, നിങ്ങൾ ഫീൽഡ് പുനഃസജ്ജമാക്കി വീണ്ടും ആരംഭിക്കണം.
- റോബോട്ട് നീങ്ങുമ്പോൾ തന്നെ ഓരോ ഓട്ടത്തിനുമുള്ള സമയം ആരംഭിക്കുന്നു.
- അവസാന പാക്കേജ് ലോഡിംഗ് ഡോക്കിൽ വീണാലുടൻ സമയം നിർത്തുന്നു.
- ഫീൽഡ് പുനഃസജ്ജമാക്കുമ്പോൾ, എല്ലാം ആരംഭിച്ച അതേ സ്ഥാനത്തേക്ക് തിരികെ കൊണ്ടുവരണം.
- തമാശയുള്ള!
അധ്യാപക നുറുങ്ങുകൾ
- വെയർഹൗസിന് ഒരു പശ്ചാത്തല കഥയോ ഉദ്ദേശ്യമോ സൃഷ്ടിച്ചുകൊണ്ട് ഇടപഴകൽ വർദ്ധിപ്പിക്കുക! ഇത് എങ്ങനെയുള്ള വെയർഹൗസാണ്? വെയർഹൗസിൽ ഏതൊക്കെ തരം പാക്കേജുകളാണ് കാണപ്പെടുന്നത്? ആരുടെ ഉടമസ്ഥതയിലാണ് വെയർഹൗസ്?
- കൂടുതൽ കാര്യക്ഷമമായി ക്യാനുകൾ കൊണ്ടുപോകാൻ അനുവദിക്കുന്ന വ്യത്യസ്ത വഴികളോ തന്ത്രങ്ങളോ സൃഷ്ടിക്കാൻ വിദ്യാർത്ഥികളെ അനുവദിക്കുക.
- ഈ വെല്ലുവിളിയുടെ വിജയിയെ തീരുമാനിക്കാൻ (മത്സരാർത്ഥമായി സംഘടിപ്പിക്കുകയാണെങ്കിൽ) പൂർത്തിയാകുന്നതുവരെയുള്ള സമയം മാത്രമല്ല, മറ്റ് ടീമുകളുടെ പരിഹാരങ്ങൾ വിദ്യാർത്ഥികൾക്ക് പരിഗണിക്കാൻ കഴിയുന്ന തരത്തിൽ ഉപയോഗിക്കുന്ന നാവിഗേഷൻ സാങ്കേതികതകളും താരതമ്യം ചെയ്യുക.
ടീച്ചർ ടൂൾബോക്സ്
-
പരിഹാരം
വിദ്യാർത്ഥികളെ വിലയിരുത്തുന്നതിനുള്ള ഒരു പ്രോഗ്രാമിംഗ് റൂബ്രിക് ഇവിടെ ൽ കാണാം.
വെല്ലുവിളിക്ക് സാധ്യമായ ഒരു പരിഹാരം താഴെ കൊടുക്കുന്നു. റോബോട്ടിന്റെ ആരംഭ സ്ഥാനവും തിരഞ്ഞെടുക്കുന്ന പാതയും അനുസരിച്ച് പരിഹാരങ്ങൾ വ്യത്യാസപ്പെടാം. എല്ലാ പാക്കേജുകളും നീക്കുന്നതിലേക്ക് നയിച്ചേക്കാവുന്ന ഒന്നിലധികം പാതകളുണ്ട്.
# പ്രോജക്റ്റ് കോഡ്
ആരംഭിക്കുക # ക്ലോ മോട്ടോർ സുരക്ഷിതമായി പ്രവർത്തിപ്പിച്ച് ആദ്യത്തെ പാക്കേജ് എടുക്കുക
claw_motor.set_timeout(2, seconds)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.drive_for(FORWARD, 215, MM)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# ആദ്യ പാക്കേജ് ഡ്രോപ്പ് ചെയ്യാൻ ലോഡിംഗ് ഡോക്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക
drivetrain.drive_for(REVERSE, 110, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 920, MM)
ഡ്രൈവ്ട്രെയിൻ.turn_for(LEFT, 90, DEGREES)
ഡ്രൈവ്ട്രെയിൻ.drive_for(FORWARD, 2300, MM)
ഡ്രൈവ്ട്രെയിൻ.turn_for(LEFT, 90, DEGREES)
ഡ്രൈവ്ട്രെയിൻ.drive_for(FORWARD, 750, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, DEGREES)
# രണ്ടാമത്തെ പാക്കേജ് എടുക്കുക
ഡ്രൈവ്ട്രെയിൻ.drive_for(REVERSE, 200, MM)
ഡ്രൈവ്ട്രെയിൻ.turn_for(LEFT, 170, DEGREES)
ഡ്രൈവ്ട്രെയിൻ.drive_for(FORWARD, 900, MM)
ഡ്രൈവ്ട്രെയിൻ.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 2300, MM)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# രണ്ടാമത്തെ പാക്കേജ് ഡ്രോപ്പ് ചെയ്യാൻ ലോഡിംഗ് ഡോക്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 960, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, DEGREES)
# മൂന്നാമത്തെ പാക്കേജ് എടുക്കുക
drivetrain.drive_for(REVERSE, 150, MM)
drivetrain.turn_for(LEFT, 90, ഡിഗ്രികൾ)
ഡ്രൈവ്ട്രെയിൻ.ഡ്രൈവ്_ഫോർ(ഫോർവേഡ്, 490, എംഎം)
ആർം_മോട്ടോർ.സ്പിൻ_ഫോർ(ഫോർവേഡ്, 315, ഡിഗ്രികൾ)
ക്ലാവ്_മോട്ടോർ.സ്പിൻ_ഫോർ(ഫോർവേഡ്, 120, ഡിഗ്രികൾ)
# മൂന്നാമത്തെ പാക്കേജ് ഡ്രോപ്പ് ചെയ്യാൻ ലോഡിംഗ് ഡോക്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക
ഡ്രൈവ്ട്രെയിൻ.ഡ്രൈവ്_ഫോർ(റിവേഴ്സ്, 490, എംഎം)
ഡ്രൈവ്ട്രെയിൻ.ടേൺ_ഫോർ(റൈറ്റ്, 90, ഡിഗ്രികൾ)
ഡ്രൈവ്ട്രെയിൻ.ഡ്രൈവ്_ഫോർ(ഫോർവേഡ്, 150, എംഎം)
ആർം_മോട്ടോർ.സ്പിൻ_ഫോർ(റിവേഴ്സ്, 315, ഡിഗ്രികൾ)
ക്ലാവ്_മോട്ടോർ.സ്പിൻ_ഫോർ(റിവേഴ്സ്, 120, ഡിഗ്രികൾ)