Skip to main content

Co je to kamerový senzor? - C++

Ikona sady nástrojů pro učitele Sada nástrojů této stránky

Tato stránka seznámí studenty s tím, co je to kamerový senzor a jaké jsou jeho některé funkce. Studenti poté analyzují částečný obrázek ukázkového projektu, aby zjistili, jak lze kamerový senzor použít s VEXcode V5.
Otázky motivační diskuse v dolní části stránky lze vyplnit jako diskusi ve třídě nebo jednotlivě v technických sešitech studentů.

Ikona motivační diskuse Motivovat diskusi

Otázka:Jaké typy lidských profesí by měly prospěch z pomoci robota s vizuálními senzory?
Odpověď:Hledejte lidské profese, které by měly prospěch ze schopnosti vidět do prostředí a/nebo manipulovat s okolím ze vzdálených vzdáleností (např. pozorování zvířat ve volné přírodě, zneškodňování výbušnin nebo provádění roboticky asistované chirurgie).

Otázka:Pojmenujte zařízení a popište, jak používá vstup, výstup a zpracování.
Odpověď:Možnou odpovědí by mohla být kalkulačka, která bere posloupnosti čísel a matematických operátorů, které osoba zadá, zpracovává tato čísla a operace k výpočtu výsledku a poté tento výsledek zobrazí dané osobě na obrazovce.

Otázka:Proč si myslíte, že byla ve výše uvedeném projektu použita nekonečná smyčka?
Odpověď:Neomezená smyčka byla použita proto, aby senzor Vision Sensor průběžně kontroloval pořízené snímky a zjistil, zda se do zorného pole senzoru dostane červený objekt.

Popis

Vision Sensor umožňuje vašemu robotu shromažďovat vizuální data z živého přenosu. Živý přenos je streamingový přenos toho, co videokamera zachycuje. Vision Sensor je jako inteligentní kamera, která dokáže pozorovat, vybírat, upravovat a ukládat barvy a objekty, které se objevují v jejím zorném poli.

VEX Vision Sensor s horním senzorem zobrazeným vlevo a spodním senzorem, s porty pro připojení zobrazenými vpravo.
Kamerový snímač 276-4850

Schopnosti:

  • Tento senzor lze použít pro rozpoznávání barev a barevných vzorů.
  • Tento senzor lze použít k sledování objektu.
  • Tento senzor lze použít ke sběru informací o životním prostředí.

Vision Sensor umožňuje robotu používat vizuální vstupní data ze svého prostředí. Projekt pak může určit, jak by vizuální vstupní data měla ovlivnit chování robota. Robot by například mohl provádět akce (výstup), jako je otáčení motorů nebo zobrazování výsledků na LCD obrazovce.

Vizuální senzor dokáže také zachytit snímek toho, co je před ním, a analyzovat ho podle toho, co uživatel požaduje. Uživatel může například shromažďovat data ze snímku, například, jakou barvu má objekt? Byl vůbec detekován nějaký objekt? Jak velký je objekt (šířka a výška)?

Robot se pak může na základě těchto dat rozhodovat. Částečný příklad projektu níže ukazuje, jak se to dělá. Po spuštění projektu jsou opakovaně kontrolovány tři barvy a každá kontrola barvy je jinou událostí. Níže je zobrazena pouze událost, která kontroluje modrou. Tento zásobník má robotický tisk "Modrý objekt nalezen", pokud je detekován modrý objekt nebo "Žádný modrý objekt" jinak. Události checkRed a checkGreen, které nejsou uvedeny níže, mají podobné hromádky pro rozhodování o tom, co se má vytisknout na obrazovce.

#include "vex.h"

using namespace vex;

event checkBlue = event();
event checkRed = event();
event checkGreen = event();

void has BlueCallback () {

  Brain.Screen.setFont (mono20);
  Brain.Screen.clearLine (1, black);
  Brain.Screen.setCursor (Brain.Screen.row (), 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");
  }
}

// Begin project code
int main() {
  // Inicializace konfigurace robota. NEODSTRAŇUJTE!
  vexcodeInit();

  checkBlue (hasBlueCallback);

  while (true) {
    checkBlue.broadcast();
    checkRed.broadcast();
    checkGreen.broadcast();
    wait(1, seconds);
  }
}