Package Dash-uitdaging - Python
Package Dash-uitdaging
In deze uitdaging programmeer je jouw robot om pakketten op te pakken en ze zo snel mogelijk naar een laadperron te brengen!
Uitdagingsregels:
- De robot moet de uitdaging beginnen in de Startzone.
- De pakketten (aluminium blikjes) mogen alleen in contact komen met de boeken, de klauw van de Clawbot en het laadperron.
- Als een pakket op de grond van het magazijn valt, moet u het veld opnieuw instellen en opnieuw beginnen.
- De tijd voor elke run start zodra de robot beweegt.
- De tijd stopt zodra het laatste pakket in het laadperron is gedropt.
- Wanneer u het veld opnieuw instelt, moet alles worden teruggezet op de exacte locatie waarop het begon.
- Veel plezier!
Tips voor leraren
- Vergroot de betrokkenheid door een achtergrondverhaal of doel voor het magazijn te creëren! Wat voor soort magazijn is het? Welke soorten pakketten worden er in het magazijn aangetroffen? Wie is de eigenaar van het magazijn?
- Laat leerlingen verschillende routes of strategieën bedenken waarmee ze de blikken efficiënter kunnen vervoeren.
- Vergelijk niet alleen de doorlooptijden om de winnaar van deze uitdaging te bepalen (als je het competitief organiseert), maar ook de navigatietechnieken die worden gebruikt, zodat studenten de oplossingen van andere teams kunnen overwegen.
Teacher Toolbox
-
Oplossing
Een programmeerrubriek om studenten te beoordelen is hier te vinden .
Hieronder volgt een mogelijke oplossing voor dit probleem. Oplossingen kunnen variëren afhankelijk van de startpositie van de robot en het gekozen pad. Er zijn meerdere manieren om alle pakketten te verplaatsen.
# Begin projectcode
# Laat de klauwmotor veilig draaien en haal het eerste pakket
claw_motor.set_timeout(2, seconden)
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)
# Rijd naar het laadperron om het eerste pakket af te zetten
drivetrain.drive_for(REVERSE, 110, MM)
drivetrainturn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 920, MM)
drivetrain.turn_for(LEFT, 90, GRADEN)
drivetrain.drive_for(FORWARD, 2300, MM)
drivetrain.turn_for(LEFT, 90, GRADEN)
drivetrain.drive_for(FORWARD, 750, MM)
arm_motor.spin_for(REVERSE, 315, GRADEN)
claw_motor.spin_for(REVERSE, 120, GRADEN)
# Pak het tweede pakket
drivetrain.drive_for(REVERSE, 200, MM)
drivetrain.turn_for(LEFT, 170, GRADEN)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RECHTS, 90, GRADEN)
drivetrain.drive_for(VOORUIT, 2300, MM)
arm_motor.spin_for(VOORUIT, 315, GRADEN)
claw_motor.spin_for(VOORUIT, 120, GRADEN)
# Rijd naar het laadperron om het tweede pakket af te leveren
drivetrain.drive_for(VOORUIT, 900, MM)
drivetrain.turn_for(RECHTS, 90, GRADEN)
drivetrain.drive_for(VOORUIT, 960, MM)
arm_motor.spin_for(ACHTERUIT, 315, GRADEN)
claw_motor.spin_for(ACHTERUIT, 120, GRADEN)
# Haal het derde pakket op
drivetrain.drive_for(REVERSE, 150, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 490, MM)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# Rijd naar het laadperron om het derde pakket af te zetten
drivetrain.drive_for(REVERSE, 490, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 150, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, GRADEN)