Μετάβαση στο κύριο περιεχόμενο
Πύλη Εκπαιδευτικών

Η Πρόκληση της Μηχανής Groove - Python

VEX V5 Clawbot με το χέρι ψηλά και το νύχι ανοιχτό.
VEX V5 Clawbot με το χέρι ψηλά και το νύχι ανοιχτό.

Η πρόκληση της μηχανής Groove

Σε αυτήν την πρόκληση, θα χωριστείτε σε ομάδες και θα προγραμματίσετε το ρομπότ σας να εκτελέσει μια χορευτική ρουτίνα χρησιμοποιώντας τις γνώσεις σας για τους βρόχους. Ο δάσκαλός σας θα ορίσει ένα χρονικό όριο για την ανάπτυξη/δοκιμή του χορού και ένα χρονικό όριο για τη διάρκεια του χορού. Όλοι όσοι δεν συμμετέχουν στις ομάδες που θα αγωνιστούν μεταξύ τους, θα κρίνουν τους χορούς και θα ψηφίσουν την ομάδα που θεωρούν καλύτερη.

Κανόνες:

  • Κάθε Clawbot θα χορεύει ένα κάθε φορά εντός της περιοχής 1x1 μέτρου.
  • Ο χορός συνεχίζεται μέχρι να πατηθεί το κουμπί Διακοπής στην οθόνη του Εγκεφάλου για να σταματήσει η εκτέλεση του έργου.
  • Το χέρι πρέπει να ανυψώνεται και να κατεβαίνει.
  • Το νύχι πρέπει να ανοίγει και να κλείνει.
  • Το Clawbot πρέπει να στρίβει αριστερά και δεξιά.
  • Το Clawbot πρέπει να κινείται προς τα εμπρός και προς τα πίσω.
  • Το έργο πρέπει να διακοπεί αμέσως εάν το Clawbot συγκρουστεί με οτιδήποτε ή πέσει. Αυτός είναι ένας χαμένος χορός.

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου

Η αξιολόγηση αυτού του διαγωνισμού θα μπορούσε να γίνει με διάφορους τρόπους. Ένας τρόπος για να αυξηθεί η συμμετοχή είναι να ζητήσετε από τους μαθητές να βιντεοσκοπήσουν τον χορό και να ζητήσετε από μαθητές από άλλες τάξεις να ψηφίσουν για τον νικητή. Αν αυτό είναι πολύ φιλόδοξο, σκεφτείτε το ενδεχόμενο να διορίσετε μια ομάδα αμερόληπτων κριτών πριν ξεκινήσετε αυτήν την πρόκληση ή να φέρετε άλλους μαθητές, καθηγητές ή προσωπικό.

Η παρακάτω λύση είναι απλώς ένας συνδυασμός και των τριών παραδειγματικών χορευτικών κινήσεων μαζί.

# Εισαγωγές βιβλιοθήκης
από vex import *

# Έναρξη κώδικα έργου
ενώ είναι True:
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    arm_motor.set_stopping(BRAKE)
    
    για repeat_count στο range(3):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        
        για repeat_claw στο 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)
        για repeat_claw στο range(2):
            claw_motor.spin_for(REVERSE, 90, DEGREES)
            claw_motor.spin_for(FORWARD, 90, ΜΟΙΡΕΣ)
            wait(5, MSEC)
            
        wait(5, MSEC)

    για repeat_count στην περιοχή(2):
        arm_motor.spin_for(FORWARD, 300, ΜΟΙΡΕΣ)
        arm_motor.set_stopping(ΦΡΕΝΟ)
        drivetrain.turn_for(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)
        
        για repeat_turn στην περιοχή(9):
            drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 10, ΜΟΙΡΕΣ)
            wait(5, MSEC)
            
        arm_motor.spin_for(REVERSE, 300, ΜΟΙΡΕΣ)
        wait(5, MSEC)

    arm_motor.set_velocity(80, ΤΟΙΣΟΣΤΟ)
    drivetrain.set_turn_velocity(65, ΠΟΣΟΣΤΟ)
    
    για επαναλαμβανόμενη_μέτρηση στην περιοχή(2):
        βραχίονας_περιστροφής_για(ΜΠΡΟΣΤΑ, 300, ΜΟΙΡΕΣ)
        
        για επαναλαμβανόμενη_στροφή στην περιοχή(3):
            σύστημα μετάδοσης κίνησης.στροφή_για(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)
            σύστημα μετάδοσης κίνησης.στροφή_για(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)
            αναμονή(5, MSEC)
            
        βραχίονας_περιστροφής_για(ΠΙΣΩ, 300, ΜΟΙΡΕΣ)
        αναμονή(5, MSEC)