Skip to main content
Portale insegnanti

Collegamento alla concorrenza: punto di svolta - Python

Campo da gara di robotica VEX Turning Point con elementi di gioco e aree di punteggio nelle posizioni di partenza per l'inizio della partita. Lungo la parete di fondo c'è una rete con davanti una serie di bandierine che si possono lanciare.
VRC 2018-2019 Punto di svolta Campo

Capacità del robot

Nel gioco Turning Point della VEX Robotics Competition 2018-2019, i giocatori dovevano alternare le bandiere tra gli altri elementi del gioco. In totale c'erano nove bandiere: tre bandiere in basso che potevano essere alzate dal robot e sei bandiere in alto che potevano essere alzate solo colpendole con i pezzi del gioco della palla da competizione. Le squadre in gara dovevano trovare un modo per colpire le bandierine più alte utilizzando un lanciatore di palline. Se potete immaginare, programmare il robot affinché colpisca le bandierine usando i pezzi di un gioco con la palla misurando potrebbe non essere sempre preciso. Se il robot sbaglia una svolta durante il periodo di autonomia, è possibile che nessuna delle bandierine venga colpita perché i calcoli sarebbero sbagliati. Allo stesso modo, per la sfida Driving Skills, potrebbe essere difficile per le squadre allineare manualmente il robot in modo sufficiente a lanciare la palla correttamente. Pertanto, team qualificati programmerebbero il robot utilizzando il sensore visivo per rilevare le bandierine e quindi allineerebbero correttamente il robot per effettuare tiri precisi.

Estendi la tua icona di apprendimento Amplia il tuo apprendimento

Per ampliare questa attività, chiedi ai tuoi studenti di progettare e delineare un progetto in cui il robot si muoverà verso gli oggetti gialli rilevati che potrebbero potenzialmente utilizzare per questo gioco competitivo!
Chiedi ai tuoi studenti di fare quanto segue:

Visualizza la soluzione di esempio qui sotto:

# La libreria importa
da vex import *

# Inizia il codice del progetto

check_yellow = Event()

def check_yellow_callback():
    brain.screen.set_font(FontType.MONO40)
    brain.screen.clear_row(3)
    brain.screen.set_cursor(3, 1)
    vision_5_objects = vision_5.take_snapshot(vision_5__YELLOWBOX)

    if (vision_5_objects):
        arm_motor.spin_for(FORWARD, 300, DEGREES)
        claw_motor.spin_for(FORWARD, 100, DEGREES)
        drivetrain.drive_for(FORWARD, 12, INCHES)
        arm_motor.spin_for(REVERSE, 300, DEGREES)
        claw_motor.spin_for(REVERSE, 100, GRADI)
    
    else:
        brain.screen.print("Nessun oggetto giallo")

# gestori eventi di sistema
check_yellow(check_yellow_callback)

# piccolo ritardo per garantire che i gestori eventi siano pronti per essere utilizzati
wait(15, MSEC)

# viene eseguito costantemente per verificare la presenza di nuovi dati del sensore
while True:
    check_blue.broadcast_and_wait()
    wait(105, MSEC)