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:

  • Aprire il progetto di esempio del modello Clawbot (Trasmissione, 2 motori, senza giroscopio).

    Selezione del progetto di esempio VEXcode V5 con il filtro Modello selezionato nella parte superiore e l'icona del progetto Clawbot Drivetrain 2 motor no gyro evidenziata in una casella rossa.

  • Utilizzare il progetto di esempio Rilevamento oggetti (Visione) come riferimento durante la programmazione del sensore visivo. Utilizzare il progetto di esempio Rilevamento oggetti (Visione) come riferimento durante la programmazione del sensore visivo (Google Doc / .v5python).
  • Aggiungere il sensore visivo alla configurazione Clawbot (trasmissione, 2 motori, senza giroscopio), quindi configurare il sensore visivo per rilevare oggetti rossi e blu. Per ulteriori informazioni, fare riferimento agli articoli e del sensore visivo.

    Finestra Dispositivi VEXcode V5 aperta con le opzioni visualizzate per aggiungere un dispositivo. Nella finestra compare la scritta Seleziona un dispositivo e l'opzione Visione è evidenziata con una casella rossa. Altre opzioni includono controller, trasmissione, motore e 3 fili.

  • Programmare il Clawbot affinché si muova verso l'oggetto rilevato. Il Clawbot può addirittura essere programmato per alzare il braccio come se dovesse muovere una bandiera!
  • Scarica ed esegui il progetto per se il sensore visivo riesce a rilevare oggetti gialli come le palline gialle nel gioco VRC Turning Point. Se il sensore visivo riesce a rilevare oggetti, il robot si muove in base agli oggetti rilevati? Per assistenza nel download e nell'esecuzione di un progetto, visualizza questo articolo.
  • Se il tempo lo consente, allestisci un campo di gioco simile al campo Turning Point. Esercitati a usare il sensore visivo per consentire al robot di muoversi e segnare punti!

Visualizza la soluzione di esempio qui sotto:

# Library imports
  from vex import *
  
  # Begin project code
  
  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, DEGREES)
      
      else:
          brain.screen.print("No Yellow Object")
  
  # system event handlers
  check_yellow(check_yellow_callback)
  
  # small delay to ensure that the event handlers are ready to be used
  wait(15, MSEC)
  
  # constantly runs to check for new sensor data
  while True:
      check_blue.broadcast_and_wait()
      wait(105, MSEC)