Skip to main content

Lezione 4: Flusso del progetto con cicli nidificati

Raccogli i due dischi successivi

  • Ora che il robot VR è rivolto verso i dischi rossi, il robot VR dovrà ripetere gli stessi comportamenti utilizzati per raccogliere il disco blu, al fine di raccogliere e spostare il disco rosso. I comportamenti di guida in avanti per prendere il disco, girarsi e tornare allo stesso obiettivo colorato per lasciare il disco.

    Vista dall'alto verso il basso del Disk Mover Playground con frecce tratteggiate che indicano il percorso del Robot VR dall'obiettivo rosso per raccogliere il disco rosso e rilasciarlo nell'obiettivo, quindi puntando a destra per passare all'obiettivo verde.
  • Una volta spostato il primo disco rosso, il robot VR dovrà quindi guidare verso l'obiettivo verde ed eseguire le stesse azioni utilizzate per spostare il disco blu e rosso, per spostare il primo disco verde.

    Vista dall'alto verso il basso del Disk Mover Playground all'inizio, con frecce tratteggiate che indicano il percorso che il robot deve spostare per raccogliere ciascun disco. Le frecce puntano da e verso ogni obiettivo al primo disco e le frecce aggiuntive a destra puntano tra ciascuna delle aree dell'obiettivo.
  • Per ripetere i comportamenti più volte, è possibile utilizzare un ciclo per.
    Comando VEXcode VR Python for loop all'interno della definizione principale. Il comando legge il valore nell'intervallo con 10 tra parentesi sulla prima riga, quindi rientrato sotto un comando wait legge wait con 5, MSEC tra parentesi.
  • Aggiungere un ciclo per all'inizio del progetto, sopra il primo commento, e impostare il parametro funzione range su '3'. Assicurarsi che il ciclo per sia rientrato nella definizione principale.

    def main():
        per repeat_count nell'intervallo(3):
            wait(5, MSEC)
  • Per copiare il codice nel ciclo per , sarà necessario prestare particolare attenzione all'indentazione. Per prima cosa, aggiungi uno spazio prima del comando wait , in modo che il ciclo appaia così:

    def main():
        per repeat_count nell'intervallo(3):
    
    
            
            wait(5, MSEC)
  • Successivamente, seleziona i comandi da inserire nel ciclo per , quindi copiali e incollali sopra il comando wait . Si noti che l'indentazione non sarà corretta dopo aver semplicemente copiato e incollato. La linea indicatrice grigia del ciclo per è interrotta e scollegata dal comando wait . Questo è un segnale visivo che il tuo progetto non eseguirà come previsto.Il progetto dall'alto, copia incollata nel ciclo for, con rientro errato. L'indentazione corretta è mostrata nel blocco di codice successivo.
  • Selezionare i comandi all'interno del ciclo per e utilizzare 'Tab' per rientrare correttamente i comandi all'interno del ciclo. Se correttamente rientrata, la linea indicatrice grigia dovrebbe collegare il ciclo per con il comando wait  per mostrare i limiti del ciclo esterno. Una volta completato, il tuo progetto dovrebbe assomigliare a questo: 

    def main():
        per repeat_count nell'intervallo(3):
            # 1. Drive to disk using Down Eye Sensor
            while not down_eye.near_object():
                drivetrain.drive(FORWARD)
                wait(5, MSEC)
            drivetrain.stop()
    
            # 2. Prendi il magnete del
            disco. Energizza (BOOST)
    
            # 3. Guidare verso l'obiettivo utilizzando il sensore
            di distanza drivetrain.turn_to_heading (180, GRADI)
            mentre front_distance.get_distance (MM) > 200
                :drivetrain.drive (FORWARD)
                wait(5, MSEC)
            drivetrain. stop()
    
            # 4. Drop disk in goal
            magnet.energize(DROP)
            drivetrain.drive_for(REVERSE, 100, MM)
    
            # 5. Girare e guidare verso il prossimo
            obiettivodrivetrain.turn_to_heading (90, GRADI)
            drivetrain.drive_for(AVANTI, 800, MM)
    
            # 6. Passare ai dischi
            drivetrain.turn_to_heading(0, GRADI)  
    
        wait(5, MSEC)
  • Guarda il video qui sotto per vedere come spostare i comandi e regolare l'indentazione come descritto sopra. Nel video clip, vengono evidenziate le sei sezioni di commento del progetto e viene aperto il menu contestuale. Viene selezionata l'opzione "Taglia", quindi il cursore viene posizionato sotto il comando for loop. Il menu contestuale viene aperto di nuovo e viene selezionato "Incolla". I comandi si trovano quindi all'interno del ciclo per , ma sono rientrati in modo errato. Le sei sezioni di commento vengono nuovamente evidenziate e viene premuto "Tab" sulla tastiera per far rientrare correttamente il progetto all'interno del ciclo.
File video
  • Aprire il Disk Mover Playground se non è già aperto ed eseguire il progetto.
  • Quando questo progetto viene eseguito, il robot VR raccoglie e rilascia un disco di ciascun colore nel suo obiettivo colorato corrispondente.

    Una vista dall'alto verso il basso del robot VR alla fine del progetto, con un disco di ciascun colore nell'obiettivo corrispondente e il robot VR rivolto verso la parete laterale destra sul bordo dell'obiettivo verde nell'angolo in basso a destra.

Per tua informazione

Si noti che il robot VR ha continuato a guidare contro il muro. Questo comportamento è previsto poiché il progetto ha incaricato il robot VR di girare a destra e guidare verso l'obiettivo successivo, per tre volte. La prima volta è guidare dal blu al rosso. Il secondo è dal rosso al verde, e il terzo è dal verde al muro, poiché non c'è un altro obiettivo colorato. Interrompi il progetto una volta che il robot VR colpisce il muro. Il progetto potrebbe essere migliorato in modo che il robot VR si fermi dopo aver raccolto e spostato il disco verde, ma ciò aumenterebbe la complessità complessiva del progetto.

Una vista dall'alto verso il basso del Robot VR alla fine del progetto, con il pulsante Stop nella finestra Playground evidenziato nell'angolo sinistro. Sul campo da gioco, uno di ciascun disco colorato nell'obiettivo corrispondente e il robot VR rivolto verso la parete laterale destra al centro dell'obiettivo verde, quando è stato premuto il pulsante di arresto.

 

 

Domande

Seleziona un link qui sotto per accedere al quiz della lezione.

Google Doc / .docx / .pdf