Ćwiczenia 10 Ä…É Åšledzenie obiektów kamerÄ… NXTCam-v3 - z zasto- sowaniem kontrolera PID Specyfikacja kamery: - kamera daje możliwoÅ›ci Å›ledzenia do oÅ›miu różnych kolorów, z czÄ™stotliwoÅ›ciÄ… 30 klatek na sekundÄ™, - kolory sÄ… definiowane po podÅ‚Ä…czeniu kamery kablem USB do komputera, - może być wykorzystywana do Å›ledzenia linii, - dostarcza w czasie rzeczywistym informacji o Å›ledzonych obiektach, podaje ich ilość, kolor, współrzÄ™dne i wielkość, - kamera rejestruje obraz w rozdzielczoÅ›ci (176 x 144) piksele, po podÅ‚Ä…czeniu do komputera, - rozdzielczość Å›ledzonych obiektów wynosi 88 x 144, 30 klatek na sekundÄ™ - używa protokoÅ‚u komunikacji kompatybilnego z I2C Aby uzyskać szczegółowÄ… instrukcjÄ™ obsÅ‚ugi kamery NXTCam-v3, wpisz w google, NXTCam-v3-User-Guide.pdf. Definiowanie kolorów w kamerze NXTCam-v3 W celu zdefiniowania kolorów, pobieramy oprogramowanie NXTCamView, - pobieramy sterowniki kamery NXTCam v3p0 - podÅ‚Ä…czamy kamerÄ™ do komputera za poÅ›rednictwem kabla USB i wskazujemy ste- rowniki podczas pierwszego podÅ‚Ä…czenia, - uruchamiamy program NXTCamView - Å‚Ä…czymy siÄ™ z kamerÄ… przyciskiem connect, - ustawiamy przed kamerÄ… kolor, który chcemy zapisać do Å›ledzenia, - robimy zdjÄ™cie, wciskajÄ…c opcjÄ™ capture, - wybieramy w zakÅ‚adce colors numer buforu, w którym umieÅ›cimy kolor, - zaznaczamy na zdjÄ™ciu interesujÄ…cy nas kolor przy użyciu kursora, ustawiajÄ…c po- ziom możliwej rozbieżnoÅ›ci od odcienia i klikamy upload Możliwość Å›ledzenia wczytanych kolorów można przetestować, wybierajÄ…c opcjÄ™ trac- king i pokazujÄ…c kamerze wybrane obiekty do Å›ledzenia, ObsÅ‚uga kamery NXTCam-v3 w bibliotece NXT++ KamerÄ™ inicjujemy w porcie IN 2, bezpoÅ›rednio po nawiÄ…zaniu komunikacji z robo- tem, NXT : : NxtCam : : NxtCamInit(&comm, IN 2 ) ; Przed użyciem kamery możemy każdorazowo czyÅ›cić jej rejestry. NXT : : NxtCam : : NxtCamFlush(&comm, IN 2 ) ; Aby pobrać ilość widzianych obiektów, używamy polecenia i l o b=NXT : : NxtCam : : GetNxtCamNumObjects(&comm, IN 2 ) ; naturalnie zmienna il ob powinna być wczeÅ›niej zadeklarowana jako wartość caÅ‚ko- wita, Dane pobierane z kamery majÄ… format wektorowy, stÄ…d deklarujemy tablicÄ™ wekto- rowÄ… data cam nastÄ™pujÄ…co, s t d : : v e c t o r < s t d : : v e c t o r > data cam ; Po deklaracji i wykryciu iloÅ›ci widzianych obiektów, nadajemy tablicy data cam odpowiedni wymiar i czyÅ›cimy jÄ…, data cam . r e s i z e ( i l o b ) ; f o r ( i n t i =0; i { data cam [ i ] . r e s i z e ( 6 ) ; } f o r ( i n t i =0; i { f o r ( i n t j =0; j <6; j ++) { data cam [ i ] [ j ] = 0 ; } } W kolejnym kroku wczytujemy dane o napotkanych obiektach do tablicy da- ta cam, uwzglÄ™dniane sÄ… dane obiektów, które przekraczajÄ… maksymalnÄ… powierzch- niÄ™ determinowanÄ… przez trzeci argument funkcji GetNxtCamObjects. data cam=NXT: : NxtCam : : GetNxtCamObjects(&comm, IN 2 , 0 ) ; \% p o b r a n i e i n f o r m a c j i z kamery ZakÅ‚adajÄ…c, że kamera wykryÅ‚a dwa obiekty przekraczajÄ…ce ustalonÄ… wielkość, dane pobrane z kamery majÄ… format: o b i e k t p i e r w s z y : data cam [ 0 ] [ 1 ] współrzÄ™dna p i k s e l o w a x data cam [ 0 ] [ 1 ] współrzÄ™dna p i k s e l o w a y data cam [ 0 ] [ 1 ] wysokość o b i e k t u data cam [ 0 ] [ 1 ] s z e r o k o Å› ć o b i e k t u data cam [ 0 ] [ 1 ] symbol wykrytego koloru , o b i e k t d r u g i : data cam [ 1 ] [ 1 ] współrzÄ™dna p i k s e l o w a x data cam [ 1 ] [ 1 ] współrzÄ™dna p i k s e l o w a y data cam [ 1 ] [ 1 ] wysokość o b i e k t u data cam [ 1 ] [ 1 ] s z e r o k o Å› ć o b i e k t u data cam [ 1 ] [ 1 ] symbol wykrytego koloru , Zadanie do wykonania 3) Zapoznaj siÄ™ ze sposobem używania kamery NXTCam-v3 w bibliotece NXT++. 4) Napisz podprogram Å›ledzenia piÅ‚ki o kolorze czerwonym za pomocÄ… kamery NXT v3, sterowanie koÅ‚ami zaimplementuj przy użyciu kontrolera PID, podprogram Å›le- dzenia koloru uruchom klawiszem T.