PRACA DYPLOMOWA INŻYNIERSKA



Podobne dokumenty
Proste układy wykonawcze

SILNIK KROKOWY. w ploterach i małych obrabiarkach CNC.

Energoelektronika Cyfrowa

MiAcz3. Elektryczne maszynowe napędy wykonawcze

Kacper Kulczycki. Krótko o silnikach krokowych (cz. 2.)

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Cel ćwiczenia. Przetwornik elektromagnetyczny. Silniki krokowe. Układ sterowania napędu mechatronicznego z silnikiem krokowym.

Silnik prądu stałego. Sterowanie silnika prądu stałego

Politechnika Wrocławska

Mechatronika i inteligentne systemy produkcyjne. Aktory

Ćwiczenie 2a. Pomiar napięcia z izolacją galwaniczną Doświadczalne badania charakterystyk układów pomiarowych CZUJNIKI POMIAROWE I ELEMENTY WYKONAWCZE

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI

PRACA PRZEJŚCIOWA SYMULACYJNA. Zadania projektowe

Politechnika Białostocka

Wysokowydajne falowniki wektorowe Micno KE300.

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Instrukcja obsługi. SQCA244 instrukcja obsługi

Silniki krokowe. 1. Podział siników krokowych w zależności od ich budowy.

PAScz3. Elektryczne maszynowe napędy wykonawcze

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

StrK Sterownik bipolarnego silnika krokowego

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROGRAMOWALNE STEROWNIKI LOGICZNE

Silniki prądu stałego z komutacją bezstykową (elektroniczną)

Wyjścia analogowe w sterownikach, regulatorach

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym cd...

Instrukcja obsługi Poczwórny sterownik silników krokowych SQCA244 Bipolarny sterownik dla 4 silników krokowych do 4A z wejściem LPT,

Szybkie prototypowanie w projektowaniu mechatronicznym

Kamera Domu Inteligentnego. Instrukcja instalacji

Zastosowanie silników krokowych jako napęd robota mobilnego

Moduł Komunikacyjny MCU42 do systemu AFS42

POLITECHNIKA POZNAŃSKA KATEDRA STEROWANIA I INŻYNIERII SYSTEMÓW

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Programowanie i uruchamianie serwo-kontrolera w napędowym układzie wykonawczym z silnikiem skokowym. Przebieg ćwiczenia


Sterowanie urządzeniami elektronicznymi przy użyciu portu LPT

Wykaz ważniejszych oznaczeń Podstawowe informacje o napędzie z silnikami bezszczotkowymi... 13

SPIS TREŚCI PRZEDMOWA WYKAZ WAŻNIEJSZYCH OZNACZEŃ 1. PODSTAWOWE INFORMACJE O NAPĘDZIE Z SILNIKAMI BEZSZCZOTKOWYMI 1.1. Zasada działania i

MCAR Robot mobilny z procesorem AVR Atmega32

INSTRUKCJA INSTALATORA

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

AP3.8.4 Adapter portu LPT

PLD48 PIXEL DMX LED Driver

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

Sterowniki Programowalne Sem. V, AiR

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

oznaczenie sprawy: CRZP/231/009/D/17, ZP/66/WETI/17 Załącznik nr 6 I-III do SIWZ Szczegółowy opis przedmiotu zamówienia dla części I-III

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Instrukcja obsługi AP3.8.4 Adapter portu LPT

Gdy wzmacniacz dostarcz do obciążenia znaczącą moc, mówimy o wzmacniaczu mocy. Takim obciążeniem mogą być na przykład...

1. INSTALACJA SERWERA

INTERFEJS LPG/CNG FTDI USB INSTRUKCJA INSTALACJI ORAZ KONFIGURACJI URZĄDZENIA

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Karta DVR 4 kanały + 4 kamery CCTV CCD - SUPER CENA

Instrukcja obsługi. PLD 24 - pixel LED driver DMX V MODUS S.J. Wadowicka Kraków, Polska.

Konwerter Transmisji KT-02

BCS-NVR0402. Rejestrator sieciowy IP 4 kanałowy

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Czujniki podczerwieni do bezkontaktowego pomiaru temperatury. Czujniki stacjonarne.

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach.

ELEMENTY ELEKTRONICZNE TS1C

INSTRUKCJA OBSŁUGI Przekaźnik na USB Nr katalogowy RELx-USB-00

Nowe rozwiązania w układach sterowania firmy Tester

Z powyższej zależności wynikają prędkości synchroniczne n 0 podane niżej dla kilku wybranych wartości liczby par biegunów:

usbcat OPTOIZOLOWANY INTERFEJS USB<->CAT OPTOIZOLOWANE STEROWANIE PTT, CW, FSK GALWANICZNA IZOLACJA AUDIO IN, AUDIO OUT Podręcznik użytkownika

Problematyka budowy skanera 3D doświadczenia własne

Urządzenia techniki komputerowej Identyfikacja i charakteryzowanie urządzeń zewnętrznych komputera. Budowa i zasada działania skanera

MultiTool instrukcja użytkownika 2010 SFAR

Ile wynosi całkowite natężenie prądu i całkowita oporność przy połączeniu równoległym?

PR kwietnia 2012 Mechanika Strona 1 z 5. XTS (extended Transport System) Rozszerzony System Transportowy: nowatorska technologia napędów

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

SML3 październik

Ćw. 18: Pomiary wielkości nieelektrycznych II

Interpretacja gestów dłoni w sekwencji obrazów cyfrowych. autor: Karol Czapnik opiekun: prof. dr hab. Włodzimierz Kasprzak

Konstrukcja mostka mocy typu "H" opartego o układ HIP4081A Robert Szlawski

Silnik indukcyjny - historia

SILNIK INDUKCYJNY KLATKOWY

Komputerowe systemy pomiarowe. Dr Zbigniew Kozioł - wykład Mgr Mariusz Woźny - laboratorium

MOBOTIX M15D-AllroundDual Camera Dualna. Modułowa. Unikalna. Broszura informacyjna z dnia

Czym jest OnDynamic? OnDynamic dostarcza wartościowych danych w czasie rzeczywistym, 24/7 dni w tygodniu w zakresie: czasu przejazdu,

Opracował: Jan Front

Oprócz funkcjonalności wymaganych przez zamawiających, urządzenia Hikvision oferują dodatkowo następujące funkcjonalności:

Politechnika Poznańska, Instytut Elektrotechniki i Elektroniki Przemysłowej, Zakład Energoelektroniki i Sterowania Laboratorium energoelektroniki

Centrala alarmowa ALOCK-1

LUZS-12 LISTWOWY UNIWERSALNY ZASILACZ SIECIOWY DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, kwiecień 1999 r.

Podstawy Elektrotechniki i Elektroniki. Opracował: Mgr inż. Marek Staude

Charakterystyka rozruchowa silnika repulsyjnego

Xylect. Xylect. Program doboru produktów Xylem

PhoeniX. Urządzenie do wizyjnej kontroli wymiarów oraz kontroli defektów powierzchni

Te i wiele innych cech sprawia, że program mimo swej prostoty jest bardzo funkcjonalny i spełnia oczekiwania większości klientów.

Instrukcja obsługi. Karta video USB + program DVR-USB/8F. Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia.

Stair Lighting Driver. Sterownik oświetlenia schodowego Instrukcja użytkowania

Serwonapędy AC Serie EDC, EDB, ProNet

Transkrypt:

POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI KIERUNEK: Automatyka i Robotyka SPECJALNOŚĆ: Systemy Informatyczne w Automatyce PRACA DYPLOMOWA INŻYNIERSKA Tytuł pracy w języku polskim Ruchome oko - śledzenie postaci wykorzystujące kamerę oraz dwa silniki krokowe Tytuł pracy w języku angielskim Moving eye tracking using a camera and two stepper motors AUTOR: Jacek Skiba PROWADZĄCY PRACĘ: dr inż. Andrzej Rusiecki Instytut Informatyki, Automatyki i Robotyki WROCŁAW 2010 OCENA PRACY:

Spis treści Rozdział 1. Wstęp... 4 1.1 Cele pracy... 5 1.2 Struktura logiczna pracy... 6 Rozdział 2. Detekcja... 7 2.1 Analiza wideo a wizyjna detekcja ruchu... 7 2.2 Algorytmy detekcji ruchu... 8 Rozdział 3. Silniki skokowe... 9 3.1 Typy silników skokowych... 9 3.2 Algorytmy sterowania silnikami skokowymi... 11 3.3 Zalety i wady silników skokowych... 13 Rozdział 4. Przykładowa realizacja sterowania kamerą... 14 4.1 Schemat układu sterowania... 14 4.2 Wykorzystywane algorytmy sterowania... 17 4.3 Parametry wykorzystywanej kamery... 18 Rozdział 5. Podręcznik użytkownika programu Motion detection v.1... 20 5.1 Informacje ogólne... 20 5.1.1 Autor, data opracowania podręcznika... 20 5.1.2 Opis programu... 20 5.1.3 Przegląd zastosowań programu... 21 5.1.4 Wymagania techniczne aplikacji... 21 5.2 Środowisko programu... 21 5.2.1 Sposób korzystania z programu... 21 5.2.2 Przykładowe wykorzystanie aplikacji... 21 Rozdział 6. Rozpoznawanie twarzy... 27 6.1 Problematyka rozpoznawania twarzy... 27 6.2 Algorytm eigenface... 28 2

Rozdział 7. Podręcznik użytkownika programu Eigenface v.1... 29 7.1 Informacje ogólne... 29 7.1.1 Autor, data opracowania podręcznika... 29 7.1.2 Opis programu... 29 7.1.3 Przegląd zastosowań programu... 29 7.1.4 Wymagania techniczne aplikacji... 29 7.2 Środowisko programu... 29 7.2.1 Sposób korzystania z programu... 29 7.2.2 Przykładowe wykorzystanie aplikacji... 30 7.3 Sytuacje niepoprawne... 31 Rozdział 8. Podsumowanie... 32 Literatura... 33 3

Rozdział 1 Wstęp Problemy związane z rozpoznawaniem i śledzeniem postaci przez inteligentny system komputerowy, stanowią poważne wyzwanie dla obecnej nauki. Złożoność zagadnienia ukazała wiele metod i algorytmów umożliwiających z większą, bądź z mniejszą skutecznością sprostanie temu zadaniu. Ujmując rzecz ogólnie, szeroka dziedzina Computer Vision stanowi bardzo dynamicznie rozwijający się dział, w którego skład możemy zaliczyć m.in. detekcję, rozpoznawanie wzorców oraz śledzenie ruchu. Algorytmy rozpoznające posiadają bardzo dużą liczbę zastosować, szczególnie w systemach bezpieczeństwa. W tym przypadku podstawowym priorytetem jest niezawodność rozpoznawania, i to ona decyduje o skuteczności oraz praktycznym wykorzystaniu systemu. Dziedzina pattern recognition obecna jest także w systemach identyfikacji tablic rejestracyjnych [2]. Technologia ta umożliwia automatyczne określanie średniej prędkości pojazdu na badanym odcinku drogi, poprzez poprawne odczytanie numeru pojazdu na wjeździe oraz przy wyjeździe ze strefy kontrolowanej. Dodatkowo, umożliwia ona generowanie statystyk ruchu mających na celu poprawienie przepustowości dróg w miastach oraz na drogach wylotowych. Problematyka rozpoznawania wzorców coraz częściej wykorzystywana jest w medycynie [3]. Dotyczy ona zarówno porównywania zdjęć rezonansu magnetycznego ze wzorcem, jak i wyników badań z objawami określonych chorób. Tego typu funkcjonalności stanowią podstawowy element systemów eksperckich, często wykorzystywanych w diagnostyce. Dział rozpoznawania i śledzenia obiektów stanowi znaczące rozszerzenie dziedziny pattern recognition. W tym przypadku połączono programowe podejście rozpoznające wzorzec z automatycznym układem sterowania kamerą. System spełniający dane wymagania posiada zastosowania w wielu dziedzinach, m.in. umożliwia realizację następujących zadań: - CCTV: system telewizji dozorowej umożliwia przekazywanie obrazu z określonych pomieszczeń w zamkniętym systemie odbiorczym. Służy nadzorowaniu i zwiększeniu bezpieczeństwa przestrzeni, w obrębie której zostały zainstalowane inteligentne kamery, umożliwiające rozpoznawanie i śledzenie. - robotyka: rozwijana oraz popularyzowana przez wiele ośrodków akademickich, m.in. przez wrocławskie koło naukowe KoNaR [www.3]. Projekt Oka Romana zrealizowany przez to stowarzyszenie, w pełni ukazuje możliwości oraz ambicje tej dziedziny nauki. Wykonany projekt przedstawiono na zdjęciu nr 1. 4

1.1 Cele pracy Niniejszy projekt składa się z dwóch odrębnych aplikacji realizujących następujące zadania: - detekcję ruchu w czasie rzeczywistym realizowaną w Visual Studio, wraz z zaprojektowanym układem sterowania kamerą - rozpoznawanie twarzy w środowisku MATLAB implementując algorytm eigenface. Pierwsza część projektu realizuje zadanie wykorzystujące metody obiektowe oparte na dedykowanej bibliotece programistycznej. Brak szczegółów implementacyjnych ułatwia napisanie programu i odciąża twórcę od konkretnych algorytmów. Druga część realizuje zadanie rozpoznawania. To podejście pokazuje złożoność problemu pod względem matematycznym, programistycznym oraz obliczeniowym.. Celem pracy jest przedstawienie podejścia strukturalnego oraz obiektowego, do problematyki detekcji i rozpoznawania wzorców. Ma to na celu z jednej strony przedstawienie zawiłości algorytmu, a z drugiej prostoty operującej na gotowych rozwiązaniach w postaci bibliotek. Dodatkowo w projekcie przedstawiono możliwość wykorzystania silników krokowych, w zadaniach śledzenia wzorców. Rys. 1 Projekt umożliwiający rozpoznanie oraz śledzenie twarzy [www.3] 5

1.2 Struktura logiczna pracy Realizowany projekt inżynierski złożony jest z trzech uzupełniających się wzajemnie części: - dwóch programów wraz z kodami źródłowymi i komentarzami - podręczników użytkownika ukazujących sposób wykorzystywania aplikacji - opisu teoretycznego realizowanych koncepcji i funkcji. Uważam, że przyjęta struktura w sposób najpełniejszy oddaje problematykę zagadnienia. Unikanie w opisie teoretycznym części stricte pochodzących z kodów źródłowych, spowodowane jest chęcią utrzymania dokumentu w spójnej całości oraz niepowielania komentarzy zawartych w kodzie oraz w dokumentacji biblioteki AForge.NET. 6

Rozdział 2 Detekcja 2.1 Analiza wideo a wizyjna detekcja ruchu Detekcja ruchu w najprostszym tłumaczeniu ukazuje różnicę pomiędzy dwoma klatkami obrazu: sąsiednimi bądź pomiędzy aktualną, a przechowywanym tłem sceny. W tym rozwiązaniu, algorytm nie jest w stanie odróżnić człowieka np. od samochodu po innym kryterium, niż rozmiar. Innymi słowy, detekcja ruchu polega tylko i wyłącznie na ocenie wielkości grupy pikseli. Jeżeli wygenerowany obszar jest wystarczająco duży, to wtedy i tylko wtedy, zostanie wykryty. Tego typu opis systemu niesie duże ograniczenia w jego zastosowaniach oraz w jego skuteczności. Do podstawowych niedogodności metody zaliczamy m.in.: - dynamizm tła: poruszające się pod wpływem wiatru gałęzie drzew lub falująca woda, w znaczący sposób utrudniają poprawną detekcję. - połyskliwe powierzchnie metaliczne, szkło lub duże przedmioty odbijające światło: wszystkie wyróżnione elementy mogą być przyczyną błędnych rozpoznań. - brak automatycznej adaptacji systemu do zmieniających się warunków atmosferycznych. Wymienione powyżej ograniczenia zawężają skuteczność działania metody detekcji ruchu do pomieszczeń zamkniętych, czyli do wykorzystywania ich w stabilnych warunkach środowiskowych oraz oświetleniowych. Dziedzina analizy wideo jest znacznie bardziej skomplikowana od typowego systemu detekcji. Termin Video Analytics jest stosowany w odniesieniu do aplikacji umożliwiających następujące funkcje: - rzeczywistą detekcję typu obiektu, a nie tylko wykrywanie grupy pikseli. - separację obiektu zainteresowania od dynamicznie zmieniającego się tła. - automatyczne dostosowanie systemu do zmieniających się warunków otoczenia. - śledzenie obiektu w całym polu widzenia. Dział rozpoznawania tablic rejestracyjnych, rozpoznawania twarzy czy też metod śledzenia obiektów, zaliczamy do podzbioru analizy wideo. Projektując tego typu system, winniśmy uwzględniać powyżej omówioną problematykę oraz cele stawiane tym aplikacją. 7

2.2 Algorytmy detekcji ruchu Każdy implementowany system rejestracji obrazu (np. system monitorowania obiektu), wymaga algorytmu detekcji ruchu. Główna koncepcja wykrywania ruchu wyróżnia dwie odrębne metody: porównywanie sąsiednich klatek, bądź też aktualnej klatki z przechowywanym tłem. W zależności od zastosowania oraz skuteczności, projektowany system wykorzystuje jeden z tych algorytmów. W tym miejscu nadmienić należy o szeregu metod przetwarzania obrazu, mających istotny wpływ na jakość detekcji oraz na złożoność realizowanej procedury. Metoda porównywania sąsiednich klatek, realizuje proces rozpoznawania poprzez wykrywanie różnic w kolorach. Założenie to emuluje sposób rozpoznawania ruchu przez ludzi. W podstawowym ujęciu algorytmu porównujemy składowe R,G,B pikseli, a następnie sprawdzamy czy różnica jest odpowiednio duża, aby uznać badany punkt obrazu za część związaną z ruchem. Chcąc polepszyć jakość oraz szybkość procesu detekcji możemy wykorzystać jedną z niżej opisanych modyfikacji. Zamiast porównywania wszystkich punktów macierzy, aplikacja generuje siatkę pikseli o odpowiedniej gęstości i regularności. Dzięki takiemu ograniczeniu, znacząco minimalizujemy ilość elementarnych operacji wykonywanych w dziedzinie pojedynczych pikseli. Sytuację tą przedstawiono na rysuneku nr 2. Innym rodzajem modyfikacji jest wprowadzanie uśrednienia kolorystycznego. Przed porównywaniem obrazów dzielimy każdy z nich na równomierną siatkę. W ramach wyznaczonego obszaru uśredniamy kolory sumując barwy pikseli, a następnie dzieląc przez ich ilość. Po operacji tego typu, obraz w niższej rozdzielczości jest poddawany porównywaniu. Dzięki danej metodzie, porównywanie jest znacznie skrócone, a co ważniejsze, rola małych obiektów znacząco spada w końcowej analizie. Odrębnym podejściem jest wykrywanie ruchu poprzez porównywanie każdej klatki obrazu z przechowywanym tłem. Tło w systemie pozyskiwane jest w sposób automatyczny, a następnie aktualizowane do wolno przebiegających zmian w polu widzenia kamery. Dzięki takiemu podejściu uzyskujemy reakcję tła na wolno przebiegające zmiany obrazu np. zachmurzenie, zmierzch, mgłę. Obie wyżej wymienione metody detekcji ruchu wykorzystywane są w praktyce, lecz obie do różnych celów. Porównywanie sąsiednich klatek wiążę się z ciągłym dynamizmem sceny, co może mieć wykorzystanie w systemach monitorujących lotniska bądź dworce. Porównywanie oparte na statycznym tle może z kolei być implementowane w fotoradarach. Rys. 2 Losowy wybór punktów detekcji 8

Rozdział 3 Silniki skokowe 3.1 Typy silników skokowych Silniki krokowe są urządzeniami elektromechanicznym, przekształcającymi impulsy elektryczne w dyskretne ruchy mechaniczne. Obroty silnika związane są bezpośrednio z podawanymi impulsami na kilka sposobów. Kierunek obrotów jest ściśle związany z sekwencją ich podawanych, prędkość obrotów zależy od częstotliwości, zaś kąt obrotu - od ich ilości. Wyróżniamy trzy podstawowe rodzaje silników skokowych pod względem budowy: - silniki o zmiennej reluktancji (VR) - silniki z magnesami trwałymi (PM) - silniki hybrydowe (HB). Obecnie w zastosowaniach komercyjnych wykorzystywane są tylko i wyłącznie silnik hybrydowe [4]. Łączą one w sobie zalety silników ze zmienną reluktancją oraz silników z magnesem trwałym. Stojan silnika HB posiada przeważnie dwa uzwojenia i osiem biegunów, zaś rotor magnesy rozmieszczone osiowo. Pod względem budowy, bardzo ważnym elementem silników hybrydowych są żłobki występujące na czołach biegunów stojana oraz na powierzchni wirnika. Obecność magnesu stałego powoduje ustawianie ich naprzeciw sobie, co wywołane jest maksymalnym przepływem strumienia magnetycznego w ferromagnetykach. Typowa rozdzielczość silnika wynosi 100 400 kroków na obrót. Schemat budowy silnika HB przedstawiono na rysunku nr 3. Rys. 3 Schemat budowy stojana silnika hybrydowego 9

Obecnie produkowane silniki posiadają po kilka biegunów, lecz zawsze zawierają tylko dwa uzwojenia podzielone na sekcje. Wytworzenie wirującego pola magnetycznego będącego podstawą działania silników, w ogólności można zrealizować dwoma sposobami; zmianą kierunku przepływu prądu w uzwojeniach, bądź też wykorzystując odczep umożliwiający przepływ prądu tylko w jednym kierunku. Opisane tutaj dwie odmienne formy sterowania, wprowadziły podział na silniki bipolarne i unipolarne. Silnik bipolarny posiada zawsze 4 przewody wyjściowe. Sterowanie realizowane jest najczęściej z wykorzystaniem dwóch mostków tranzystorowych. Tego typu układ pozwala w pełni wykorzystać silnik, jednak realizacja sterownika nie jest łatwa konieczne jest wysterowanie każdego z ośmiu tranzystorów osobno. Uproszczony schemat sterowania mostkami H przedstawiono na rysunku 4. Rys. 4 Przykładowa realizacja sterowania silnikiem bipolarnym [4] Silnik unipolarny rozpoznajemy po tym, iż posiada 6 przewodów wyjściowych. Zdarza sie że silnik posiada 5 wyprowadzeń, co jest spowodowane połączeniem przewodów zasilających. Sterowanie silnikiem unipolarnym jest prostsze niż bipolarnym, ale w zamian otrzymujemy mniejszy moment obrotowy. Przykładowy układ sterowania silnikiem unipolarnym przedstawiono na rysunku nr 5. Rys. 5 Przykładowa realizacja sterowania silnikiem unipolarnym [4] 10

3.2 Algorytmy sterowania silnikami skokowymi Sterowanie silników bipolarnych, jak i unipolarnych możemy realizować w różnorodny sposób. Każdy z algorytmów sterujących wykorzystywany jest w praktyce, w zależności od celów, jakości oraz od stopnia skomplikowania układu docelowego. Ogólny podział wyróżnia następujące metody: - sterowanie falowe (wave drive) - sterowanie pełnokrokowe (full step) - sterowanie półkrokowe (half step). Sterowanie falowe jest najprostszym oraz najmniej wydajnym algorytmem. W przypadku bipolarnym wykorzystujemy w trakcie każdego cyklu pojedyncze uzwojenie, zaś w przypadku unipolarnym tylko i wyłącznie ¼ wszystkich uzwojeń. Graficzny opis tej metody przedstawiono na rysunku nr 6. Rys. 6 Schemat sterowania falowego w silniku unipolarnym [4] Algorytm pełnokrokowy jest prostą oraz dającą dobry moment obrotowy metodą sterującą. W każdej fazie cyklu zasilane są oba uzwojenia niezależnie od typu silnika, co znacznie poprawia m.in. jego moc. Sekwencja sterująca w tym algorytmach powtarza się co cztery impulsy generatora taktującego. Przedstawia to rysunek nr 7. Rys. 7 Schemat sterowania pełnokrokowego w silniku bipolarnym [4] Sterowanie półkrokowe jest najczęściej wykorzystywanym sposobem sterowania, łączącym w sobie dwa powyżej omówione algorytmy. W tym przypadku zasilane się na przemian jedno lub dwa uzwojenia silnika. Realizacja tego typu niesie za sobą zmniejszone osiągi układu, jednak znacząco poprawia precyzje (zmniejsza o połowę skok elementarny) oraz tłumi skłonność układu do rezonansów mechanicznych. Sekwencja sterująca w tej procedurze powtarza się co osiem impulsów generatora taktującego. Ogólny schemat zasilania uzwojeń przedstawiono na rysunek nr 8. 11

Rys. 8 Schemat sterowania półkrokowego w silniku unipolarnym [4] Sterowanie mikrokrokowe pomimo swoich bezwzględnych zalet dotyczących płynności ruchu oraz precyzji, nie jest realizowane w zadaniu projektowym. W ogólności, bardzo duża dokładność wirnika nie ma wymiernego wpływu, na jakość opisywanego układu. 12

3.3 Zalety i wady silników skokowych Specyficzna (dyskretna) zasada działania silników krokowych, niesie za sobą wiele możliwości ich wykorzystania. Poniżej przedstawiono główne cechy tych napędów (niezależnie od rodzaju silnika skokowego): - precyzja pozycjonowania oraz powtarzalność ruchu - możliwość szybkiego rozbiegu, hamowania oraz zmiany kierunku - proporcjonalność kąta obrotu silnika od ilości impulsów wejściowych - możliwość pracy napędu w układzie pętli otwartej - brak kumulacji błędu silnika z kroku na krok - praca z pełnym momentem obrotowym w stanie spoczynku - osiąganie niskich prędkości obrotowych z obciążeniem umocowanym na osi - niezawodność mechaniczna wynikająca z braku szczotek oraz komutatora. Omówiona powyżej konstrukcja typowych silników krokowych nie jest idealna, o czym świadczą następujące wady tego typu rozwiązań: - rezonanse mechaniczne wynikające z niewłaściwego sterowania - małe maksymalne obroty w porównaniu do innych silników o podobnej mocy - duży pobór prądu - duża emisja ciepła. Wszystkie wymienione zalety oraz wady silników krokowych, uwidoczniają możliwe dziedziny ich wykorzystania, a także sektory w których nie powinny być stosowane m.in. przemysł ciężki, napędy pojazdów. Precyzja oraz prostota sterowania w postaci napędów krokowych wykorzystywana jest w następujących obszarach techniki: - szeroko rozumiana robotyka. Sterowanie ramionami manipulatorów, kołami w robotach mobilnych - mechaniczne urządzenia regulacji - napędy CD/DVD: sterowanie ruchem głowicy czytającej - drukarki igłowe i atramentowe, plotery. 13

Rozdział 4 Przykładowa realizacja sterowania kamerą 4.1 Schemat układu sterowania Dedykowanym w projekcie, prostym sterownikiem kamery jest układ wykorzystujący port równoległy LPT, transoptory oraz dwie kości ULN2004. Elementem wykonawczym układu są silniki krokowe unipolarne, realizujące przemieszczanie kamery w poziomie i w pionie. Podstawowy schemat układu sterowania przedstawiony jest na rysunku nr 9. Rys 9. Schemat sterowania dwoma silnikami unipolarnymi Poniżej przedstawiono podstawowe parametry i cechy wykorzystywanych podzespołów układu sterowania. Port równoległe LPT jest 25-pinowym złączem wykorzystywanym w komputerach klasy PC. Magistrala interfejsu składa się z 8 linii danych przesyłających pojedynczy bajt, 4 linii sterujących oraz 5 linii stanu. Linie magistrali są dwukierunkowe i przesyłają sygnały odpowiadające standardowi TTL. Porty tego typu głównie wykorzystywane są do podłączania urządzeń peryferyjnych, np. drukarek, skanerów, ploterów. Układ wyprowadzeń pinów ze złącza przedstawiono na rysunku nr 10. 14

Rys. 10 Oznaczenie pinów gniazda LPT Transoptor [5] jest półprzewodnikowym elementem optoelektronicznym, składającym się z fotoemitera oraz fotodetektora, umieszczonych we wspólnej obudowie. Rolę fotoemitera w obwodzie wejściowym najczęściej spełnia dioda elektroluminescencyjna. Na wyjściu w tym przypadku wykorzystujemy fototranzystor. Głównym zastosowaniem transoptorów jest galwaniczne rozdzielenie obwodów w układach automatyki i sterowania. Wykorzystywane są również jako przekaźniki optoelektroniczne, wyłączniki krańcowe oraz jako czujniki położenia. ULN2004 [6] jest monolitycznym wysokonapięciowym obwodem tranzystorowym wykonanym w układzie Darlingtona. Zawiera on siedem par Darlingtona NPN z wysokonapięciowymi wyjściami. Maksymalny prąd kolektora każdej pary tranzystorów to 500 ma. Układ wykorzystywany jest głównie jako sterownik diod, wyświetlaczy LED, bądź też silników krokowych. Rozmieszczenie pinów w obudowie typu DIL, przedstawiono na rysunku nr 11. Rys. 11 Układ ULN2004 w obudowie dwurzędowej (widok z góry) Wykorzystanie silników unipolarnym firmy Mitsumi M15SP-1N zapewnia łatwość oraz precyzje sterowania. Małe wymiary, lekka waga oraz wysoki moment obrotowy siników, umożliwiają kompaktową realizację układu. Podstawowe parametry silników przedstawiono w tabeli nr 1, a ogólną prezentację na rysunek nr 12. 15

Tabela nr 1. Specyfikacja silnika M15SP-1N [www.2] Parametr Wartość Nominalne napięcie zasilania DC 5 V Przedział zasilania DC (4.5, 5.5) V Nominalny pobór prądu 357 ma Liczba faz 2 Rezystancja uzwojeń 14 Ω / faza 7% Skok elementarny 18 / krok Moment obrotowy 4 mmˑm Prostota realizacji oraz łatwość wykonania układu na płytce uniwersalnej lub stykowej, są niewątpliwymi zaletami tego rozwiązania. Dodatkowo, brak pętli zwrotnej w układzie eliminuje potrzebę stosowania kosztownych urządzeń sprzężenia zwrotnego, takich jak enkodery optoelektroniczne. Zasada działania układu jest następująca: sygnał wyprowadzony przez port równoległy, przekazywany jest poprzez separację galwaniczną do układów scalonych, tam wzmacniany, i następnie doprowadzany do uzwojeń silników. Izolacja w postaci transoptorów konieczna jest z powodu łatwości uszkodzenia portu LPT oraz w konsekwencji części płyty głównej. Rys. 12 Silnik krokowy unipolarny firmy Mitsumi [www.2] 16

4.2 Wykorzystywane algorytmy sterowania W projekcie zrealizowano sterowanie sinikami unipolarnymi z wykorzystaniem portu LPT. Główną zaletą tego rozwiązania jest prostota układu, wynikająca z możliwości przesyłania pojedynczych bajtów. Poniżej przedstawiono sekwencje sterujące realizowane w zadaniu projektowym: - sterowanie falowe (tabela nr 2) - sterowanie pełnokrokowe (tabela nr 3) - sterownie półkrokowe (tabela nr 4). Tab. 2 Sterowanie falowe kierunek CW Nr taktu A+ B+ A- B- dziesiętnie 1 1 0 0 0 1 2 0 1 0 0 2 3 0 0 1 0 4 4 0 0 0 1 8 Tab. 3 Sterowanie pełnokrokowe kierunek CW Nr taktu A+ B+ A- B- dziesiętnie 1 0 1 1 0 6 2 1 1 0 0 12 3 1 0 0 1 9 4 0 0 1 1 3 Tab. 4 Sterowanie półkrokowe kierunek CW Nr taktu A+ B+ A- B- dziesiętnie 1 1 0 0 1 9 2 1 0 0 0 8 3 1 0 1 0 10 4 0 0 1 0 2 5 0 1 1 0 6 6 0 1 0 0 4 7 0 1 0 1 5 8 0 0 0 1 1 17

Zmianę kierunku obrotu wirnika - CCW - zrealizowano podając w odwrotnej kolejności impulsy sterujące. Wykorzystując trzy algorytmy, wprowadzono uniwersalność części programowej na gabaryty i masę kamery wraz z obudową. Dla dużej masy układu, można wytworzyć wysoki moment obrotowy w postaci sterowania pełnokrokowego. Zwiększając precyzję i płynność, wykorzystujemy w systemie sterowanie półkrokowe. Dostęp do portu równoległego zrealizowano wykorzystując darmową bibliotekę dynamiczną InpOut32.dll [www.4]. Sprowadzało się to do podania adresu złącza sprawdzanego z poziomu systemu operacyjnego, a następnie do przesyłania wartości do portu w postaci dziesiętnej. Rozwiązanie wykorzystujące bibliotekę dynamiczną kompatybilne jest z innymi systemami z rodziny Windows XP, Vista. Innym problemem dotyczącym głównie laptopów, jest nieposiadanie złącza równoległego. W tym przypadku można wykorzystać konwerter USB LPT, bądź też uniwersalne stacje dokujące. Alternatywnym sposobem sterowania [www.3] - bardziej złożonym pod względem elektroniki - jest wykorzystanie mikrokontrolera wraz z portem RS-232 lub złączem USB. Realizacja tego typu jest kompaktowa oraz profesjonalna. Wymaga jednak złożonych algorytmów sterowania oraz odpowiedniego zaprogramowania uc. W zadaniu projektowym głównym elementem jest program, dlatego porzucono trudniejszą realizację sterownika. 4.3 Parametry wykorzystywanej kamery Patrząc na realizowany projekt inżynierski od strony użytkownika, podstawowym elementem układu jest rodzaj wykorzystywanej kamery. Zastosowanie w systemie zwykłej kamery internetowej powoduje, iż staje się ona wąskim gardłem układu, zapewniając poprawną pracę tylko i wyłącznie w idealnych warunkach oświetleniowych. Zapobiegamy takiemu rozwiązaniu poprzez wybór odpowiedniego typu kamery ze względu na dedykowany rodzaj pracy, warunki środowiskowe oraz cenę. Podstawowym parametrem kamery cyfrowej jest rodzaj wykorzystywanego przetwornika. Wykorzystując w układzie droższe rozwiązania w postaci przetworników CCD, uzyskujemy znakomitą jakość obrazu oraz bardzo wysoką czułość. Dodatkowo, układy tego typu znoszą dobrze szybkie zmiany oświetlenia, mające szczególnie znaczenie w monitoringu ulicznym. Korzystając z technologii CMOS w zamian za pogorszenie wszystkich powyżej opisanych parametrów, uzyskujemy dużą miniaturyzację układu oraz niską cenę. Bardzo ważną rolę w procesie akwizycji obrazu odgrywają także dane dotyczące czułości, rozdzielczości oraz stosunku sygnał/szum. Czułość podawana w luxach, jest zdolnością widzenia kamery przy słabym oświetleniu. Parametr ten wybierany jest w zależności od warunków środowiskowych w jakich pracuje układ. Wykorzystując w tym celu kamerę czarno-białą nastawiamy system na obserwowanie obiektów przy słabym oświetleniu. Duża czułość, mała wrażliwość na kolor światła padającego na obiekty oraz szeroka charakterystyka widmowa, umożliwiają poprawną pracę układu w niekorzystnych warunkach. Wykorzystywanie kamery kolorowej wymagane jest tam, gdzie dobre rozróżnianie osób bądź przedmiotów jest elementem priorytetowym. W tym celu konieczne jest jednak zapewnienie dobrych warunków oświetleniowych, spowodowanych mniejszą czułością tego typu kamery. 18

Istotnym elementem w wyborze odpowiedniej kamery jest jej obudowa. W tym przypadku decydującą rolę odgrywają warunki środowiskowe oraz rodzaj wykonywanego zadania. Do wyboru mamy następujące typy obudów: - BOX: najpopularniejsze rozwiązanie, stosowane zarówno wewnątrz pomieszczeń, jak i na zewnątrz - DOME: korzystają z obudowy kopułkowej, przeznaczone do zastosowań wewnętrznych - płytkowe: dyskretne, wymagające bardzo mało miejsca - wandaloodporne: wykorzystywane na dworcach, stadionach Przykłady omawianych obudów przedstawiają fotografie nr 13 oraz 14. Rys. 13 Kamera cyfrowa w obudowie typu BOX Obecne rozwiązania technologiczne znacząco wspomagają kamery w problemach dotyczących monitoringu. Dla przykładu, układy BLC eliminują zjawisko powstające przy silnym świetle padającym z tyłu obiektu. Automatyczny balans bieli (AWB), zapewnia zaś otrzymywanie naturalnego obrazu przy różnych rodzajach oświetlenia. Dzięki tego typu rozwiązaniom znacząco poprawiamy jakość obrazu, lecz ma to oczywiście swoje odzwierciedlenie w cenie. Rys. 14 Kamera cyfrowa w obudowie typu DOME 19

Rozdział 5 Podręcznik użytkownika programu Motion detection v.1 5.1 Informacje ogólne 5.1.1 Autor, data opracowania podręcznika Program został napisany przez Jacka Skibę, jako jeden z elementów projektu inżynierskiego. Opracowane zostało napisane dnia 3.12.2010 r. Manual dotyczy pierwszej wersji aplikacji, w której nie zaimplementowano modułu automatycznego śledzenia wzorców. 5.1.2 Opis programu Głównym zadaniem aplikacji jest detekcja ruchu przechwytywana z cyfrowej kamery w czasie rzeczywistym. W tym celu, w programie zaimplementowano dwie metody detekcji: - porównywanie sąsiednich klatek - porównywanie z tłem oraz wprowadzono cztery procedury wyświetlania zmian na scenie: - podświetlanie powierzchni - podświetlanie krawędzi - zliczanie ruchomych obiektów - siatkę intensywności ruchu. Sterowanie manualne kamerą w poziomie i w pionie umożliwia myszka komputerowa. Wraz z wykryciem ruchu, program automatycznie zapisuje analizowaną klatkę obrazu na dysku. Dodatkowo, aplikacja umożliwia ustawienie podstawowych parametrów detekcji, tj.: - czułości algorytmu - interwału czasowego pomiędzy zrzutami - ścieżki zapisu zdjęć. W programie wprowadzono także moduł wykorzystujący protokoły sieciowe. Umożliwia on realizację następujących funkcji: - zdalne śledzenie sceny wykorzystując przeglądarkę - zapis detekcji na serwerze FTP - wysyłanie powiadomień o wykrytym ruchu na pocztę. 20

5.1.3 Przegląd zastosowań programu Aplikacja może być wykorzystywana w prostych systemach monitoringu oraz zabezpieczenia. Wiele zaimplementowanych metod detekcji, możliwość archiwizacji oraz dostęp poprzez sieć, umożliwiają stworzenie systemu ochraniającego małe pomieszczenie, bądź też komputer sam w sobie. 5.1.4 Wymagania techniczne aplikacji Dedykowanym środowiskiem programu są systemy operacyjne z rodziny Windows. Elementem koniecznym jest także platforma.net w wersji co najmniej 3.5 oraz framework AForge.NET. Modułami dodatkowymi rozszerzającymi funkcjonalność są dwa darmowe programy realizujące zdalne śledzenie oraz upload na serwer FTP: cam4net i Home Ftp Server. 5.2 Środowisko programu 5.2.1 Sposób korzystania z programu Obsługa aplikacji jest prosta oraz intuicyjna. W czasie przechwytywania obrazu z kamery, użytkownik posiada cały czas możliwość zmiany metody detekcji oraz sposobu wyświetlania różnic pomiędzy klatkami. Dodatkowo w sposób online można zmieniać parametry związane z czułością wykrywania oraz z interwałem czasowym zrzutów. 5.2.2 Przykładowe wykorzystanie aplikacji Interfejs programu prezentuje standardowy wygląd oraz parametry dla środowiska Windows. Wygląd GUI po otwarciu aplikacji przedstawiono na rysunku nr 15. Rys. 15 Główne okno programu 21

Informacje na temat kamery oraz ustawienia parametrów detekcji regulowane są w zakładce konfiguracja. Wygląd zakładki przedstawiono na rysunku nr 16. Rys. 16 Okno konfiguracji programu Motion Detection Przykład detekcji piłki wykorzystujący metodę porównywania z tłem, z podświetlaniem całej powierzchni przedmiotu, przedstawiono na rysunku nr 17. Rys. 17 Metoda porównująca z tłem, podświetlająca całą powierzchnię 22

Przykład detekcji piłki wykorzystujący metodę porównywania z tłem, z podświetlaniem krawędzi przedmiotu, przedstawiono na rysunku nr 18. Rys. 18 Metoda porównująca z tłem, podświetlająca krawędzie przedmiotu Przykład detekcji piłek wykorzystujący metodę porównywania z tłem, ze zliczaniem ruchomych obiektów, przedstawiono na rysunku nr 19. Rys. 19 Metoda porównująca z tłem, zliczająca ruchome obiekty 23

Przykład detekcji piłki wykorzystujący metodę porównywania sąsiednich klatek, z ukazaniem siatki intensywności ruchu, przedstawiono na rysunku nr 20. Rys. 20 Metoda porównująca sąsiednie klatki, ukazująca siatkę intensywności ruchu Interfejs sterowania w aplikacji kamerą cyfrową przedstawiono na rysunku nr 21. Do wyboru użytkownik posiada sterowanie fazowe, półkrokowe oraz sterowanie z wysokim momentem obrotowym. Rys. 21 Moduł umożliwiający sterowanie za pomocą silników krokowych położeniem kamery 24

Wysyłanie komunikatu e-mail realizowane jest po wykryciu odpowiednio dużej liczby klatek z ruchem. Zadaniem użytkownika jest tylko i wyłącznie podanie adresu poczty. Na rysunku nr 22 przedstawiono działanie tej usługi. Rys. 22 Wysyłanie wiadomości e-mail informującej o wykrytym ruchu Wykorzystując aplikację cam4net działającą w oparciu technologię P2P, umożliwiamy upload obrazów na stronę internetową. Przykładowy widok sceny z poziomu przeglądarki przedstawiono na rysunku nr 23. Rys. 23 Zdalne śledzenie prowadzone ze strony http://jaco-skiba.w.interia.pl/projekty/projekty.html 25

Archiwizacja zdjęć realizowana jest z wykorzystaniem programu Home Ftp Server. Użytkownik po podaniu adresu serwera FTP otrzymuje na swoje konto zdjęcia z wykrytym ruchem. Przykładowy przebieg sesji programu przedstawiono na rysunku nr 24. Rys. 24 Dostęp do archiwum detekcji wykorzystując serwer FTP 26