Temat 13. Czujniki Dlaczego Twój Smartfon jest taki smart? Wymagana wiedza wstępna: 1) Student musi 1) Umieć stworzyć projekt aplikacji konsolowej w XCode z wykorzystaniem Objective-C 2) Umieć skompilować i uruchomić program w XCode 3) Skorzystać z podstawowych klas i funkcji Objective-C 4) Nauczyć się zasad wywoływania metod w Objective-C 5) Znać pojecie wskaźnika 6) Umieć tworzyć hierarchę klas w Objective-C 7) Umieć wykorzystywać późne wywołanie metod w Objective-C 8) Umieć korzystać z kolekcji 9) Umieć tworzyć własne inicjalizatory 10) Tworzyć referencje do obiektów znajdujących się na widoku 11) Obsługiwać domyślne interakcje z obiektami za pomocą własnych metod 12) Znać zasady korzystania z @property i @synthesize 13) Rozumieć ideę MVC - model - view - controller 14) Rozumieć ideę delegata dla widoku (kontrolera) 15) Umieć korzystać z dodatkowych Frameworków 2) Student powinien 1) Znać jezyk Java lub C# lub C++ Cel dydaktyczny 1) Student musi 1) Umieć korzystać z narzędzi detekcji ruchu IOS 2) Umieć sprawdzić, czy dane narzędzie jest dostępne w konkretnym modelu urządzenia 3) Umieć korzystać z innych dostępnych czujników. Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 1/5
Zakres tematyczny wykładu i laboratorium Niniejsze zajęcia skupią się na zasadach i sposobach korzystania z czujników dostępnych w systemie IOS. Wiele urządzeń posiada różnego rodzaju czujniki, pozwalające na większą świadomość otoczenia, w jakim znajduje się urządzenie. Kolejne modele posiadają tych czujników coraz więcej. Rodzaje sensorów (Accelerometr, Żyroskop, Magnetometr, Czujnik zbliżeniowy, Czujnik oświetlenia) Dostępność Czujnika zbliżeniowego Działanie i API Czujnika zbliżeniowego Użycie domyślne, przykłady zastosowania Dostępność czujnika światła Działanie i API czujnika światła Core Motion Framework o Zasady przetwarzania danych dotyczących położenia urządzenia o Użycie danych dotyczących położenia o Przegląd klas z Core Motion Framework o Zasada działania akcelerometru o Użycie akcelerometru o Akcelerometr dwa sposoby korzystania z danych akcelerometru Zdarzenie akceleracji i wykorzystanie UIAccelerometer Wykorzystanie CoreMotion i CMAccelerometerData o Zasady filtrowania zmian położenia Filtry High-pass, Low-pass o Położenie CMAttitude o Zasada działania Żyroskopu o Użycie żyroskopu z wykorzystaniem CoreMotion i CMGyroData o Zasada działania Magnetometru o Użycie magnetometru z wykorzystaniem CoreMotion i CMMagneticField I CMMagnetometerData Załączniki wyklad_13.pdf slajdy z wyklądu grafika.zip pliki graficzne potrzebne do realizacji zadań laboratorium Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 2/5
Zadania na laboratorium Zadanie ogólne polega na stworzeniu aplikacji pełniącej rolę poziomicy i kompasu. Zadanie 1 Stwórz aplikację korzystającą z Pojedynczego widoku. Stwórz klasę PoziomIMView, dziedziczącą z UIImageView (w inicjalizatorze wykorzystaj obraz kulka.png. Obiekt tej klasy ustaw jako delegata, obsługującego zdarzenia dotyczące zmianę położenia urządzenia. Na podstawie tych zmian ustalaj położenie obiektu klasy PoziomIMView na ekranie. Do widoku dodaj obiekt PoziomIMView, przykryj go drugim obiektem imageview, zawierającym przezroczysty rysunek fiolki. Podpowiedzi 1) Wykorzystaj framework CoreMotion Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 3/5
motionmanager = [[CMMotionManager alloc] init]; motionmanager.accelerometerupdateinterval = 0.01; 2) Odczytów dokonuj w stałych interwałach czasu. Metoda hadlera ma znajdować się w klasie kulki, i uaktualniać jej pozycję startaccelerometerupdatestoqueue:withhandler: 3) Jeżeli wystarczająco często będzie realizowane uaktualnienie parametrów, to nie musisz korzystać z animacji. Wystarczy samo uaktualnienie pozycji. Przetestuj, z jaką częstotliwością możesz uaktualniać tą informację. Zadanie 2 Zmodyfikuj klasę PoziomIMView dodając do tego widoku jeszcze jeden podwidok KierunekIMView. Obiekt ten ustaw jako delegata obsługi danych magnetometru, tak aby jaśniejsza strona wskazówki zawsze wskazywała północ. Podpoowiedzi Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 4/5
1) Wykorzystaj wiedzę z poprzednich zajęć, aby wykonać obrót wskazówki 2) Zastosuj rozwiązanie z wykorzystaniem CMMotionManager Zadanie 3 Wykorzystując wiedzę z poprzednich zajęć, zmodyfikują aplikację tak, aby do rysowania obiektów używała CoreGraphics Zadanie 4 * Wykorzystując dane z żyroskopu dodaj lekkie transformacje 3d obrazu, wizualizujące pochylanie urządzenia. Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 5/5