중급 예제

약간은 익숙하시거나 익숙해지셨나요? 그렇다면 조금더 깊이 다뤄볼까요?

Touch wheel센서

2014-08-13 16:28:23

개요

 

Touch wheel센서를 사용해보자.

터치센서는 지정한 영역을 터치하면 그 영역에 해당하는 특정값을 출력해주거나 시그널을 보내는 센서이다.
터치센서의 원리는 사람의 몸을 통한 기전력을 기준으로, 사람의 손에 의해 터치센서 입력부를 만졌을 때 표면의 기전력의 세기를 체크하여 검출하는 센서이다.
touch wheel센서는 둥근 모양으로 예전 i-pod쓰신 사용자라면 어떻게 생겼고 무슨 기능을 하는지 쉽게 와 닿을 것이다.
touch wheel센서는 둥근 도넛 모양으로 부위마다 특정값을 지니고 있다. 그 영역을 만지게 되면 특정값이 전송되어 출력시킬 수 있거나 특정 이벤트를 발생시킬 수 있다.




터치센서는 현재 많은 분야에서 쓰인다. 감압식정전식이 있는데 많이 쓰이는 방식은 정전식이고 가장 대표적인 분야라 하면 스마트폰과 태블릿pc일것이다.




터치패널은 투명하다는 차이점이 있으나 이 역시 사람이 접촉하였을때 감지하고 특정 값을 출력하는 원리는 같다.
아두이노에 터치센서를 응용한다면 종이피아노같은 프로젝트 또한 응용이 가능할 것이고 각종 사람과의 상호작용을 통한 효과를 발생시키는 일련의 프로젝트를 작업하는데 도움을 줄 것이다.





동영상

 

 

부품 목록

NO 부품명 수량 상세정보
1 아두이노 보드 (오렌지보드) 1  
2 브레드보드 1  
3 touch wheel센서 1  
4 케이블 5  

 

부품명

아두이노 보드

(오렌지보드)

브레드보드 touch wheel센서 케이블
부품사진

 

하드웨어 making

전자 회로도

 

브레드 보드

 


 

 

소프트웨어 coding

#include <Wire.h>
#include "mpr121.h"

int key = 0;

void setup() { 
	//시리얼통신을 초기화하고 통신 속도를 19200으로 설정
	Serial.begin(19200);
	Wire.begin();
	CapaTouch.begin();
	
	delay(500);
	Serial.println("START"); 
}
 
void loop() {
	//키패드에서 값을 읽어온다
    key = CapaTouch.keyPad(); 
	
	//패드에서 읽어온 값에 따라 각 조건에 맞게 값을 출력한다
	if (key==1) { 
		Serial.print("wheel:");
		Serial.println("0");
	}
	if (key==4) { 
		Serial.print("wheel:");
		Serial.println("1");
	}
	if (key==7) { 
		Serial.print("wheel:");
		Serial.println("2");
	}
	if (key==11) { 
		Serial.print("wheel:");
		Serial.println("3");
	}
	if (key==2) { 
		Serial.print("wheel:");
		Serial.println("4");
	}
	if (key==5) { 
		Serial.print("wheel:");
		Serial.println("5");
	}
	if (key==8) { 
		Serial.print("wheel:");
		Serial.println("6");
	}
	if (key==0) { 
		Serial.print("wheel:");
		Serial.println("7");
	}
	if (key==3) { 
		Serial.print("wheel:");
		Serial.println("8");
	}
	delay(200);
}

 

 

 

소스를 사용하기 위해서는 특정 라이브러리가 필요하다.

라이브러리 내려받기

위 링크로 가면 라이브러리를 받아서 사용할 수 있다. 
받은파일을 아두이노가 설치된 폴더의 libraries에 압축해제한다면 사용이 가능하다.

외부라이브러리 사용방법

터치휠센서는 아두이노와 I2C통신으로 데이터를 송신한다. I2C통신을 하기 때문에 소스 머리부분에 #include <wire.h> 헤더파일또한 추가시켜주어야 한다.

I2C통신을 사용하기 때문에 아날로그 4번핀과 5번핀을 사용한다.

 

void setup()
{ 
   //시리얼통신을 초기화하고 통신 속도를 19200으로 설정
  Serial.begin(19200);
  Wire.begin();
  CapaTouch.begin();
 
  delay(500);
  Serial.println("START"); 
}

 

setup에서는 시리얼통신의 속도를 19200으로 설정하고 I2C통신을 초기화한다. 또한 터치센서 또한 초기화시킨다.

loop에서는 간단하게 터치센서가 감지한 영역에 맞게 값을 출력해주고 그 값에 따라 if문을 통해 분기하여 조건에 맞게 println을 통해 값을 출력한다.
간단한 소스이기 때문에 터치센서에 쓰인 번호에 맞게 숫자만 시리얼모니터에 출력했지만
응용이 가능하다면 특정 이벤트 함수를 넣어 좀 더 화려한 효과를 줄 수도 있다.

 

 

 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

터치휠센서, 아두이노