Μάθημα 3: Όταν ανιχνεύεται κόκκινο χρώμα
Δεν υπάρχουν εντολές που να υποδεικνύουν στο ρομπότ εικονικής πραγματικότητας τι να κάνει μόλις ανιχνεύσει το κόκκινο χρώμα. Για να αποφευχθεί το κόκκινο περίγραμμα, το ρομπότ εικονικής πραγματικότητας θα πρέπει να κάνει όπισθεν και να γυρίσει μόλις ανιχνεύσει το κόκκινο χρώμα, όπως κάνει σε αυτό το βίντεο.
-
Προσθέστε ένα σχόλιο στο τέλος του βρόχουwhileγια να υποδείξετε τι θα πρέπει να συμβεί όταν ο αισθητήρας Down Eye ανιχνεύσει το κόκκινο περίγραμμα. Το έργο σας θα πρέπει τώρα να μοιάζει με αυτό:
def main(): # Αναζητήστε κτίριο ενώ δεν ανιχνεύεται το κόκκινο περίγραμμα ενώ δεν ανιχνεύεται down_eye.detect(RED): # Εντοπίζει ο αισθητήρας απόστασης κάποιο κάστρο; if front_distance.found_object(): # Ανιχνεύτηκε κάστρο σύγκρουσης από τον αισθητήρα απόστασης drivetrain.drive(FORWARD) else: # Στρίψτε για να βρείτε ένα κάστρο χρησιμοποιώντας τον αισθητήρα απόστασης drivetrain.turn(RIGHT) wait(5, MSEC) # Κινηθείτε προς τα πίσω και στρίψτε όταν ανιχνευθεί κόκκινο περίγραμμα -
Προσθέστε τις εντολές drive_forκαι turn_for κάτω από το σχόλιο για να επιτρέψετε στο ρομπότ εικονικής πραγματικότητας να κάνει όπισθεν και να στρίψει μόλις ο αισθητήρας Down Eye ανιχνεύσει το κόκκινο χρώμα.
def main(): # Αναζητήστε κτίριο ενώ δεν ανιχνεύεται το κόκκινο περίγραμμα ενώ δεν ανιχνεύεται down_eye.detect(RED): # Εντοπίζει ο αισθητήρας απόστασης κάποιο κάστρο; if front_distance.found_object(): # Ανιχνεύτηκε κάστρο σύγκρουσης από τον αισθητήρα απόστασης drivetrain.drive(FORWARD) else: # Στρίψτε για να βρείτε ένα κάστρο χρησιμοποιώντας τον αισθητήρα απόστασης drivetrain.turn(RIGHT) wait(5, MSEC) # Κινηθείτε προς τα πίσω και στρίψτε όταν ανιχνευθεί κόκκινο περίγραμμα drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(RIGHT, 90, DEGREES) - Ανοίξτε το Dynamic Castle Crasher Playgroundεάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο. Συμπεριφέρεται το ρομπότ εικονικής πραγματικότητας όπως το είχατε σχεδιάσει;
- Όταν εκτελείται αυτό το έργο, υπάρχουν δύο συνθήκες που ελέγχονται. Η πρώτη είναι η κατάσταση του αισθητήρα Down Eye που ανιχνεύει το κόκκινο χρώμα μέσα στον βρόχο while. Σημειώστε ότι η ροή του έργου μετακινείται στην επόμενη συνθήκη ανίχνευσης αντικειμένου ΜΟΝΟ εάν ο αισθητήρας Down Eye δεν βλέπει το κόκκινο χρώμα. Εάν ο αισθητήρας Down Eye ανιχνεύσει κόκκινο, η ροή έργου παρακάμπτει την εντολή if else και μεταβαίνει στην οδήγηση με την όπισθεν και στη στροφή.

- Η δεύτερη συνθήκη που ελέγχεται είναι η πρότασηif else. Ενώ ο αισθητήρας Down Eye δεν ανιχνεύει κόκκινο, το έργο θα συνεχιστεί στον βρόχοwhileγια να ελεγχθεί η κατάσταση του αισθητήρα απόστασης. Το ρομπότ εικονικής πραγματικότητας θα χρησιμοποιήσει τα δεδομένα από τον αισθητήρα απόστασης για να αποφασίσει αν θα κινηθεί προς τα εμπρός ή προς τα δεξιά.

-
Ωστόσο, μόλις ο αισθητήρας Down Eye ανιχνεύσει το κόκκινο χρώμα, το ρομπότ εικονικής πραγματικότητας θα κινηθεί προς τα πίσω, θα στρίψει και στη συνέχεια θα σταματήσει, καθώς αυτό είναι το τέλος της ροής του έργου. Δεν υπάρχει βρόχος που να χρησιμοποιείται για την επανάληψη των συμπεριφορών.

Προσθέτοντας έναν άπειρο βρόχο ενώ
-
Απαιτείται ένας άπειρος βρόχος ενώγια να επαναληφθούν οι συμπεριφορές σε έναν βρόχο. Σύρετε ή πληκτρολογήστε έναν βρόχο while στην κορυφή του έργου και ορίστε τη συνθήκη σε True για να δημιουργήσετε έναν άπειρο βρόχο. Στη συνέχεια, αντιγράψτε και επικολλήστε τον προηγούμενο κώδικα μέσα στον βρόχο άπειρο while. Βεβαιωθείτε ότι οι εντολές έχουν τοποθετηθεί σωστά κάτω από τις σωστές κεφαλίδες, διαφορετικά το έργο ενδέχεται να μην εκτελεστεί όπως αναμένεται. Το έργο σας θα πρέπει τώρα να μοιάζει με αυτό:
def main(): while True: # Αναζητήστε κτίριο ενώ δεν ανιχνεύεται το κόκκινο περίγραμμα while not down_eye.detect(RED): # Εντοπίζει ο αισθητήρας απόστασης κάποιο κάστρο; if front_distance.found_object(): # Ανιχνεύτηκε κάστρο σύγκρουσης από τον αισθητήρα απόστασης drivetrain.drive(FORWARD) else: # Στρίψτε για να βρείτε ένα κάστρο χρησιμοποιώντας τον αισθητήρα απόστασης drivetrain.turn(RIGHT) wait(5, MSEC) # Κινηθείτε προς τα πίσω και στρίψτε όταν ανιχνευθεί κόκκινο περίγραμμα drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(RIGHT, 90, DEGREES) - Ανοίξτε το Dynamic Castle Crasher Playgroundεάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο. Συμπεριφέρεται το ρομπότ εικονικής πραγματικότητας όπως το θέλατε;
-
Όταν εκτελείται αυτό το έργο, το ρομπότ εικονικής πραγματικότητας θα οδηγεί προς ένα εντοπισμένο κάστρο και θα στρίβει δεξιά εάν δεν έχουν αναφερθεί κάστρα. Μόλις ο αισθητήρας Down Eye ανιχνεύσει το κόκκινο χρώμα, το ρομπότ εικονικής πραγματικότητας (VR) κινείται με την όπισθεν, στρίβει και συνεχίζει να οδηγεί προς ένα άλλο κάστρο.

Ερωτήσεις
Επιλέξτε έναν σύνδεσμο παρακάτω για να αποκτήσετε πρόσβαση στο κουίζ του μαθήματος.
Έγγραφο Google / .docx / .pdf