मुख्य सामग्री पर जाएं

विज़न डेटा चैलेंज - पायथन

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - विज़न डेटा चैलेंज का उद्देश्य

विजन डेटा चैलेंज का उद्देश्य यह सुनिश्चित करना है कि छात्र विजन सेंसर के स्नैपशॉट से एकत्रित डेटा को समझें और यह भी समझें कि केंद्र के X और Y मानों की गणना कैसे की जाती है। इस लैब को पूरा करने के बाद आपके छात्रों को यह भी समझ आ जाना चाहिए कि उस डेटा की व्याख्या कैसे की जा सकती है (उदाहरण के लिए, केंद्र X मान का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि रोबोट के केंद्र बिंदु के सापेक्ष वस्तु कहाँ स्थित है), और कॉन्फ़िगरेशन करते समय वस्तुओं का नामकरण करने के सर्वोत्तम तरीके क्या हैं।

कॉन्फ़िगरेशन से लिया गया विज़न सेंसर का स्नैपशॉट जिसमें एक हाथ पीले रंग का गियर पकड़े हुए दिखाई दे रहा है। ऊपर सूचीबद्ध डेटा के साथ गियर के ऊपर एक वर्गाकार ओवरले है: पीला बॉक्स, X 90, Y 62, W 102, H 98.

प्रश्नों के उत्तर देकर और अपनी इंजीनियरिंग नोटबुक में छूटे हुए डेटा को भरकर विजन डेटा चैलेंज को पूरा करें।

  1. ऊपर दी गई तस्वीर लेने के लिए इनमें से किस निर्देश का उपयोग किया गया था?
    1. vision_5.take_snapshot(REDBOX)
    2. vision_5.take_snapshot(YELLOWBOX)
  2. इन मानों को भरें:

    विज़न सेंसर के कमांड बाईं ओर सूचीबद्ध हैं, जिनमें उनके मान भरने के लिए खाली बॉक्स दिए गए हैं। ऊपर से नीचे तक ब्लॉक इस प्रकार सूचीबद्ध हैं: दृष्टि 5 वस्तुएं कोई नहीं है 0, दृष्टि 5 वस्तुओं की लंबाई, सबसे बड़ी वस्तु का केंद्र x, सबसे बड़ी वस्तु का केंद्र y, सबसे बड़ी वस्तु की चौड़ाई और सबसे बड़ी वस्तु की ऊंचाई।

  3. क्या YELLOWBOX रोबोट के केंद्र बिंदु के बाईं ओर है या दाईं ओर?
  4. क्या येलोबॉक्स रोबोट के केंद्र बिंदु के ऊपर है या नीचे?
  5. यदि आप आसानी से पहचानना चाहते हैं कि कौन सा रंग किस रंग का है, तो इस वस्तु को देने के लिए YELLOWBOXसबसे अच्छा नाम है, न कि इनमें से कौन सा नाम बेहतर है? क्यों?
    1. येलो गियर
    2. येलो क्यूब

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - उत्तर

विद्यार्थियों के उत्तरों पर कक्षा में चर्चा की जा सकती है और/या आप यह सुनिश्चित करने के लिए उनकी इंजीनियरिंग नोटबुक की समीक्षा कर सकते हैं कि उन्होंने गतिविधि को सफलतापूर्वक पूरा किया है।

  1. vision_5.take_snapshot(YELLOWBOX)
  2. पूर्ण डेटा को VEXcode कमांड के अनुरूप कर दिया गया है। उत्तर क्रम से इस प्रकार हैं: दृष्टि 5 वस्तुएँ सत्य नहीं है = सत्य; दृष्टि 5 वस्तुओं की लंबाई = 1; सबसे बड़ी वस्तु का केंद्र x = 141; सबसे बड़ी वस्तु का केंद्र y = 111; सबसे बड़ी वस्तु की चौड़ाई = 102; सबसे बड़ी वस्तु की ऊँचाई = 98.
  3. येलोबॉक्स रोबोट के केंद्र बिंदु से थोड़ा बाईं ओर है, लेकिन केवल 16.5 पिक्सेल के अंतर से (केंद्र 157.5 - 141)।
  4. येलोबॉक्स रोबोट के केंद्र बिंदु से थोड़ा नीचे है, लेकिन केवल 5.5 पिक्सेल के अंतर से (111 - केंद्र 105.5)।
  5. एक। येलो गियर

    यह एक बेहतर नाम है क्योंकि यह न केवल वस्तु के रंग का वर्णन करता है बल्कि वस्तु के प्रकार का भी वर्णन करता है। यह एक गियर है,नहीं, एक बॉक्स या घन।

अपने सीखने का विस्तार करें आइकन अपने ज्ञान का विस्तार करें - किसी प्रोजेक्ट के भीतर संवेदी निर्देशों का उपयोग करें

अब जबकि विजन सेंसर द्वारा रिपोर्ट किए गए कुछ डेटा को बेहतर ढंग से समझा जा चुका है, छात्र इन सेंसिंग निर्देशों का उपयोग किसी प्रोजेक्ट में करना चाह सकते हैं। उन्हें ऐसा करने की संभावना तलाशने दें।

def check_red_callback():
    brain.screen.set_font(FontType.MONO40)
    brain.screen.clear_row(3)
    brain.screen.set_cursor(3, 1)
    vision_5_objects = vision_5.take_snapshot(REDBOX)

    if (vision_5_objects):
        brain.screen.print("लाल वस्तु मिली")
        brain.screen.next_row()
        brain.screen.print("पता लगाई गई वस्तुओं की संख्या:", len(vision_5_objects))
        brain.screen.next_row()
        brain.screen.print("केंद्र X:", vision_5.largest_object().centerX)
        brain.screen.next_row()
        brain.screen.print("केंद्र Y:", vision_5.largest_object().centerY)
        brain.screen.next_row()
        brain.screen.print("चौड़ाई:", vision_5.largest_object().width)
        brain.screen.next_row()
        brain.screen.print("ऊंचाई:", vision_5.largest_object().height)
        brain.screen.next_row()
    
    else:
        brain.screen.print("कोई लाल वस्तु नहीं")

अधिक उन्नत छात्र किसी परियोजना के दौरान निर्णय लेने के लिए इन निर्देशों का उपयोग कर सकते हैं।

while True:
    drivetrain.drive(FORWARD)
    vision_5_objects = vision_5.take_snapshot(REDBOX)
    if (vision_5_objects) and (vision_5.largest_object().centerX < 157.5):
        drivetrain.turn_for(LEFT, 90, DEGREES)
    else:
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        wait(5, MSEC)