PO/X. 1. Smartphone jako uniwersalny kontroler (myszka/gamepad/pistolet/3d)



Podobne dokumenty
1.Instalacja. Przechodzimy przez kolejne okna instalatora klikacjąć Dalej. wolek.zallegro.pl

Klawiatura komputerowa.

PLAN WYNIKOWY KLASA 1

Wymagania edukacyjne - Informatyka w klasie I

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

Sekretne menu Start. Przycisk pulpitu

Oprogramowanie powiększające obraz na ekranie, zmniejszające zmęczenie wzroku. Podręcznik Szybkiego Startu

Opis klawiatury komputerowej

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Platforma szkoleniowa krok po kroku. Poradnik Kursanta

Platforma szkoleniowa krok po kroku

Gamepad VR z funkcją Bluetooth

Oto istotne informacje o skrótach klawiszowych ZoomText:

Dlaczego stosujemy edytory tekstu?

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Klawiatura. Klawisze specjalne. Klawisze specjalne. klawisze funkcyjne. Klawisze. klawisze numeryczne. sterowania kursorem. klawisze alfanumeryczne

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE...

Instrukcja podłączenia i konfiguracji BLUETOOTH NX. Interfejs. (instrukcja dostępna także na ver

Formularz pierwszej oceny w służbie cywilnej

Edytor tekstu MS Office Word

Następnie uruchom b-link z Menu Start lub ponownie uruchom komputer.

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Usuwanie ustawień sieci eduroam

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Rozdział II. Praca z systemem operacyjnym

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Microsoft Windows 98

ROZDZIAŁ 1. PRZEGLĄD APLIKACJI SAFE...

2017 Electronics For Imaging, Inc. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym

PRZEWODNIK PO PLATFORMIE SZKOLENIOWEJ

New Features in Allplan Allplan Nowy system licencjonowania w Allplan

EasyLink. Instrukcja obsługi. Sterownik klawiatury brajlowskiej pod Windows wersja 1.2. Poznań, Sierpień 2009 r.

Dell UltraSharp UP3017 Dell Display Manager Instrukcja użytkownika

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Rozpoczęcie pracy z programem.

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

INSTRUKCJA INSTALACJI I PIERWSZEGO URUCHOMIENIA APLIKACJI Rodzajowa Ewidencja Wydatków plus Zamówienia i Umowy

Rozdział 1. Przegląd bramofonu SAFE

Program Dokumenty zbiorcze dla Subiekta GT.

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Synchronizator plików (SSC) - dokumentacja

Skrócona instrukcja konfiguracji połączeń sieciowych

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

Komputery I (2) Panel sterowania:

PANEL GŁÓWNY. (zawsze widoczny w dolnej części okna) Symuluje wciśnięcie klawisza ENTER (przechodzi do nowego wiersza) Przechodzi do panelu "Alfabet".

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

URLOPY BY CTI. Instrukcja obsługi

9 Zakup [ Zakup ] Zakup

CONDICO Trade v

Formularz oceny okresowej arkusz B w służbie cywilnej Instrukcja użytkownika

Przełącznik KVM USB. Przełącznik KVM USB z obsługą sygnału audio i 2 portami. Przełącznik KVM USB z obsługą sygnału audio i 4 portami

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Przewodnik po Notowaniach Statica mdm 4

Instrukcja instalacji i obsługi systemu AR4vision (wersja 1.0.0)

Aplikacja VISO Mobile (Android) Instrukcja instalacji i obsługi

Sposoby zdalnego sterowania pulpitem

Przeglądanie, drukowanie i eksportowanie raportów.

Instrukcja do programu myshowup

Spis treści 1. Wstęp Logowanie Główny interfejs aplikacji Ogólny opis interfejsu Poruszanie się po mapie...

Skróty klawiaturowe w systemie Windows 10

Aplikacja npodpis do obsługi certyfikatu

Programy LeftHand - Obsługa plików JPK. Wrzesień 2016

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

Siewierz wirtualny przewodnik: instrukcja obsługi programu.

Systemy operacyjne I Laboratorium Część 3: Windows XP

Pakiet informacyjny dla nowych użytkowników usługi Multimedia Internet świadczonej przez Multimedia Polska S.A. z siedzibą w Gdyni

1. Wstęp Niniejszy dokument jest instrukcją użytkownika dla aplikacji internetowej DM TrackMan.

Przewodnik dla klienta

Odczyty 2.0 Spis treści

Wstęp do instalacji oprogramowania CAD Projekt w systemach operacyjnych Windows Vista, Windows 7, Windows 8

Instrukcja użytkowa programu INTERNET LAB-BIT

Program dla praktyki lekarskiej

1 Raporty - wstęp. 1. Wstążka. 2. Podgląd listy raportów wraz z menu kontekstowym:

Skrócona instrukcja obsługi rejestratorów marki

Praca z widokami i nawigacja w pokazie

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Pomoc systemu poczty elektronicznej Wydziału Humanistycznego Uniwersytetu Szczecińskiego. Wersja: 1.12

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Instrukcja podłączenia i konfiguracji

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Zmiana ustawień puli aplikacji na wersję architektury.net Framework 4.0 dla witryny sieci web na której zainstalowany jest system Mistral

Rozdział 1. Zagadnienia podstawowe

Podstawy technologii cyfrowej i komputerów

Klawiatura - klávesnice. Funkcja i znaczenie klawiatury Pisanie czeskich liter i słów

Instrukcja obsługi programu MPJ6

Skrócona instrukcja obsługi programu Cisco ViewMail for Microsoft Outlook (wersja 8.5 i nowsze)

Aplikacja npodpis do obsługi certyfikatu

Aktualizacja modemu LTE Speed 1000

Transkrypt:

Kraków, 2012 PO/X. 1. Smartphone jako uniwersalny kontroler (myszka/gamepad/pistolet/3d) opiekun projektu: mgr inż. Patryk Orzechowski Skład grupy: Daniel Jagielski Tomasz Kmiecik Marcin Marzyński

Cel projektu Naszym zadaniem było stworzenie oprogramowania, dzięki któremu komórka z systemem Android staje się uniwersalnym, bezprzewodowym( dzięki technologii WI-FI) kontrolerem do komputera/laptopa. Pod nazwą uniwersalny kontroler kryją się takie urządzenia jak: myszka, klawiatura, pad do gier, pistolet 3d, a także pilot. Pistolet 3d ma symulować działanie prawdziwego pistoletu i zapewniać w ten sposób nowe doznania płynące z rozgrywki elektronicznej. Pilot natomiast ma ułatwiać posługiwanie się programami użytkowymi oraz oglądanie filmów na ekranie komputera (nie wyklucza się też użycia go w grach). Technologie Projekt wykonany został przy użyciu technologii Javowych. Serwer bazuje na JavieSE i wykorzystuje sockety do komunikacji. Aplikacja na telefon przeznaczona jest dla systemu Android i również za pomocą socketów łączy się z serwerem (preferowane wifi ze względu na szybkość transmisji). Dysponowaliśmy urządzeniami z systemem Android 2.1 dlatego zakładaliśmy uruchamianie aplikacji właśnie na tej wersji platformy (lub nowszej). Narzędzia W stworzeniu projektu pomocne były następujące narzędzia: Eclipse IDE z wtyczką ADT zainstalowane Android SDK oraz JavaSDK TortoiseSVN Te narzędzia posłużyły nam do stworzenia kodu, kompilowania, synchronizacji oraz przesyłu na urządzenie oraz debuggowania bezpośrednio na komórce z Androidem. Wymagania Klient: Urządzenie działające na systemie operacyjnym Android Serwer: Urządzenie działające na systemie operacyjnym Android Windows/Linux JRE Serwer musi być widoczny w sieci tzn. musi mieć publiczne IP lub musi być w tej samej sieci co klient

Opis komunikacji Pomiędzy urządzeniami przesyłane są pakiety zawierające następujące informacje: Type (int) Content (int) Parameters (LinkedList) Dostępne typy wiadomości są następujące: T_FAIL - wysyłana w razie niepowodzenia zidentyfikowania urządzenia przez serwer T_HELLO wysyłana na początku komunikacji przez klienta T_ACCEPT - wysyłana przez serwer, gdy przyjął połączenie od klienta T_IDENTIFY identyfikacja typu urządzenia klienta (pilot, gamepad, pistolet) T_READY wysyłana gdy serwer jest gotowy do odbierania wiadomości T_EVENT polecenie wykonania akcji przysłane od klienta T_BYE klient wysyła tą wiadomość gdy kończy połączenie Dostępne typy urządzeń to: DEV_KEYBOARD DEV_MOUSE DEV_GAMEPAD DEV_PISTOL Poniższy diagram przedstawia schemat komunikacji pomiędzy serwerem i klientem:

Mapowanie Serwer trzyma hashmapę mapującą przysyłane eventy na rzeczywiste akcje. Do implementacji akcji stworzyliśmy uniwersalny interfejs ExecutionHelper, który pozwala na mapowanie podanych eventów na akcję wykonywane przez javową klasę Robot. Takie podejście pozwala na wykonywanie akcji typowych dla klawiatury i myszki. Dostępne są następujące ExecutionHelpery: KeyPressExHelper - naciska i trzyma podany klawisz. W konstruktorze podawany klawisz. PARAMS=[] KeyReleaseExHelper - zwalnia podany klawisz. W konstruktorze podawany klawisz. PARAMS=[] MouseMoveExHelper - zaczyna ruszać mysz z podaną prędkością. W konstruktorze podana oś w której przesuwa. PARAMS = [int speed], speed wyrażony jako ilość procent długości lub szerokości ekranu (odpowiednio dla osi Y lub osi X) MousePointExHelper - przesuwa kursor na podane współrzędne. W konstruktorze podana rozdzielczość Width x Height. PARAMS = [float x% float y%] gdzie x i y to odległość od środka ekranu do odpowiedniej krawędzi. Jeśli x lub y >=0 to bierzemy odpowiednio prawą lub dolną krawędź, w przeciwnym wypadku lewą lub górną MousePointMoveExHelper - cały czas przesuwa kursor na podane współrzędne. W konstruktorze podana rozdzielczość Width x Height. PARAMS = [float x% float y%] gdzie x i y to odległość od środka ekranu do odpowiedniej krawędzi. Jeśli x lub y >=0 to bierzemy odpowiednio prawą lub dolną krawędź, w przeciwnym wypadku lewą lub górną MouseReleaseExHelper - zwalnia podany przycisk. W konstruktorze podany przycisk PARAMS = [] MousePressExHelper - naciska i trzyma podany przycisk. W konstruktorze podawany klawisz. PARAMS=[] NbuttonPressExHelper - naciska podany przycisk. PARAMS=[static int] NbuttonReleaseExHelper - zwalnia podany przycisk. PARAMS = [static int] KeyHoldExHelper - naciska i trzyma przyciski podane w konstruktorze.. PARAMS = [] KeyReleaseHoldExHelper - zwalnia trzymanie przycisków podanych jako parametry konstruktora.. PARAMS = []

Przy implementacji powyższych klas wsparliśmy się pomocniczą klasą ContinuousEventRobot, która umożliwia na przytrzymanie klawiszy, bądź kontynuowanie akcji. Możliwe typy zdarzeń przesyłanych przez klienta są następujące: EVENT_STICK1_DOWN EVENT_STICK1_LEFT EVENT_STICK1_RIGHT EVENT_STICK1_UR EVENT_STICK1_UL EVENT_STICK1_DL EVENT_STICK1_DR EVENT_STICK1_CENTER EVENT_STICK2_UP EVENT_STICK2_DOWN EVENT_STICK2_LEFT EVENT_STICK2_RIGHT EVENT_STICK2_UR EVENT_STICK2_UL EVENT_STICK2_DL EVENT_STICK2_DR EVENT_STICK2_CENTER EVENT_BTN1_PRESS EVENT_BTN1_DOWN EVENT_BTN1_RELEASE EVENT_BTN2_PRESS EVENT_BTN2_DOWN EVENT_BTN2_RELEASE EVENT_BTN3_PRESS EVENT_BTN3_DOWN EVENT_BTN3_RELEASE EVENT_BTN4_PRESS EVENT_BTN4_DOWN EVENT_BTN4_RELEASE EVENT_BTN5_PRESS EVENT_BTN5_DOWN EVENT_BTN5_RELEASE EVENT_BTN6_PRESS

EVENT_BTN6_DOWN EVENT_BTN6_RELEASE EVENT_BTN7_PRESS EVENT_BTN7_DOWN EVENT_BTN7_RELEASE EVENT_MOVE_UP_START EVENT_MOVE_DOWN_START EVENT_MOVE_LEFT_START EVENT_MOVE_RIGHT_START EVENT_MOVE_X_STOP EVENT_MOVE_Y_STOP EVENT_SET_X EVENT_SET_Y EVENT_TWIST_RIGHT EVENT_TWIST_LEFT EVENT_SET_POINT Instrukcja obsługi klienta Główne okno aplikacji pozwala wybrać kontroler który chcemy używać. Pod przyciskiem menu mamy dostęp do konfiguracji ustawień wifi.

Okno konfiguracji połączenia. Podajemy IP serwera (serwer musi mieć publiczne IP lub musi być w tej samej sieci lokalnej co klient). Okno to wyskakuje automatycznie przy pierwszym uruchomieniu. Okno nawiązywania połączenia. Połączenie nawiązywane jest gdy uruchamiamy konkretny kontroler.

Widok pistoletu. Pistolet wykorzystuje cztery przyciski oraz ruch. Na początku należy go skalibrować. Kalibracji dokonujemy w następujący sposób: 1. Celujemy w środek ekranu i naciskamy Button1 2. Celujemy w prawą krawędź ekranu (lepiej trochę za nią) i naciskamy Button1 3. Celujemy w lewą krawędź ekranu (lepiej trochę za nią) i naciskamy Button1 4. Celujemy w górną krawędź ekranu (lepiej trochę za nią) i naciskamy Button1 5. Celujemy w dolną krawędź ekranu (lepiej trochę za nią) i naciskamy Button1 6. Przycisk powinien zmienić etykietę. Pistolet jest gotowy do użycia. Aby go aktywować celujemy w środek ekranu i naciskamy Button1 Gamepad posiada dwa przyciski zwykłe (małe) oraz dwie manetki (duże) obsługiwane jak w zwykłym gamepadzie przez przesuwanie na bok. Również przyciski głośności służą jako klawisze, głośność w dół to Button3 a pogłośnienie to Button4.

W menu gamepada znajduje się opcja pozwalająca obrócić wyświetlanie gamepada. Przydatne gdy przyciski regulacji głośności znajdują się po drugiej stronie obudowy. Widok myszy i klawiatury. Tak jak w innych modułach, przy inicjalizacji kontrolera myszy i klawiatury ustanawiane jest połączenie z serwerem. Jeśli połączenie powiodło się, włączany jest akcelerometr, którego odczyty z osi X oraz Y telefonu służą do poruszania wskaźnika myszy. Najwygodniej i najprecyzyjniej steruje się telefonem obracając go, zamiast przemieszczania. Wynika to ze specyfiki wartości zwracanych przez akcelerometr. Wartości te są w zależności od wychylenia odpowiednio skalowane i przekształcane na prędkość wskaźnika w danej osi. Prędkość można regulować poprzez suwak na ekranie.

Oprócz konfiguracji prędkości mamy, podobnie jak w niektórych grach komputerowych, możliwość odwrócenia orientacji osi Y, ze względu na różne preferencje użytkowników. Dodatkowo do obsługi na ekranie mamy przyciski takie jak Pokaż klawiaturę - wywołuje systemową klawiaturę systemu Android. Wpisane przez nas znaki będą przesyłane do serwera na komputerze. Oprócz tego mamy możliwość używania najpopularniejszych klawiszy z klawiatury komputera, a mianowicie: Escape, Caps Lock, Delete, Page Up, Page Down,Control, Alt, Shift, strzałki - wszystkie kierunki, oraz Enter. Backspace jest wbudowany w klawiaturę. Są tam 2 rodzaje przycisków: zwykły, oraz przycisk stanowy, który imituje ciągłe naciskanie danego klawisza. Np. chcąć przetrzymać Control, klikamy na niego, następnie wykonujemy żadaną ekcję, i po skończeniu naszej akcji zwalniamy przycisk, również klikając na niego. Dwa duże pola na środku ekranu oznaczają odpowiednio lewy i prawy przycisk myszy.

Linki Przy tworzeniu projektu bardzo pomocnymi okazały się oficjalne dokumentacje Androida - http://developer.android.com oraz Javy http://docs.oracle.com/javase/6/docs/. Często też swoje problemy rozwiązywaliśmy czytając forum http://stackoverflow.com/