POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Przemysław Ogorzałek nr albumu: 218847 PRACA DYPLOMOWA MAGISTERSKA Projekt zabawki edukacyjnej dla dziecka Praca wykonana pod kierunkiem dr inż. Wiktor Dzaszczuk Warszawa, 27 stycznia 2013
Streszczenie Tytuł pracy Treść streszczenia Abstract Treść streszczenia po angielsku Tytuł po angielsku
Imi e i nazwisko: Przemysław Ogorzałek Specjalnos c : Inz ynieria Systemów Informacyjnych Data urodzenia: 1 czerwca 1989 Data rozpocz ecia studiów: 1 paz dziernika 2008 Z YCIORYS Z yciorys
Spis treści 1 Wstęp 4 1.1 Cel pracy..................................... 4 1.2 Założenia pracy.................................. 4 2 Koncepcja rozwiazania 5 2.1 Opis zabawy.................................... 5 2.2 Opis funkcjonalny................................. 5 2.3 Komponenty.................................... 6 3 Projekt 7 3.1 Komunikacja bezprzewodowa.......................... 7 3.1.1 Analiza wymagań............................. 7 3.1.2 Dostępne rozwiązania.......................... 7 3.1.3 Uzasadnienie decyzji........................... 7 3.2 Kontroler bomby................................. 7 3.2.1 Analiza wymagań............................. 7 3.2.2 Dostępne rozwiązania.......................... 7 3.2.3 Uzasadnienie decyzji........................... 7 4 Realizacja 8 4.1 Aplikacja..................................... 8 4.2 Bomba....................................... 8 5 Możliwości rozwoju 9 6 Podsumowanie i wnioski 10 3
1 Wstęp 1.1 Cel pracy 1.2 Założenia pracy 4
2 Koncepcja rozwiazania 2.1 Opis zabawy Zabawa polega na rozbrojeniu bomby. 2.2 Opis funkcjonalny Zabawka składa się z dwóch modułów komunikujących się bezprzewodowo: 1. Aplikacji 2. Bomby Zadaniem aplikacji jest kontrola nad całością zabawy i komunikacja z użytkownikiem za pomocą obrazu i tekstu. W zależności od decyzji użytkownika inicjuje nową grę lub wyświetla instrukcję obsługi. W przypadku rozpoczęcia nowej gry podejmuje próbę nawiązania łączności z kontrolerem bomby. Jeśli się to nie uda, wyświetla komunikat o błędzie i wraca do stanu początkowego. W przeciwnym przypadku kontroler otrzymuje dane o stanie początkowym portów. Dzięki temu jest w stanie poprawnie ustawić kierunek odpowiednich portów na wejście lub wyjście i zweryfikować poprawność połączenia komponentów. Następnie aplikacja wyświetla użytkownikowi schemat układu i oczekuje na sygnał gotowości z kontrolera bomby. W razie potrzeby użytkownik może zażądać wyświetlenia dodatkowych szczegółów na temat danego elementu konstrukcji. Gdy bomba będzie gotowa, aplikacja przechodzi w tryb zagadek. Na podstawie konfiguracji powiązanej z danym schematem wybierana jest zagadka, której odpowiedź stanowi klucz do kolejnego kroku na drodze do rozbrojenia bomby. Równolegle co pewien czas odbierane są komunikaty z kontrolera bomby na temat aktualnego stanu portów. Jeśli stan portów uległ zmianie aplikacja sprawdza, czy otrzymany stan portów wejściowych jest zgodny z oczekiwanym. Jeśli nie, do kontrolera bomby zostaje przesłana odpowiednia informacja, a na ekranie zostaje wyświetlony komunikat o porażce. W przeciwnym wypadku sprawdzane jest, czy do wykonania pozostały dalsze kroki. Jeśli tak, użytkownik otrzymuje nową zagadkę. Jeśli nie, kontroler bomby otrzymuje informację o sukcesie, a na ekranie wyświetlony zostaje komunikat o zwycięstwie. Po zakończeniu gry aplikacja powraca do stanu początkowego. 5
Kontroler bomby jest układem scalonym wyposażonym w moduł komunikacji bezprzewodowej połączonym przez porty GPIO z zestawem elementów elektronicznych stanowiących bombę. Zadaniem kontrolera jest badanie monitorowanie stanu podłączonych do niego elementów w celu określenia działań użytkownika i raportowanie wyników pomiarów do aplikacji, która ocenia ich poprawność. Początkowo kontroler uruchamia moduł komunikacji bezprzewodowej i oczekuje na połączenie z aplikacją. Gdy uda się je nawiązać, otrzymuje informacje o początkowym stanie portów. Każdy z portów opisany jest numerem, kierunkiem 1, trybem 2 i wartością początkową. Następnie czeka, aż użytkownik złoży bombę zgodnie z wyświetlonym przez aplikację schematem. Gdy kontroler otrzyma od użytkownika sygnał gotowości sprawdza, czy stan portów wejściowych jest zgodny z wartościami odebranymi od aplikacji. Wysyła wówczas informację o gotowości i inicjuje odliczanie czasu, co jest równoznaczne z rozpoczęciem gry. W trakcie zabawy kontroler co pewien czas skanuje swoje porty i wysyła ich listę wraz z wartościami do aplikacji. W odpowiedzi może odebrać jeden z czterech sygnałów: 1. ACK - oznaczający, że nic się nie zmieniło 2. Continue - oznaczający, że zaszła spodziewana zmiana, może zawierać informację o konieczności zmiany wartości na portach wyjściowych 3. Failure - oznaczający, że zaszła niespodziewana zmiana i użytkownik przegrał 4. Success - oznaczający, ze bomba jest rozbrojona. Jeśli odebrany sygnał pozwala kontynuować zabawę, kontroler aktualizuje wartość licznika pozostałego czasu i czeka aż upłynie czas do kolejnego skanu. W przeciwnym razie informuje użytkownika o sukcesie lub porażce i wraca do stanu początkowego. 2.3 Komponenty 1 INPUT, OUTPUT, BIDIRECTIONAL 2 ANALOG, DIGITAL 6
3 Projekt 3.1 Komunikacja bezprzewodowa 3.1.1 Analiza wymagań 3.1.2 Dostępne rozwiazania WLAN Bluetooth ZigBee GPRS/UMTS/LTE 3.1.3 Uzasadnienie decyzji 3.2 Kontroler bomby 3.2.1 Analiza wymagań 3.2.2 Dostępne rozwiazania Arduino FPGA Raspberry Pi Sierra Wireless 3.2.3 Uzasadnienie decyzji 7
4 Realizacja 4.1 Aplikacja 4.2 Bomba 8
5 Możliwości rozwoju 9
6 Podsumowanie i wnioski 10