중급 예제

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

아두이노-메이키메이키 만들기

2015-07-06 17:26:16

개요

 

아두이노에 관심이 많으신 분들은 한 번쯤 Makey Makey라는 보드를 들어본 적이 있으실 겁니다. 

SparkFun에서 개발한 입력 인터페이스 보드로 모양은 다음과 같습니다.

 

 

아두이노 Leonado 버전의 부트로더를 기반으로 PC에 USB를 꽂으면 키보드와 같이 입력 인터페이스로 인식하게 되는 보드입니다.

Makey Makey가 매력적인 이유는 신기한 입력 방식 때문인데요, Makey Makey 보드를 이용한 응용 프로젝트로 다음과 같은 작품이 있습니다.

 

 

바나나를 누르면 인식이 됩니다!! 완전 신기하죠???

하지만 여러분들도 할 수 있습니다. 그 원리를 지금부터 자세히 파헤쳐보겠습니다.

 

바나나 피아노 사진을 보시면 단순히 바나나를 누르는 것 처럼 보이지만! 사실 다른 속임수가 숨어있습니다.

바로 반대 쪽 팔에 접지선이 물려져 있다는 점입니다. 

 

한가지 힌트를 더 드리자면 Makey Makey의 입력 패드는 PULL UP 상태로 되어 있습니다. 이제 감이 좀 오시나요?

 

 

위 그림과 같이(제가 그린거 아닙니다 -_-) 입력패드에 연결된 물체를 접지된 인체가 누르게 되면! 풀업상태, HIGH 상태로 있던 입력 패드가

GND, LOW로 떨어지면서 눌렸다는 것을 인지하게 됩니다. 신기하지만 단순하죠??

 

접지 방식 입력은 정전식 터치 입력에 비해 반응속도와 감도가 좋다는 점이 특징입니다. 다만 인체에 접지를 물려주고 있어야 하는 불편함을 감수해야하죠.

 

Makey Makey 보드 뿐만 아니라 오렌지 보드에서도 이런 입력 인터페이스를 구현할 수 있습니다.

 

 

 

하드웨어 메이킹

 

<브레드 보드 레이아웃>

 

 

7번 핀에 연결된 초록색 NET는 터치 입력 라인 입니다. 아무 입력이 없을 경우 22Mohm의 저항을 거쳐

5V 풀업이 됩니다. 이 때 실제로 입력 핀에 입력되는 전압은 약 2.8V~3.2V 가량으로 아슬아슬하게 HIGH 상태가 되어 있습니다.

 

우측의 접지선을 인체에 부착시킨후 초록석 NET를 잡게 되면 2.8V~3.2V에서 약 0.48mV (0V)로 떨어지게 됩니다. 인체를 전선으로 삼아

접지가 되는 것과 같은 원리입니다. 주의하셔야 할 점은 인체에 접지선을 물린다 하더라도 인체는 확실한 접지 라인이 될 수 없습니다.

따라서 Pull-up 상태의 입력핀을 확실한 LOW로 잡아 줄 수 있는지의 여부가 관건입니다. 이러한 상황에서는 Pull-up 저항의 값을 되도록

높은 걸 쓸수록 좋습니다.(살짝 접지가 되어도 확실한 LOW를 만들어 주기 위해서) 하지만 너무 저항값이 큰 것을 사용하게 되면 Pull-up

상태가 2.5V가 채 되지 않아 풀업이 되어도 LOW로 인식할 수 있기 때문에 주의하셔야 합니다. 

 

 

아두이노 코드

 

간단한 테스트 코드로, 입력 인식에 따라 LED가 점등되는 예제 입니다.

입력 방식은 특이?!하지만 결과적으로는 버튼 입력과 같이 디지털 신호의 LOW, HIGH를 읽는 단순한 원리입니다.

void setup() 
{
  pinMode(7,INPUT);
  pinMode(6,OUTPUT);
}

void loop() 
{
  if(digitalRead(7) == LOW)
  {
    digitalWrite(6,HIGH);
  }
  else if(digitalRead(7) == HIGH)
  {
    digitalWrite(6,LOW);
  }
  
}

 

kocoafabeditor

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

메이키 메이키, 아두이노, 오렌지보드