아두이노와 정전압 터치센서를 활용한 센서 제작.


1. 준비물

- 아두이노 Leonardo (호환보드인 Pololu Atmega 32u4 보드 사용)

- 블루투스 HC-06 모듈                                                             

- Lipo 베터리                                                                             

- 정전압 압력 시트 (Adafruit에서 판매)                                       

- 전도성 실                                                                                

- 정전압 센서 모듈(Adafruit에서 판매)                                        



2.재료가 준비되었다면 한번 만들어 봅시다.


우선 오늘은

(1) 아두이노와 터치 모듈(MPR121) 의 I2C 통신


(2) 정전식 터치센서 제작


(3) 제작된 센서와 모듈을 이용한 센서값 읽기


세가지를 해보도록 하겠습니다.


(1)

아두이노와 터치모듈을 사용하기위해서는 I2C (Inter-Integrated Circuit) 통신을 해야한다.

디지털 통신에는 여려가지가 있지만, 주로 사용되는 통신은  Serial 통신, SPI통신, I2C통신,  CAN통신 등이다.

혹시나 다음에 포스팅할 기회가 된다면 통신에 대해 정리를 해보도록 하겠습니다 :)


아두이노와 보드의 연결은 아래와 같이 SCL (클럭핀) 과 SDA(데이터핀) 을 서로 연결하시고,

(아두이노 보드에 보시면 SCL, SDA핀이 있습니다. 실제로 이 핀은 아날로그인풋 4,5핀과 같은 핀이죠)



2번 핀에 연결되는 IRQ 핀은 터치가 입력되었을때 HIGH (1) 신호를 내보냅니다.

아두이노에서는 터치가 없을때 센서값을 읽어들일 이유가 없으므로, 인터럽트핀 (2번핀)에 연결하여 트리거 신호가 있을때만 센서를 읽어들이게 만들죠.


이제 아두이노 코딩을 해볼까요~?

우선 Adafruit 사이트에 가셔서 MPR121 보드에 대한 라이브러리를 다운받으시고,

아두이노 라이브러리 폴더에 저장해두세요! ( 내문서/Arduino/ )

그 다음 File -> Example -> Adafruit MPR121 -> MPR121 test  를 열고나서 업로드를 합니다.

(업로드 시에 board세팅과 USB 포트 세팅은 꼭 확인해보세요! pololu 보드의 경우 Leonardo 입니다!!)


센서가 제대로 동작하는지 확인하기위해서는 시리얼 모니터를 누르면 됩니다.

누르고 나면 아래와 같이 터치가 되었는지, 떨어졌는지를 알수 있죠.


하지만 본 예제에서는 터치가 됬는지, 안됬는지만 나오지만, 사실 우리가 사용해야하는것은 Capacitance의 값이므로, 코드를 손 볼 필요가 있다,


void loop()내의 코드를 자세히 보면 63번 줄에 " return; " 이 있다. 즉, return위까지 코드만 실행하고 그 아랫부분 코드는 실행하지 않은채 다시 루프를 시작한다는 소리다.


만약 이 부분을 지우거나 주석처리 ( //return;)를 하고, 기존의 47번줄 부터 57번줄 (touch release를 프린트하는 부분)도 주석처리를 하시면 아래와 같은 그림이 나옵니다.

 

Base 값은 터치의 유무를 판별하는 Thresh hold value 들이구요, 이 값은 MPR121모듈 자체적으로 적정값에 맞게 가변적으로 세팅이 됩니다.

그리고 저희가 사용해야될 중요한 값은 Filt 값들이에요. 실질적인 Capacitive값들인거죠. 이 값들은 나중에 센서를 제작하고나서 자체적으로 보정을 해줘야합니다.


이번 포스팅은 여기까지입니다.


다음 포스팅에서는 정전식 터치센서를 어떻게 제작하는지 한 번 배우도록 합시다.


-> 아두이노기반 압력센서 개발 [2]


Have a good time with Arduino :)

+ Recent posts