May 5, 2024

디바이스마트 미디어:

[66호] 원하는 색상으로 제어가 가능한 아두이노 IoT 스마트 무드등 키트 -

2021-06-25

★2021 ICT 융합 프로젝트 공모전 결과 발표! -

2021-05-12

디바이스마트 국내 온라인 유통사 유일 벨로다인 라이다 공급! -

2021-02-16

★총 상금 500만원 /2021 ICT 융합 프로젝트 공모전★ -

2021-01-18

디바이스마트 온라인 매거진 전자책(PDF)이 무료! -

2020-09-29

[61호]음성으로 제어하는 간접등 만들기 -

2020-08-26

디바이스마트 자체제작 코딩키트 ‘코딩 도담도담’ 출시 -

2020-08-10

GGM AC모터 대량등록! -

2020-07-10

[60호]초소형 레이더 MDR, 어떻게 제어하고 활용하나 -

2020-06-30

[60호]NANO 33 IoT보드를 활용한 블루투스 수평계 만들기 -

2020-06-30

라즈베리파이3가 드디어 출시!!! (Now Raspberry Pi 3 is Coming!!) -

2016-02-29

MoonWalker Actuator 판매개시!! -

2015-08-27

디바이스마트 레이저가공, 밀링, 선반, 라우터 등 커스텀서비스 견적요청 방법 설명동영상 입니다. -

2015-06-09

디바이스마트와 인텔®이 함께하는 IoT 경진대회! -

2015-05-19

드디어 adafruit도 디바이스마트에서 쉽고 저렴하게 !! -

2015-03-25

[29호] Intel Edison Review -

2015-03-10

Pololu 공식 Distributor 디바이스마트, Pololu 상품 판매 개시!! -

2015-03-09

[칩센]블루투스 전 제품 10%가격할인!! -

2015-02-02

[Arduino]Uno(R3) 구입시 37종 센서키트 할인이벤트!! -

2015-02-02

[M.A.I]Ahram_ISP_V1.5 60개 한정수량 할인이벤트!! -

2015-02-02

[7호]Multi-CAN Analyzer를 이용한 차량 ECU 모니터링

07SHMA001

07SHMA001Multi-CAN Analyzer를

이용한 차량 ECU 모니터링

자료제공 : 마을소프트웨어

 

 

1. 들어가며

CAN (Controller Area Network)은 멀티마스터(Multi-Master) 브로드케스트 시리얼(Broadcast Serial) 버스 표준으로 실시간 제어 응용시스템 내에 있는 센서나 기동장치 등과 같은 주변장치들을 서로 연결해 주는 메시지 통신방식으로 마이크로 제어기용 네트웍을 가리킨다. CAN에서는 이더넷 등에서 사용되는 것과 같은 주소 지정 개념은 사용되지 않으며, 메시지는 해당 네트웍에서의 고유한 식별자를 사용하여 네트웍 내에 있는 모든 노드들에게 동시에 뿌려진다. 개개의 노드들은 이 식별자에 기반하여 해당 메시지를 처리할 것인지의 여부를 결정하며. 버스 접근 순서 역시 경쟁원리에 따라 메시지 우선순위가 배정되어 충돌이 없어 중단 없는 데이터 전송이 가능하다. 또한 differential twisted pair방식을 사용하여 노이즈에 매우 강한 특성이 있다. 보다 자세한 CAN에 대한 역사나 기술적인 내용은 본고에서는 생략하기로 하고 참고자료를 참고한다.
위와 같은 CAN 특성으로 최근 매우 안정성을 요구 하는 차량의 내부 네트워크로 CAN 통신을 사용하고 있는 추세다. 즉 주제어기인 ECU (Electronic Control Units) 끼리의 통신이나 각종 센서 및 작동기 등과 안정적인 통신을 위해 CAN이 사용되고 있는 것 이다. 따라서 CAN 통신을 이용하여 ECU가 이해할 수 있는 프로토콜로 통신을 하게 되면 차량 네트워크로부터 차량의 다양한 정보를 얻어 낼 수 있게 된다.
본고에서는 CAN 메시지를 송수신하고 메시지로부터 프로토콜을 해석할 수 있는 Analyzer를 소개하고, 그것을 통해 실제 차량 ECU로부터 다양한 정보를 모니터링 하는 방법에 대해 소개한다.

2. Multi-CAN Analyzer 소개

마을소프트웨어는 반도체 및 LED 생산설비 제조 전문업체로 그간 산업용 제어 분야의 경험을 기반으로 다양한 CAN 제품을 출시하였다. CAN 경험이 없는 일반 사용자들을 위해 보다 쉽게 접근할 수 있는 CAN2RS232 컨버터와, 인터넷을 통한 원격 제어를 위한 CAN2Ethernet 게이트웨이 등이 그것이다. 이 제품들은 주로 제어기 용도로 개발되었기 때문에 필터 설정을 통해 필요로 하는 메시지들만 CAN 버스로부터 수신하고 전송하는 제품으로 컨버터나 게이트웨이가 처리할 수 있는 용량 이상으로 CAN버스 메시지를 모두 처리 할 수는 없었다. 또한 절연되지 않아 현장 상황에 따라 컨버터가 파손되는 경우도 있었다. 이런 이유로 Analyzer 용도로는 적합하지 못해 High-End급 고성능 절연 CAN-USB Analyzer와 Multi-CAN Analyzer를 개발 출시 하게 되었다.

07SHMA001
본고에서 소개될 Multi-CAN Analyzer는 이름에서 유추 할 수 있듯이 동시에 여러 인터페이스 방식을 사용할 수 있는데, 그것은 RS232C, USB 그리고 Ethernet이다. 따라서 어떠한 환경이나 조건에도 쉽게 Analyzer를 쓸 수 있는 장점이 있다. RS232C는 최대 460800bps의 속도 까지 사용할 수 있으며 인터페이스가 UART밖에 없는 소형 제어기와도 쉽게 연결된다. USB는 PC와 외부 전원 없이 연결할 수 있기 때문에 노트북으로 현장에서 디버깅하는데 매우 유용하다. Ethernet은 현장에 설치된 CAN버스의 문제점을 원격지 사무실에서 모니터링 하는데 매우 적합하다.
본 Analyzer는 제공되는 전용 프로토콜을 통해 직접 Analyzer를 제어기들과 연결하여 고성능 컨버터 처럼 사용할 수도 있지만, Windows 응용프로그램으로 제공되는 전용 분석기인 CANTALKER를 통해 추가적인 소프트웨어 개발 없이 고수준의 CAN 프로토콜을 분석할 수 있다. 기본적으로 표준 프로토콜로 OBD-II, CANopen 그리고 DeviceNet등이 일부 지원되며 향후 J1939도 지원될 예정이다.

그림1. CANTALKER Windows Application

그림1. CANTALKER Windows Application

그 밖에 CANTALKER가 지원하는 주요 기능은 다음과 같다.

· 10us 단위 Timestamp
· CAN 송신 메시지 프로그래밍
· CAN 송수신 메시지 읽기 및 저장
(텍스트 파일로 export지원)
· 특정 CAN 메시지 모니터링 및 산술 계산 / 그래픽 표시 / 로깅(실시간/비실시간 지원)
· CAN 수신 메시지 소프트웨어 필터링 / 트리거
· CAN 송수신 메시지에서 특정 메시지 찾기 / 복사
· CAN 버스 통계자료 제공
· CAN 컨트롤러 상태 확인 및 제어
· 터미널
· 펌웨어 업그레이드

본고에서 ECU 모니터링에 사용될 장비와 프로그램은 Multi-CAN Analyzer와 CANTALKER이다.

3. ECU 모니터링

CAN통신을 지원하는 차량의 대부분은 OBD-II PID 프로토콜을 지원한다. ECU와 통신하기 위해서는이 프로토콜을 반드시 숙지 해야 하는데 그다지 복잡하기 않기 때문에 쉽게 구현될 수 있다. 그럼 OBD-II PID가 무엇인지 다음절에서 알아 본다.

3.1 OBD-II PID란 ?

OBD-II PID는 On Board Diagnostics Parameter ID의 약자로 정확하게 말하면 프로토콜이 아니라 코드를 의미 하며 SAE J1979 표준의 한 부분으로 1996년부터 북미의 모든 차량에 구현되었다. 이 코드는 고장 진단장치가 차량으로부터 데이터를 얻는데 사용되는데 데이터를 요청할 때 OBD-II PID 코드를 정해진 프로토콜을 이용하여 차량으로 요청하여 응답을 얻는다. 중요 PID종류와 관련 응답 데이터 형식은 표 1과 같다. 모든 PID는 모든 차량에서 지원하는 것은 아닌데, 지원여부는 PID 00의 응답 값으로부터 알 수 있다.
표 1의 공식에서 사용되고 있는 알파벳 A, B, C, D 등은 수신된 데이터의 바이트 순서와 일치한다. 즉 첫번째 바이트는 A, 두번째는 B, 세번째는 C, 그리고 네번째는 D이다.

Mode PID 수신크기 설명 Min Max 단위 공식
00 00 4 PID Supported [01-20] - - - Bit encoded [A7..D0]==
[PID 0×01..PID 0×20]
01 04 1 Calculated engine load value 0 100 % A*100/255
01 05 1 Engine Coolant Temperature -40 215 °C A-40
01 0C 2 Engine RPM 0 16383.75 rpm ((A*256)+B)/4
01 0D 1 Vehicle speed 0 255 km/h A
01 0E 1 Timing Advance -64 63.5 relative to #1 cylinder A/2-64
01 0F 1 Intake air Temperature -40 215 °C A-40
01 10 2 MAF air flow rate 0 655.35 g/s ((A*256)+B)/100
01 11 1 Throttle Position 0 100 % A*100/255
표1. PID 목록 및 설명

표 1의 Mode는 각 숫자별로 의미하는 내용은 표 2에서 알 수 있다. ECU의 각종 정보 데이터를 얻는 경우는 대부분 현재 데이터 표시용 Mode 0×01만 이용하면 되며, 차량의 고장진단 코드를 얻고자 하는 경우는 Mode 0×03를 사용한다.

Mode 설명
0×01 Show current data
0×02 Show freeze frame data
0×03 Show stored Diagnostic Trouble Codes
0×04 Clear Diagnostic Trouble Codes and stored values
0×05 Test results, oxygen sensor monitoring (non CAN only)
0×06 Test results, other component/system monitoring
(Test results, oxygen sensor monitoring for CAN only)
0x0A7 Show pending Diagnostic Trouble Codes
(detected during current or last driving cycle)
0×08 Control operation of on-board component/system
0×09 Request vehicle information
0x0A Permanent DTC’s (Cleared DTC’s)
표 2. Mode별 설명

차량으로부터 데이터를 얻기 위해 ECU로 PID를 전달하기 위한 질의 CAN 메시지 형태는 각 메시지 데이터 바이트 별로 다음과 같은 형식을 갖는다. CAN ID는 11비트를 사용하는 경우 반드시 0x7DF로 해야 한다.

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
추가데이터
바이트 수 0×02
Mode
0×01=show current data
PID Code 0×55 0×55 0×55 0×55 0×55

CAN메시지 전체 8바이트 중 첫번째 바이트(Byte0)는 몇 바이트의 정보가 오는지를 의미 하는 것으로 그 뒤로 Mode와 PID Code가 각각 1바이트씩 2바이트가 오기 때문에 2가 되며, 세번째 바이트(Byte2)는 PID코드가 위치하고 그 이상은 사용되지 않으므로 0×55로 채워진다.

이상과 같이 생성된 CAN 메시지를 ECU로 전송하면 ECU는 다음과 같은 형태의 CAN메시지로 응답한다. 이때 응답으로 오는 CAN ID는 주로 0x7E8이며, 0x7E9나 0x7EA가 될 수 도 있다.

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
추가데이터
바이트 수 3~6
Custom Mode
0×40+Mode 0×41=show current data
PID Code Value0(A) Value1(B) (Option) Value2(C) (Option) Value3 (D) (Option) 0×55

여기서 첫번째 바이트는 질의 메시지와 동일하게 이후에 올 추가 데이터의 크기이다. 두번째는 질의 메시지에서 사용된 Mode값에 0×40을 더한값과 같다. 내번째 부터는 질의한 PID에 대한 응답데이터가 온다. 데이터 크기는 1바이트부터 4바이트까지만 갖을 수 있어 마지막 Byte7은 사용되지 않아 0×55로 채워진다. 응답데이터는 첫번째 바이트부터 A, B, C, D로 명명되고 PID 표의 공식 부분에서 참조된다.

3.2 ECU 모니터링을 위한 전송 메시지 설정

이제 ECU로 전달해야 할 CAN메시지 형식을 알게 되었기 때문에 Analyzer에서 질의 메시지를 작성하여 보내 보고자 한다. 보낼 PID는 표 1에 나와 있는 것으로 하고, 각 PID별로 보내는 시간 간격은 10ms로 한다. 모든 PID를 모두 보내면 10ms 만큼 대기하고 다시 처음부터 PID전송을 반복 한다. 이것을 Analyzer의 “CAN Send Message Tool”에서 설정하는 방법은 다음과 같다.

1. Engine RPM 질의를 위한 CAN메시지 예는 다음과 같다.

07SHMA003
A. 전송하므로 Task Type은 “TX”
B. 11비트 질의이므로 CAN ID는 0×7DF, 2.0B와 RTR은 설정하지 않음
C. DATA는 “02 01 0C 55 55 55 55 55”로 함, 여기서 0×0C Engine RPM 질의 PID임.
D. 추가 반복하지 않으므로 Repeat는 “0”
E. 10ms이후에 다음 메시지 전송하므로 Interval은 “10”
2. 위와 같은 형식으로 나머지 PID에 대해서 모두 추가 한다.
3. 모든 PID가 전송된 후 10ms대기를 위해 Task Type이 “WAIT”, Wait Time을 10으로 설정한다.

07SHMA004
4. 다시 처음부터 반복 전송을 위해 Task Type을 “GOTO”, Goto Index는 “0”으로 설정한다.

07SHMA005
이렇게 모두 입력되면 “CAN Send Message Tool”창은 다음과 같이 보여지며 전송준비는 완료되며 (GO)버튼을 클릭하면 CAN메시지가 전송되기 시작한다. 이때 대부분 차량내에 사용되는 CAN통신 속도는 500kbps이므로 사전에 CAN통신 속도는 맞춰져 있어야 한다. 그렇지 않은 경우는 Analyzer의 Error LED가 켜질 것이다.

그림2

그림2

3.3 ECU 모니터링을 위한 수신 메시지 설정

3.1절에서 OBD-II PID가 포함된 질의 메시지에 대한 ECU 응답 메시지에 대한 형식을 알아 봤다. 이 정보를 토대로 CANTALKER에서 지원하는 “Monitor CAN ID & Data” 기능을 이용하여 응답 메시지로부터 실제 물리적인 값들을 추출하여 그래프로 표시하여 보자.
응답 메시지 형식과 표 1의 공식 부분을 참고 하여 “Monitor Condition”을 작성하여 보자. “Engine RPM”작성예를 보면 다음과 같다.

1. Item Title은 제목인 “Engine RPM”을 기록한다.
2. “CAN ID To Monitor”는 모니터링 하고자 하는 CAN ID를 의미 하므로 0x7E8이 된다.
3. “Engine RPM”의 경우 PID가 0x0C인데, CAN메시지 8바이트 중 세번째 바이트가 PID이므로 이 값이 0x0C인 메시지를 찾기 위해 Mask와 Compare는 다음과 같이 설정한다.
4. Mask는 세번째 바이트만 관심 대상이므로 0xFF로 설정하고, Compare값의 세번째 바이트를 0x0C로 설정한다. 이유는 “MSG & Mask == Compare”공식에 의해 각 바이트에 대해 모두 참이 되면 수신 메시지를 사용하게 된다.
5. 이렇게 수신 조건에 의해 걸러진 “Engine PRM” 메시지에서 Engine PRM에 관련된 데이터를 추출하기 위해 다음과 같이 설정한다.
6. Engine RPM값은 CAN 메시지 8바이트 중 4번째 바이트부터 2바이트 크기를 갖기 때문에 “Offset”은 3, “Length”는 2가 된다. 추출된 2바이트에서 첫번째가 상위 두번째가 하위 바이트가 되는 Big Endian형식이므로 “Big Endian”에 채크한다. 또한 공식에 의해 2바이트 값을 4로 나누거나 또는 0.25로 곱해야 하므로 “Multiply”에 0.25를 입력한다. 최종 생성되는 값은 산술 계산된 정수형이므로“Display Data Format”을“Scaled Integer”로 선택한다.
7. 결과적으로 생성된 물리값은 그래프로 표시하고 싶으므로 “Display Type”을 “Graph”로 선택하고 최대 최소값을 각각 0과 6000으로 한다.
그 밖의 다른 Item들도 위와 같은 형식에 의해 공식을 참고하여 비슷한 형식으로 아래 그림3과 같이 모두 입력한다.

그림3.

그림3.

3.4 실차량에서 모니터링 수행

3.2절에서 전송할 메시지들를 생성하고 3.3절에서 추출할 수신메시지 형식과 표시형식을 모두 설정하였으므로 실제차량에서 ECU에서 정보가 실제로 오는지 확인해 보자.
먼저 CAN 방식의 OBD-II가 지원되는 차량을 준비해야 한다. 대부분 최근에 생산된 차량은 거의 CAN 버스와 OBD-II를 지원하고 있다. 간혹 CAN은 지원하는데 OBD-II PID메시지에 대해 무응답하는 차량도 있으니 미리 확인해야 한다. Analyzer를 차량의 OBD-II단자에 연결하기 위해서는 OBD-II단자의 핀배열을 확인한 후 CAN 컨넥터와 맞게 케이블을 다음과 같이 제작해야 한다. OBD-II컨넥터는 디바이스마트에서 쉽게 구매할 수 있다.

그림4.

그림4.

그림4에서 OBD-II Male Connector의 PIN6은 CAN_H, PIN14는 CAN_L 이므로 Analyzer DB9 Connector의 PIN7번과 PIN2번에 각각 연결한다. CAN_H와 CAN_L은 잘못 연결되어서는 절대 안되므로 주의 깊게 작업해야 한다.
커넥터 작업이 완료되면, Analyzer를 차량의 OBD-II단자에 연결한다. 차량에 전원이 들어가거나 시동이 걸려있어야 CAN 통신이 되므로 사전에 전원을 넣거나 시동을 걸어 놓는다. 만약 컨넥터를 연결하자 마자 Analyzer의 Error LED가 점등 된다면, (1) 500kbps 속도 설정이 제대로 안되었거나, (2) CAN_H, CAN_L라인 결선에 문제가 있거나 (3) 종단저항 연결이 ON되어 있는 경우일 수 있으므로 다시 한번 확인해 본다.
모든 준비가 완료되면, “CAN Send Message Tool”에서 (Go)버튼을 클릭하여 ECU에 질의 메시지를 전송시킨다. 그러면 아래와 같이 질의에 해당하는 응답이 수신되면서 그 값과 그래프가 표시된다.

그림5.

그림5.

 

3.5 기타 차량 네트웍의 데이터 분석

차량에 Analyzer를 연결하여 보면 OBD-II PID질의 메시지를 보내지 않아도 수많은 메시지들이 수신되는 것 관찰 할 수 있다. 이 메시지들은 차량에 붙어있는 다양한 센서와 작동기 등과 ECU간에 정보 교류일 것인데 차량회사의 전용 프로토콜을 사용했을 것이다. 이에 알 수 없는 다양한 메시지들이 어떤 의미로 사용되는 것인지 분석하기 위한 방법을 본 절에서 제시하겠다.

그림6.

그림6.

그림6은 뉴카렌스 차량에서 수신한 메시지들에 대해 “CAN Bus Statistics” 기능을 이용하여 어떤 메시지들이 있는지 통계를 보여주고 있다.
OBD-II PID와 관련된 CAN ID를 제외하고 총8개의 CAN ID가 사용되고 있다. 각 ID에 대해 실시간으로 값을 모니터링 하려면 CANTALKER의 “Monitor ID & Data” 기능에서 통계창에서 보여지는 각각의 CAN ID에 대해 “CAN ID to Monitor”에 ID를 입력하고,“Display Data Format”을 “All Data”로 설정하며 [Logging]을 체크하는 식으로 보든 CAN ID를 다음과 같이 입력한다.

그림7.

그림7.

현재 차량에 연결되어 있는 상태라면 [RealTime]을 채크한 후 [Go]버튼을 클릭하면 실시간으로 수신되는 Data 내용을 볼 수 있으며 변화되는 내용이 쉽게 관찰될 수 있다. 만약에 이미 차량에서 데이터를 모두 수집한 상태에서 후처리로 확인하고 싶다면 [RealTime]을 끄고 [Go]버튼을 클릭한다. 처리가 완료되면 CANTALKER 프로그램에 있는 디렉토리에 “Item Title”을 파일이름으로 하고 확장명이 “log”인 파일들이 각각 생성된다. 예를들어 “test_271”에 대해서는 “test_271.log”로 생성된다.
그럼 관찰된 데이터로부터 좀더 깊이 분석을 하기 위해 329 CAN ID의 데이터를 확인해 보자. 다음은 수신된 메시지 로그의 일부이다.

20087.55           40 5D 7D 04 04 20 FF 14
20097.49           40 5D 7D 04 04 20 FF 14
20107.47           40 5D 7D 04 04 20 FF 14
20117.45           86 5D 7D 04 04 20 FF 14
20127.48           86 5D 7D 04 04 20 FF 14
20137.48           86 5D 7D 04 04 20 FF 14
20147.43           86 5D 7D 04 04 20 FF 14
20157.42           86 5D 7D 04 04 20 FF 14
20167.46           86 5D 7D 04 04 20 FF 14
20177.49           86 5D 7D 04 04 20 FF 14
20187.40           86 5D 7D 04 04 20 FF 14
20197.40           DE 5D 7D 04 04 20 FF 14
20207.63           DE 5D 7D 04 04 20 FF 14
20217.41           DE 5D 7D 04 04 20 FF 14
20227.37           DE 5D 7D 04 04 20 FF 14
20237.36           DE 5D 7D 04 04 20 FF 14

첫번째 컬럼은 timestamp이고 두번째가 메시지 내용이다. 메시지 내용을 보면 8바이트 중 첫번째 바이트만 변화되는 것을 볼 수 있다. 그럼 첫번째 컬럼에 대해 그래프로 확인하기 위해 “Monitor CAN ID & Data”기능에서 “test_329” item에 대해 “Calculation Information”과 “Display”를 다음과 같이 수정한다.

1. Offset             : 0
2. Length          : 1
3. Multiply       : 1
4. Add                : 0
5. Display Data Format : Scaled Integer
6. Display Type : Graph
7. Min                : 0
8. Max               : 256

이상과 같이 설정을 완료한 후 다시 [Go] 버튼을 클릭하면 다음과 같이 그래프가 그려지는 모습을 볼 수 있다. 정확하게 무엇을 의미하는지는 자동차 업계에서 일하는 사람이라면 알 수 있을지도 모르겠다.

 4. 맺음말

이상과 같이 차량의 ECU 정보값을 모니터링 하기 위해 OBD-II PID와 관련한 질의와 응답 프로토콜에 대해 확인하였고, 그 내용을 Analyzer에 적용하여 각각의 데이터를 수신하고 그래프까지 출력해 보았다.
필자도 그러했지만 많은 사람들은 정보가 없었을 때 차량의 ECU와 통신을 해서 각종 정보를 얻어내는 것은 자동차 회사에서 프로토콜을 공개하지 않는 이상 불가능 한 것으로 여겨 왔었다. 그러나 정말 단순한 OBD-II PID 프로토콜만 인터넷 검색으로 찾아본다면 차량의 각종 상태나 고장진단 등을 Analyzer로 매우 쉽게 해낼 수 있다는 것을 알게 되었다.
그 밖에 Analyzer에서 제공하는 CANopen이나 DeviceNet 프로토콜로 관련 프로토콜을 지원하는 다양한 장비들의 상태 체크나 고장진단 등에 활용할 수 있으며, 표준 프로토콜을 사용하지 않는 각종 장비나 차량 부품도 CAN버스 통계정보로 사용되는 모든 CAN ID를 찾아 낼 수 있고, 찾아낸 CAN ID에 대해 각각 실시간 모니터링 함으로써 그 메시지의 특성이나 프로토콜을 쉽게 알아 낼 수 있다.

5. 참고자료
http://terms.co.kr/CAN.htm
http://en.wikipedia.org/wiki/Controller_area_network
http://en.wikipedia.org/wiki/OBD-II#OBD-II
http://en.wikipedia.org/wiki/OBD-II_PIDs
Multi-CAN Analyzer & Converter User’s Manual (http://user.chollian.net/~ascbbs/can/MCA_100_Manual.pdf)

[7호]WORLD IT SHOW 2011

07HTWIT004

07HTWIT004

WORLD IT SHOW 2011

 

글 | 김장원 기자 jwkim0@ntrex.co.kr


2011년 5월 11일일 부터 14일까지 서울 삼성동 코엑스에서 2011 월드 IT쇼(World IT Show2011)가 열렸다.
Get It Smart(IT를 스마트하게)라는 슬로건으로 삼성전자, LG전자, SKT, KT등 전 세계 20여개국에서 약 500개의 IT관련 업체들이 참가하는 국내 최대 규모의 IT 전시회답게 첨단사양과 대중성 있는 스마트한 기술로 누구나 즐길수 있는 볼거리를 제공하였다.
전시장은 코엑스 1층과 3층으로 구성이 되어있었는데 1층에는 IT집합이라는 주제의 홍보관들이, 3층에는 디지털전자기기와 산업전자기기,모바일, 방송관련 홍보관이 자리잡고 있었다.
각 홍보관에는 스마트 모바일과 4G, LTE, Wifi, VolP, Antennas, Qr코드 서비스, 3D TV와 IPTV, 홈네트워크, 각종 디지털 영상기기, 전자정부 및 보안 등 각종 솔루션이 눈에 띄었으며 스마트기기들이 대세인것을 확실시 하듯이 스마트기기들의 각종 악세서리들이 즐비하였다.
삼성전자에서는 이번 전시회를 통해서 갤럭시 시리즈의 모바일 제품들과 3D기기, 홈씨어터 등을 선보였다.
그중 단연 눈에 띄는 제품은 최고의 스마트폰이라 광고하는 갤럭시 S2! 그리고어떠한 영상도 3D로 변환하여 즐길 수 있는 3D 컨버터와 블루레이3D TV, IPTV 등이었다.

07HTWIT001 07HTWIT008
Full HD 3D 블루레이(좌), 갤럭시 S2(우)

LG전자에서는 역시나 3D 분야의 최고 답게 TV, 컴퓨터 모니터, 모바일까지 3D로 승부하였다.

07HTWIT006 07HTWIT012
옵티머스3D(좌), 시네마 3D TV(우)

TV와 모니터에서는 타회사의 3D제품과 비교하여, 화질과 3D 구현 성능이 다르다는 것을 어필하였다.
그중 눈에 띄인 것은 옵티머스3D 스마트모바일이었는데 4.3인치의 큰 화면을 안경없이 3D화면으로 즐길수 있다는 점이 큰 장점인거 같다.
SK텔레콤은 3G이동통신보다 약 10배 가량 빠른 4세대 이동통신인 롱텀에볼루션(LTE)을 주력으로 스마트 CEO, T스토어 등 최첨단 스마트 기술에 기반한 다양한 서비스와 요즘 한창 주가를 올리고 있는 클라우징 기술을 선보였다.
KT는 역시 아이폰과 아이패드2를 주력으로 전자 기기들을 체험해 볼 수 있도록 하였고, 박찬욱 감독이 실제 아이폰으로 영화를 촬영할때 사용했던 장비가 전시되어 관람객들의 눈길을 끌었으며, NFC(근거리 무선통신)을 이용한 여러 기술들을 선보였다.
NFC란 전자태그(RFID)의 하나로 13.56Mz 주파수 대역을 이용하여 비접촉식 근거리 무선통신 모듈로써 10Cm의 가까운 거리에서 단말기 간 데이터를 전송하는 기술이다. 예를 들면 교통카드 대신 스마트폰으로 지하철을 타고, 도착한 카페에서는 스마트 메뉴판에서 메뉴를 클릭해 주문과 결재를 하는 등 다양한 서비스로 이용이 가능하다는걸 체험할 수 있었다.

07HTWIT011 07HTWIT010
NFC를 이용한 메뉴판(좌), 4G LTE와 3G WCDMA 속도비교(우)

또한 어린이들의 맞춤형 눈높이 교육시스템을 선보여 어린이 손님들의 눈과 마음을 끌었다.
기존의 3세대 WCDMA보다 7~8배 빠른속도로 4세대 LTE로 전향하기 위한 업체들의 치열한 경쟁도 느낄수 있었다.
4세대 이동통신은 LTE망은 7월 즈음 전국으로 확대된다고 하니 기대해 볼만하다.
그리고, 스마트폰과 주변기기, 악세서리 제품들이 눈에 많이 띄었다. 단순 편의를 위한 악세서리가 아닌 각자의 개성을 뽐낼수 있는 제품들도 많이 있었다.
이점에서 한가지 아쉬웠던건 볼거리 제공도 좋았지만 판매를 위주로 하는 부스도 생각보다 많았다는점이다.

07HTWIT009
각종 악세서리 판매 부스

또, 자기주도 학습 교육 컨텐츠가 많아짐으로써 스마트해진 IT기술력은 교육 부분에서도 확인할수 있었다.
특히나 닷코트를 사용한 업체들이 많았는데 그 중 네오랩의 리틀바이리틀 파닉스는 펜을 교제에 대면 그에 맞는 영상이나 사운드가 실행되어, 쉽게 따라할 수 있는 제품을 선보였고, 이지런에서 소개한 디지로브 북은 현실 세계와 가상의 체험을 결합한 증강현실(AR)기법으로 교재를 펼치면, 페이지에 있는 코드를 인식하여 책 안의 내용과 관련된 3D 영상을 화면에 함께 재생함으로써 아이들의 실습 교육에 활용할 수 있는 모습을 보여주었다.

07HTWIT003 07HTWIT002
이지런의 디지로브 북(좌), 지진격리 면진장치(우)

에스알시에서 출품한 Fish Robot 또한 눈길이 가는 제품중 하나이다. 이 제품은 구현방식이 와이어 방식과 관절형 두가지 타입이 있으며, 물고기의 움직임을 그대로 구현해 연구용 및 완구, 교육용 상품으로 활용이 가능하며 조종방식은 RF통신 및 블루투스 방식이며 리모콘으로 수동조작과 프로그램 및 센서에 의해 자율유영이 가능하도록 설계되어있었다.

07HTWIT007
에스알시의 Fish Robot

또 한가지 눈길을 끌었던 것은 얼마전에 있었던 일본 대지진의 여파일까 안정성과 보안성에 대한 제품들을 많이 볼 수가 있었다. 더 이상의 안전지대는 없다며 지진 피해에 대한 우려와 관심이 집중되고 있는 이때 지진 발생시 발생하는 충격과 진동으로부터 첨단기기를 격리, 보호시켜주는 장비들이 소개되었다.
상원티엔세스의 지진격리 면진장치는 설치시 고정형이 아니여서 분해와 재설치가 용이하다는 장점이 있는 제품이었다.

이번 2011년 월드 IT쇼는 4회째에 접어들었다. 매회마다 다른 트랜드와 엄청난 기술발전, 상용화를 보여주며 우리의 생활수준을 한 단계 높여주고 있다.
내년 5월에는 또 어떤 신기하고 즐거운 기술들이 우리를 반겨줄까 벌써부터 기대가 된다.

[6호]버려지는 CD-ROM으로 나만의 유니크한 CD-Player 만들기!

06PTBCD002

06PTBCD002버려지는 CD-ROM으로

나만의 유니크한 

CD-Player 만들기!

 

객원기자  | 이민주 webmaster@technicalmj.com

 

PC를 새로 조립할 때 굳이 새로 구입하지 않아도 되는 ODD(CD-ROM)는 주문하지 않는 경우가 많습니다.
왜냐하면 10년간 기능 추가 외에 뚜렷한 성능 변화가 없던 CD-ROM은 PC의 성능에 직접적인 영향을 주지 않고, 특수한 기능이 필요한 경우가 아니면 굳이 필요가 없기 때문입니다. 하지만, 한차례 CD-ROM에도 큰 변화가 찾아오고 한번의 교체를 하게 됩니다. 바로 EIDE(P-ATA)방식에서 S-ATA방식으로 바뀌면서, 기존의 CD-ROM은 사용하지 못하고 방치되거나 버려지게 되는 경우가 많습니다. 필자는, 구형 PC를 바꾸면서 버려지는 CD-ROM을 재활용 하여 CD Player을 만들어 보았습니다. EIDE방식의 케이블을 직접 접속하여 제어하고, LCD창과 버튼을 달아 CD Player처럼 사용할 수 있으며, 리모컨 학습 기능을 통해 가정에 있는 리모컨으로 편리하게 제어할 수 있습니다.

제작에 필요한 전자부품 / 공구

06PTBCD003 06PTBCD004
06PTBCD001

부품의 개수 상관 없이 한 개씩 모아 촬영했습니다.
사용된 부품 내역은 오른쪽 페이지 표-Parts List과 같으며, LCD를 포함한 모든 부품은 디바이스마트에서 구매 가능하며, LCD대신 VFD는 판매하지 않으므로 아세아 전자 상가 등에서 직접 구매하셔야 합니다.
부가적으로, 전원 어댑터(시거잭), CD-ROM, EIDE케이블, 오디오 케이블이 필요합니다. CD-ROM은 EIDE방식만 가능하고,
일부 디지털 출력 또는 아날로그 출력이 없는 모델이 있을 수 있으며, 모델에 따라 인식되지 않을 수 있습니다. 일반적으로 LG제품이 구형 제품부터 가장 최근 출시된 제품까지 호환성이 좋았고, 삼성 제품은 일부 인식이 안 되는 경우가 있었습니다.
사용가능한 CD-ROM 표(P.57)를 참조하시기 바랍니다.
제작에 필요한 공구는 인두와 에나멜선, 배선용 선, 납, 손 드릴, 니퍼가 있으며, AVR 마이크로컨트롤러에 프로그램을 다운로드 할 수 있는 ISP도 필요합니다.

Parts List
 부품명 (디바이스마트 검색어 기준)  사용내용  개별 예상단가  수량  수량가격
LM2576T-12 전원 1,800 1 1,800
LM2576T-5 전원 1,800 1 1,800
ATmega8515-16PU 컨트롤러 6,600 1 6,600
LMB162AFC-D 표시창 8,800 1 8,800
RING COIL 15파이(100uH) 전원 300 2 600
1N5822 전원 150 2 300
1N5404 전원 50 1 50
1N4004 전원 12 2 24
면LED(빨강) 14X7.5mm 표시창 800 5 4,000
2SC1815 전원 50 1 50
1/8W 5% Axial Resistor 103J (10KΩ) 전원, 컨트롤러 보조 - 7 -
1/8W 5% Axial Resistor 101J (100Ω) 표시창, 리모컨 수신 - 6 -
Hongxing H3323S Series-10KΩ LCD 콘트라스트 조정 220 1 220
RV16404-15SP 10KΩ 볼륨 조절용 600 1 600
E/C 50V 220uF (85℃) 전원 100 1 100
E/C 25V 2200uF (85℃) 전원 190 2 380
Ceramic 0.1㎌, 50V 전원 30 4 120
Ceramic 18pF, 50V 컨트롤러 보조 15 2 30
IRE-2C-D12S 전원 1,100 1 1,100
603LM 리모컨 수신 700 1 700
X-TAL 4M (ATS Type) Fundamental 컨트롤러 보조 290 1 290
ITS-1103D 입력스위치 100 4 400
RIC-DIP-40핀 컨트롤러 보조 580 1 580
핀헤더 PH01-40SS-G-14mm(2.54mm) LCD용 핀 350 1 350
핀헤더 PH01-80DS-G-14mm(2.54mm) VFD용 핀 550 1 550
핀헤더소켓 Single 1×16 Straight(2.54mm) LCD용 핀 헤더 240 1 240
핀헤더소켓 Dual 2×8 Straight(2.54mm) VFD용 핀 헤더 200 1 200
일반박스헤더 Dual 2x20pin Straight(2.54mm) EIDE 인터페이스 170 1 170
일반박스헤더 Dual 2x5pin Straight(2.54mm) ISP 다운로드 100 1 100
5264-08(무색) 표시창 또는 스위치 연장 50 4 200
5267-08(무색) 표시창 또는 스위치 연장 100 4 400
5264용 클림프전선 표시창, 스위치 연장 50 13 650
PJ-327 (핑크) 이어폰 출력 180 1 180
RCA-105K (빨강) 후면 라인출력 180 1 180
RCA-105K (흰색) 후면 라인출력 180 1 180
DC-005(2.5) 전원 120 1 120
전원 부품 실장 900 2 1,800
DH15A(방열판) U1~2 방열 380 2 760
부싱(3파이)-10개 U1~2 고정 40 2 80
PCB서포트용 나사(M3X10) U1~2 고정, PCB고정 30 16 480
차량용 파워잭컨버터 전원 2,000 1 2,000
퓨즈 6×30-3A 전원 70 1 70
퓨즈홀더 FH-304 전원 30 1 30
CD-ROM CD 플레이어 픽업(중고) - 1 -
EIDE 케이블 제어선(중고) - 1 -
파워 케이블 PC 파워에서 절단(중고) - 1 -
디지털, 아날로그 출력케이블, DAC등 - - - -

 

조립과정

06PTBCD005

만능기판에 IC소켓을 끼웁니다. 회로도를 보고 IC주변이 어떻게 연결될 것인지 생각하고 IC소켓의 위치와 방향을 정합니다.
IC와 가장 선 연결이 많이 되는 EIDE커넥터와 연결이 쉽도록 커넥터 위치를 잡아주는 것이 좋습니다.

06PTBCD006
IC소켓은 기판을 뒤집을 경우 떨어지므로 납땜을 합니다.
단, 뒤집어서 납땜 할 경우 IC소켓과 기판이 완전히 밀착되지 않을 수 있으므로, 손으로 잡고 납땜을 하는데, 우선 모서리 부분 한곳을 납땜 하고, 납을 녹인 상태에서 손으로 밀어주면 기판에 밀착되게 됩니다. 반대 위치에도 손으로 고정 후 납땜하여 완전히 밀착, 고정시킨 후 모든 핀을 납땜합니다.

06PTBCD007
AVR 마이크로컨트롤러를 사용하는데, 이 때 외부에 크리스탈을 접속하여 마이크로컨트롤러에 필요한 클럭을 공급해 줍니다.
IC의 18번 19번(크리스탈 연결 핀)에 가까운 위치에 부품을 배치합니다.

06PTBCD008 06PTBCD009

세라믹 콘덴서를 삽입합니다.
18pF세라믹 콘덴서는 크리스탈과 가까운 곳에 삽입하고, 0.1uF세라믹 콘덴서는 마이크로컨트롤러 전원부분(IC의 40번)과 가까운 곳에 삽입합니다.
콘덴서, 저항을 비롯한 부품의 다리는 길기 때문에 잘라내야 하는데, 기판에 밀착 후 구부리고 납땜하면 나중에 수리하거나 급히 필요하여 부품을 때어낼 때 힘이 들고, 옆 동판에 붙을 수 있으므로 다리는 구부리지 않고, 납땜한 후 잘라냅니다.

06PTBCD010
저항의 양 다리는 구부려 기판에 삽입합니다.
역시 납땜면에서는 구부리지 않고 납땜합니다.

06PTBCD011
EIDE커넥터(40핀 BOX 해더)를 꽂기 전 20번 핀은 제거합니다. EIDE케이블 커넥터에서 20번 핀은 핀이 끼워지지 않도록 막혀있는 경우가 있으므로 핀을 제거해야 모든 EIDE케이블을 꽂아 사용할 수 있습니다.

06PTBCD012 06PTBCD013

EIDE커넥터(40핀 BOX 해더)와 ISP커넥터(10핀 BOX 해더)를 기판에 꽂고, 납땜합니다.

06PTBCD014
Key Pad와 LCD(VFD)에 연결할 8핀 몰렉스(5264-08)를 기판에 꽂습니다.

06PTBCD015
전원 공급으로는 LM2576-12와 LM2576-5를 사용하는데, 입력 전압이 높을 경우 발열이 발생할 수 있으므로, 방열판을 부착해 줍니다. 방열판에는 나사에 부싱을 끼워 고정합니다.
부싱은 본래 절연지와 함께 방열판과의 절연을 목적으로 사용되지만, 여기서는 끝을 모르고 나사를 세게 조였을 경우 나사선이 뭉개지는 것을 방지하기 위한 목적으로 사용하였습니다.

06PTBCD016
방열판 다리는 기판 구멍에 들어가지 않으므로 2mm정도 되는 손 드릴을 이용해 구멍을 뚫어주었습니다.
1N5822, 1N5404 다이오드 역시 다리가 굵어, 손 드릴을 통해 구멍을 뚫어 주어야 합니다.

06PTBCD017
구멍에 맞추어 방열판을 끼워줍니다. 물론 LM2576 IC가 붙어 있으므로, 부품의 다리도 기판에 끼워줍니다.
기판의 구멍 간격은 2.54mm인데, IC의 다리 간격은 이것의 절반이므로 다리를 살짝 벌려주어야 합니다.
또한, 다리를 벌리게 되면 1번 핀과 5번 핀은 방열판에 닿을 수 있으므로 사진과 같이 앞으로 구부려 꽂습니다.

06PTBCD018
인덕터를 꽂습니다. LM2576과 함께 약간의 발열을 하는 부품이므로 서로의 간격을 멀리 하여 통풍이 잘되도록 하는 것이 좋습니다.

06PTBCD024
다이오드를 꽂습니다.
다이오드는 극성이 있으므로 주의하도록 합니다.

06PTBCD020
릴레이를 꽂습니다. 전원을 켜거나 끌 때 나오는 딸깍 소리는 이 릴레이에서 나오는 소리입니다.

06PTBCD021
전해콘덴서를 꽂습니다. 큰 용량의 전해 콘덴서와 인덕터는 몸통이 크고 무게가 있으므로, 글루건 등으로 살짝 고정해주는 것이 좋습니다.

06PTBCD022
트랜지스터를 꽂습니다. 트랜지스터는 방향이 있으므로 주의하도록 합니다. 트랜지스터 역시 다리사이 간격이 좁으므로 살짝 벌려 꽂는데, 완전히 밀착할 필요는 없습니다.

06PTBCD023 06PTBCD024

어댑터 잭을 꽂아야 하는데, 다리가 넓적해서 꽂기 곤란하므로, 니퍼나 아크릴칼 등을 이용해 기판 구멍 두 개 사이를 파내도록 합니다. 어댑터 잭 다리는 3개가 있으므로, 3개의 위치를 파내야 꽂을 수 있습니다.

06PTBCD025 06PTBCD026

부품을 다 꽂았으면 이제 뒷면에 배선을 해야 합니다.
단, 많은 전류가 흐를 것으로 예상되는 부분이나, 전원 부분은 굵게 처리 해주는 것이 좋습니다. 그래서 필자는 남는 핀해더를 이용해 전원부분 배선을 할 것입니다.
독자 여러분들께서도 핀해더를 이용하시거나, 전선 피복을 벗겨 납을 묻혀 이용하시거나 여러 가지 방법을 사용해 배선을 해주면 됩니다.
어디를 굵게 처리해야하는지 모르겠으면, 소스와 함께 배포된 회로도에 전원부분 굵게 칠한곳은 굵게 배선해주시면 됩니다.

06PTBCD027
신호 선은 일반 배선용 선을 이용합니다.
꺾임부분이 있을 경우 직각으로 꺾지 않고 45도로 두 번 꺾는 것이 좋습니다.

06PTBCD028
기판에 직접 배선할 수 없을 경우 점퍼선, 테프론선 등을 이용합니다. 필자는 에나멜선을 이용했습니다. 에나멜선은 문구점에서 파는 것이 아닌 전용의 에나멜선입니다.
에나멜선 역시 직각으로 꺾지 않도록 하고, 꺾을 때 손톱을 이용하거나 숙달되면 인두로 재빠르게 꺾습니다.
니퍼, 펜치등을 이용하거나, 인두로 오랫동안 대고 있으면 피복이 벗겨질 가능성이 있습니다.

06PTBCD029 06PTBCD030

사용하지 않는 컴퓨터 파워 서플라이에서 CD-ROM 전원 공급용으로 사용할 전원케이블을 잘라냅니다.

잘라낸 전원케이블은 피복을 벗겨 납물을 묻힌 뒤 기판에 연결합니다. 필자는 핀 해더를 이용해 부착할 수 있도록 하였습니다.

06PTBCD031
LCD에 핀헤더를 끼우고 납땜합니다.
핀헤더를 끼워서 LCD를 탈 부착할 수 있도록 해야 나중에 LCD를 재활용 할 수 있기 때문입니다.

06PTBCD032
LCD를 부착할 수 있는 기판을 만듭니다.
필자는 만능기판을 잘라 만들었는데, 핀헤더 사이즈만큼만 잘라 사용해도 무방합니다.
또, 남는 기판은 스위치 기판을 만드는데 사용됩니다.

06PTBCD033 06PTBCD034

LCD를 꽂을 수 있도록 핀헤더(Female)을 꽂습니다.
필자는 VFD모듈 또는 왼쪽에 접속 단자가 있는 LCD도 사용할 수 있도록 하기 위해 두 개의 핀헤더를 만들었습니다.
LCD콘트라스트 조정용 가변저항과 세라믹 콘덴서를 부착합니다. 가변저항은 LCD에만 해당되므로 VFD사용자는 3번핀을 접지 처리합니다.

06PTBCD035
4개의 스위치가 들어갈 크기의 기판을 만듭니다.
만드는 사람 취향에 맞는 스위치를 고르고, 만들고자 하는 케이스에 맞춰 스위치를 꽂습니다.

06PTBCD036
스위치 부분에 LED를 달고 리모컨 수신 센서를 꽂습니다.
LED는 사용자가 원할 경우 사용하는데, 필자는 면발광(Flat LED)제품을 사용하였습니다.
나중에 케이스에 조립 할 경우 위에 스위치 기능을 나타내는 이미지를 넣고 점등하면 이쁠 것 같아 빨간색 LED를 사용했습니다.

06PTBCD037
몰렉스에 클림프 전선을 끼웁니다.
클림프 전선은 기본 30cm정도로 긴 편이므로, 상황에 맞게 적당한 길이로 잘라 LCD기판과 스위치 기판에 연결합니다.

06PTBCD038
몰렉스 3핀에 클림프 전선을 끼우고, 이 전선은 휴즈 홀더와 연결합니다.
모두 만들었으면, IC를 소켓에 삽입하기 전에, 테스터기로 전원이 합선된곳은 없는지, 거꾸로 연결되지 않았는지 확인하고, 모두 조립한 뒤 테스트해봅니다.
모두 조립하여 전원을 연결한 후에도 IC나, 콘덴서를 손으로 만져가며 발열하는 부품이 없는지 확인하는것도 좋은 점검 방법입니다.

06PTBCD039
케이스는 취향에 맞게 제작하며, Flat LED에는 버튼 기능의 글씨나, 이미지를 삽입해 넣습니다.

 

펌웨어 다운로드 방법

펌웨어를 마이크로컨트롤러에 다운로드받기 위해서는 ISP가 필요하고, AVR Studio가 필요합니다. ISP종류에 따라 Ponyprog 등 다른 프로그램이 필요할 수 있습니다. 또한, USB형 ISP의 경우 별도 USB드라이버가 필요할 수 있으며 이 경우 ISP제조사에 문의하시기 바랍니다.

필자는 AVR Studio 4.18을 기준으로 설명합니다.
AVR Studio 4.18 다운로드 주소 : http://www.atmel.com/dyn/resources/prod_documents/AvrStudio4Setup.exe
CD-Player 펌웨어 파일(hex)은 http://www.lebsoft.co.kr/ntrex/diy_002.htm에서 다운로드 받을 수 있습니다.
AVR Studio 4.18을 설치하고 실행합니다.
상단 메뉴에 Tools -> Program AVR -> Auto Connect를 선택합니다.

06PTBCD055
Device는 ATmega8515를 선택하고, Read signature을 눌러 마이크로컨트롤러를 확인합니다.
납땜상태, ISP케이블 길이 등 문제로 아래 Setting을 눌러 다운로드 속도를 조절해야 할 수 있습니다.

06PTBCD054

빨간박스[...]를 눌러 다운로드 받은 hex파일을 불러온 후, Program을 눌러 다운로드 합니다.
캡쳐 화면처럼 창 아래 모두 OK가 표시되면 정상입니다.

06PTBCD056
퓨즈비트를 세팅해야 정상적인 동작이 가능합니다.
퓨즈비트는 캡쳐 화면과 무조건 똑같이 체크 하셔야 합니다. 잘못 체크 할 경우 마이크로컨트롤러가 고장 날 수 있습니다.

회로도

06PTBCD059

06PTBCD057

06PTBCD058

 

사용방법, 기능 소개

[cd-rom 인식]

06PTBCD040

처음 전원 공급시 LCD아랫줄에는 CD-ROM 정보가 표시됩니다. 보통은 CD-ROM 모델명이 표시되고, 모델명이 긴 경우 16글짜까지만 표시됩니다. 기본적으로 모델명이 표시되면 CD-ROM이 인식되서 사용가능하다고 생각하시면 됩니다.

[리모컨 학습]
전원을 인가하는 순간, CD-ROM 모델명이 표시되고,
이후 Play버튼을 누르면 리모컨 학습메뉴로 진입 한다는 화면이 뜹니다.

06PTBCD041
이 때, Play/Pause버튼을 누르고 3초정도 있으면, 리모컨 학습 메뉴로 진입합니다.

06PTBCD042
Play/Pause 버튼 -> Back/Rewind 버튼 -> Next/Fast Forward 버튼 -> Stop/Eject 버튼 -> 외부 제어 포트 -> 음소거 -> 전원 -> 진행시간 표시방법 -> 화면 밝기 -> 취침 타이머 순서로 리모컨 코드를 입력합니다.
버튼은 4개로 제어하지만, 리모컨으로는 다양한 부가 기능을 제어할 수 있는 것입니다. 리모컨 신호를 입력하면 리모컨 값이 화면에 표시되고, 이것을 확인하고, Play/Pause버튼을 누르면 Sorting! 이라는 표시와 다음 항목으로 넘어갑니다.

06PTBCD043
끝까지, 입력하면 Programed! 라고 표시되며 EEPROM에 저장하고, 입력도중 Stop/Eject버튼을 입력하면 Not Programed! 라고 표시되며 저장하지 않고 전원이 꺼지게 됩니다.
외부 제어 포트와 음소거 기능은 함께 사용하는 앰프와 연결해 필요한 기능을 제어할 수 있습니다.

06PTBCD044 06PTBCD045

[정지화면]

06PTBCD046

전체 트랙 수와, 전체트랙의 시간을 표시하고, 재생 대기 중인 트랙 번호와 이 트랙의 연주시간을 표시합니다.

[재생화면]

06PTBCD047
재생중인 트랙번호와 이 트랙의 연주시간, 진행률, 재생시간을 표시합니다.

[재생시간 표시 선택기능]

06PTBCD048 06PTBCD049

재생시간은 리모컨의 재생시간 표시버튼을 누르면 남은시간을 표시할 것인지, 진행시간을 표시할 것인지 선택할 수 있습니다.

[빨리감기, 되감기 지원]

06PTBCD050
빨리감기와 되감기를 지원하며, Next, Back버튼을 누르면 처음에는 1초씩 넘어가지만, 계속 누르고 있으면, 2초, 4초, 8초로 빨리감기/되감기 속도를 증가시켜 주는 기능도 가지고 있습니다. 이 속도는 FFx8, REWx8 형태로 표시됩니다.

[취침 타이머 지원]
06PTBCD051
취침 타이머 기능을 통해 지정된 시간만큼 재생 후 자동으로 전원을 OFF해주는 기능을 가지고 있습니다.
10분~80분, 타이머 OFF를 선택할 수 있으며, 타이머 설정 후 해당 시간에 도달하면 자동으로 전원을 Off해줍니다.

[일시정지/정지 기능]

06PTBCD052 06PTBCD046

일시정지 기능을 제공하여, 음악 감상 중 전화가 오거나, 택배가 와도 음악을 이어서 들을 수 있습니다.

[VFD, LCD 선택 가능]
06PTBCD053
LCD는 물론 호환되는 VFD모듈을 사용할 수 있습니다.
VFD모듈을 사용하게 되면, VFD화면 밝기를 4단계로 조절할 수 있는 기능을 가지고 있습니다.

사용 가능한 CD-ROM
EIDE방식의 CD-ROM 대부분 사용가능하나, 필자가 시험 한 목록을 적어보았습니다.

  순 회사 모델명 인식여부   오디오 출력   버그
 아날로그  디지털
 1 LG GSA-H44L(DVD-Multi)  가능  가능  불가능  최초 재생시 오디오 출력 무
 2 LG GCE-8527B(CD-RW)  가능 가능  가능  없음
 3 LG GCC-4320B(DVD-ROM)  가능  가능  가능  없음
 4 LG GCR-8521B(CD-ROM)  가능  가능  가능  없음
 5 LG CRD-8523B(CD-ROM)  가능  가능  가능  없음
 6 삼성 SCR-2430(CD-ROM)  불가능  - - -
 7 삼성 SC-148(CD-ROM)  불가능  - - -
 8 삼성 SM-352(DVD-ROM)  불가능  - - -
 9 ASUS CD-S520(CD-ROM)  가능  가능  가능  없음
10 Lite-On LTN-486S(CD-ROM)  가능  가능  가능  없음
11 Blaster Infra52X(CD-ROM)  불가능 - - -
12 TEAC CD-224E(CD-ROM)  불가능 - - -

사용 가능한 리모컨
기본적으로 도시바 TC9012와 NEC uPD6121 포맷을 학습시켜 사용하며, 누르고 있을 때 리피트코드가 출력되면 빨리감기, 되감기 기능도 리모컨으로 사용 가능합니다.

 순  회사  종류  사용 가능여부
1  LG  TV/VTR/DVD  가능
2  삼성  TV/VTR/DVD 대부분 가능, 빨리감기, 되감기 불가능
3  아남  TV 불가능
4 소니  TV 불가능
5 대우 일렉트로닉스  TV 불가능
6 삼성  미니 컴포넌트 불가능
7 파나소닉  미니 컴포넌트 불가능
8 산요  미니 컴포넌트 불가능
9 KT쿡 TV(다산, 삼성, 휴멕스)  IPTV STB 가능
10 스카이라이프(가온미디어, 삼성)  위성 STB 가능
11 아이트로닉스(IPASS ITE-1000)  ETCS 내비게이션 불가능
12 가온미디어(UPOP U48P)  내비게이션 PMP  가능

 

15ledpovleeminju 기자소개
제작 / 사진 / 글
이민주 객원 기자
현재 원주 한라대학교 전기전자 공학과를 재학중이며,
개인 홈페이지 http://www.itstyle.kr 운영중.

[6호] 위드로봇 무료강좌 기술자료 – 2차

06SCWITH011

06SCWITH0112차 릴레이 무료강좌 기술자료

영상 처리 시스템 소개

 

글 | 위드로봇(주) 김도윤대표

 

위드로봇 연구실 확장 이전 기념 릴레이 무료 강좌 2차 교육이 2010년 12월 11일 토요일에 성수동 위드로봇 본사에서 진행 되었습니다. 영상 처리 시스템에 대한 주제로 진행된 이번 강좌의 강의 내용을 참석하지 못한 디바이스마트 매거진 구독자들을 위해 간단히 소개하고자 합니다. 

센서 관점에서 영상 처리

자동화 시스템을 구성할 때 대상 시스템의 상태를 정확하게 파악하기 위해 다양한 센서들이 사용된다. 예를 들어 모터의 속도를 정확하게 유지하는데 관심이 있다면 타코메타(Tachometer) 또는 엔코더(Encoder)를 센서로 사용하게 될 것이고, 어떤 물체가 특정 위치를 지나갔는지 아닌지를 판단하기 위해서는 접촉식 스위치 또는 적외선 LED 방식의 비접촉 검출 센서를 사용하게 될 것이다. 자동화 시스템에서 사용되는 센서는 무수히 예를 들 수 있겠지만 이러한 많은 센서들 중에서 가장 많은 정보를 포함하고 있는 센서로는 영상(Image)을 취득할 수 있는 이미지 센서를 꼽는데 전문가들은 주저하지 않는다.

영상은 3차원 공간 상에 존재하는 물체들이 광원의 빛 입자를 반사하는 파장대(색깔)를 2차원 공간에 투영한 것으로 데이터 안에 공간에 대한 기하학적인 정보(크기, 모양, 두께, 각도, 형태, 존재 유무)뿐만 아니라 색상 정보에 의한 추가 정보(대상 물체간의 그룹핑, 표면의 결함, 각 물체의 인식, 사람일 경우 얼굴 인식, 성별 인식, 나이 추정 등)까지 알 수 있어 그 활용도는 무궁무진하다. 정보가 많다는 것은 그 데이터의 크기가 크다라는 말과 직결되고, 영상 데이터의 크기 문제 때문에 이전 기술로는 실시간 처리가 어려워 산업체에서는 활발히 사용하기가 어려웠다. 하지만 빠르게 발전하는 전자공학과 IT 기술에 힘입어 이제 주변에서 손쉽게 영상 데이터를 취득할 수 있으며, 데이터의 가공, 조작이 쉬워졌다. 따라서 조만간 우리 주변에 많은 부분에서 이러한 영상 센서를 사용한 제품군들을 접하게 될 것으로 예상되며, 이런 기술을 가진 기술자, 전문가들 또한 많이 필요할 것으로 예상되어, 디바이스마트 매거진 독자들에게 해당 기술을 소개할 목적으로 본 원고는 작성되었다.

영상처리 시스템의 구성

전형적인 영상처리 시스템은 영상을 취득하는 카메라, 취득된 영상 신호를 원거리로 전송할 수 있게 변경하는 인코더, 그리고 이를 다시 복원하는 디코더, 마지막으로 영상을 출력 또는 처리하는 PC 또는 임베디드 시스템으로 구성할 수 있다. 이 중 영상처리 분야에서는 디코더 대신 해당 기능을 강조한 이미지 그래버(Image Grabber) 또는 프레임 그래버(Frame Grabber)라는 표현을 더 많이 사용한다. 현재 시장에 나와있는 대부분의 카메라는 인코더를 카메라에 내장한 형태로 나오기에 다시 정리해 보면 카메라-이미지 그래버-PC 형태로 정리할 수 있고 아래 그림과 같다.

06SCWITH012
그림 1. 영상 처리 시스템의 구성

위드로봇에 많이 문의하는 내용 중에 하나가 “2~3만원하는 USB 웹캠으로 영상을 받아 PC에서 처리하는 형태로 시스템을 구성하면 안되나요?”이다. 결론부터 말하면 “문제없다”이다. 예전에는 웹캠의 영상을 사용자가 작성할 프로그램 영역으로 가져오기 위해 MS Windows OS를 사용하는 경우에는 Direct Show 기술을 미리 알고 있어야 했지만, 최근에는 OpenCV(http://sourceforge.net/projects/opencvlibrary/)와 같은 공개 비전 라이브러리를 이용하면 매우 손쉽게 웹캠 영상을 바로 취득할 수 있으며, 여러 영상 처리 알고리즘을 라이브러리 레벨에서 바로 이용할 수 있다. 하지만 복수 개의 영상을 얻어야 한다든지, 렌즈 화각을 변경해야 한다든지, 노출 시간을 조절해야 하는 부분은 USB 웹캠으로는 해결하기 어려운 부분이다. 따라서 영상 처리 분야에 입문하는 분들이라면 USB 웹캠과 OpenCV로 학습을 하다가 일정 단계 지식이 쌓이면 카메라와 이미지 그래버를 구매하여 본격적인 연구를 진행할 수 있는 시스템을 구축하는 것도 좋은 방법이다.

영상 처리에서 가장 중요한 광원

위에서 전형적인 영상 처리 시스템은 카메라-그래버-PC 세 가지 조합으로 구성된다고 설명했다. 하지만, 이 세 가지 전체를 합친 것보다 중요한 것은 광원이다. 영상을 얻으려면 물체 자체가 발광하지 않는 한 외부에 어떠한 광원이 있어야 하는데, 영상은 광원의 종류, 개수, 위치에 따라 큰 차이가 발생하게 된다.

예를 들어, 참치캔을 제조하는 회사에서 참치캔 윗면에 주름이 제대로 있는지 없는지 확인하는 검사 장비를 의뢰했다고 가정해 보자. 전형적인 환경에서 카메라로 참치캔 윗면을 촬영한다면 아래 그림 2처럼 나올 것이다. 이 영상에서 참치캔 주름을 잘 찾아내는 일은 영상 처리 분야에 지식을 많이 가진 고수들도 꽤나 난감한 일이다. 주름 부분이 도드라진 부분도 있지만, 그림자로 인해 반대로 어두운 부분이 섞여 있으며, 참치캔 표면에 인쇄되어 있는 글씨들도 영상 처리에 많은 영향을 미친다. 이 사진 하나로 참치캔 주름의 유무를 찾아야 한다면 꽤나 복잡한 영상 처리 알고리즘을 동원해야 하고, 그런다손 치더라도 다양한 참치캔에 일일이 적용해 보기 전에는 그 결과를 장담할 수 없는 시스템이 만들어진다. 하지만 광원을 바꿔 촬영할 수 있다면 이는 매우 손쉬운 문제로 바꿀 수 있다.

06SCWITH001 06SCWITH004 06SCWITH002 06SCWITH003
그림 2. 전형적인 참치캔의 윗면을 일반 광원에서 촬영한 영상 그림 3. 좌측 그림처럼 돔형 광원을 배치하고 거리를 달리하여 영상을 촬영하면 중앙과 우측의 영상을 얻을 수 있다.

위 그림3과 같이 돔형으로 생긴 광원을 이용하여 참치캔 적정 거리에서 영상을 하나 얻고, 광원을 참치캔에 좀 더 접근하여 또 다른 영상을 얻으면 중앙과 우측과 같은 영상을 얻을 수 있다.
두 영상을 비교해 보면 하나의 영상은 참치캔 주름이 그림자로 짙은 색으로 표현되어 있고, 다른 한쪽은 주름의 그림자가 사라진 것을 볼 수 있다. 두 영상의 차이를 추출하면 간단히 참치캔의 주름 부분을 파악할 수 있어 매우 손쉬운 문제로 바뀐다.

위 예에서 볼 수 있듯이 지능적이고, 고도로 복잡한 영상 처리 알고리즘보다 잘 선택한 광원으로 얻은 영상과 간단한 영상 처리 알고리즘의 조합이 훨씬 더 좋은 결과를 내는 경우가 많다. 가장 좋은 디자인은, 더 이상 뺄 것이 없는 디자인이라는 말이 있듯이 가장 좋은 시스템은 복잡한 것이 아니라, 간단하고 명료하면서 정확하게 동작하는 시스템이다. 아쉬운 점은 이러한 광원에 대한 연구는 학계에서 보다는 산업체 현장에서 더 강조되고 있기에 체계적인 매뉴얼에 의해 광원 선정 및 배치가 이뤄지기 보다는 현장에서 경험한 시행착오에 의해 결정되고 있다. 보다 많은 영상 처리 전공자들이 이러한 광원에 대한 여러 경험치를 공유하고 정리된다면 영상 처리 분야의 발전을 보다 당길 수 있을 것으로 기대된다.

너무나 넓은 영상 처리 분야

이러한 영상 처리 분야를 본격적으로 학습하려면 어디서부터 무엇을 하는 것이 좋을까? 앞에서 언급했듯이 영상 데이터 자체에 워낙 많은 정보가 들어있어 영상 처리의 목적에 따라 각각의 관심 분야가 달라지기에, 내가 최종적으로 무엇을 원하는가를 명확하게 알고 있어야 한다. 영상 처리에 관하여 권위 있는 AIA(Automated Imaging Association)에서는 다음과 같이 영상 처리 분야를 Machine Vision, Image Processing, Computer Vision으로 세 분류로 나눠났다. 각각의 특징은 여러 가지로 설명할 수 있겠지만 Image Processing과 Computer Vision 분야는 아무래도 그 차이점을 구분하기가 모호한 것이 사실이다. 따라서 위드로봇에서는 Computer Vision 분야 대신 Computer Graphics로 표현을 변경하고 그림 4의 좌측 표로 세 분류간의 차이를 설명하곤 한다.

06SCWITH006 06SCWITH005
그림 4. 좌측-AIA 에서 제안한 영상 처리 분야, 우측-위드로봇 관점의 영상 처리 분야 grouping

위 표를 보면서, 각 분야의 차이점을 따져보자. 입력으로 영상을 넣고 출력을 영상으로 얻는 것에 관심이 있는 경우는 Image Processing 분야가 된다. 만일 여러분이 포토샵과 같은 툴을 이용해 작업하는 분야에 관심이 있다면 이는 Image Processing 분야가 된다. 입력은 영상이 아닌데 출력이 영상으로 나오는 경우는 Computer Graphics 분야가 된다. 각종 3차원 기하학적인 정보와 광원의 속성들을 입력하여, 가상의 이미지를 얻어내는 분야가 Computer Graphics 분야이다. 세 번째로 영상을 입력하여 영상이 아닌 다른 데이터를 얻어내는 것에 관심을 가지는 분야가 Machine Vision 분야이다. 예를 들면 각종 영상 기반 검사 장치에서 제품에 하자는 없는지, 인쇄는 제대로 되었는지 등을 영상을 통해 파악하는 경우는 Machine Vision 분야에 속하게 되는 것이다. 마지막으로 영상이 아닌 것을 넣어 영상이 아닌 정보를 얻는 것은 당연히 영상 처리 분야에 속하지 않으므로 이 자리에서 언급할 필요는 없어 보인다.

위에서 소개한 세 분류는 각각의 목적에 따라 알아야 할 지식, 관심을 가지는 방법론들이 서로 다르다. Image Processing을 전공하는 사람들은 주로 2D Signal Processing에 관심이 많다. 2D Matrix로 표현되는 선형 필터를 설계하거나, 압축을 위해 Mpeg을 연구하는 분들이 이 부류에 속한다. 반면에 Machine Vision의 경우는 카메라 내부, 외부의 기하학적인 정보(Intrinsic, Extrinsic Parameter)를 정확하게 얻어내기 위한 카메라 캘리브레이션(Camera Calibration)이 가장 기초가 되며 한 장의 영상으로 원하는 정보를 얻지 못하는 경우 여러 장의 이미지에서 원하는 데이터를 추출하는 Multi-view Geometry에 관심을 가진다. 자신이 현재 해결하고자 하는 영상 처리 문제가 어디에 속하는 문제인지 파악하는데 어려움을 겪고 있는 독자가 있었다면, 위 표로 조금이나마 도움이 되길 바란다.

색의 수학적 표현

우리는 초등학교 시절부터 색은 3원색으로 구성되며 Red, Green, Blue (RGB)라고 배워왔다. 정말 색은 R + G + B의 조합으로 구성될까? 특정 색이 RGB로 표현된다는 뜻은 수학적으로 보면 3가지 색상이 각각의 좌표축을 이뤄 공간을 형성하며, 이 공간이 벡터 스페이스가 되어야 한다. 하지만 RGB 는 단지 인간의 편의에 의해 만들어진 공간이기에 RGB 공간 상에서는 일반 대수 연산이 아무런 의미를 가지지 못한다.

06SCWITH008 06SCWITH007
그림 5. RGB 공간에서 색의 표현

설명이 복잡하니 좀 더 쉽게 설명해 보자. 어떤 물체의 색상이 잘 칠해졌는지 잘못 칠해 졌는지 판단하는 영상 처리 시스템을 만든다고 가정해 보자. 카메라로 물체를 촬영하여 색상 정보를 추출한 뒤 내가 원래 가지고 있는 색상과 얼마나 차이가 나는지를 어떻게 프로그램 할 것인가?

RGB 공간에서 프로그램 한다면 원래 알고 있는 색상의 각각 R, G, B 값과 측정한 물체의 R, G, B 값을 빼서 그 차이가 크면 원본과 차이가 많이 난다고 할 수 있을 것이다. 그런데 R 값의 차이와 G 값의 차이는 1:1 같은 의미를 가지는가? 어떤 샘플은 G와 B는 일치하는데 R 값은 차이가 Alpha 만큼 났고 또 다른 샘플은 R과 G는 일치하는데 B 값은 Alpha 만큼 났다. 그러면 이 두 샘플은 원본과 비슷한 정도로 차이가 나는 걸까? 아쉽게도 RGB 공간은 벡터 스페이스가 아니기에 이러한 뺄셈은 서로 비교가 불가하다(정확한 표현은 벡터 스페이스가 아니면 뺄셈이라는 연산이 정의가 되지 않는다). 원리가 이러한데 아무런 사전 지식 없이 색상의 차이를 RGB 공간에서 비교하겠다고 프로그래밍을 작성한다면 아무리 복잡한 알고리즘을 들이민들 해결책을 찾기란 꽤나 어려울 것이다.

다행히 벡터 스페이스 정의를 만족하는 CIE 색공간이 정의되어 있으며, RGB 공간을 조금은 복잡하지만 CIE 색공간으로 바꿀 수 있다. CIE 공간에서는 위에서 설명한 색상 차이를 정확하게 계산해 낼 수 있다. CIE 공간으로 바꾸는 수식이 꽤나 복잡하여 연산량이 많기에 산업체 현장에서는 CIE 공간 효과를 볼 수 있는 YUV나 YIQ 색공간에서 위와 같은 작업을 대신하기도 하지만 엄밀한 의미에서 이 공간들도 벡터 스페이스 정의를 만족시키지는 못한다.

영상 전송 방식

앞의 글에서 영상 신호를 원거리로 전송하기 위해 특정 신호 규약으로 인코딩을 한다고 밝혔다. 일반적인 CCTV 카메라들은 국내에서는 NTSC 신호 규약으로 아날로그 방식으로 전송하고 있으며, 웹캡에 사용되는 CMOS 센서들은 ITU BT.601 또는 BT.656으로 전송한다. 영상 처리를 하려면 이러한 신호를 다시 풀어 접근이 가능한 메모리 영역에 영상을 집어 넣어야 하기 때문에 이러한 전송 방식에 따른 특장, 장단점을 잘 알고 있어야 한다.

아날로그 전송 방식은 국내의 경우는 거의 예외 없이 NTSC 방식을 따르므로 NTSC 신호를 디코딩 할 수 있는 장치, 즉 이미지 그래버가 필요하다. 이러한 이미지 그래버는 PC에 연결하는 방식에 따라 다시 PCI(또는 PCI Express) 방식과 USB 방식으로 나뉜다. CPU 점유율, 전송 지연 시간, 영상의 품질 등에서는 아무래도 PCI 방식이 USB 방식에 비해 낫다. 하지만 PCI 방식일 경우 부피가 큰 데스크톱 PC에만 설치가 가능하므로, 이동이 잦고 노트북이나 PCI 슬롯이 없는 환경에서는 USB 타입의 이미지 그래버가 필요하게 된다. 이러한 이미지 그래버를 사용하면 NTSC 신호로 전달되는 영상 신호를 사용자가 접근할 수 있는 영역까지 전달하는 라이브러리를 제공하므로 손쉽게 프로그래밍 할 수 있다.

CMOS 센서의 경우 BT.601/656 데이터 신호를 PC에서 직접 받을 수 있는 장치는 없다. 따라서 이 신호를 기존 PC가 가지고 있는 USB나 기타 인터페이스에 맞게 변형하여 전달해야 하는데, 아직 시장이 형성되지 않은 관계로 상용품은 찾기 어려우며, 주로 개발 용역 과제 형태로 진행된다. 특정 CMOS 센서를 이용해서 시스템을 구축해야 하는 경우라면 외주 용역 형태로 개발 또는 자체 개발을 해야 할 것이며, 센서 모델이 딱히 정해지지 않은 경우라면 일반 웹캠을 이용하는 것도 한 가지 방법이다.

임베디드 비전 시스템

1990년대까지만 해도 영상 처리는 고가의 PC에서도 실시간으로 처리하기 어려울 만큼 연산량이 많은 분야였다. 하지만 눈부시게 발전하는 반도체 기술로 인해 이제는 손바닥에 올라갈 만큼의 조그마한 임베디드 마이크로프로세서 보드들이 2000년대 중반에 나온 PC의 성능만큼을 가지게 되어 매우 복잡한 알고리즘이 아니면 이러한 임베디드 보드에서도 실시간 처리가 가능하게 되었다.

06SCWITH009 06SCWITH010
그림 6. 2011년 하반기 출시 예정인 Smart-I 플랫폼

위드로봇에서는 이러한 시대의 흐름에 맞춰 Smart-I 라는 임베디드 비전 플랫폼을 만들어 출시할 계획이다. 실수 연산이 가능한 ARM11 프로세서와 CMOS 1.3M 화소의 카메라를 내장하고, PC와는 USB로 연결이 된다. 이 보드에는 OpenCV가 이식되어 있으며, PC쪽으로 영상을 USB를 통해 전송하여 PC에서 처리 결과를 바로 확인할 수 있다. 또한 PC쪽에서 작성한 알고리즘이 별다른 변경 없이 바로 Smart-I 플랫폼에서 동작할 수 있도록 환경을 구축하여 보다 편리하게 영상 처리 개발자들이 임베디드 비전 시스템을 사용할 수 있을 것이라 기대하고 있다. Smart-I 플랫폼은 2008년도에 그 원형이 개발 완료되었지만, 이러한 편리한 기능을 갖추기 위해 시간이 많이 소요되었으며, 2011년 올해 드디어 공개할 수 있을 것으로 보인다.

인간의 시각 시스템과 비교

마지막으로 영상 시스템은 인간의 시각 시스템과 그 구조, 구성이 매우 유사하기에 인간의 시각 시스템과 자주 비교되곤 한다. 카메라의 해상도, 즉 화소는 인간의 망막에 있는 시세포와 동일한 기능을 한다. 디지털 카메라의 성능을 비교할 때 몇 만 화소인가를 이야기하는데, 최근 시장에서 많이 판매되는 디지털 카메라의 경우는 약 천 만화소급이 많이 보인다. 그렇다면 인간의 시세포는 몇 만 화소쯤 될까? 재미있게도 1:1 비교가 조금은 힘들다. 디지털 카메라의 화소는 영상을 얻는 전체 영역에 같은 분포로 배치가 되어 있지만 인간의 경우는 그렇지 않기 때문이다. 그 이유는,

1. 인간의 망막에는 흑백 명암만을 구별하는 간상체(Rod)와 색상을 인식하는 추상체(Cone)로 나눠져 있다.
2. 추상체와 간상체의 배치가 디지털 카메라의 화소처럼 바둑판 모양으로 균일하게 배치되어 있지 않고, 망막 중심에 집중적으로 배치되어 있다.
3. 일반 카메라는 렌즈와 센서가 하나지만, 인간은 두 개다.

1번을 상세히 설명해 보면 인간의 눈에는 흑백 센서와 컬러 센서가 따로 존재한다는 뜻이 된다. 하나의 눈에 300만개 이상의 추상체가 있는 것으로 알려져 있다. 생각보다 적은 수치인데 반면 흑백 명암을 구별하는 간상체는 약 1억개 이상으로 추정된다.

2번의 내용은 컬러를 인식하는 추상체의 경우 눈을 움직여 어느 한 곳을 응시할 때, 상이 맺히는 망막에 집중적으로 분포하고 그 외 지역에는 듬성듬성 배치되어 있다. 이러한 이유로 우리는 무엇인가 집중적으로 보려고 할 때, 고개와 눈동자를 돌려 관심있는 물체를 응시하는 습관이 나오게 되는 것이다.

3번 내용은 매우 복잡하다. 아직까지도 인간이 3차원 공간을 어떻게 인지하는지 전문가들 사이에서도 의견이 분분하다. 확실한 것은 하나의 2차원 이미지로는 3차원 공간에 대한 정보를 얻을 수 없기에 눈 두 개를 이용하여 사라진 3차원 공간에 대한 정보를 복원하는 것인데, 단순히 이러한 스테레오 매칭만으로는 인간의 뛰어난 인지 능력을 설명하기에는 부족하다. 최근 뇌공학자들의 집중적인 연구에 의해 밝혀진 부분은 단순히 영상이 뇌로 전달되는 경로(feed-forward path)만 있는 것이 아니라, 뇌에서 다시 되먹임 경로(feedback path)를 통해 상위 레벨의 정보가 하위단으로 내려오는 부분이 있다는 점이다. 이는 단순히 두 개의 눈으로 들어온 정보만으로 3차원 공간을 인지하는 것이 아니라, 기존 학습에 의해 인지하고 있는 정보를 추가로 이용하여 공간을 인지한다는 가설을 뒷받침하는 강력한 증거이기도 하다. 스테레오 비전 시스템은 이 주제만으로 한참 설명을 해야 하므로 다음 번 디바이스마트 매거진을 통해 소개하기로 한다.

마감하며

영상 처리 기술을 소개한다며 정작 영상 처리 알고리즘에 대한 이야기는 한 마디도 언급이 안되었다. 이는 디바이스마트 매거진 독자층을 고려한 것인데, 현재 영상 처리 분야에서 활동하시는 분이라면 최근 이슈가 되고 있는 알고리즘의 동향(예를 들면 SIFT, SURF 등등의 특징점 추출 알고리즘)의 소개를 기대했을지 모르겠다. 하지만 위드로봇에서 공개강좌를 했을 때 접한 대다수 분들은 영상 처리에 대해 관심을 가지고 막 시작하려는 분들이 대부분이었기에, 우선 본격적인 알고리즘이나 이론을 소개하기에 앞서 영상 처리 분야가 이런 것이고 이런 부분이 중요하다는 점을 강조하고 싶었다. 다음 번 원고(스테레오 영상 및 3D Vision 기술)도 현재 작성 중인데 이 때 알고리즘과 이론들을 설명하는 것으로 이번 호를 마친다.

[6호]2010 캠스톤 디자인 공모전 – 소형 인공위성(CANSAT) 개발

06FCAPD029

06FCAPD0272010 디바이스마트

캡스톤 디자인 공모전 입선작

소형 인공위성(CANSAT) 개발

 

팀명 : Dreamers

참가자 : 한국항공대학교 항공우주 및 기계공학부
[이원규, 최미미, 이찬형, 안도현, 장병규]

 

DREAMERS 팀 구성 및 소개

06FCAPD068 06FCAP075 06FCAP076
성명 이원규 최미미 이찬형 안도현 장병규
담당분야 SYSTEM
(팀장, GPS)
PAYLOAD
(카메라,온도센서)
CS(통신),
EPS(전력)
OBC
(마이크로콘트롤러)
SMS
(외형설계 및 하드웨어)

현재 한국 항공대학교 항공우주 및 기계공학부에 재학 중인 4학년 학생들로 구성된 팀이며, 평소에 마이크로 컨트롤러를 이용한 로봇제작에 관심이 많은 이들로 구성되었다.
현재 학교 연구 과제에서도, 같은 팀으로 활동하고 있으며, 디바이스마트 캡스톤 공모전에 제출한 작품「고도 500m에서 무선 통신이 가능한 소형 인공위성(CANSAT)」개발과 유사한 로켓에 탑재하여, 대기 정보를 얻을 수 있는 소형 인공위성(캔셋)을 제작 중에 있다.

캔셋(CANSAT)의 정의

음료 캔 사이즈와 무게(400g이하)를 가진 소형 인공위성이다. 학생들의 인공위성에 대한 전반적인 이해 증진에 목적이 있으며, 이에 매년 국제적인 경진대회가 열리기도 한다 (www.cansatcompetition.com/Main.html). 이런 캔셋으로 이번에 우리가 개발한 모델은 KUMSAT-1A이다.

임무목적 및 시나리오

06FCAPD001

그림1 KUMSAT-1A의 임무 흐름도

KUMSAT-1A는 그림1에서 보듯이 기상 측정용 헬륨 풍선을 이용하여 고도 500m에서 사진 촬영과 온도 측정, 위치정보의 송신 등의 임무를 수행한다.
주어진 임무는 크게 2단계로, ‘초기단계’와 ‘임무단계’로 나뉘어져 운용된다. 우선 전원을 켜면 초기단계가 시작되는데, 이 상태로 GPS 신호를 안정적으로 받을 때까지 대기한다. GPS 신호가 안정적으로 수신되는 것을 확인한 후(약 5분소요)에, 임무단계로 돌입하며 기상 관측용 풍선과 연결 된 상태로 고도 500m까지 상승한다. 목표 고도 500m(또는 1km도 가능)에 이르러 지상국은 KUMSAT-1A로부터 무선으로 사진을 전송 받는다.
지상국에서는 무선으로 사진을 전송받기 위해서 KUMSAT-1A에 Command를 전송하게 된다. 무선으로 사진을 전송 받는데 소요되는 시간은 약 15분 정도이다. 무선 사진 전송이 완료된 후 지상국에서 보내는 Command에 의해, WCD(Wire Cutting Device)의 니크롬선이 가열되어, 기상풍선과 연결되어있는 선을 끊고, KUMSAT-1A는 풍선으로부터 분리된다. 분리 이후 낙하산을 전개하여 낙하하며, 매 6초마다 촬영한 이미지 데이터를 메모리카드에 저장하고, 동시에 낙하하면서 측정한 대기온도와 위치정보를 지상국에 전송한다. 마지막으로 지상국에서 수신된 위치정보(경도·위도)를 토대로 지상국 소프트웨어를 이용하여 KUMSAT-1A의 위치를 파악하여 회수한다.
KUMSAT-1A의 시스템은 실제 인공위성과 같이 크게 탑재체와 버스(Bus)시스템으로 나눌 수 있으며, 버스시스템은 다시 기계 및 구조계(Structure Mechanical Subsystem, SMS), 탑재컴퓨터(On Board Computer, OBC), 전력계(Electrical Power Subsystem, EPS) 및 통신계(Communication Subsystem, CS)의 네 개의 서브시스템으로 구성된다.

기계 및 구조계 (SMS)

기계 및 구조계는 전체 시스템의 제한된 질량 요구조건 내에서 탑재체와 탑재컴퓨터, 통신계, 전력계의 각 부품이 구조적으로 간섭과 배선을 고려하여 개발하였다.
KUMSAT-1A의 질량배분은 표1과 같다.

Subsystem 부품명 무게(g)
탑재체  Camera  10
 GPS 10
 Thermometer 5
기계 및 구조계 Main structure 130
 Wire Cutting Device 5
탑재 컴퓨터  Main board 40
 SD Memory & Memory socket 10
전력계  Battery 80
 EPS board  50
통신계  RF modem  40
 Antenna  30
TOTAL KUMSAT  410
표1 질량배분

KUMSAT-1A 구조체의 재료는 Aluminum-7075를 사용하였으며, Aluminum-7075의 물성치는 표2와 같다.

재료 Aluminum-7075
극한응력 (MPa) 570
항복응력 (MPa) 280
절대신장율 (%) 11
탄성계수 (GPa) 72
표2. 재료의 물성치

로켓이 발사되는 과정에서 KUMSAT-1A는 약 9G의 중력가속도를 받게 되고, 설계상의 안전계수 2를 적용하면 88.2N의 하중을 받게 된다. 이 경우를 고려하여 ANSYS를 이용, 응력 해석 결과는 그림2와 같다. KUMSAT-1A에 작용하는 최대 응력은 18.756MPa로 재료의 항복 응력인 280MPa에 비하여 매우 작아 하중을 충분히 견딜 수 있을 것으로 보인다.

06FCAPD002 06FCAPD003 06FCAPD004
그림 2 그림 3 그림 4

KUMSAT의 기본 골격은 그림3과 도면1~5와 같이 Main Panel, 두 개의 Side Frame 그리고 Top Cap과 Bottom Cap으로 구성되어 있다. Side Frame의 크기는 2mm×20mm×123mm이며 하중을 지탱하고, 외부에서 올 수 있는 충격 요소로부터 내부를 보호하는 역할을 한다. Main Panel은 2mm×66mm×119mm의 크기로 각 서브시스템의 부품들을 고정하고 GPS 수신기와 카메라가 위 아래 Cap에 잘 고정되도록 설계하였다. Top Cap과 Bottom Cap은 크기가 Φ66mm×10mm로 카메라와 안테나, GPS가 외부를 지향할 수 있도록 하며, 특히 Bottom Cap에는 낙하산을 연결할 수 있도록 하였다.
각 부품의 배치는 그림4에 나타내었다. 이것은 KUMSAT-1A의 부품 배치인데, 풍선과의 연결을 끊기 위한 Wire Cutting Device(WCD) 때문에 배터리는 두 개가 장착된다.

도면 1 ~ 5 보기

도면 1. Top Cap

도면 1. Top Cap

도면 2. Bottom Cap

도면 2. Bottom Cap

도면 3. Side Frame

도면 3. Side Frame

도면 4. Side Frame

도면 4. Side Frame

도면 5. Main Panel

도면 5. Main Panel

06FCAPD010
조립을 위한 준비물은 다음과 같다. 원할 한 조립을 위해 니퍼와 롱노즈 및 칼, 육각렌치 등을 준비하였다.

06FCAPD012 06FCAPD011

위에 사진과 같이 탑재체를 볼트와 너트로 고정하는 방식을 채택하였다.
06FCAPD013
볼트와 너트로 체결이 힘든 곳은 케이블 타이를 이용하여 체결한다.

06FCAPD014 06FCAPD015

카메라와 안테나는 아래를 지향하게 배치하며, GPS는 하늘을 향하게 배치한다.

06FCAPD016 06FCAPD017
OBC와 EPS RF Modem, SD Memory, Batteries

체결을 완성한 모습이다.

06FCAPD018 06FCAPD019
WCD(Wire Cutting Device)가 장착된 모습 완성된 KUMSAT
06FCAPD020 06FCAPD021

낙하산은 위에 사진과 같이 장착이 되며, 낙하 속도 3m/s로 설계하여 장착하였다.
기상 풍선은 KUMSAT-1A의 무게 및 낙하산 무게, 낚시 줄 및 기타 외부환경요인을 감안하여 2330g을 들어 올릴 수 있는 것으로 선택, 사이언티픽 세일즈에서 30$에 구매를 하였다.

06FCAPD022 06FCAPD023
http://www.scientificsales.com/8237-Weather-Balloon-300-Grams-Natural-p/8237.htm
06FCAPD025 06FCAPD028

KUMSAT은 기상풍선과 낚시줄로 연결되며 낙하산 또한 낚시줄에 의해 감싸지는 형태를 가진다.

06FCAPD06 06FCAPD027 06FCAPD029

Payload

1) 탑재체 스펙 현황

·카메라 모듈

06FCAPD030

- Image sensor type : CMOS
- mage data type : JPEG
- Size : W20 x L28 x H24
- Mass : 11g
- Interface : UART
- Power consumption : 200mW

·GPS : FGPMMOPA1

06FCAPD031

- High Sensitivity -165dBm
- Position Accuracy : < 3m
- Cold start under 37 seconds(typical)
- Maximum acceleration of 4G
- Power consumption : 335mW

· 온도센서 : Digital Thermometer

06FCAPD032

- 3-wire interface
- 9-Bit Resolution
- Measures temperature range : -55˚C ~ +125˚C
- Converts temperature in 1s at least (max)
- DIP package

2) CMOS 카메라 모듈

KUMSAT의 주요 탑재체는 CMOS 카메라이다. 이 카메라 모듈은 탑재컴퓨터와 UART 통신이 가능하며, 파일 크기가 작은 JPEG 형식을 지원하기 때문에 빠른 데이터 통신이 가능하다. 또한 이미지 크기를 640×480, 320×240, 160×128, 80×64(pixel)의 네 가지 중 하나로 선택할 수 있는데, 640×480의 경우 파일 크기가 약 40kB 내외이며, 320×240의 경우에는 약 10kB 내외이다. 파일 크기가 10kB일 경우 메모리카드에 사진 한 장을 저장하기까지 약 6초의 시간이 걸리며, 이 시간은 파일 크기에 비례한다. 따라서 640×480 크기로 찍을 경우, 임무 시간 내에 촬영 가능한 사진 수에 큰 제약을 받으므로, 320×240의 크기로 약 20장의 사진을 촬영할 수 있도록 절충하였다.
사진 촬영 프로그램의 알고리즘은 그림5에 나타내었다. 우선 카메라와 탑재컴퓨터의 통신을 위해, 동기를 맞추는 과정이 필요하다. 카메라가 Command를 받은 것을 확인하면 카메라는 탑재컴퓨터로 ACK 신호를 보낸다. 그 이후, 이미지 타입과 해상도 등의 기본 설정을 마치고, 사진을 찍으라는 Snapshot Command를 보내고 사진을 받는다. 기본 설정은 초기에 한 번만 수행하며, 그 이후로는 Snapshot과 Get Picture만 반복 수행한다.

그림5

그림5

3) GPS 수신기
KUMSAT-1A은 GPS 수신기에서 전송받은 위치 정보(경도·위도·고도)를 지상국에 전송하는 임무를 수행한다. GPS 수신기는 NMEA 형식의 데이터를 UART 통신을 이용하여 KUMSAT-1A의 탑재컴퓨터에 전송한다. 이 때문에, KUMSAT-1A에 필요한 정보를 선별하는 파싱(Parsing) 프로그램이 필요하다. KUMSAT-1A에 필요한 데이터를 파싱하는 소프트웨어의 알고리즘은 그림6과 같다. 탑재된 GPS 수신기는 3m의 위치 정밀도를 가지고 있으며, 정밀한 좌표 정보를 수신하기까지는 약 5분정도의 시간이 소요 된다.

그림 6

그림 6

4) 온도센서
KUMSAT-1A는 대기온도를 측정하는 임무 또한 수행한다. 온도센서는 회로 구성이 간단한 1-wire 통신을 사용하고, 최소한 매 초마다 온도 변환을 할 수 있으며, 데이터를 디지털 값으로 받아들여 별도의 값 변환을 하지 않아도 되는, 디지털 온도센서를 사용하였다. 이 센서를 탑재한 KUMSAT-1A는 -55˚C 에서 125˚C 까지 온도측정이 가능하며 -10˚C 에서 85˚C 사이에서는 ±0.5˚C 의 정확도를 갖는다.

OBC

KUMSAT-1A에는 하나의 마이크로컨트롤러와 외부메모리(SD카드)로 구성된다. 마이크로컨트롤러는 AVR계열의 ATmega2560을 사용하였다. ATmega2560은 다른 마이크로컨트롤러와 달리 UART Port가 4개까지 지원이 되기 때문에, 이 시스템에 적합하다. 외부메모리는 지상국으로 보내기 위한 카메라의 이미지데이터를 저장하기 위해 장착하였다. 이것 역시 마이크로컨트롤러의 기능을 사용할 수 있으나, 내장된 메모리가 작기 때문에 더 큰 용량의 외부메모리를 사용하였다.

06FCAPD035 06FCAPD036 06FCAPD037

1) 회로도

06FCAPD069
2) 인터페이스

그림 8. 인터페이스 다이어그램

그림 8. 인터페이스 다이어그램

KUMSAT-1A는 2가지의 내부인터페이스를 사용하게 되는데, UART, 1-Wire를 사용하게 된다. 탑재컴퓨터의 마이크로컨트롤러와 각 서브의 마이크로컨트롤러는 UART를 통해 연결된다. 그리고 온도를 측정하는 센서와 절단을 위한 WCD는 1-Wire를 통해 연결된다.

3) 프로그램

codevisionAVR 2.03.4 를 사용하였으며, 대체적인 흐름은 다음과 같다.

06FCAPD039
4) OBC Board
KUMSAT-1A내에 효과적인 조립과, 다른 Sub System들과의 적절한 인터페이스 연결을 위해서 OBC Board를 구성하였다. ATMega2560 Module보호를 위해 Board 납땜을 직접적인 연결보다는, 핀헤더소켓 Dual 2×40 Straight(2.0mm)를 이용하여 ATMega2560과 Board를 연결해 주었다.

5) SD Board
SD Module보호를 위해, Board와 직접적인 납땜보다는 핀헤더소켓 Single 1×40 Rightangle(2.54mm)을 납땜을 통해 연결하였고, 전원 및 ATMega2560과의 연결을 위해 몰렉스(male 2핀, 2.54mm피치타입, 스트레이트)를 납땜을 이용해 연결해주었다.

06FCAPD044 06FCAPD045

 

전력계

EPS 전력계는 각 서브 시스템에서 요구하는 전력을 안정적으로 공급하는데 목적이 있다. 각 서브시스템에서 요구하는 전력량은 표-3와 같다.

Sub Model V mA
 OBC SD Memory 5 60
MCU 5  14
 CS  RF Modem  5  60
Pay load  Thermometer  5 1.5
Camera Module  3.3  60
 GPS Receiver  5  67
 SMS  WCD  5 300
표3 재료의 물성치

풍선에 매달아 띄우고 하강시키는데까지 요구되는 미션 타임을 25분 정도로 예상하였고, WCD는 약 10초간 작동 할 것을 감안하였을 때 요구되는 전력량은 약 500mWh이다. 그리하여 시중에서 쉽게 구할 수 있는 9V, 550mAh 용량의 알카라인 배터리 2개를 병렬로 연결하였다.(요구하는 미션 타임에 변동에 따라 배터리수 를 늘리는 것이 가능 하리라 생각된다.) 각 서브시스템에서 요구하는 입력 전압을 공급하기 위하여 두 종류의 Linear type regulator(78T05, 78R33)를 사용하였다.

06FCAPD050 06FCAPD051

 

통신

CS(통신계, Communication System)는 탑재컴퓨터(OBC)의 마이크로 컨트롤러(MCU)가 온도센서, GPS, 카메라로부터 수집한 데이터들을 지상국으로 보내기 위한 수단으로써, RF모뎀과 안테나로 구성되어지며 최대 500m거리에서의 안정적인 데이터 전송을 목적으로 한다. CS의 전체적인 Diagram은 그림9와 같다.

그림 9. CS Diagram

그림 9. CS Diagram

500m이상의 거리에서의 안정적인 통신을 위해 424MHz의 장거리 통신 모뎀을 선택하였으며, 사진전송 시 BER(Bit Error Rate)의 최소화를 위하여 2400bps의 Data Rate을 선택하였고, Link Budget은 다음과 같다.

Item KUMSAT-1A
Transmitter Power Output (dBm) 10
Transmitter Cable Attenuation (dB) 0
Transmitter Antenna Gain (dBi) 2
Free Space Loss (dB) 84.97
Reciever Antenna Gain (dBi) 2
Reciever Cable Attenuation (dB) 0
Reciever Sensitivity (dBm) -122
Link Margin (dBm) 51
표4. Link Budget

① 제품선정
보통의 경우 Link Margin이 3dBm이면 통신이 가능하다고 판단하는데, 위의 경우 51dBm이므로 통신에는 아무런 문제가 없다고 할 수 있다. 다만 사진 데이터의 전송 시 BER(Bit Error Rate)로 인하여 온전한 상태의 사진을 전송받지 못할 수도 있다. 따라서 이에 대비하여 KUMSAT내부에 메모리카드를 장착하여 추후 수거가 가능하도록 하였다.
지상에서부터 풍선을 이용하여 상공 500m까지 상승한 뒤 지상에 떨어질 때까지 KUMSAT이 전송하는 각종 데이터들의 프로토콜은 아래와 같다.

GPS Time 고 도 위 도 경 도 온 도

또한 위의 Protocol을 1회 전송했다는 것은, 한 장의 사진을 찍었다는 것을 의미하기도 한다. 그리고 RF모뎀의 기능적 특성에 의해서 각 프로토콜 간에는 10초의 지연을 주도록 한다.
풍선으로 KUMSAT-1A를 상승시키기 때문에, 지형적 풍속이나 풍향 온도 등 대기상태를 예상할 수 없기 때문에, 오로지 지상국에서 받는 데이터에 의존해서 상황에 따라 Command를 전송하여 KUMSAT을 제어해야한다. 예를 들어 500m 고도에서 원하는 한 장의 사진을 지상국으로 전송하기 위해서는 “1”라는 Command를 그리고 풍선과 KUMSAT을 분리시키기 위해서는 “4”라는 Cut Command를 지상국으로부터 KUMSAT에 전송하여야 한다.
지상국은 KUMSAT-1A의 CS와 마찬가지로 안테나와 RF모뎀, 그리고 PC로 구성된다. 이 때 사용되는 RF모뎀은 KUMSAT의 RF모뎀과 주파수 및 Data Rate이 같은 것을 사용하도록 한다. 또한 지상국은 위의 구성요소 외에, 실시간으로 송수신 Data의 저장 및 확인이 가능하고 제어가 가능한 소프트웨어를 사용한다.
위와 같이 전체적인 개념을 잡고 실제 KUMSAT-1A에의 장착을 위한 제품 선정 및 Board를 세팅하면 아래와 같다.
① 제품선정

06FCAPD053
Item IRF 4020P
Frequency (MHz) 424
Sensitivity (dBm) -122
Data Rate (bps) 2400
Output Power (mW) 10
Current Consumption (mA) 60
Size (mm) 30X45X11
06FCAPD054
Item 1/2 Ramda Whip Antenna
Radiation Pattern Omni-Directional
Antenna Gain (dBi) -≤2
Antenna Length (mm) 345
Operating Temperature (℃) -30~+70℃

② Board 추가
KUMSAT내에 효과적인 조립과 다른 Sub System들과의 적절한 interface연결을 위해서, 인두기를 이용하여 추가적인 Board를 납땜한다.

06FCAPD055 06FCAPD056

③ 조립
실제 KUMSAT에 RF모뎀이 장착된 모습으로 RF모뎀 상단에 공간의 효율적 사용을 위해서 배터리 1개가 위치한다.
06FCAPD057

④ KUMSAT상승 후 Data 전송 (지상국)
06FCAPD059
지상국은 앞장에서 말한 것처럼 KUMSAT-1A와 같은 사양의 안테나와 RF모뎀을 사용하며, ISP를 이용하여 PC에 연결한다. 이때, 지상국에서 안테나 Gain이 더 높은 지향성의(예, Yagi Antenna)안테나를 사용하면 더 높고, 먼 거리에서도 안정적으로 Data를 받을 수 있다. 다만 대상 물체를 비교적 정확하게(일정 각 범위내로) 조준하여야 한다는 제한조건이 붙는다. 지상국에서는 With Robot의 Comport Master라는 소프트웨어를 사용하였는데, 이는 With Robot(www.withrobot.com/118)에서 쉽게 다운받을 수 있으며, 이 프로그램을 통해서 KUMSAT과의 양방향통신 및 수신 데이터의 확인 및 저장이 가능하다.

⑤ 실제 수신 받은 Data

06FCAPD061 06FCAPD060
3D Route(위도, 경도, 고도) 2D Route(위도, 경도)
06FCAPD062 06FCAPD063
Altitude-Temperature Data Image Data
06FCAPD066 06FCAPD065 06FCAPD064 06FCAPD067
SD 메모리카드에 저장된 Image Data