Skip to main content

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

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

विज़न डेटा चैलेंज का उद्देश्य यह सुनिश्चित करना है कि छात्र विज़न सेंसर के स्नैपशॉट से एकत्रित डेटा को समझें और केंद्र 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. यदि आप आसानी से पहचानना चाहते हैं कि कौन सा रंग हस्ताक्षर कौन सा है, तो इस ऑब्जेक्ट को देने के लिए YELLOWBOXNOTसबसे अच्छा नाम है। इनमें से कौन सा नाम बेहतर है? क्यों?
    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().चौड़ाई)
        brain.screen.next_row()
        brain.screen.print("ऊँचाई:", vision_5.largest_object().ऊँचाई)
        brain.screen.next_row()
    
    else:
        brain.screen.print("कोई लाल वस्तु नहीं")

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

जबकि सत्य:
    drivetrain.drive(FORWARD)
    vision_5_objects = vision_5.take_snapshot(REDBOX)
    यदि (vision_5_objects) और (vision_5.largest_object().centerX < 157.5):
        drivetrain.turn_for(LEFT, 90, DEGREES)
    अन्यथा:
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        wait(5, MSEC)