2017년 5월 24일 수요일

ESP8266에 카메라를 붙이다.

1. 카메라 모듈이 필요하게 되다.

 기존의 연구아닌 연구를 통하여 원격으로 원하는 곳의 온도, 습도는 알 수 있게 되었다. 인터넷이 되는 기계(핸드폰 포함)만 있다면 언제 어디서든 1일치 데이터를 볼 수 있게 되었다. 

[현재 로깅중인 온습도]

시제품을 만들지는 않았지만 전기 제품의 스위치도 원격으로 On/Off가 가능하게 되었고 이를 응용하여 문의 개폐를 할 수 있게 되었다. 하지만 원격으로 제어하는 것이기 때문에 정상적으로 스위치가 동작하였는지 확인할 방법이 없다. 결국 카메라 모듈이 필요한 상황이 되었다.  실시간 스트리밍을 하기 위해서는 상시전원이 필요한 터라, 고려 대상에서 제외하였다. 무선랜 연결 가능한 곳이면 어디에라도 설치할 예정이기 때문이다. 
[ 현재 연구중인 것의 최종 산출물 예상도 ]


2. OV528로 선택하다.

 Arduino에 연결 가능한 카메라 모듈은 많다. OV7670 계열 중에서  FIFO 기능이 없는 카메라 모듈은 싸게는 4$ 정도에 구매가 가능하다. 다만 약 17개의 핀을 연결해야 한다.  나는 Arduino 보드를 사용하는 것이 아니라 ESP8266을 사용하기 때문에 이정도의 핀을 연결할 수 없다. 그래서 RT/TX 연결을 사용하는 TTL 레벨의 카메라 모듈을 찾았다. 내가 선정한 카메라 모듈은 OV528이다. 


[ OV528 ]


OV528이 엄청난 고해상도 이미지를 촬영하는 카메라 모듈은 아니다(난 엄청난 고해상도가 필요한 것도 아니다). 장점은 오로지 4개의 핀 연결로 ESP8266과 연결이 가능하다는 것이다. 게다가 이미지를 카메라 모듈에서 JPG 포멧으로 끌어 낼 수 있는 편리함이 있다. 단점은 OV7670과 비교해서 4배 정도 비싸다. 

내가 카메라 모듈을 구매한 사이트


3. 테스트를 하다.

 제품을 배송받고 나서 몇일이 지나야 테스트를 할 수 있었다. 판매자의 제품 정보에 포함된 링크로부터 Windows용 테스트 프로그램을 다운받을 수 있었다. 카메라 모듈에 내가 가지고 있던 CH340 모듈을 연결하고 테스트를 해서 이미지를 확인할 수 있었다. 테스트 프로그램으로 연결 가능한 속도는 9600 이었다. 다른 속도로는 성공하지 못했다.


[ CH340으로 PC와 연결 ]


4. ESP8266에 붙이다.

 제품에 문제가 없음을 테스트하고 나서 본격적으로 ESP8266에 연결하였다(RX->TX, TX->RX, GND->GND, VCC->5V). 인터넷에서 공수한 예제를 가지고 이틀의 고생 끝에 드디어 이미지를 얻게 되었다. 오래걸린 이유중에 하나는 카메라 모듈이 5V에서 동작하는 기계였기 때문이었다. 내가 계획하는 것이 18650 배터리 1개 셀에 ESP8266 + 카메라 모듈을 연결하는 것이라서 카메라 모듈에 공급하는 전압을 3.3V에서 했기 때문이었다. 카메라 모듈에 3.3V를 연결하면 이미지 촬영이 안된다는 것을 아주 많은 시도 끝에 알게 되었다. 머리속에 여러가지 생각이 지나갔다. 처음 내린 결론은 DC 부트터를 하나 달아서 3.3V -> 5V로 변경하여 카메라 모듈에 붙이는 방법이었다. 

5. 레귤레이터를 떼어내다.

 난 전공이 전기나 전자가 아니다. SW쪽이라서 전기, 전자에는 문외한이나 다름없다. DC부스터를 주문하고 기다리면서(먼가 주문하면 기본 20일 이다.ㅠㅠ) DC부스터 연결에 따른 전력량 손실이나, 패키지 부피가 커지는점 등을 고려하니 처음 내린 결론은 정답이 아니라는 생각이 매일 커져 갔다. 카메라 모듈을 매일 이리 저리 뚫어져라 쳐다 보다가 어느날 문득 모듈에 붙여저 있는 3개의 레귤레이터들이 눈에 들어왔다. 3개의 레귤레이터 중 1개를 어찌하면, 카메라 모듈을 3.3V에서 동작가능하게 만들 수 있다는 상상을 마친후 레귤에이터에 대해서 공부하기 시작했다(워낙 문외한 이라 뭐든 공부를 해야 한다.)
[ AMS1117 ]

연구 대상인 AMS1117은 위쪽에 1개의 굵은 다리와 아래쪽에 3개의 가는 다리가 있다. 카메라 모듈 기판에는 4개 다리 모두 납땜이 되어 있는 상태라 더 많은 고민을 했다. 단순하게 AMS1117를 기판으로 부터 분리하면 당연히 동작하지 않을 것이라는 것은 짐작할 수 있었기 때문에 카메라 모듈에 전원을 공급한뒤 테스터기로 측정을 하기 시작했다. GND를 제외한 나머지 3개의 다리에서 3.3V가 두군데,  5V가 한군데 측정 되었다. 5V는 당연히 Input이겠고 나머지 두 곳이 고민되었다. 3.3V 두곳을 테스터기로 연결테스트 해보니 직접 연결이 되어 있었다(글을 쓰면서 생각해보니 저항 측정을 안했다). 많은 고민끝에 5V의 다리를 기판으로 부터 분리하고, 기판의 5V 부분과 3.3V 부분을 쇼트 시키기로 결정하고 작업했다.


[ AMS1117 분리 작업 결과 ]

AMS1117의 다리 1개를 기판으로 부터 분리하는 가장 좋은 방법은 잘라내는 것이다. 난 아주 작은 니퍼가 없었기 대문에 손톱깍기를 썼다. 훌륭한 선택이었다. 결론은 성공했다. 3.3V의 전압을 입력하여, 필요한 이미지를 추출해 낼 수 있었다.

6. 연구해야 할 것을 정리하다.

약 20cm X 6cm 크기 태양광 패널의 1일 전력 생산량을 실측.
ESP8266 + 카메라 모듈의 시간당 소비 전력량 실측.
(1.5분 정도 슬립모드 그후 깨어나서 촬영 및 서버 전송을 반복)
18650 충전 및 보호 모듈 테스트
서버 이미지 업로드 및 서버 이미지 관리 및 웹클라이언트 배포 방법 모색


2017년 5월 16일 화요일

Curl로 구현한 구몬 스마트펜 매니저

1. 스마트펜이란?

 스마트펜이란 한마디로 정의하기는 어렵지만 펜 형태의 다기능 기계장치이다.  그중에서  스캔장치를 가지고 있고, 도트 형태의 배경 무늬를 가지는 인쇄물을 스캔하면 연결된 음원을 재생하는 기계가 국내에서는 교육용으로 많이 사용된다. 한솔, 교원과 같이 가정 학습 분야를 이끄는 회사에서도 이를 이용한다. 세이펜, 소리펜 등의 다양한 이름을 가지기도 한다.
교원(구몬)의 신형 스마트펜 - 2017.05 발매

2. 교원의 호출

 교원에서 새로운 스마트펜을 발매 예정인데, 이와 관련된 관리 프로그램을 제작하기 위하여 몇몇의 개발 업체를 호출하였다.  우리도 그 업체들 중 하나로 제안 및 견적 작업에 참여 하였다.
 교원의 요청은 간단 명료 하였다.
"학부모들이 스마트펜의 음원 파일을 직접 관리할 수 있게 해주세요 !! "

 이전까지 학부모들이 스마트펜에 필요한 음원 파일을 추가하는 것 자체가 어려워서 교사들이 직접 필요한 파일을 추가해서 학부모들에게 전달하는 형태로 판매가 이루어 지고 있었다. 새로 산 스마트펜이어도 교사가 개봉해서 학부모에게 전달하는 형태가 되었기 때문에 문제가 되고 있었다.  학부모 입장에서 새로산 스마트펜인데, 이미 포장이 회손된 상태인 것이었다.


3. 제안 단계

 교원측에서는 웹페이지에서 관리가 가능하도록 하고 싶다고 했다.  ActiveX가 아닌 이상 시스템 리소스에 직접적으로 접근이 불가능한 형태로 웹브라우져가 바뀌어 가고 있는 상황이라서 C/S 형태로 제안했다. 사용의 편리성, 존재감 등의 부가적인 요소를 추가적으로 강조하였다. 마지막으로 Windows 뿐만 아니라 Mac도 지원하는 것을 제안하였다. 결과적으로 우리 회사가 선정되었고, 초기 교원이 생각한 것보다 3배 정도의 프로젝트 규모가 되었다.


4. 개발 단계

 화면 설계를 전체적으로 세번을 했다.  첫번쨰와 두번째에 설계된 내용은 교원 직원들을 감동시키지 못했다. 사용하기에 너무 어려워 보인다는 것이었다.  FTP Client를 사용하는 우리들에게 있어서는 일반적인 인터페이스였다(경쟁사의 관리 프로그램도 마찬가지 이다). 하지만 학부모들에게는 어려운 것이었다. 두번째 화면 설계를 가지고 회의하던 마지막 부분에 누군가가 아이디어를 내 놓았다.
"모바일 앱처럼 만든다면 학부모들도 손쉽게 이용할 것이다"
모바일 앱처럼 사용이 편리하고, 일반 PC 프로그램 처럼 기능성이 향상된 내용으로 화면을 설계 하였다. 그 결과가 아래와 같다.


스마트폰을 사용하는 사람이라면 누구나 손쉽게 접근 가능하도록 설계 하였다. 직관적이며 필요한 작업을 모두 수행할 수 있는 인터페이스이다. 사용자 메뉴얼이 없는 UI를 만들기 위하여 노력하였다.

5. 끝으로

 의뢰자의 좋은 평가와 함께 구몬 스마트펜 매니저 개발 프로젝트는 종료되었다. 물론 스마트펜 매니저 관련하여 2개의 프로젝트가 더 있을 예정이다.


바로가기 링크 :  구몬 스마트펜 매니저 다운로드 페이지 열기

- 2023-03-06 수정
  다운로드 페이지가 변경된듯 하다. 해당 페이지로 갈 수 없기 때문에 위의 링크를 제거 했다.


3단 6핀 스위치로 DC 모터의 회전 방향을 바꾸어 보자

1. 필요는 연구의 어머니 항상 느끼는 부분이다. 필요하지 않으면 연구하지 않으며, 필요하면 연구한다. DC 모터를 조건에 따라서 정방향 또는 역방향으로 회전시켜야 하는 필요가 생겼다. 처음에는 MCU 및 Relay Switch를 이용하는 방법을 생각...