Μετάβαση στο κύριο περιεχόμενο

Μάθημα 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 και μεταβαίνει στην οδήγηση με την όπισθεν και στη στροφή.
    Κώδικας έργου Python αυτού του μαθήματος με ένα διάγραμμα που δείχνει τη ροή του έργου στο πλάι. Διαβάζει την ένδειξη Πρώτη συνθήκη που ελέγχθηκε: Ο αισθητήρας Down Eye ανιχνεύει κόκκινο με πορτοκαλί χρώμα, που αντιπροσωπεύει την έναρξη του βρόχου. Υπάρχει ένας βρόχος με κόκκινο βέλος για όταν ο αισθητήρας Down Eye ανιχνεύει κόκκινο, ο οποίος θα αναφέρει True και το Project θα τερματίσει την επαναλαμβανόμενη εμφάνιση. Εάν αναφέρει ψευδή τιμή, ο κώδικας θα μετακινηθεί στην εντολή if then και θα συνεχίσει να επαναλαμβάνεται μέχρι ο αισθητήρας Down Eye να ανιχνεύσει κόκκινο χρώμα.
 
  • Η δεύτερη συνθήκη που ελέγχεται είναι η πρότασηif else. Ενώ ο αισθητήρας Down Eye δεν ανιχνεύει κόκκινο, το έργο θα συνεχιστεί στον βρόχοwhileγια να ελεγχθεί η κατάσταση του αισθητήρα απόστασης. Το ρομπότ εικονικής πραγματικότητας θα χρησιμοποιήσει τα δεδομένα από τον αισθητήρα απόστασης για να αποφασίσει αν θα κινηθεί προς τα εμπρός ή προς τα δεξιά. Κώδικας έργου Python αυτού του μαθήματος με ένα διάγραμμα που δείχνει τη ροή του έργου στο πλάι. Διαβάζει Δεύτερη ελεγχόμενη συνθήκη: Ο αισθητήρας απόστασης ανιχνεύει αντικείμενο. Δείχνει τι συμβαίνει εάν επιλεγεί η δεύτερη συνθήκη και εάν η τιμή της είναι αληθής, το ρομπότ VR θα κινηθεί προς τα εμπρός και, εάν η δεύτερη συνθήκη είναι ψευδής, το ρομπότ VR στρίβει δεξιά.
  • Ωστόσο, μόλις ο αισθητήρας Down Eye ανιχνεύσει το κόκκινο χρώμα, το ρομπότ εικονικής πραγματικότητας θα κινηθεί προς τα πίσω, θα στρίψει και στη συνέχεια θα σταματήσει, καθώς αυτό είναι το τέλος της ροής του έργου. Δεν υπάρχει βρόχος που να χρησιμοποιείται για την επανάληψη των συμπεριφορών.

    Μια κάτοψη της παιδικής χαράς Dynamic Castle Crashed που δείχνει μερικά από τα κάστρα να ανατρέπονται, με το ρομπότ VR να έχει κάνει όπισθεν και να έχει γυρίσει αφού πέρασε το κόκκινο περίγραμμα, έτσι ώστε να βλέπει ξανά στο κέντρο της παιδικής χαράς.

Προσθέτοντας έναν άπειρο βρόχο ενώ

  • Απαιτείται ένας άπειρος βρόχος ενώγια να επαναληφθούν οι συμπεριφορές σε έναν βρόχο. Σύρετε ή πληκτρολογήστε έναν βρόχο 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) κινείται με την όπισθεν, στρίβει και συνεχίζει να οδηγεί προς ένα άλλο κάστρο.

    Μια κάτοψη της παιδικής χαράς Dynamic Castle Crasher που δείχνει ότι το ρομπότ εικονικής πραγματικότητας έχει ανατραπεί πάνω από πολλά κάστρα στην παιδική χαρά και τώρα κινείται προς το τελευταίο σωζόμενο κάστρο.

Ερωτήσεις

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

Έγγραφο Google / .docx / .pdf