천문 장비 혹은 필요한 도구들을 스스로 만들기 위한 정보들을 교환하는 장입니다.
우리가 함께 만든 우주선이 달나라에 가지 말라는 법이 있을까요?
총 게시물 111건, 최근 0 건
   
아두이노를 이용한 원격 스위치 제작
글쓴이 : 이형철 별님 날짜 : 2014-03-24 (월) 21:38 조회 : 7672
relay 1.1.zip (1.9M), Down : 34, 2014-12-24 15:57:03
원격 천문대용 전천 카메라를 테스트 하던 중
2-3일간 잘 작동하던 카메라가 특별한 이유 없이 중단 되는 경우가 있었습니다.

이럴 때는 컴퓨터와 연결을 해제해도 전혀 동작을 하지 않는 것이
마치 카메라의 펌웨어 (카메라 내부의 운영 프로그램)가 다운 된듯한 증상이었습니다.

그러나 단순히 카메라의 전원을 껐다 켜 주면 다시 잘 동작 하였습니다.

그러나 카메라가 멀리 원격지에 있다면 이 '전원을 껐다 켜는' 일이 말처럼 쉬운 일이 아닙니다.

따라서 이 일을 해 줄 수 있는 원격 스위치 하드웨어와 프로그램을 만들었습니다.

하드웨어 구성

릴레이: 전자적으로 켜고 끌 수 있는 스위치를 말합니다.

중국에서 저가 제품인 HRS4H-S-DC05V 를 구입하였습니다.
10개에 5.9 달러입니다.
저가이긴 하지만 5V 신호로서 250V 까지의 신호를 껐다 켰다 할 수 있습니다.

PC와 통신을 담당하고 릴레이에 가할 5V 전압을 만들기 위해 아두이노 나노를 사용하였습니다.
ebay 에서 개당 6달러에 구입하였습니다.

릴레이는 5핀으로 되어있는데 구조는 대동소이합니다.
평소에는 3과 5가 연결되어있다가 1과 2 사이에 5V 전압이 걸릴 때만 3과 4가 연결됩니다.


EOS 무한 전원 아답타의 7.4V 신호 라인을 끊어 릴레이에 연결하였는데
저는 통신이 되지 않을 때에도 카메라가 켜져있도록 3과 5에 연결했습니다.

그런 다음 제어를 위해 아두이노의 GND를 릴레이의 2에, D3 핀을 릴레이의 1에 연결했습니다.

 

모두 연결한 후에는 절연 테이프로 감았습니다.



아두이노 소프트웨어
아래와 같은 프로그램을 만들어 아두이노에 전송하였습니다. 
PC와 시리얼 통신을 하여 릴레이를 제어할 수 있고 현재 상태를 PC로 전송합니다.

// N : on
// F : off
// G : sent last status
int relayPin = 3;               
int incomingByte = 0;
int lastVal = LOW;
void setup()
{
  Serial.begin(9600);
  Serial.print("N");
  
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, lastVal);
}

void loop()
{
  // send data only when you receive data:
  if (Serial.available() > 0) {
      // read the incoming byte:
      incomingByte = Serial.read();
      if(incomingByte == 'G') 
      {
        if(lastVal == HIGH) Serial.print("F");
        else Serial.print("N");
      }
      else if(incomingByte == 'F') 
      {
        Serial.print("F");
        lastVal = HIGH;
        digitalWrite(relayPin, lastVal);
      }
      else if(incomingByte == 'N')
      {
        Serial.print("N");
        lastVal = LOW;
        digitalWrite(relayPin, lastVal);
      }
  }
}

PC 측 소프트웨어
MFC로 간단한 시리얼 통신 프로그램을 만들었습니다.
아래 라이브러리를 사용했습니다.


단순히 시리얼 통신을 통해 온 오프 명령만 전송하고 결과를 표시합니다.

동작시켜보니 잘 작동합니다.

이 원격 스위치는 전천 카메라 뿐만아니라 전등이나 모터 등 어떤 장치든 사용할 수 있을 것 같습니다.

첨부 파일로 전체 프로그램 소스 코드를 공개합니다.

추가 사항
2014-12-24 
Reset 기능 추가했습니다. 
COM10 이상 연결 안되는 버그 수정

어재규별님 2014-03-25 (화) 01:46
* 비밀글 입니다.
댓글주소
이형철별님 2014-03-25 (화) 09:12
재규:
좋은 조언 고마워. 내 생각에 모든 장비는 각각 전원을 제어할 수 있어야겠고 가능하다면 카메라로 상태를 확인할 수 있어야 할듯 싶다. 그리고 자작과 기성품을 적절히 선택하는것이 중요할것 같다.
댓글주소
최정순별님 2014-03-25 (화) 19:42
훌륭합니다.
감시카메라도 한 대 구입해야겠습니다.
손재주 좋은이들은 안쓰는 휴대폰으로도 만들던데 가능할까요?
댓글주소
이도언별님 2014-03-25 (화) 21:08
와 ...  형 의사 맞아요? ㅋㅋㅋㅋㅋ
댓글주소
송하균별님 2014-03-31 (월) 09:31
이형철님과 도와주시는 분들께 다시 한 번 놀랍니다.
프로젝트를 진행하다 보면 필연적으로 문제를 만나게 되는데,
이를 적극적이고 실용적으로, 외부에 의존하지 않고 독창적으로 스스로 극복하고자 연구하고 실천하는 그 모습에서 배우는것이 많습니다.
조급해 하지 마시고, 힘 내세요~~
댓글주소
   

총 게시물 111건, 최근 0 건
번호 이미지 제목 글쓴이 날짜 조회 추천
111 Canon EOS 용 조도 감응 릴리즈 제작 +1 이형철별님 08-17 7533 0
110 심전도 신호 생성기(ECG Signal Generator) 제작 +2 이형철별님 03-27 5895 1
109 ffmpeg 로 timelapse 동영상 만들기 +1 이형철별님 01-20 7315 0
108 오픈소스 천체 추적기 ver 2.0 +1 이형철별님 01-14 6526 0
107 중국산 저가 아두이노 동작 안됨 원인 - 최신 … 이형철별님 12-24 5815 0
106 아두이노 beetle을 이용하여 원격 스위치를 만… +1 이형철별님 12-24 3573 0
105 3만원대 컴퓨터 라즈베리파이로 제작한 타임… 이형철별님 12-12 3271 0
104 노트북 블루투스를 이용해 시리얼 통신을 해 … +5 이형철별님 04-04 12578 0
103 아두이노를 이용한 원격 스위치 제작 +5 이형철별님 03-24 7673 0
102 캐논 EOS 전원 공급장치를 만들어보자. +2 이형철별님 02-25 5044 0
101 초점이 안 맞아 많이 당황하셨죠? 바흐티노프… +5 이형철별님 02-21 6124 0
100 플라네타리움을 위한 조명 이형철별님 02-13 4923 0
99 타조알 플라네타리움 +7 이영찬별님 01-18 4916 0
98 레이져 별 지시기 이형철별님 01-17 4373 0
97 문의 드립니다. +4 조경별님 11-12 4750 0
 1  2  3  4  5  6  7  8  맨끝
 
Since 2001.2.7 미래창조과학부 등록 비영리민간단체 천문노트. Copyright All rights reserved.
단체명 : 천문노트  |    고유번호 : 101-82-15888  |    대표자명 : 김태욱, 조우성  |    주소 : 138-804 서울특별시 송파구 가락동 93 금강빌딩 7층 710호  |    전화 : 02-543-3295  |    Fax : 02-6918-6888  |    통신판매신고번호 : 종로 제01-5696호  |    개인정보관리책임자 및 사이트관리자 : 지용호