ANDROID 기반의 usb 통신을 이용한 smART PHONE MOUSE

Similar documents
서현수

intro

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

NX1000_Ver1.1

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A


AL181N,ÇѱÛ,Ù+An+pip[D¿ë


백서2011표지

SBR-100S User Manual

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PCServerMgmt7

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

강연자소개 대외활동 동호회설립및운영자 (2004 년 12 월설립 ) 운영진 고현철, 김재훈, 유형목, 와함께국내에몇개남지않은임베디드리눅스를전문으로하는 community. 현재가입자수약만 4 천여명

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

4S 1차년도 평가 발표자료

MVVM 패턴의 이해

OCW_C언어 기초

e-spider_제품표준제안서_160516

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft PowerPoint - chap01-C언어개요.pptx

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Ver. DS-2012.T3.DWS.STR-1.0 System Test Report for Digital Watch System Test Cases Specification Test Summary Report Project Team 이동아 Latest update on

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)


chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._



전반부-pdf

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

fsb9¿ù³»ÁöÃÖÁ¾Ãâ

¾ç¼º-¾÷¹«Æí¶÷-³»¿ëÃà¼Ò4

전도대회자료집


< DBAB4B9ABC3BB5FBAB9B9ABB0FCB8AEB8C5B4BABEF32D33B1C72E706466>

<3344C7C1B8B0C6C320BFE4BEE02D E706466>

µ¶ÀÏÅëÀÏÁý1~2Æíq36£02Ð


자식농사웹완

표1.4출력

003-p.ps

중앙도서관소식지겨울내지33

표1~4

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

모바일 안드로이드 아키텍처

*?꾩옄怨쇳븰7???댁??몄쭛)理쒖쥌

Frequently Asked Question 버전 변경 날짜 변경 내용 v /07/22 최초 작성

오토10. 8/9월호 내지8/5

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

THE TITLE

08년csr3호

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

ICT À¶ÇÕÃÖÁ¾

1

목 차 1. 서론ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 1 가. 시나리오ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 1 나. 아이디어ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 1 2. 관련연구ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

Microsoft Word - Lab.7

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>


Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

161117_EX Phone stick_manual

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

게시판 스팸 실시간 차단 시스템

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Mango220 Android How to compile and Transfer image to Target

패션 전문가 293명 대상 앙케트+전문기자단 선정 Fashionbiz CEO Managing Director Creative Director Independent Designer

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

Galaxy S 사용의 필수 지침서 SMART Basic 10 Contents Basic 1. 처음 사용하기 006 단말기 기본 사용하기 1 내부 구성품 살펴보기 2 배터리 교체하기 3 버튼별 기능 살펴보기 4 터치/드래그 사용하기 5 보안 설정/해제하기 025 전화

Transcription:

Konkuk University, Computer Science & Engineering Android 기반의 USB 통신을이용한 Smart Phone Mouse ANDROID 기반의 USB 통신을 이용한 SMART PHONE MOUSE PROJECT INTERIM REPORT. Jin, Hyun-wook Professor System Software Lab, Konkuk Univesity Lim, Min-woo (200910793) Park, Mi-Gwan(200911388) Lee, Young-jun (200911412)

목차 (CONTENTS) 내용 개요 (Introduction) 1 프로젝트환경 (Project Environment) 2 요구사항 (Requirement) 3 개발방법 (Development Process) 4 진행상황 (Progress) 10 개발일정 (Development Schedule) 11 참고문헌 (References) 12

개요 (INTRODUCTION) 개요 (Introduction) 개발배경 노트북터치패드사용이불편한사람들은따로마우스를구매하여소지하고다녀야한다. 이런불편함을해소하기위해대부분의사람들이들고다니는스마트폰의센서를이용하여마우스로구현한다. 개발목적 노트북의터치패드사용에한계를느끼는사용자는마우스를별도로구매하여야하며, 이동시에항상노트북과함께마우스를들고다녀야한다. 대부분의사람들이항상소지하고다니는스마트폰이마우스로사용될수있다면, 이와같은불편함을해소시켜줄것이다. 기존의스마트폰마우스서비스는노트북터치패드사용방식의불편함을해소하는것이아닌, 스마트폰의무선통신을이용한노트북원거리제어에초점이맞춰져있다. 또한모두추가적인어플리케이션의설치를요구한다. 본프로젝트는어플리케이션설치가아닌 Kernel과 Framework에새로운메커니즘을추가함으로서안드로이드스마트폰의기본탑재기능과같이동작하도록하며, 터치패드가아닌실제마우스와같은사용방식을제공한다. 그리고기존의 USB 케이블연결을통한 USB 통신을사용함으로서데이터통신이되지않는환경에서도작동한다. < 그림 > 별도의마우산 App 이필요없는스마트폰의기본기능 1

프로젝트환경 (PROJECT ENVIRONMENT) 프로젝트환경 (Project Environment) 대상환경 (TARGET ENVIRONMENT) Windows 7 Professional 32bit Android 4.4.2 KitKat (Nexus 5) Linux Kernel 3.4.0 < 그림 > Android 시스템구조 개발환경 (HOST ENVIRONMENT) Windows 7 Professional 32bit Android 4.4.2 KitKat (Nexus 5) Linux Kernel 3.4.0 Visual Studio Professional 2013 Vi(m) Editor ADT 22.3.0 WDK 8.1 2

요구사항 (REQUIREMENT) 요구사항 (Requirement) 기술적요구사항 (FUNCTIONAL REQUIREMENTS) 1. Windows Device Driver 를개발하여스마트폰연결시자동실행한다. 2. Windows 와 Android 간의통신은 USB 통신을한다. 3. Android Kernel 에마우스통신을위한별도의파이프를생성한다. 4. 스마트폰에서마우스기능을 On/Off 할수있다. 5. 스마트폰화면이꺼져도마우스기능이켜져있으면마우스가동작한다. 비기술적요구사항 (NON-FUNCTIONAL REQUIREMENTS) 1. 사용자는어떠한안드로이드어플리케이션을설치하지않는다. 2. 사용자는어떠한윈도우어플리케이션을설치하지않는다. 3. 스마트폰사용에는어떠한영향도미치지않는다. 3

개발방법 (DEVELOPMENT PROCESS) 개발방법 (Development Process) 개발은크게 Windows 와 Android 로나누어서진행한다. Windows 에서는 Device Driver 를만들어스마트폰연결시마우스기능이자동실행되게한다. Android 는가속도와자이로스코프센서를이용하여마우스값을축출및필터링하고, USB 파이프를이용하여 Windows 로마우스값을전송한다. 시스템구성도 < 그림 > 시스템구성도 4

개발방법 (DEVELOPMENT PROCESS) 마우스동작구현 센서값축출대부분의스마트폰에기본적으로탑재되어있는자이로스코프센서와가속도센서그리고터치패널을이용해서마우스의동작을구현한다. 자이로스코프센서와가속도센서를이용해서는마우스포인터의움직임을구현하며터치패널을이용해서좌우버튼과휠의동작을구현한다. < 그림 > 안드로이드스마트폰에서발생하는각종센서값의흐름 안드로이드스마트폰의모든센서장치들은최하단리눅스커널에서관리되며, 디바이스들로부터발생되는값들은최상단사용자어플리케이션계층까지한단계씩상승한다. 본프로젝트에서는사용자입장에서의기존스마트폰사용성에어떠한영향도없이, 그리고사용자의어떠한부가적인어플리케이션설치요구도없이마우스기능이동작하는것을목표로한다. 그러므로마우스동작에필요한센서값들은최하단계층에서바로추출하는것을기본으로하며, 각종보호기법으로인하여해당계층에서추출이불가능한상황이발생하면한계층씩올라가며추출한다. 센서값필터링가속도와자이로스코프와같은센서를사용할때, 단순히전달된센서값을그대로사용할경우급격한변화에의해마우스포인터의움직임이불안정할수있다는것이다. 이같은경우변화를완충하기위해데이터에저역통과필터 (Low-Pass Filter:LPF) 를적용한다. 저역통과필터를사용할때에는결과데이터를추출하기위해사용되는알파값이필요한데이것은아래와같은연산결과로산출된다. 5

개발방법 (DEVELOPMENT PROCESS) Alpha = t / (t + dt) t : 저속통과필터의시정수 dt : 이벤트전송율혹은이벤트전송속도여기서시정수란센서가가속도의 63% 를인지하는데걸리는시간을말한다. 위와같은알파값은 0.8로산출되며알파에직전센서값을곱하고, (1 - Alpha) 에현재센서값을곱하여더해주면필터링된움직임값을얻을수있다. < 그림 > 센서의좌표체계 자이로스코프센서는 x, y, z 축의변화를추적하여안드로이드스마트폰의회전률을정확하게알아낼수있다. 그리고가속도센서는특정지점에서특정지점으로이동하는벡터형태를인지할수있지만, 곡선이나트위스트형태의움직임은인지할수없다. 정리해보자면가속도센서는직선방향의움직임을, 자이로스코프센서는곡선 ( 회전 ) 을인식할수있다. 그러므로두센서를적절하게섞어서사용할경우회전을인지하지못하는실제광센서마우스보다더나은동작을구현할수있다. 센서값가공가속도센서는사물의움직임을측정하는데이움직임을이용하여다른성질을가지는데이터로가공할수있기때문에여러방법으로연산을하여사용하곤한다. 본프로젝트에서와같이순수한움직임만을측정하는경우에는중력의영향을받고있는축의데이터에서 9.81을빼주어야하고, 가속도를측정하려면 2개이상의데이터를모아서연산을해주어야한다. 실제마우스포인터의움직임은가속도가반영되어같은거리로마우스를움직이더라도느리게움직일때와빠르게움직일때마우스포인터의이동거리는다르다. 이와같은부분은반복적으로테스트하며가공알고리즘을작성하여실제마우스와동일한움직임을보이도록한다. 이와같은특징은휠의움직임에서도동일하게적용된다. 휠의회전량과회전속도를함께고려하여실제 6

개발방법 (DEVELOPMENT PROCESS) 마우스와동일한움직임을보이도록한다. < 그림 > 터치패널의분할 사용자는터치패널을실제마우스를사용할때와같은느낌으로사용한다. 여러사용자들의사용습관을테스트하여적절한좌우버튼및휠그리고비사용범위를지정한다. 위와같은과정을거쳐, PC-스마트폰통신모듈에게실제마우스와같이좌우버튼의눌림여부, 휠의움직임그리고마우스포인터의움직임에대한완전히가공된값을미리정해진규약에맞게제공한다. 마우스 ON/OFF 기능 안드로이드토글버튼안드로이드스마트폰사용자는본프로젝트로인해스마트폰에기본으로탑재된듯한마우스기능을상단바의토글버튼중하나로끄거나켤수있다. 어떠한어플리케이션의설치도요구되지않는다. < 그림 > 토글버튼구현예시 7

개발방법 (DEVELOPMENT PROCESS) 센서 Sleep 방지기본적으로안드로이드스마트폰은일정시간사용이되지안으면 Sleep 모드에돌입한다. 이상태에서는화면은물론모든센서들이동작하지않는최대절전모드가된다. 본프로젝트의마우스동작의실제구현은어플리케이션보다하단계층에서모두이루어지므로마우스기능이 On 상태라하더라도터치이벤트만발생하지않으면 Sleep 모드에돌입가능하다. 또한원래 Sleep 모드에머물고있었더라도 PC와케이블이연결되면마우스기능은곧바로동작해야한다. 이와같이동작하기위해서는스마트폰이 Sleep 모드에돌입하더라도본프로젝트의마우스기능에사용되는터치패널과자이로스코프및가속도센서는계속해서동작해야한다. 이와같은문제는 Sensor Keep Awake 이슈라불리며, 해결하기위한어플리케이션계층의 API 함수가존재한다. 본프로젝트에서어플리케이션계층의이용은지양하므로토글버튼의 On/Off와곧바로연동되도록 Framework 계층에서의해법을찾는다. WINDOWS DEVICE DRIVER KMDF (Kernel Mode Driver Framework) Windows Driver 개발을위해서는 WDM(Windows Driver Model) 이후버전으로나온 WDF(Windows Driver Foundation) 를사용하였다. WDF는윈도우 2000 이후의윈도우를위한고품질의믿을수있는드라이버를만드는데도움을주는마이크로소프트도구이다. WDF는 KMDF(Kernel Mode Driver Framework) 와 UMDF(User Mode Driver Framework) 두가지종류로나뉜다. KMDF는표준커널모드장치드라이버작성용이고, UMDF는사용자모드에서실행할수있는특정한클래스의드라이버작성용이다. 우리프로젝트에서는마우스제어를하기위해커널모드에서작동하는 KMDF를채택하였다. INF INF파일혹은 Setup Information file은윈도우의소프트웨어나드라이버를설치하기위해서마이크로소프트에서제공하는텍스트파일이다. 드라이버설치를위해서 inf파일에드라이버경로및설치에필요한작업등을나열해놓는다. 8

개발방법 (DEVELOPMENT PROCESS) < 그림 > INF 파일구조 HID Midi Driver 본프로젝트에서는스마트폰을마우스로인식하여야한다. 그리고실제마우스값이아닌패킷을통해마우스를움직여야하므로실제마우스드라이버를만들면데이터를받을수가없어서제대로된동작을하지않게된다. 그리하여 KMDF를기반의 HID Mini Driver를개발하였다. HID Mini Driver는 Filter Driver로서 HID 디바이스의드라이버스택에연결된다. 그리하여 USB 통신을사용가능하고, HID Class Driver와통신가능하다. < 그림 > 드라이버스택구조 9

진행상황 (PROGRESS) 진행상황 (Progress) < 그림 > 현재진행상황 10

개발일정 (DEVELOPMENT SCHEDULE) 개발일정 (Development Schedule) < 그림 > 개발일정 11

참고문헌 (REFERENCES) 참고문헌 (References) 윈도우 USB 디바이스드라이버 (2011), 하마다켄이치로, 에이콘출판사 IT EXPERT 리눅스디바이스드라이버 (2005), 유영창, 한빛미디어 리눅스커널심층분석 (2012), 로버트로브, 에이콘출판사 안드로이드의모든것분석과포팅 (2011), 고현철, 유형목, 한빛미디어 12