본문으로 바로가기

아두이노 - 리코 GR 무선 리모컨 만들기 -_-

category 개발 2017. 10. 25. 08:43

스마트폰 카메라로 만족 못하는 저는 리코 GR로 셀카를 찍겠다는 각오가 남들보다 출중했습니다? -_-


왜 리코 GR에는 리모컨을 개똥같이 만들어 판매하는 건지.... 노답입니다.


SLRCLUB에서 만들어진 자작 GR리모컨을 봤으나,, 크기와 배터리... 만족을 못했...(원작자님 죄송합니다.. 쿨럭..)

원작자님 사이트 링크.



해서....  만들어보게 되었습니다.




재료준비.



위에서부터 재료 설명.


1. 소스코드(아래 제공)를 3번항목에 다운로드 시켜주는 기기.

2. 4번 배터리에 충전시켜주는 모듈.

3. 메인보드(?)

4. 배터리.

5. 그림에는 빠져 있지만... 적외선 리모컨이 필요합니다. 아무거나 사용해도 되지만.. 저는 깔끔한걸 좋아해서.. 집에 있는 니콘 D70에 사용했던 골동품의 리모컨을 이용했습니다. -_-



PC환경 준비.

1. 컴파일러 설치(소스코드를 기계코드로 변환하는 툴)

   http://yoo7577.tistory.com/269


2. IR용 라이브러리 설치.

   Arduino-IRremote-master.zip

3. 재료에 있는 TTL UART 5pin CP2102 USB to TTL용 드라이버 설치.

   CP210x_VCP_Windows.zip

    ※ 다운로드 역활을하는 USB와 메인보드간의 연결은..  여기를 참고.

 



회로(?) 연결 방법.

말은 거창한데 별거 없습니다. -_-

아래처럼 하면 됩니다.



이렇게 연결하면.. 배터리를 통해서 가동 가능하고.. 배터리 방전되면... 휴대폰 5pin으로 충전하고.. 좋지요.


오른쪽 중간에 보이는 스위치는.. 충전시와 가동시를 구분하기 위한 단자 입니다. -_-; 스위치로 연결안하고..

바로 연결하면서 저전력으로 움직이고.... 충전단자를 꼽으면 자동으로 충전되는.... 좋은 아이디어 있으면... 댓글을 ㅎ;


이렇게 까지 되었다면... 소스를 컴파일 해서 다운로드 시켜줍니다.



소스코드

#include < boarddefs.h >
#include < irremote.h >
#include < irremoteint.h >
#include < ir_lego_pf_bitstreamencoder.h >


int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int cameraUsbPin = 13;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver

  pinMode(cameraUsbPin, OUTPUT);             // Configure as output and
  digitalWrite(cameraUsbPin, LOW);           // set to LOW
}

void loop() {
  if (irrecv.decode(&results))
  {
    if (results.decode_type == UNKNOWN)
    {
      Serial.println(results.value);
      if (results.value == 581859881)
      {
        Serial.println("Press '1'");
        halfpress();
        delay(1000);

        Serial.println("Press '2'");
        fullpress();
        delay(1500);

        releas();
        delay(100);
      }
    }
    irrecv.resume(); // Receive the next value
  }
}

//--------------------------------------------------------------------|
// Sends a 30ms pulse to indicate half press                          |
//--------------------------------------------------------------------|
void halfpress(void)
{
  digitalWrite(cameraUsbPin, HIGH);
  delay(30);
  digitalWrite(cameraUsbPin, LOW);
}

//--------------------------------------------------------------------|
// Sends a 150ms pulse to indicate full press                         |
//--------------------------------------------------------------------|
void fullpress(void)
{
  digitalWrite(cameraUsbPin, HIGH);
  delay(150);
  digitalWrite(cameraUsbPin, LOW);
}

//--------------------------------------------------------------------|
// Sends two 30ms pulses to indicate button release                   |
//--------------------------------------------------------------------|
void releas(void)
{
  digitalWrite(cameraUsbPin, HIGH);
  delay(30);
  digitalWrite(cameraUsbPin, LOW);
  delay(30);
  digitalWrite(cameraUsbPin, HIGH);
  delay(30);
  digitalWrite(cameraUsbPin, LOW);
}



위에 UNKNOWN 라고 되어있는 부분은 니콘 D70용 적외선 리모컨이... NEC과 규격방식을 이용하지 않아서 선택한것 입니다.


581859881  라고 되어 있는 부분은 D70용 리모컨을 눌렀을때 들어오는 값 입니다.


이 두가지만 본인이 원하는 형태로 하면 됩니다...


만약 똑같이 사용하시겠다 하시면... ML-L3 니콘 리모컨을 구입하세요... 3~4천원했던거 같습니다.



해서..... 플라스틱 통에 구겨 놓고?? 테이프로 칭칭감아 만들어놨습니다 ㅎ



오른쪽에 튀어나온 두개의 핀은 스위치 역활을 하는 핀 입니다.;;


스위치를 공구하지 못해서... 핀 두개를 달고.. 점퍼핀을 이용하여 on/off 하고있지요;;; 나중에 뜯어서 바꿔야겠습니다. ㅎㅎ




테스트 동영상입니다.




이제 고화질로 셀카를 찍을 수 있어서 너무 좋습니다.




잘 모르시겠으면.. 성심 성의껏 댓글 달아드리겠습니다..



물론 리코 GR 뿐만이 아니라 GR2도가능합니다.


GR2의 경우 스마트폰으로 제어가 가능하다고 하던데.... 셀카 찍을때도 스마트폰 이용하는건 귀찮을 것 같네요 ㅎ;