Použití vizuálního senzoru - C++
Sada nástrojů
této aktivity
Efektivní používání kamerového senzoru vyžaduje, aby jej studenti dokázali konfigurovat a ladit v závislosti na prostředí, ve kterém se nachází. V následující aktivitě se studenti naučí, jak provést obojí.
Další informace o programování kamerového senzoru pomocí VEXcode V5 naleznete v nápovědě k jazykuC++v knihovněVEX.
Následuje přehled toho, co budou vaši studenti v této aktivitě dělat:
-
Otevřete ukázkový projekt Detekce objektů (Vision).
-
Nakonfigurujte kamerový senzor.
-
Spusťte ukázkový projekt Detekce objektů (Vision).
-
Diskutujte a reflektujte.
-
Nalaďte senzor vidění.
Tipy pro učitele
Pokud student používá VEXcode V5 poprvé, může si prohlédnoutčlánkůnápovědou v knihovně
Tipy
učitele
Používání automatického doplňování
Automatické doplňování je funkce ve VEXcode V5, která předpovídá zbytek příkazu, který píšete. Během práce ve VEXcode V5 je povzbuďte k používání funkce automatického doplňování, která jim pomůže se syntaxí

Články o automatickém doplňování pro jazyk C++se zabývají používáním funkce automatického doplňování.
Pořiďte si potřebný hardware, technický notebook a otevřete VEXcode V5.
| Množství | Potřebný materiál |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit |
| 1 |
VEXcode V5 (nejnovější verze, Windows, MacOS) |
| 1 |
Technický poznámkový blok |
| 1 |
Konfigurace kamerového senzoru (knihovna VEX) |
| 1 |
Ladění kamerového senzoru (knihovna VEX) |
| 1 |
Příklad projektu Detekce objektů (vize) |
Tato aktivita vám poskytne nástroje pro použití zrakového senzoru.
Pro seznámení se s instrukcemi můžete použít informace v nápovědě (C++) uvnitř VEXcode V5.
Krok 1: Otevřete ukázkový projekt
VEXcode V5 obsahuje mnoho různých příkladových projektů. Jednu z nich využiješ v tomto průzkumu.
Otevřete příklad projektu Detekce objektů (vize) provedením následujících kroků:
- Otevřete nabídku Soubor.
- Vyberte Otevřít příklady.
- Použijte filtrační lištu v horní části aplikace a vyberte „Snímání“.

Vyberte a otevřete ukázkový projekt Detekce objektů (vize).
![]()
Uložte svůj projekt jako Detekce objektů.
- Zkontrolujte, zda je název projektu Detekce objektů nyní v okně uprostřed panelu nástrojů.

Tipy pro učitele
-
Ujistěte se, že studenti vybrali Otevřít příklady z nabídky Soubor.
-
Ujistěte se, že si studenti vybrali příklad projektu Detekce objektů (Zrak). Můžete studentům upozornit, že na stránce Otevřít příklady je k dispozici několik možností, ze kterých si mohou vybrat.
-
Můžete studenty požádat, aby k názvu projektu přidali své iniciály nebo název své skupiny. To pomůže rozlišit programy, pokud požádáte studenty, aby je odevzdali.
-
Protože VEXcode V5 má automatické ukládání, není nutné projekt po prvním uložení znovu ukládat.
-
Pokud studenti potřebují pomoc s ukládáním, nasměrujte je na jeden z těchto článků:
Krok 2: Konfigurace a použití kamerového senzoru
- Začněte čtenímVizuální senzor - Konfigurace robota - VEXcode V5.
- Pak si přečtěteNastavení vizuálního senzoru - Konfigurace robota - VEXcode V5
- Dále nakonfigurujte kamerový senzor pro tři barevné objekty: červený, zelený a modrý.
Otevřete dříve uložený příklad projektu Detekce objektů (Vision).
Jak se Vision Sensor používá v tomto projektu? Předvídejte, co se stane, když je projekt spuštěn, a zapište si předpovědi do svého technického poznámkového bloku.
#include "vex.h"
using namespace vex;
event checkBlue =
event (); event checkRed =
event (); event checkGreen = event();
// Zkontroluje, zda je v pohledu Vision
// Sensor modrý objekt a zobrazí výsledky na řádku 1 obrazovky V5 Brain.
void má BlueCallback ()
{Brain.Screen.clearLine (1)
; Brain.Screen.setCursor (1, 1
); Vision5.takeSnapshot (Vision5 __BLUEBOX);
if (Vision5.objectCount >
0) {Brain.Screen.print ("Blue Object Found"
);
} else {Brain.Screen.print ("No Blue Object");
} }
// Zkontroluje, zda je v pohledu Vision
// Sensor červený objekt, a zobrazí výsledky na řádku 3 obrazovky V5 Brain.
void má funkci RedCallback (
) {Brain.Screen.clearLine (3
); Brain.Screen.setCursor (3,
1); Vision5.takeSnapshot (Vision5 __REDBOX);
if (
Vision5.objectCount > 0) {Brain.Screen.print ("Nalezen červený objekt"
);
} else {Brain.Screen.print ("
Žádný červený objekt");
}}
// Zkontroluje, zda je v pohledu Vision
// Sensor zelený objekt, a zobrazí výsledky na řádku 5 obrazovky V5 Brain.
void má GreenCallback() {
Brain.Screen.clearLine (5);
Brain.Screen.setCursor (5, 1);
Vision5.takeSnapshot (Vision5 __ GREENBOX);
if (Vision5.objectCount > 0) {
Brain.Screen.print ("Zelený objekt nalezen");
} else {
Brain.Screen.print ("Žádný zelený objekt");
}
}
// Zahájit kód projektu
int main() {
// Inicializace konfigurace robota. NEODSTRAŇUJTE!
vexcodeInit ();
// Registrovat obslužné programy
událostí checkBlue (hasBlueCallback);
checkRed (hasRedCallback);
checkGreen (hasGreenCallback);
// Malé zpoždění, aby bylo zajištěno, že obslužné programy událostí jsou připraveny k použití,
počkejte(15, ms);
// Nastavte tiskové písmo pro všechny budoucí výtisky na obrazovce
V5 Brain.Screen.setFont (mono40);
// Neustále spusťte, abyste zkontrolovali nová data senzoru,
zatímco (true)
{checkBlue.broadcastAndWait ()
; checkRed.broadcastAndWait ()
; checkGreen.broadcastAndWait ();
wait(0.1, seconds);
}
}- Stáhněte a spusťteprojekt. Umístěte před kamerový senzor různé barevné předměty a sledujte chování robota. Zaznamenejte si do technického poznámkového bloku, jak se vaše předpověď lišila nebo byla správná ve srovnání s tím, co jste skutečně pozorovali z projektu.
Tipy pro učitele
Tři barevné objekty nemusí být nutně krychle, mohou to být jakékoli relativně malé zelené, červené a modré objekty.
Motivační diskuse
–
odpověď
Uspořádejte diskusi ve třídě, aby studenti ve svém technickém sešitě sdíleli své předpovědi ohledně tohoto projektu a také se zamysleli nad tím, jak nakonfigurovat kamerový senzor.
Uspořádejte diskusi kladením následujících otázek:
-
Jaké jsou kroky pro konfiguraci kamerového senzoru?
-
Co dělá strukturaif then else?
-
Co by se stalo s detekcí objektů pomocí vizuální senzoru, kdybychom změnili místnost?
Odpovědi se budou lišit:
-
Studenti by si měli uvědomit, že bude nutné rozhodnout se o názvu objektu. Objekt by měl být umístěn do rámečku kamerového senzoru a zastaven pomocí tlačítka „Zmrazit“. Barva bude poté vybrána a nakonfigurována pomocí tlačítka „Nastavit“. Studenti by měli nastínit kroky uvedené v.
-
Strukturaif then elsespouští instrukce uvnitř první nebo druhé části strukturyif then elsena základě nahlášené booleovské hodnoty. Více informací o tom, jak tento návod používat, naleznete v nápovědě.
-
Pokud by byl vizuální senzor požádán o detekci objektů v jiném prostředí, mohlo by se změnit osvětlení a barvy objektů by mohly vypadat jinak. To může ztížit detekci objektů senzorem Vision.
Rozšiřte
více objektů
Vyberte dva další barevné objekty pro konfiguraci, případně bílou, fialovou, žlutou atd...

Pokud studenti potřebují pomoc, odkažte je na informace v částiNápovědanebo na článek Konfigurace kamerového senzoru V5.
Krok 3: Ladění kamerového senzoru
Objekt je často nakonfigurován tak, aby byl rozpoznán kamerovým senzorem v jednom prostředí, například ve třídě. Když je pak kamerový senzor přenesen do jiného prostředí, jako je nastavení konkurence, objekt nemusí být kamerovým senzorem rozpoznán. To je často způsobeno změnou osvětlení poté, co byl kamerový senzor již Chcete-li tento problém vyřešit, možná budete muset vyladit svůj zrakový senzor.
- Začněte přečtenímNastavení kamerového senzoru V5 v kódu VEXcode V5.
- Dále upravte vizuální senzor pro tři barevné objekty: červenou, zelenou a modrou.
Otevřete dříve uložený příklad projektu Detekce objektů (Vision).
Jak vyladění kamerového senzoru ovlivní, jak dobře dokáže detekovat objekty? Vezměte Clawbota do jiné části místnosti s více či méně světlem.
- Stáhněte a spusťteprojekt. Umístěte před kamerový senzor různé barevné předměty a sledujte chování robota. Dokumentujte ve svém technickém notebooku, jak dobře Vision Sensor detekuje objekty. Potřebuje kamerový senzor vyladit po změně umístění?
- Vylaďte kamerový senzor podle potřeby. Vyzkoušejte kamerový senzor po jeho vyladění, abyste zjistili, zda dokáže lépe detekovat objekty a podle potřeby provést úpravy.
Motivace Diskuse
-
Reflexe aktivity
Otázka:Detekoval vizuální senzor objekty podle vašich očekávání?
Odpověď:Odpovědi se budou lišit; cílem této otázky je však podpořit kognitivní myšlení. Studenti by si měli uvědomit, že schopnost vizuální sondy detekovat objekty se může měnit v závislosti na prostředí a světle.
Otázka:Proč je důležité umět ladit vizuální senzor podle potřeby?
Odpověď:I když se odpovědi mohou lišit, běžnou odpovědí by mělo být, že pokud robot používá vizuální senzor a je vezměn do soutěže nebo dokonce použit ve hře či výzvě, bude výkon robota záviset na přesnosti vizuální senzoru. Jeho ladění je důležité pro přesnost.
Rozšiřte si své učení
-
Více objektů
Požádejte studenty, aby spustili projekt Detekce objektů (Zrak) a umístili před kamerový senzor více než jeden z nakonfigurovaných objektů. Co se stane? Požádejte je, aby si svá zjištění zaznamenali do svého technického sešitu.
Nyní požádejte studenty, aby před kamerový senzor umístili jeden konfigurovaný objekt a jeden neznámý nebo nenakonfigurovaný objekt. Co se stane? Požádejte je, aby si svá zjištění zaznamenali do svého technického sešitu.
Před testováním se studentů zeptejte, co by se stalo, kdyby před kamerový senzor umístili tři konfigurované objekty? Požádejte studenty, aby si před otestováním své předpovědi zapsali. Požádejte je, aby po otestování zaznamenali svá pozorování.

Zaveďte diskusi o tom, co studenti předpověděli a pozorovali.
Zaveďte diskusi položením otázek:
- Jaké byly rozdíly mezi jedním, dvěma a třemi objekty?
- Upravili byste nějakým způsobem projekt pro rozpoznávání více objektů?