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

Η Πρόκληση Δεδομένων Όρασης - C++

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Εκπαιδευτικού - Ο Σκοπός της Πρόκλησης Δεδομένων Όρασης

Ο σκοπός της Πρόκλησης Δεδομένων Όρασης είναι να διασφαλιστεί ότι οι μαθητές κατανοούν τα δεδομένα που συλλέγονται από το στιγμιότυπο του Αισθητήρα Όρασης και τον τρόπο υπολογισμού των τιμών X και Y στο κέντρο. Οι μαθητές σας θα πρέπει επίσης να ολοκληρώσουν αυτό το εργαστήριο κατανοώντας τον τρόπο με τον οποίο μπορούν να ερμηνευθούν αυτά τα δεδομένα (π.χ., η τιμή X στο κέντρο μπορεί να χρησιμοποιηθεί για να προσδιοριστεί η θέση του αντικειμένου σε σχέση με το κεντρικό σημείο του ρομπότ) και τις βέλτιστες πρακτικές για την ονομασία αντικειμένων κατά τη διαμόρφωση.

Στιγμιότυπο αισθητήρα όρασης από τη διαμόρφωση που δείχνει ένα χέρι που κρατά ένα κίτρινο γρανάζι. Μια τετράγωνη επικάλυψη βρίσκεται πάνω από το γρανάζι με τα ακόλουθα δεδομένα που αναφέρονται παραπάνω: Κίτρινο κουτί, X 90, Y 62, W 102, H 98.

Ολοκληρώστε την Πρόκληση Δεδομένων Οπτικής Απαντώντας στις ερωτήσεις και συμπληρώνοντας τα δεδομένα που λείπουν στο σημειωματάριό σας για τη μηχανική.

  1. Ποια από αυτές τις οδηγίες χρησιμοποιήθηκε για τη λήψη του παραπάνω στιγμιότυπου;
    1. Vision5.takeSnapshot(Vision5__REDBOX);
    2. Vision5.takeSnapshot(Vision5__YELLOWBOX);
  2. Συμπληρώστε αυτές τις τιμές:

    Οι εντολές του αισθητήρα όρασης παρατίθενται στην αριστερή πλευρά με κενά πλαίσια για συμπλήρωση με τις τιμές τους. Από πάνω προς τα κάτω τα μπλοκ παρατίθενται: Αριθμός αντικειμένων > 0, αριθμός αντικειμένων, αντικείμενο 0 κέντρο x, αντικείμενο 0 κέντρο y, αντικείμενο 0 πλάτος και αντικείμενο 0 ύψος.

  3. Το ΚΙΤΡΙΝΟ ΚΟΥΤΙ βρίσκεται αριστερά ή δεξιά από το κεντρικό σημείο του ρομπότ;
  4. Είναι το ΚΙΤΡΙΝΟ ΚΟΥΤΙ πάνω ή κάτω από το κεντρικό σημείο του ρομπότ;
  5. Το ΚΙΤΡΙΝΟ ΚΟΥΤΙ είναιΟΧΙτο καλύτερο όνομα για να δώσετε σε αυτό το αντικείμενο αν θέλετε να αναγνωρίζετε εύκολα ποια χρωματική υπογραφή είναι ποια. Ποιο από αυτά είναι καλύτερο όνομα; Γιατί;
    1. ΚΙΤΡΙΝΟ GEAR
    2. ΚΙΤΡΙΝΟΣ ΚΥΒΟΣ

Εικονίδιο Εργαλειοθήκης Εκπαιδευτικού Εργαλειοθήκη Δασκάλου - Απαντήσεις

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

  1. Vision5.takeSnapshot(Vision5__YELLOWBOX);
  2. Ολοκληρωμένα δεδομένα ευθυγραμμισμένα με τις εντολές VEXcode. Οι απαντήσεις διαβάστηκαν με τη σειρά, αριθμός αντικειμένων > 0 = Σωστό· αριθμός αντικειμένων = 1· αντικείμενο 0 κέντρο x = 141· αντικείμενο 0 κέντρο y = 111· αντικείμενο 0 πλάτος = 102· αντικείμενο 0 ύψος = 98.
  3. Το ΚΙΤΡΙΝΟ ΚΟΥΤΙ βρίσκεται ελαφρώς αριστερά από το κεντρικό σημείο του ρομπότ, αλλά με διαφορά μόνο 16,5 pixel (κέντρο 157,5 - 141).
  4. Το ΚΙΤΡΙΝΟ ΚΟΥΤΙ είναι ελαφρώς χαμηλότερο από το κεντρικό σημείο του ρομπότ, αλλά μόνο με διαφορά 5,5 pixel (111 - κέντρο 105,5).
  5. ΕΝΑ. ΚΙΤΡΙΝΟ GEAR

    Αυτό είναι ένα καλύτερο όνομα επειδή περιγράφει όχι μόνο το χρώμα του αντικειμένου αλλά και τον τύπο του αντικειμένου. Είναι ένα γρανάζι,όχι, ένα κουτί ή κύβος.

Εικονίδιο "Επεκτείνετε τη Μάθησή σας" Επεκτείνετε τη Μάθησή σας - Χρησιμοποιήστε τις Οδηγίες Αισθητήρων σε ένα Έργο

Τώρα που ορισμένα από τα δεδομένα που αναφέρονται από τον Αισθητήρα Όρασης είναι καλύτερα κατανοητά, οι μαθητές ίσως θελήσουν να χρησιμοποιήσουν αυτές τις Οδηγίες Αισθητήρα σε ένα έργο. Αφήστε τους να το εξερευνήσουν κάνοντας αυτό.

void έχει RedCallback() {

  Brain.Screen.setFont(mono40);
  Brain.Screen.clearLine(3);
  Brain.Screen.setCursor(3, 1);
  Vision5.takeSnapshot(Vision5__REDBOX);

  if (Vision5.objectCount > 0) {
    Brain.Screen.print("Βρέθηκε κόκκινο αντικείμενο");
    Brain.Screen.newLine();
    Brain.Screen.print(Vision5.objectCount);
    Brain.Screen.newLine();
    Brain.Screen.print(Vision5.objects[0].centerX);
    Brain.Screen.print(Vision5.objects[0].centerY);
    Brain.Screen.print(Vision5.objects[0].width);
    Brain.Screen.print(Vision5.objects[0].height);

  } else {
    Brain.Screen.print("Δεν υπάρχει κόκκινο αντικείμενο");
  }
}

Οι πιο προχωρημένοι μαθητές μπορούν να χρησιμοποιήσουν αυτές τις οδηγίες στο πλαίσιο ενός έργου για να λάβουν αποφάσεις.

Drivetrain.drive(forward);
Vision5.takeSnapshot(Vision5__REDBOX);

if (Vision5.objectCount > 1 && Vision5.objects[0].centerX > 157.5) {
  Drivetrain.turnFor(left, 90, degrees);
} else {
  Drivetrain.turnFor(right, 90, degrees);
}