Lezione 3: Quando viene rilevato il colore rosso
Non ci sono comandi per dire al Robot VR cosa fare una volta rilevato il colore rosso. Per evitare il bordo rosso, il robot VR dovrebbe invertire e girare una volta rilevato il colore rosso, come fa in questo video.
-
Aggiungere un commento alla fine del ciclo while per indicare cosa dovrebbe accadere quando il sensore Down Eye rileva il bordo rosso. Il tuo progetto dovrebbe assomigliare a questo:
def main(): # Cerca l'edificio mentre il bordo rosso non viene rilevato mentre non è down_eye.detect(ROSSO): # Il sensore di distanza rileva un castello? if front_distance.found_object(): # Crash castle detected by Distance Sensor drivetrain.drive(FORWARD) else: # Turn to find a castle using the Distance Sensor drivetrain.turn(RIGHT) wait(5, MSEC) # Reverse and turn when red border detected -
Aggiungere i comandi drive_for e turn_for sotto il commento per consentire al robot VR di fare retromarcia e girare una volta che il sensore Down Eye rileva il colore rosso.
def main(): # Cerca l'edificio mentre il bordo rosso non viene rilevato mentre non è down_eye.detect(ROSSO): # Il sensore di distanza rileva un castello? if front_distance.found_object(): # Crash castle detected by Distance Sensor drivetrain.drive (FORWARD) else: # Turn to find a castle using the Distance Sensor drivetrain.turn (RIGHT) wait(5, MSEC) # Reverse and turn when red border detected drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (RIGHT, 90, DEGREES) - Apri il parco giochi dinamico Castle Crasher se non è già aperto ed esegui il progetto. Il robot VR si comporta come previsto?
- Quando questo progetto viene eseguito, ci sono due condizioni che vengono controllate. La prima è la condizione del sensore Down Eye che rileva il colore rosso all'interno del ciclo while Si noti che il flusso del progetto passa alla condizione successiva di un oggetto rilevato SOLO se il sensore Down Eye non rileva il colore rosso. Se il sensore Down Eye rileva il rosso, il flusso del progetto salta l'istruzione if else e passa alla guida in retromarcia e alla rotazione.

- La seconda condizione che viene verificata è l'istruzione if else. Finché il sensore Down Eye non rileva il rosso, il progetto continuerà nel ciclo mentre per verificare le condizioni del sensore di distanza. Il robot VR utilizzerà i dati del sensore di distanza per prendere la decisione di avanzare o girare a destra.

-
Tuttavia, una volta che il sensore Down Eye rileva il colore rosso, il robot VR si muoverà in retromarcia, girerà, quindi si fermerà poiché questa è la fine del flusso del progetto. Non viene utilizzato alcun loop per ripetere nuovamente i comportamenti.

Aggiungere un ciclo infinito while
-
È necessario un ciclo infinito while affinché i comportamenti si ripetano in un ciclo. Trascina o digita a while loop nella parte superiore del progetto e imposta la condizione su True per creare un ciclo infinito. Quindi, copia e incolla il codice precedente all'interno del ciclo infinito while . Assicurarsi che i comandi siano correttamente rientrati sotto le intestazioni corrette, altrimenti il progetto potrebbe non essere eseguito come previsto. Il tuo progetto dovrebbe assomigliare a questo:
def main(): while True: # Cerca l'edificio mentre il bordo rosso non viene rilevato mentre non è down_eye.detect(RED): # Il sensore di distanza rileva un castello? if front_distance.found_object(): # Crash castle detected by Distance Sensor drivetrain.drive (FORWARD) else: # Turn to find a castle using the Distance Sensor drivetrain.turn (RIGHT) wait(5, MSEC) # Reverse and turn when red border detected drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (RIGHT, 90, DEGREES) - Apri il parco giochi dinamico Castle Crasher se non è già aperto ed esegui il progetto. Il robot VR si comporta come previsto?
-
Quando questo progetto viene eseguito, il robot VR si dirigerà verso un castello rilevato e girerà a destra se non vengono segnalati castelli. Una volta che il sensore Down Eye rileva il colore rosso, il robot VR si muove in retromarcia, gira e continua a guidare verso un altro castello.
