Výzva pro vizuální data - Python
Sada nástrojů pro učitele
výzvy Vision Data
Účelem soutěže Vision Data Challenge je zajistit, aby studenti pochopili data shromážděná ze snímku vizuálního senzoru a jak se vypočítávají středové hodnoty X a Y. Vaši studenti by také měli toto cvičení dokončit s pochopením toho, jak lze tato data interpretovat (např. hodnotu středové osy X lze použít k určení polohy objektu vzhledem ke středovému bodu robota) a s osvědčenými postupy pro pojmenovávání objektů při konfiguraci.

Dokončete výzvu Vision Data Challenge zodpovězením otázek a vyplněním chybějících údajů ve vašem technickém notebooku.
- Který z těchto pokynů byl použit k pořízení snímku výše?
-
vision_5.take_snapshot(REDBOX) -
vision_5.take_snapshot(YELLOWBOX)
-
-
Vyplňte tyto hodnoty:

- Je YELLOWBOX vlevo nebo vpravo od středu robota?
- Je YELLOWBOX nad nebo pod středovým bodem robota?
- ŽLUTÁ SKŘÍŇKA jeNEnejlepší název pro tento objekt, pokud chcete snadno rozpoznat, která barevná signatura je která. Které z nich je lepší jméno? Proč?
- YELLOWGEAR
- YELLOWCUBE
Sada nástrojů pro učitele
-
odpovědí
Odpovědi studentů lze prodiskutovat ve třídě a/nebo si můžete projít jejich technické sešity, abyste se ujistili, že aktivitu úspěšně dokončili.
-
vision_5.take_snapshot(ŽLUTÝ OBAL) 
- ŽLUTÝ BOX je mírně vlevo od středu robota, ale pouze o rozdíl 16,5 pixelů (střed 157,5 - 141).
- ŽLUTÝ BOX je o něco níže než střed robota, ale pouze o rozdíl 5,5 pixelů (111 - střed 105,5).
-
A. ŽLUTÝ OZUBENÍ
Toto je lepší název, protože popisuje nejen barvu objektu, ale také jeho typ. Je to ozubené kolo,nebo krychle.
Rozšiřte si učení
-
Používejte instrukce pro snímání v rámci projektu
Nyní, když jsou některá data hlášená kamerovým senzorem lépe pochopena, by studenti mohli tyto instrukce pro snímání použít v rámci projektu. Dovolte jim, aby to prozkoumali.
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("Nalezen červený objekt")
brain.screen.next_row()
brain.screen.print("Počet detekovaných objektů:", len(vision_5_objects))
brain.screen.next_row()
brain.screen.print("Střed X:", vision_5.largest_object().centerX)
brain.screen.next_row()
brain.screen.print("Střed Y:", vision_5.largest_object().centerY)
brain.screen.next_row()
brain.screen.print("Šířka:", vision_5.largest_object().width)
brain.screen.next_row()
brain.screen.print("Výška:", vision_5.largest_object().height)
brain.screen.next_row()
else:
brain.screen.print("Žádný červený objekt")Pokročilejší studenti mohou tyto instrukce použít v rámci projektu k rozhodování.
while True:
drivetrain.drive(VPŘED)
vision_5_objects = vision_5.take_snapshot(REDBOX)
if (vision_5_objects) and (vision_5.largest_object().centerX < 157.5):
drivetrain.turn_for(VLEVO, 90, STUPŇŮ)
else:
drivetrain.turn_for(VPRAVO, 90, STUPŇŮ)
wait(5, MSEC)