Touch screen.

Slides:



Advertisements
Similar presentations
컴퓨터 계측 및 실습 개 요 영남대학교 기계공학부. PC 의 기본장치 PC 의 작동구조.
Advertisements

1)RACK 2)UPS 3)P D U 장치 4)Server Group 5)KVM Switch 7)UPS 를 위한 HUB 6) RACK Monitor.
Term project. Touch-screen 활용 그림판 –Touch-screen 을 입력장치로 하여 LCD 상에 그림을 그리는 프로그램 – 터치 입력을 절대 좌표로 받는 디바이스 /dev/touch 를 만들어 응용 프 로그램에서 수행하도록 함. –User interface.
Progress Report YoonMo Yeon
손으로 접촉하면 그 위치를 입력받도록 하는 특수한 입력장치를 장착한 화면.
SoC 로봇워 참가자 교육.
Vision System Lab, Sang-Hun Han
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
Analog to Digital Converter
USB Interface study 결과
음향 시스템 사양서 DIGITAL MIXING CONSOLE SOUNDCRAFT : VI3000 SPECIFICATIONS
장비 구성도 (특징) (장비 구성품) 1) Beam Projector
<<< 시스템등록정보 “하드웨어-장치관리자” 설정 >>>
자바실험실 이동준 우리 곁으로 다가온 사물 컴퓨팅 자바실험실 이동준.
IoT(사물인터넷) 보안 2016년 2학기 2. 라즈베리파이 준비.
아두이노 센서의 연결 디지털 및 아날로그 센서값의 특징 디지털 센서 핀 구조 및 연결하기 아날로그 센서 핀 구조 및 연결하기
 midi LOGGER GL220   신제품 소개 Dec, 2011.
컴퓨터 계측 및 실습 D/A-converter
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Step Motor Device Driver
11장 키보드 인터페이스 Slide 1 (of 9).
센서 9. Force Sensor 안동대학교 물리학과 윤석수.
실험1. 연산 증폭기 특성 전자전기컴퓨터공학부 방기영.
컴퓨터 계측 및 실습 D/A-converter
“DC POWER SUPPLY의 소개”.
임베디드 실습 # LED, 7’Segment 제어
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
제 3 장 Memory - SRAM.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
터치스크린 터치 스크린의 용도와 동작원리 이해.
Fourier Transform Nuclear Magnetic Resonance Spectrometer
제 1장. 멀티미디어 시스템 개요.
Register, Capacitor.
10장 컴퓨터 기반 데이터 획득 응용 프로그램 LabVIEW 사용법
센서 12. 자기장 센서 안동대학교 물리학과 윤석수.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
RPi2 SPI 8x8 Dot Matrix LED
LCD Controller Colorbar
24장. 파일 입출력.
LUMINESCENT MATERIALS
                                  11장 컴퓨터 기반 데이터 수집.
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
센서 3. O2 gas 센서 안동대학교 물리학과 윤석수.
Stepper Motor 디바이스 드라이버
1 전기와 전기 회로(03) 전기 회로의 이해 금성출판사.
컴퓨터 계측 및 실습 디지털 입력 영남대학교 기계공학부.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
컴퓨터 구성요소와 사용 컴퓨터 문서 작업 인터넷 활용
공인인증로그인 매뉴얼.
9 브라우저 객체 모델.
공인인증로그인 매뉴얼.
06. 디바이스의 등록과 해제 김진홍
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
회로 전하 “펌핑”; 일, 에너지, 그리고 기전력 1. 기전력(electro-motive force: emf)과 기전력장치
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
13. 포인터와 배열! 함께 이해하기.
Progress Seminar 양승만.
Progress Seminar 권치헌.
Progress Seminar 양승만.
논리회로 설계 및 실험 8주차.
공인인증로그인 매뉴얼.
Presentation transcript:

Touch screen

Touch-Screen 이란? 디스플레이에 표시되어 있는 버튼을 손가락으로 접촉하는 것 만으로 컴퓨터를 대화적, 직감적으로 조작함으로써 누구나 쉽 게 사용할 수 있는 입력 장치 사용자 인터페이스의 다양화 키보드를 통한 텍스트 입력 마우스를 이용하여 포인팅 디바이스에 의한 GUI 입력 다양한 포인팅 디바이스를 GUI입력 터치스크린을 사용하는 장점 MISS INPUT의 감소 간단하게 직감적 조작 소형, 경량화 터치스크린에 필요한 기본기능 터치 입력의 유무 판단 기능 (Touch Sensor) 터치입력이 있을 때의 좌표검지 기능 컴퓨터와의 INTERFACE등으로 생각할 수 있다

도전 필름 방식 (MATRIX SWITCH) Touch-Screen 이란? 터치스크린의 종류 Matrix Switch 방식 아날로그 방식 광 센서 (적외선) 매트릭스 방식 도전 필름 방식 (ANALOG) 도전 필름 방식 (MATRIX SWITCH) 하중분압(압력 센서) 방식 용량변화방식 표면파(초음파) 반사 방식 금속 세선 매립 방식 금속 세선 매립 방식 (감압 방식)

저항막 방식 touch screen 형태 원리 특징 유리나 투명한 플라스틱 판 위에 저항성분의 물질을 입히고 그 위에 폴리에스틸렌 필름을 덮어 씌운 형태 두 면이 서로 닿지 않도록 일정한 간격으로 절연층(Dot Spacer)이 설치되어 있음 원리 저항막의 양단에서 일정한 전류를 흘려주면 저항막이 저항체 역할을 하여 양단에 전압이 걸림 손으로 접촉을 하게 되면 위쪽 표면의 폴리에스틸렌 필름이 휘어지면서 두 면이 접촉 이때 두 면의 저항 성분 때문에 저항의 병렬접속과 같은 형태가 되어 저항 값의 변화가 일어나 게 되며,양단에 흐르는 전류에 의한 전압의 변화 정도로 접촉된 손의 위치를 파악 특징 원리의 특성상 두 면이 닿아야 인식된다. 볼펜이나 기타 물질에 의한 압력으로도 인식된다. 뾰쪽한 물체에 의한 손상이나 사용빈도에 따라 표면에 긁힘이 날 수 있다. 수명이 거의 영구적이다(한 점당 200만 터치 ; 일반적으로 약 10년 간 사용) 터치시 반응속도가 빠르다(초당 약 150번 이상) 오차율이 적다(2%). 투명도가 좋음(폴리에스틸렌 필림의 종류에 따라 88~92%의 투과율)

Touch-Screen H/W 특성 아날로그 저항막 방식 터치스크린에 대하여 설명 아날로그 저항막 방식 터치스크린 구조 상부전극(투명도전막: ITO이 형성된 PET필름)과 하부 전극(투명도전막이 형성된 유리기판), 연결배선 (Flexible Cable)로 구성 하부전극 위에 Dot Spacer를 상부 전극에 대향 하도록 형성된 구조

Touch-Screen H/W 특성

정전 용량 방식 형태 원리 특징 유리 또는 플라스틱, 필름과 같은 양면에 투명한 특수전도성 금속(TAO) 을 코팅  원리 스크린의 네 귀퉁이에 전압을 걸어 구석에서 발생되는 고주파가 센서 전 면에 퍼지게 된다. 손가락으로 스크린을 접촉하게 되면 수신부에서 변형된 파형이 감지하여 컨트롤러에서 위치를 계산 특징 미세한 정전압에도 반응하므로 살짝만 접촉되어도 감지한다. 높은 분해 능력을 가진다(1024×1024). 강화 처리된 유리에 특수 금속 코팅을 했기 때문에 견고성이 좋다. 수명이 길다(1 포인트 당 2000만 터치). 빛 투과율이 높아 원 화상의 색상을 그대로 살릴 수 있다. 터치 시 반응속도가 매우 빠르다(초당 약 270번 이상). 오차율이 매우 적어 정확하다(오차율 : 1%).

정전 용량 방식

Hardware TI TSC2046 for NDS Asahi Kasei Microsystems AK4148AVT for NDSL Connected via SPI Control Byte (transferred MSB first) 0-1 Power Down Mode Select 2 Reference Select (0=Differential, 1=Single-Ended) 3 Conversion Mode (0=12bit, max CLK=2MHz, 1=8bit, max CLK=3MHz) 4-6 Channel Select (0-7, see below) 7 Start Bit (Must be set to access Control Byte) Channel 0 Temperature 0 (requires calibration, step 2.1mV per 1'C accuracy) 1 Touchscreen Y-Position (somewhat 0B0h..F20h, or FFFh=released) 2 Battery Voltage (not used, connected to GND in NDS, always 000h) 3 Touchscreen Z1-Position (diagonal position for pressure measurement) 4 Touchscreen Z2-Position (diagonal position for pressure measurement) 5 Touchscreen X-Position (somewhat 100h..ED0h, or 000h=released) 6 AUX Input (connected to Microphone in the NDS) 7 Temperature 1 (difference to Temp 0, without calibration, 2'C accuracy)

Reading touch screen position linux-2.6.x/arch/arm/mach-nds/arm7/spi.c static u16 touch_read(u32 command) { u16 result; WAIT_FOR_NOT_BUSY(); // Write the command and wait for it to complete REG_SPI_CR = SPI_ENABLE | SPI_CONTINUOUS | SPI_TOUCH | SPI_8CLOCKS | SPI_2MHZ ; REG_SPI_DATA = command; // Write the second command and clock in part of the data REG_SPI_DATA = 0; result = REG_SPI_DATA; // Clock in the rest of the data (last transfer) REG_SPI_CR = SPI_ENABLE | SPI_SINGLE | SPI_TOUCH | SPI_8CLOCKS | SPI_2MHZ ; // Return the result result = ((result & 0x7F) << 5) | (REG_SPI_DATA >> 3); REG_SPI_CR = 0; return result ; } s32 touch_read_value(int measure, int retry , int range) { int i; s32 this_value=0, this_range; s32 last_value = touch_read(measure | 1); for ( i=0; i < retry; i++) { this_value = touch_read(measure | 1); if ((last_value - this_value) > 0) this_range = last_value - this_value; else this_range = this_value - last_value; if (this_range <= range) break; } if ( i == range) this_value = 0; return this_value;

Touch screen device driver in Linux Touch screen을 mouse와 같은 입력 장치로 사용 하기 위해서는 INPUT 디바이스 드라이버 필요

INPUT device driver 기존 device driver와 다른 점 입력 장치는 여러 가지가 존재하며, 이들을 모두 따로 다루는 것은 매우 번거로움 다양한 입력 장치를 통합하여 hardware 장치에 관계없이 일관된 구성과 절차를 제공 이 부분은 아직 완료되지 않음

INPUT device driver 정보 확인 # cd /proc/bus/input/ # ls –al dr-xr-xr-x 2 0 0 0. dr-xr-xr-x 3 0 0 0 .. -r--r--r-- 1 0 0 0 devices -r--r--r-- 1 0 0 0 handlers [root@linux input]$ cat devices I : Bus=0000 Vendor=0000 Product=0000 Version=0000 N : Name=“Nintendo DS Touchscreen” P : Phys= H : Handlers=kbd mouse0 event1 B : EV=12000b B : KEY=420 0 0 0 0 0 800 60000012 1c0001f ff7fffff fffffffe B : ABS=11000003 B : LED=2 Device ID Device name 물리적 장치 연결된 handler

Event event handler drivers/input/evdev.c 응용 프로그램에서의 접근 장치 독립적인 범용적인 형식으로 입력 값을 받아들이기 위한 디 바이스 드라이버 입력 장치마다 하나씩 생성 응용 프로그램에서의 접근 read 함수를 이용하여 읽을 수 있음 버퍼 형식  struct input_event { struct timeval time; unsigned short type; unsigned short code; unsigned int value; }; type: EV_SYN, EV_KEY, EV_ABS code: BTN_TOUCH, ABS_X, ABS_Y,…

Touch screen device driver의 연결 drivers/input/touchscreen/nds_ts.c ndstouch_input_event MOUSE_MODE KEYBOARD_MODE input_report_key input_report_key input_report_abs drivers/input/mousedev.c Mouse event mousedev_event input_event drivers/input/input.c keyboard event drivers/char/keyboard.c kbd_event

Mouse device /dev/mouse0 mouse_read.c #include <stdio.h> #include <fcntl.h> int main(void) { int fd; signed char u[3]; fd = open("/dev/mouse0",O_RDONLY); while(1) { read(fd, u, 3); printf("button=%d, x=%d, y=%d\n", (int)u[0], (int)u[1], (int)u[2]); } close(fd); return 0;

Touch screen device 자체에 대한 comments DS Linux의 구현 Mode 0 with BG0 & BG1 active Text mode 임 draw_keyboard 함수 참조 만일 sub-LCD에 그림을 그리고 싶다면? Mode 5의 frame buffer 를 이용하면 됨. /dev/fb1 을 open하여 사용 LCD 슬라이드 참조. 동일한 코드에 /dev/fb1 으로 변경