2014지능형 모형차 경진대회

2014

지능형 모형차 경진대회

보고서

학   교

국민대학교

팀   명

K5

팀   장

황인기 (전자공학과)

팀   원

강승구 (전자공학과)

윤정준 (전자공학과)

최진규 (전자공학과)

홍세엽 (전자공학과)

김현수

목 차

1. 개 요        

1.1 설계 배경

1.2 설계 목표

2. 지능형 모형차 설계 내용

2.1 하드웨어 구성2.1

2.1.1 하드웨어 시스템블록도(Block Diagram) 2.1

2.1.2 전체외관2.1

2.1.3 전원부2.1

2.1.4 센서부 2.1

2.1.5 구동부

2.1.6 조향부

2.2 소프트웨어 구성 2.1

2.2.1 라인 센싱2.1

2.2.2 거리 센싱 및 비상제동2.1

2.2.3 School Zone1

 

3. 주요 장치 이론 및 적용 방법

3.1 DC Motor 제어를 통한 드리프트

4. 결론 및 토의

4.1 하드웨어 부분

4.2 소프트웨어 부분

Appendix - 부품 목록

1. 개요

1.1 설계 배경

과학 기술이 나날이 발전함에 따라서 새로운 기술들이 만들어지고 우리 생활 속에서 다양한 곳에 접목되고 있다. 자동차도 그 분야 중 하나로 현재의 자동차는 이전과 같이 기계적 제어를 통해 구동되는 것뿐만 아니라 전자적인 제어가 추가되었다. 이와 같은 전자 제어를 이용하여 차선 이탈 경보 시스템, 충돌 예방 레이더, 보행자 감지 시스템 등의 첨단 기술들이 추가된 지능형 자동차들이 생산되고 있다. 또한 전자 제어를 통한 지능형 자동차를 넘어 모든 제어를 스스로 할 수 있는 무인자동차의 생산도 목표로 하고 있다. 무인자동차란 단순히 운전자를 대신하여 주행한다는 목표 외에도 교통사고율을 크게 줄일 수 있다는 점에서 앞으로도 꼭 필요한 기술이라고 할 수 있다. 무인 자동차기술에서 순간적인 제어의 실수가 큰 사고로 이어질 수도 있기 때문에 우리는 오차 없는 정확한 제어를 해주어야 한다. 이처럼 전자제어 분야는 무인 자동차 기술에서 가장 핵심적인 분야라고 할 수 있다. 따라서 우리는 이번 2014년 지능형 모형 자동차 경진대회를 통해서 우리가 가지고 있는 전자 제어 지식을 직접 응용하고 활용하여 실제 자동차 전자제어에서 사용할 수 있는 기술을 구현하고자 하였다.

1.2 설계 목표

미래형 자동차는 Hybrid 자동차, 전기 자동차와 같은 환경 친화적 Green Car와 인간 친화적 Smart Car로 발전하고 있다. 최근 자동차의 전장화로 인해 MCU가 늘어나고 있으며, 많은 제어 Logic이 설계되어 들어간다. 또한 최근 Home Appliance에도 역시 많은 MCU가 들어가며 기기를 제어한다. 이러한 흐름에 맞추어 제어Logic을 설계한다면 산업현장의 업무를 미리 경험할 수 있는 기회라고 생각하여 개발을 결심했고 경진대회 참가하기로 하였다. 이러한 경향을 따라 열리는 2014년 12회 지능형 모형 자동차 경진대회에서 Smart Car의 핵심기술인 내장형 제어시스템(Embedded Control System) 설계를 통해 MCU를 이용하여 보다 지능적인 제어에 도전하였다. 설계를 통해 구현한 모형 차의 카메라를 통해 수집한 정보를 이용하여 주어진 경로를 따라 스스로 안전하게 운전할 수 있게 하는 미래 자동차의 핵심기술을 구현함으로써 진화된 지능형 자동차 기술에 근접할 수 있도록 하였다.

2. 지능형 모형 차 설계 내용

2.1 하드웨어 구성

2.1.1 하드웨어 시스템블록도(Block Diagram)

위의 그림은 모형 차의 대략적인 시스템블록도 이다. 그림을 통해 알 수 있듯이 크게 MCU, 구동부, 조향부, 센서부, 전원부로 구성되어 있다. 먼저 MCU인 TRK-MPC5606B는 우리 신체의 머리와 같다고 할 수 있다. 즉, 우리가 뇌에서 보낸 신호를 통해 몸을 움직일 수 있는 것과 같이 MCU 역시도 여기에 연결된 주변장치들을 제어하는 중요한 역할을 한다. 다음으로 구동부인 DC Motor는 모형 차의 실제적인 동력을 제공해줌으로써 이동할 수 있도록 해준다. 또한, 모형 차의 2개의 DC Motor는 모터 드라이버를 통해 각각 독립적으로 속도를 제어함으로써 곡선 구간에서의 회전력을 높여준다. 조향부인 Servo Motor는 모형 차의 진행 방향을 결정해주는 부분으로 라인 감지 센서를 통해 얻은 값을 이용하여 그에 맞는 신호를 제어함으로써 방향을 결정한다. 센서부는 크게 라인감지 센서와 거리감지 센서로 이루어져 있다. 먼저 라인감지 센서는 트랙의 검정색 라인을 감지하여 모형 차가 라인을 이탈하지 않고 따라갈 수 있도록 해주고, 거리감지 센서는 차량이 주행 도중에 장애물을 만났을 경우 물체를 인식하여 충돌하지 않도록 제동할 수 있도록 데이터 값을 센싱하는 역할을 한다. 마지막으로 7.2V Battery를 사용하는 전원부는 모형 차에 공급되는 모든 Board에 전원을 공급해주는 역할을 한다.    

2.1.2 전체 외관

앞에서 볼 때

뒤에서 볼 때

옆에서 볼 때

위에서 볼 때

2.1.3 전원부

전원 공급도

사용 배터리

전원부의 전원은 7.2V의 배터리를 사용하였다. 위의 전원 공급도와 같이 7.2V의 전원이 MCU와 Motor Driver에 공급된다. 7.2V의 전원을 공급받은 MCU와 Motor Driver에서는 Servo Motor와 DC Motor 그리고 센서에 필요한 전압을 공급해준다. 또한, Line Scan Camera에 필요한 3.3V의 전원을 공급하기 위해 LD1117-3.3V Regulator를 이용하여 7.2V를 3.3V로 만들어 카메라에 공급해준다.

2.1.4 센서부

가. 거리감지 센서(적외선 센서)

센서부 연결 모습

적외선 센서(Sharp-2Y0A21)

EMB000011682d78

적외선 센서의 거리에 따른 출력 전압

충돌 방지를 위한 적외선 센서는 적외선을 이용하여 거리측정과 장애물 감지를 하는 센서이다. 이 센서를 사용하여 거리를 감지한 후 물체가 가까이 있을 때 자동차가 멈출 수 있도록 사용했다. 이 제품의 특성으로는 물체의 반사색에 있어서 영향을 덜 받으며 감지거리가 10~80cm로 초음파 센서보다는 거리가 짧지만 대회에서 충돌방지를 위한 센싱에는 충분하다고 생각되어서 사용하였다. 빨간색 선이 VCC선이며, 검은색 선은 GND로 연결하고, 흰색 선으로는 적외선을 쏴주고 다시 받음을 통해 그 거리에 해당하는 analog Vo 신호가 나온다. 이 Analog 신호를 TRK-MPC5606B main board의 PORT B의 5번 pin으로 받아와서 그 값을 ADC를 통해 Digital 값으로 변환하여 기준 값과 비교하여 더 작다면 장애물로 인식하고 자동차를 멈추도록 하여 충돌을 방지하도록 구현하였다.

 나. Line Scan Camera

센서부 연결모습

Line Scan Camera(TAOS 1401)

Analog Output(AO) Read

AO 파형 확인

                

Line Scan Camera는 우리 몸의 눈과 같다. 즉, 모형 차가 트랙 위의 검은 선을 감지하고 판단한 결과를 통해 검은 선을 따라 트랙을 주행하도록 하는 것이다. 먼저 우리가 사용한 Line Scan Camera는 128개의 Photo-Diode가 일렬로 연결되어 있는 구조이다. 트랙 위에서 검은색과 흰색에 의해서 카메라 안의 Photo-Diode가 감지하는 값이 달라지게 되어 상황에 따른 128개의 데이터의 변화를 통해 제어를 하게 된다. 여기서 우리가 원하는 Analog Output 값을 얻기 위해서는 Line Scan Camera에 VCC, Ground, CLK, SI 신호를 인가해 주어야 한다. 위에 첨부된 그림에서 알 수 있듯이 최적의 Analog Output을 얻기 위해서는 CLK과 SI의 펄스의 폭이 동일해야 하고, 또한 SI신호가 다음 CLK이 Rising 하기 전에 Falling을 해야 한다. 이와 같은 정보를 통해 우리는 26[kHz]의 CLK과 203.125[Hz]의 SI 신호를 사용하였다. 그 결과 위의 첨부된 사진과 같이 AO의 파형이 깨끗하게 잘 나오는 것을 확인할 수 있다.

2.1.5 구동부

구동부 연결 모습

모터 드라이버(FRDM-TFC)

  1.  모터 드라이버

모터 드라이버는 FRDM-TFC를 사용하였다. FRDM-TFC를 사용함으로써 Servo 모터와 DC 모터, Line scan camera의 I/O를 제어하였다. Input Voltage로 7.2[V]를 넣어주었고, 드라이버 모듈이 큰 사이즈가 아님에도 불구하고 순간 전류가 최대5[A]까지 드라이빙이 가능하였다. 모터 드라이버의 J10 의 3번 pin 에 high 신호를 인가하여 DC 모터를 제어할 수 있도록 Enable 시켜주었다. 또한,  J10의 12번 pin과 J1의 5번 pin에 PWM 신호를 넣어 주어서 모터의 속도륵 조절하였고,  J10의 2번 pin을 이용하여 Servo 모터의 방향을 제어하였다.

  1.  DC 모터

최대 3800[mA]까지 동작되는 DC 모터(RN260-CN-18130) 두 개를 사용하여 모터 드라이버를 통해 연결함으로써 동작시켰다. 우리가 사용한 모형 차는 두 개의 DC모터를 개별적으로 제어할 수 있기 때문에 이를 이용하여 곡선 구간을 돌아야 할 때에는 양쪽 모터의 회전 수를 다르게 함으로써 회전을 할 때 더 안정적이고 빠르게 회전을 할 수 있도록 하였다.

2.1.6 조향부

조향부 연결 모습

서보 모터(Futaba-S3010)

Servo Motor는 Futaba 사의 Futaba-S3010를 사용하였다. Line scan camera로 읽은 Analog 값을 Main board에서 ADC를 통해 변환하고 처리하여 모터 드라이버의 J10의 2번 pin을 이용하여 PWM을 내줌으로써 방향제어를 하였다. 서보모터는 PWM신호로 방향을 조절하는데 일반적으로 일정 주파수에서 1.4ms보다 오래 high가 들어가게 되면 서보모터는 오른쪽으로 회전하고, 더 짧게 high가 들어가게 되면 서보모터는 왼쪽으로 회전한다. 그리고 1.4ms 씩 high를 유지하면 서보모터는 정방향을 가리킨다. Servo모터의 한계가 아닌 차체의 휠 구성의 한계 때문에 최대인 180도 회전을 가져가지는 못하였다.

2.2 소프트웨어 구성

2.2.1 라인 센싱

라인 스캔 카메라는 128개의 값을 읽어오며, 64를 기준으로 0~63개는 왼쪽 라인을 읽고 64~127개는 오른쪽 라인을 읽어오도록 구성하였다. 차량이 라인을 보지 않고 가도록 구성하였기 때문에, 카메라에 라인이 감지되면 감지되는 반대로 방향을 틀도록 제어하였다.

사용 알고리즘 설명

  1. 카메라를 통해 라인을 감지하다 보면 데이터 값의 맨 처음과 맨 뒤 부분은 일정하지 않은 쓰레기 값이 나올 수도 있다. 따라서 설정한 기준 이하의 값이 나오면 데이터 값을 걸러내어 처리하였다.
  2. 카메라를 통해 데이터 값을 읽다 보면 128개의 값 중에 중간마다 값이 튀는 현상이 발생한다. 이와 같은 경우에도 설정한 기준 이상의 값이 나오게 되면 튐 현상이 발생하는 곳을 기준으로 앞, 뒤 값의 평균으로 값을 조정해주도록 하였다.
  3. 카메라 센서로 라인을 감지하였을 파인 깊이가 깊거나 또는 얕은 두 경우 모두 4~5개의 감소 또는 증가되는 연속된 디지털 값이 있다는 것을 확인할 수 있었다. 이와 같은 상황에서 연속된 디지털 값의 처음과 끝 값의 차이가 설정한 기준 값 이상을 만족한다면 라인을 감지한 것으로 판단하였다. 카메라로 감지한 라인의 위치가 64를 기준으로 가까운 값이면 Servo motor의 Duty를 크게 하고, 멀수록 Duty를 작게 하여 라인을 스캔 하도록 하였다.

2.2.2 거리 센싱 및 비상제동

비상제동 시스템은 적외선 거리감지센서를 이용하여 구성했다. 차량이 코너중간에 또는 위치에 따라 장애물을 제대로 인지 못할 수 있기 때문에 전방에 거리감지센서 3개를 좌, 우, 중간에 설치했다. 사용한 센서는 데이터시트 상에서는 10~80cm가 측정가능 하다고 되어 있지만, 직접 측정해보니 70cm 이하부터 정확한 측정이 가능했다. 처음에 차량이 장애물을 인지한 후에 바로 DC모터에 제동을 주었지만 관성에 의해 차량이 미끄러지면서 장애물에 충돌하는 현상이 발생했다. 엔코더를 사용해 DC모터의 값을 조절한다면 더 세밀하게 제동을 할 수 있지만, 엔코더를 사용하지 않았기 때문에 뒷바퀴 역회전을 이용한 제동 방법을 선택했다. 여러 번의 측정으로 가장 알맞은 역회전 동작 시간을 측정해서 직선 경로에서 차량이 가속된 상태에서도 장애물에 부딪히지 않도록 설계했다.

2.2.3 School Zone

스쿨 존 감지 시스템은 카메라 라인 스캔 인식을 통하여 만들었다. 보통 주행 중에는 주행방향과 라인은 평행 하기 때문에 라인이 아주 적은 범위만 검출된다. 하지만, 스쿨 존의 라인의 경우 주행방향과 거의 직교 하기 때문에 스쿨 존 라인에 진입하게 되는 순간 라인 스캔 카메라로부터 읽어 들였을 때, 라인이 거의 모든 범위에서 한꺼번에 검출된다. 따라서 위와 같이 카메라 센서를 통해 읽어 들인 값이 스쿨 존으로 인식될 경우(모두 낮은 값을 갖는다.)에는 속도가 느려지게 하였고, 스쿨 존이 다시 한번 검출될 경우에는 속도가 원래대로 돌아올 수 있게 하였다. 또한, 라인 스캔 카메라만을 사용했을 경우에는 곡선 구간에서 스쿨 존으로 인식하는 불안정한 경우가 있기 때문에 이와 같은 상황을 대비하여 차체 앞부분에 수/발광 센서를 이용하여 스쿨 존을 감지하는데 신뢰성을 향상시켰다..

3. 주요 장치 이론 및 적용 방법

3.1 DC Motor 제어를 통한 드리프트

왼쪽 곡선 구간

오른쪽 곡선 구간

우리가 사용한 모형 차의 DC Motor는 뒷바퀴에 연결되어 2개가 있다. 따라서 모터 드라이버를 이용하여 2개의 DC Motor를 독립적으로 제어할 수 있다. 일반적으로 곡선 구간에서 코너링을 할 경우 Servo Motor를 이용하여 제어를 한다. 하지만, 실험을 통해 확인해본 결과 하드웨어적인 문제(회전 시 바퀴의 휠과 차체 사이의 공간 부족)로 인하여 Servo Motor를 원하는 만큼 충분히 회전할 수 없어서 큰 회전이 필요할 경우 Servo Motor의 제어만으로는 정확한 제어가 되지 않는 현상이 발생하였다. 이와 같은 문제를 해결하기 위하여 자동차 경주에서 사용하는 드리프트를 생각하게 되었다. 우리가 생각한 방법은 먼저 왼쪽으로 크게 회전을 해야 할 경우에는 왼쪽의 DC Motor는 급격히 속도를 줄이고, 오른쪽 DC Motor는 속도를 늘려서 왼쪽 바퀴를 축을 삼아서 회전할 수 있도록 하였다. 반대로 오른쪽으로 크게 회전을 해야 할 경우에는 오른쪽의 DC Motor는 급격히 속도를 줄이고, 왼쪽의 DC Motor는 속도를 늘려서 오른쪽 바퀴를 축을 삼아서 회전할 수 있도록 하였다. 이와 같은 제어 방법을 적용하여 테스트해본 결과 Servo Motor만을 사용하여 회전하는 것 보다 더 빠르고 안정적으로 제어할 수 있었다.

4. 결론 및 토의

이번 2014년 지능형 모형 차 경진대회를 준비하면서 많은 것을 배우고 느낄 수 있었다. 작년부터 대회에 참가하기 위하여 대회를 알아보고 준비하였는데, 대회의 규정의 상당 부분이 이전과 달라져서 대회 준비 초반에는 어려움을 겪었다. 하지만, 기초부터 착실히 준비를 해가면서 대회의 취지에 맞는 결과를 얻을 수 있었다. 이전에는 하드웨어와 소프트웨어를 처음부터 구상하고 팀을 이루어서 설계를 해본 경험이 많지 않았지만 팀 자체와 팀원 각각에게도 많은 역량성장을 이끌 수 있는 경험이었다.

4.1 하드웨어 부분

하드웨어를 구성하는 부분에서는 여러 모듈과 센서를 복합적으로 다루는 부분이 어려웠다. 특히 처음 접해보는 Camera 센서의 활용 부분이 가장 난해하였다. Line scan camera가 각도와 초점 그리고 조도와 같은 외부의 영향에 매우 민감하게 반응하여 정확한 제어를 하기 쉽지 않았다. 또한, 차체 구성의 한계 때문에 Servo 모터의 성능을 온전히 다 활용하지 못하였고, 모터 드라이버에 대한 정보가 부족하여 하드웨어 구성에 많은 시간이 사용되었다. 하지만, 이와 같은 어려움들을 하나씩 해결해 나가면서 더욱 안정된 차체를 구성할 수 있었다.

4.2 소프트웨어 부분

 하드웨어가 구성되기 전에는 MPC-5606B 보드를 이용해서만 소스를 Coding했었다. 그리고 하드웨어가 구성되고 나서 보드 및 카메라 센서 등을 모형차량에 올리고 테스트를 해보니 보드만 이용해서 테스트할 때보다 어려움이 많았다. 기존 보드와 카메라센서만을 이용해 테스트 할 때는 카메라의 각도, 위치를 고려하지 않고 소스를 Cording 했다. 하지만, 차량에 센서들을 부착하고 나니 각도, 위치 그리고 렌즈 조절 정도 까지 소스를 구성하는데 많은 영향을 미쳤다. 카메라 센싱을 하는데 있어서는 코너구간과 직선상태의 구간을 나누어 센싱된 결과를 디지털 값으로 바꿔 적용하는데 어려움이 있었다. 여러 상황 마다 센싱되는 구간이 다르고 디지털 변환된 값도 차이가 있어 적당한 수치를 알아내는데 많은 데이터가 필요로 했다. 소프트웨어를 구성하면서 무엇보다도 하드웨어와의 결합이 중요하다는 것을 알게 되었다.


Appendix – 부품 목록

제조사

부품 명

수량

사용 목적

Freescale

TRK-MPC5606B

1

Main board

Futaba

Futaba-S-3010

1

Servo 모터

TAOS Inc

TAOS 1401

1

Line Scan camera

Freescale Semiconductor

FRDM-TFC

1

모터 드라이버

STANDARD MOTOR

RN260-CN-18130

1

DC 모터

STMicroelectronics

LD-1117

1

3.3[V] 전압 공급

Sharp

Sharp 2Y0A21

1

적외선 거리감지

Sharp

Sharp 0A41SK

2

적외선 거리감지

Any Vendor

ST-8L(수)/ EL-8L(발)

2

스쿨 존 감지

KODENSHI

ST-1KLA(수)/EL-1KL2(발)

2

스쿨 존 감지

지능형 모형차 경진대회 보고서