De Groove Machine-uitdaging - Python
De Groove Machine-uitdaging
Bij deze uitdaging verdeel je je in teams en programmeer je je robot om een dansroutine uit te voeren. Hierbij maak je gebruik van je kennis van loops. Je leraar zal een tijdslimiet vaststellen voor het ontwikkelen/testen van de dans en een tijdslimiet voor de lengte van de dans. Alle deelnemers die niet in een van de concurrerende dansteams zitten, beoordelen de dansen en stemmen op het team dat zij het beste vinden.
Regels:
- Elke Clawbot danst één voor één binnen het gebied van 1x1 meter.
- Het dansen gaat door totdat de Stop-knop op het scherm van de Brain wordt ingedrukt om het project te stoppen.
- De arm moet omhoog en omlaag gebracht worden.
- De klauw moet open en dicht kunnen.
- De Clawbot moet naar links en rechts draaien.
- De Clawbot moet vooruit en achteruit rijden.
- Als de Clawbot ergens tegenaan botst of omvalt, moet het project onmiddellijk worden gestopt. Dat is een verloren dans.
Toolbox voor leraren
De jurering voor deze wedstrijd kan op verschillende manieren worden uitgevoerd. Eén manier om de betrokkenheid te vergroten, is door leerlingen de danswedstrijd te laten opnemen op video en leerlingen uit andere klassen te laten stemmen op de winnaar. Als dat te ambitieus is, overweeg dan om een panel van onafhankelijke juryleden aan te stellen voordat u aan de uitdaging begint. U kunt ook andere studenten, docenten of medewerkers inschakelen.
De oplossing hieronder is simpelweg een combinatie van alle drie de voorbeelddansbewegingen aan elkaar geregen.
# Bibliotheek importeert
van vex import *
# Begin projectcode
while True:
arm_motor.spin_for(FORWARD, 300, DEGREES)
arm_motor.set_stopping(BRAKE)
voor repeat_count in range(3):
drivetrain.turn_for(RIGHT, 90, DEGREES)
voor repeat_claw in range(2):
claw_motor.spin_for(REVERSE, 90, DEGREES)
claw_motor.spin_for(FORWARD, 90, DEGREES)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
voor repeat_claw in range(2):
claw_motor.spin_for(REVERSE, 90, DEGREES)
claw_motor.spin_for(VOORUIT, 90, GRADEN)
wait(5, MSEC)
wait(5, MSEC)
for repeat_count in range(2):
arm_motor.spin_for(VOORUIT, 300, GRADEN)
arm_motor.set_stopping(REM)
drivetrain.turn_for(RECHTS, 90, GRADEN)
for repeat_turn in range(9):
drivetrain.turn_for(LINKS, 10, GRADEN)
wait(5, MSEC)
arm_motor.spin_for(ACHTERUIT, 300, GRADEN)
wait(5, MSEC)
arm_motor.set_velocity(80, PERCENT)
drivetrain.set_turn_velocity(65, PERCENT)
voor repeat_count in range(2):
arm_motor.spin_for(FORWARD, 300, DEGREES)
voor repeat_turn in range(3):
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(5, MSEC)
arm_motor.spin_for(REVERSE, 300, DEGREES)
wait(5, MSEC)