Τι είναι ένας αισθητήρας όρασης; - Πίθον
Εργαλειοθήκη Εκπαιδευτικού
-
Ο Σκοπός αυτής της Σελίδας
Αυτή η σελίδα θα εισαγάγει τους μαθητές στο τι είναι ένας αισθητήρας όρασης και σε ορισμένες από τις δυνατότητές του. Στη συνέχεια, οι μαθητές θα αναλύσουν μια μερική εικόνα ενός παραδειγματικού έργου για να δουν πώς μπορεί να χρησιμοποιηθεί ο Αισθητήρας Όρασης με το VEXcode V5.
Οι ερωτήσεις της Συζήτησης Κινήτρων στο κάτω μέρος της σελίδας μπορούν να ολοκληρωθούν ως συζήτηση στην τάξη ή ατομικά στα τετράδια μηχανικής των μαθητών.
Παρακινήστε τη συζήτηση
Ε:Ποιες ανθρώπινες εργασίες θα ωφελούνταν από τη βοήθεια ενός ρομπότ με αισθητήρα όρασης;
Α:Αναζητήστε ανθρώπινες εργασίες που θα ωφελούνταν από την ικανότητα να βλέπουν μέσα σε περιβάλλοντα ή/και να χειρίζονται το περιβάλλον από απομακρυσμένες αποστάσεις (π.χ., παρατήρηση ζώων στην άγρια φύση, αφοπλισμός εκρηκτικών ή εκτέλεση χειρουργικών επεμβάσεων με τη βοήθεια ρομπότ).
Ε:Ονομάστε μια συσκευή και περιγράψτε πώς χρησιμοποιεί την είσοδο, την έξοδο και την επεξεργασία.
Α:Μια πιθανή απάντηση θα μπορούσε να είναι μια αριθμομηχανή που λαμβάνει τις ακολουθίες αριθμών και τους μαθηματικούς τελεστές που εισάγει ένα άτομο, επεξεργάζεται αυτούς τους αριθμούς και τις πράξεις για να υπολογίσει ένα αποτέλεσμα και στη συνέχεια εξάγει αυτό το αποτέλεσμα σε μια οθόνη για το άτομο.
Ε:Γιατί πιστεύετε ότι χρησιμοποιήθηκε ένας βρόχος αέναου χρόνου στο έργο που παρουσιάζεται;
Α:Χρησιμοποιήθηκε ένας βρόχος αέναου χρόνου, έτσι ώστε ο Αισθητήρας Όρασης να ελέγχει συνεχώς τα πολλαπλά στιγμιότυπα που λαμβάνονται για να δει εάν ένα κόκκινο αντικείμενο εμφανίζεται στον αισθητήρα.
Περιγραφή
Ο αισθητήρας όρασης επιτρέπει στο ρομπότ σας να συλλέγει οπτικά δεδομένα από μια ζωντανή μετάδοση. Μια ζωντανή μετάδοση είναι μια ροή δεδομένων που καταγράφει μια βιντεοκάμερα. Ο αισθητήρας όρασης είναι σαν μια έξυπνη κάμερα που μπορεί να παρατηρεί, να επιλέγει, να προσαρμόζει και να αποθηκεύει χρώματα και αντικείμενα που εμφανίζονται στο οπτικό της πεδίο.
Δυνατότητες:
- Αυτός ο αισθητήρας μπορεί να χρησιμοποιηθεί για την αναγνώριση χρωμάτων και χρωματικών μοτίβων.
- Αυτός ο αισθητήρας μπορεί να χρησιμοποιηθεί για να ακολουθήσει ένα αντικείμενο.
- Αυτός ο αισθητήρας μπορεί να χρησιμοποιηθεί για τη συλλογή πληροφοριών σχετικά με το περιβάλλον.
Ο αισθητήρας όρασης επιτρέπει στο ρομπότ να χρησιμοποιεί οπτικά δεδομένα εισόδου από το περιβάλλον του. Το έργο μπορεί στη συνέχεια να καθορίσει πώς τα οπτικά δεδομένα εισόδου θα πρέπει να επηρεάσουν τη συμπεριφορά του ρομπότ. Για παράδειγμα, το ρομπότ θα μπορούσε να εκτελεί ενέργειες (έξοδο) όπως περιστροφή κινητήρων ή εμφάνιση αποτελεσμάτων στην οθόνη LCD.
Ο αισθητήρας όρασης μπορεί επίσης να καταγράψει ένα στιγμιότυπο αυτού που βρίσκεται μπροστά του και να το αναλύσει σύμφωνα με τις ερωτήσεις του χρήστη. Για παράδειγμα, ένας χρήστης μπορεί να συλλέξει δεδομένα από το στιγμιότυπο, όπως, τι χρώμα έχει το αντικείμενο; Έχει εντοπιστεί κάποιο αντικείμενο; Πόσο μεγάλο είναι το αντικείμενο (πλάτος και ύψος);
Το ρομπότ μπορεί στη συνέχεια να λάβει αποφάσεις με βάση αυτά τα δεδομένα. Το παρακάτω μερικό παράδειγμα έργου δείχνει πώς γίνεται αυτό. Τρία χρώματα ελέγχονται επανειλημμένα μετά την έναρξη του έργου και κάθε έλεγχος χρώματος είναι ένα διαφορετικό συμβάν. Μόνο το συμβάν που ελέγχει για Μπλε εμφανίζεται παρακάτω. Αυτή η στοίβα έχει την εκτύπωση ρομπότ "Βρέθηκε μπλε αντικείμενο" εάν εντοπιστεί μπλε αντικείμενο ή "Δεν υπάρχει μπλε αντικείμενο" διαφορετικά. Τα συμβάντα check_red και check_green που δεν εμφανίζονται παρακάτω έχουν παρόμοιες στοίβες για να αποφασίσουν τι θα εκτυπωθεί στην οθόνη.
# Εισαγωγές βιβλιοθήκης
από vex import *
# Έναρξη κώδικα έργου
check_red = Event()
check_blue = Event()
check_green = Event()
def check_blue_callback():
brain.screen.set_font(FontType.MONO40)
brain.screen.clear_row(1)
brain.screen.set_cursor(1, 1)
# Λήψη στιγμιότυπου με τον Αισθητήρα Όρασης και αποθήκευση δεδομένων όρασης σε μια μεταβλητή
vision_5_objects = vision_5.take_snapshot(vision_5__BLUEBOX)
# Ελέγξτε τη μεταβλητή για να δείτε αν το στιγμιότυπο ανίχνευσε μπλε αντικείμενα
if (vision_5_objects):
brain.screen.print("Βρέθηκε μπλε αντικείμενο")
else:
brain.screen.print("Δεν βρέθηκε μπλε αντικείμενο")
# Χειριστές συμβάντων συστήματος
check_blue(check_blue_callback)
#προσθήκη καθυστέρησης 15ms για δημιουργία βεβαιωθείτε ότι τα συμβάντα έχουν καταχωρηθεί σωστά
wait(15, MSEC)
while True:
check_blue.broadcast_and_wait()
check_red.broadcast_and_wait()
check_green.broadcast_and_wait()
wait(0.1,SECONDS)
wait(5, MSEC)