Korea Digital Contents Society

Journal Archive

Journal of Digital Contents Society - Vol. 20 , No. 2

[ Article ]
Journal of Digital Contents Society - Vol. 20, No. 2, pp. 261-270
Abbreviation: J. DCS
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 28 Feb 2019
Received 10 Jan 2019 Revised 08 Feb 2019 Accepted 22 Feb 2019
DOI: https://doi.org/10.9728/dcs.2019.20.2.261

손의 움직임에 의한 가속도 센서 기반 무선조종 자동차의 구현
임수민 ; 신민재 ; 김동회*
강원대학교 IT대학 전기전자공학과

Implementation of Radio Control Vehicle based on Acceleration Sensor by Hand Motion
Su-Min Lim ; Min-Jae Shin ; Dong-Hoi Kim*
Department of Electronic Communication Engineering, Kangwon national University, Chuncheon, Korea
Correspondence to : *Dong-Hoi Kim Tel: +82-33-250-6349 E-mail: donghk@kangwon.ac.kr


Copyright ⓒ 2019 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

초록

대표적인 기존의 무선조종 자동차는 조이스틱 제어 무선조종 자동차이고 그것은 조이스틱과 무선조종 자동차가 서로 RF통신에 의해서 움직인다. 본 논문에서 구현한 무선 조종 자동차는 조이스틱 방식이 아니라 손의 가속도 센서 방식에 의해 움직이게 한다. 즉, 손에 부착된 가속도 센서를 이용해서 손의 움직임에 따라 무선조종 자동차를 움직이게 된다. 원리는 가속도 센서로부터 측정된 값들은 RF(radio-controlled) 통신을 통하여 무선조종 자동차의 수신부에 전송한다. 전송받은 가속도 값을 이용해 자동차 바퀴가 움직일 수 있게 구현하였다. 본 논문에서 제안된 무선조종 자동차의 실험 결과를 통하여 무선조종 자동차의 진행을 좌우상향 방향을 각도에 의한 수치를 이론적으로 계산한 값과 실제 관측 값이 같음을 확인하였고, 원하는 각도에 대해 원하는 방향으로 움직이는 가장 합리적인 파라메타 값을 추출하였다.

Abstract

Representative conventional RC(radio-controlled) car is a joystick controlled RC car and it is moved by RF communication between joystick and RC car. RC which is implemented in this paper is moved by not joystick base on RC car but acceleration sensor based on RC car. In other words, the proposed RC car moves according to the movement of the hand using the acceleration sensor which is attached to the hand. The principle is that the measured values ​​from the acceleration sensor are transmitted to the receiver of the radio controlled car through RF communication. It is implemented to move the car wheel by using the received acceleration value. Through the experiments, we confirm that the theoretically calculated results and experiment results for calculating the angle of upward and downward movement of the implemented RC car are same, and then we can derive the most reasonable parameter values which moves as the wanted angle and direction.


Keywords: Radio-controlled car, Motion recognition car, Arduino, RF communication, Accelerometer
키워드: 무선조종 자동차, 움직임인식 자동차, 아두이노, RF통신, 가속도센서

Ⅰ. 서 론

우리는 입력장치 중에 마우스, 키보드, 키패드를 주로 사용한다. 최근에는 생각지 못한 여러 입력 장치들을 사용하는 것을 주변에서 볼 수 있다. 제목을 모르는 노래가 거리에서 흘러나올 때 노래 제목을 키패드로 검색하지 않고 주로 음성인식 기능을 이용해 노래 제목을 찾곤 한다. 또한 자동차나 무선조종 자동차를 조종할 때도 주로 핸들을 이용하거나 조이스틱을 이용해서 자동차나 무선조종 자동차를 조종하곤 한다. 하지만 장애인과 같이 손이 불편한 운전자에게는 자동차나 무선조종 자동차 조종에 어려움이 있을 수 있다. 따라서 본 논문에서는 자동차의 운전 기능을 운전자의 손 기울기를 통해 조작할 수 있는 장치를 고안하였다. 이러한 기능은 스마트폰이나 게임기에 장착되어 여러 기능을 수행하고 있다. 예를 들어 2006년에 출시된 닌텐도 위의 경우, 사용자의 움직임을 반영한 게임을 주로 이루고 있다. 스마트 폰도 이와 같은 기능을 적용하고 있어 2010년에 열풍을 일으켰다[1].

DC 모터를 기반으로 4개의 바퀴로 무선조종 자동차를 움직이는 것이 일반적이다. 이 무선조종 자동차에 주행선을 감지하는 센서를 장착해서 주행선을 따라 이동하는 무선조종 자동차가 있다. 본 논문에서도 DC 모터를 기반으로 움직이는 무선조종 자동차를 사용하였다. 주행선 센서를 이용해 움직이는 것이 아니라 움직임으로 제어하는 자동차를 구현하였다[2].

위에서 언급한 움직임을 기반으로 한 개발이 이루어지고 있다. 그 예로 원격 조정을 이용해 악보를 넘기는 기술이 개발되었다. 움직임 제어로 원격조정을 하는데 이는 연주자들이 연주 중에 악보를 힘들게 넘기지 않고 연주에 집중할 수 있게 되었다[3]. 본 논문에서도 손의 움직임을 이용하는데 손에 가속도센서를 장착해 합리적인 파라미터 값을 도출하였다.

제안하는 시스템은 위에서 언급한 가속도 센서를 이용하는 것이다. 간단히 말하면, 가속도 센서를 손에 부착해 손의 움직임에 따라 움직이게 하는 시스템이다. 손의 기울기에 의한 3축 가속도 센서를 이용해서 외부의 힘에 의한 각 차원의 가속도를 이용해서 측정한다. 이 때 많이 사용되고 있는 오픈 하드웨어 플랫폼인 ARDUINO-UNO3(이하 UNO3로 표기)을 적용하여 아두이노 프로그래밍을 통해 명령을 총괄하였다. 자동차는 평면에서 이동하기 때문에 3축 가속도 센서의 X축, Y축 위치변화를 감지하여 무선조종 자동차를 움직이게 하였다. 무선조종 자동차의 진행을 좌우 상향 방향을 각도에 의한 수치를 이론적으로 계산한 뒤 실제 관측값과 비교하여 원하는 각도에 대해 원하는 방향으로 움직이는지 가장 합리적인 파라미터 값을 도출하였다. 또한, UNO3의 명령 데이터를 송신부에 보내 RF433 MHz 모듈을 사용해 수신부에까지 전달할 수 있도록 고안하였다.

따라서 본 논문의 Ⅱ장에서는 기존에 사용되는 기존의 무선조종 자동차 모델을 설명하고, Ⅲ장에서는 새롭게 제안하는 각도 센서와 RF 통신을 장착한 손의 움직임에 따른 무선조종 자동차를 소개하며, Ⅳ장에서는 본 논문에서 제안된 방식의 손의 움직에 따른 무선조종 자동차의 구현과 실험결과를 제시하고, 마지막 Ⅴ장에서 결론을 맺는다.


Ⅱ. 기존의 무선조종 자동차 모델과 움직임 제어 시스템

기존의 무선조종 자동차는 주로 조종자에 의해서 조이스틱으로 제어되곤 하였다. 조이스틱엔 좌우로 움직이기 위한 레버와 전진과 브레이크를 조작하기 위한 레버가 갖추어져 있다. 조이스틱의 레버들을 움직이면 이 움직임이 송신기 내에서 정해진 주파수의 전파의 형태로 변환되어 안테나를 통해 수신기로 보내어지는 구조로 되어 있다. 수신기로 보내지면 전파의 신호에 따라서 서보나 전자변속기(EP카의 경우)에 전달되어 내부의 모터가 회전한다. 현재 우리나라에서는 자동차와 지상용으로 허가된 주파수는 주파수의 전파가 서로 혼선되지 않게 하도록 27MHz, 40MHz, 75MHz 대역의 27개의 주파수가 있다[4].

또한 기존의 무선조종 자동차는 본 논문에서 제시하고 있는 움직임 제어를 이용한 무선조종 자동차가 아니라 라즈베리 파이 DC 모터를 기반으로 4개의 바퀴에 각각 모터를 장착하여 주행선을 센서로 검출하여 목적 위치까지 선을 따라 이동하는 것으로 주로 적외선 센서를 이용하여 주행선을 검출해 이를 따라가는 무선조종의 형태를 띠고 있다[2]. 본 논문에서 제시하는 무선조종 자동차는 단순히 주행선을 적외선센서로 인식해 목적지까지 가는 것이 아니라 사용자의 움직임에 의해 무선조종 자동차를 무선 조종할 수 있게 구현하였다. 이는 주행선이 없을 때도 무선조종 자동차를 원하는 방향대로 움직일 수 있다. 또한, 본 논문에서는 라즈베리 파이를 이용해 구동하는 것이 아니라 UNO3를 이용한다.

음악인들이 악기를 연주할 때 피아노 및 바이올린과 같은 악기는 연주 중에는 손을 자유롭게 사용할 수 없으므로 악보를 일일이 넘기며 연주하므로 연주에 대한 몰입도가 떨어진다. 이러한 문제점을 해결하고자 두 발을 사용하여 스마트 버튼(Wireless Smart Button)을 동작하여 악보를 넘길 수 있는 게 무선으로 원격 조정 가능한 스마트 버튼(Wireless Smart Button)과 이를 조작할 수 있는 애플리케이션(Application)이 개발되었다. 블루투스(Bluetooth)를 탑재한 각 3가지 기능을 내재한 무선 스마트 버튼(Wireless Smart Button) 2개는 총 6가지 기능(악보 앞으로 넘기기, 악보 뒤로 넘기기, 악보 첫 페이지 가기, 녹음시작, 녹음중지, 녹음플레이 기능)을 가진다. 어플리케이션 사용자는 곡을 연주하는 과정에서 버튼을 활용하여 어플리케이션을 원격으로 조정 가능 하도록 설계되었기 때문에 연주를 하는 도중에 쉽게 악보를 자동으로 넘길 수 있는 장점이 있다. 악보를 원하는 때에 자유로이 넘길 수 있어 혼자서 연주를 해도 중단되지 않고 할 수 있다. 또한, 악보 넘기는 것에 신경 쓰지 않아도 되므로 연주에 집중할 수 있다[3].

무선조종 자동차 조종도 이와 마찬가지이다. 조이스틱을 사용하려면 손을 사용해야 하는데 장애인과 같이 손이 불편한 경우엔 조이스틱을 사용할 수 없다. 자동차도 핸들을 잡을 수 없는 소아마비의 장애인들은 자동차를 운전하는데 큰 어려움을 겪곤 한다. 본 연구를 통해 조이스틱과 핸들이 아닌 3축 가속도 센서를 이용해 기존의 무선조종 방식이 아닌 손의 움직임으로 무선조종 자동차를 제어하는 것을 구현했다.


Ⅲ. 각도센서와 RF통신을 장착한 움직임 제어 무선조종 자동차
3-1 손의 움직임에 의한 무선조종 자동차 전체 시스템 구성도

그림 1은 본 논문에서 제시하고 있는 하드웨어의 외관이다. 그림 2는 본 논문에서 다루는 움직임 제어 무선조종 자동차 의 전체 시스템 구성도이다. 먼저 그림의 왼쪽 순서도의 내용을 보면, 가속도센서 제어를 위해 메인 제어 부분인 노트북이 명령어를 보내면 UNO3는 가속도 센서는 명령에 맞게 제어하게 된다. 명령에서 보내는 수치들은 인코더IC칩의 데이터로 들어가게 되는데 이 데이터는 인코딩 되어서 RF433의 송신모듈로 들어간다. 이 송신모듈은 그림 2의 오른쪽 순서도인 수신부에 인코딩된 데이터 값을 보낸다. 수신부의 RF433 수신 모듈이 데이터 값을 받아 디코더IC칩으로 보낸다. 디코더IC칩에서 받은 데이터를 디코딩해서 모터제어 칩으로 디코딩 된 데이터를 보내게 된다. 이 데이터에 의해서 차가 움직일 수 있게 된다. 결론적으로 가속도 센서를 수평으로 놔두면 차가 정지해 있다가 왼쪽(오른쪽)으로 기울이면 왼쪽(오른쪽)으로 차가 움직이고, 앞쪽(뒤쪽)으로 기울이면 앞쪽(뒤쪽)으로 움직이게 된다. 기존의 무선조종 자동차와는 다르게 간단한 움직임에 의해서 구동되는 무선조종 자동차를 만들어 보았다.


Fig. 1. 
Proposed RC car hardware


Fig. 2. 
Overall system configuration of the RC car in this paper

3-2 가속도 센서 기본 설명

가속도 센서는 X, Y, Z축을 기준으로 기울어짐에 따라 전압의 변화를 확인할 수 있다. 3축을 기준으로 회전각의 변화에 대한 가속도를 구할 수 있는데, 3축 데이터의 아날로그 값으로 출력해준다[2]. UNO3에서 아날로그 값을 입력받는 A0, A1단자를 사용하였으며 가속도 데이터 값은 이 단자로 들어간다. 일정한 가속도를 감지하는 것은 가속도 센서가 담당하였고 거리값 데이터를 받아와 분석한 후 알고리즘에 따라 제어하는 부분은 UNO3 기반으로 작업을 추진하였다. 아두이노에서 제공하는 아두이노 프로그램을 사용하였고 C언어를 사용해 코딩 작업을 진행하였다[5].

컴파일러 및 라이브러리는 AVR-GCC을 사용하였는데, avr-gcc함수에 존재하는 표준함수의 라이브러리와 아두이노에서 제공하는 다양한 함수를 적용시킨 후 필요한 부분을 수정해 사용하였다. 아두이노 프로그램에서 C언어를 사용해 프로그래밍을 하면 먼저 스케치 과정을 거쳐야 한다. 스케치(컴파일)의 과정이 오류 없이 끝나면 UNO3에 업로드를 시켜준다. 업로드 또한 문제없이 되면 원하는 코딩대로 구동되는지 확인할 수 있다. 그림 3에 구현하였으므로, 자세히 설명하겠다. 먼저 가속도센서가 연결된 UNO3의 전원이 켜지면 가속도 센서의 기울어짐에 따라 조종자가 따로 명령어를 줄 필요 없이 자율적으로 가속도 값 측정을 시작한다. 그 후 계속해서 가속도 데이터 값을 UNO3가 받고 있는데 본 논문에서 구현한 알고리즘의 조건에 맞는 가속도 데이터 값을 다시 가속도 센서의 데이터 수신부에 보내준다. 조건에 맞는 데이터 값을 파악 후 특정 가속도에서만 움직일 수 있게 하였다.


Fig. 3. 
Basic principle of acceleration sensor

본 논문에서 제안하는 움직임 제어 무선조종 자동차는 가속도 센서를 이용하여 가속도 데이터를 가져와 데이터 값을 측정해 본 논문에서 구현한 알고리즘에 맞게 자율적으로 가속도를 제어하는 기술을 구현하였다. 그림4의 순서도를 설명하자면 처음에 UNO3가 가속도 센서에 가속도 측정 명령을 하게 된다. 그 다음 가속도 거리 값이 알맞게 들어오는지 확인을 한다. 만약 유효하지 않은 값이 들어오게 되면 다시 처음으로 돌아가 거리를 다시 측정한다. 가속도 데이터 값이 유효하게 들어오면 UNO3가 수신된 가속도 데이터 값을 확인 및 파악 하는 작업을 수행한다. 이 때 가속도 데이터 값은 디지털 값이다. UNO3의 디지털입력 핀에서 이 값들을 받는다. 그 후 파악한 가속도 데이터 값이 알고리즘의 조건에 맞는지 확인하게 된다. 알고리즘 조건에 맞는 거리 데이터 값이 들어오지 않는다면 다시 알고리즘에 맞는 가속도 데이터가 들어오는 확인 작업을 다시 수행한다. 알고리즘 조건에 맞는 거리 데이터 값이 들어오면 송신부의 디코더로 4개의 데이터가 들어가게 된다. 무선조종 자동차의 바퀴가 4개로 이루어져 있기 때문에 4개의 데이터(디지털값)를 넘겨야 하고 넘어가고 종료하게 된다.


Fig. 4. 
Output flowchart of acceleration sensor

3-3 제안하는 가속도제어 알고리즘

표 1은 본 논문에서 제안하는 거리에 따른 속도제어 알고리즘 조건표를 보기 쉽게 정리해 놓은 것이다. 순서도는 그림 4과 같으며 그림 4에서 설명하는 알고리즘을 자세히 설명한 것은 표 1이다. 먼저 가속도 데이터 값을 설명하자면 가속도 센서는 x, y, z값으로 3차원 평면을 제어할 수 있지만, 우리가 원하는 것은 2차원 평면에서 움직이는 것을 원하기 때문에 x, y값만을 사용한다. UNO3와 가속도센서 값이 서로 시리얼 통신을 하게 코딩을 한 후, 아두이노 프로그램 내부의 시리얼 통신 내부 창을 이용해 데이터 값을 측정하였다. 정지된 상태에서의 범위를 표와 같이 고정시켜 놓았다. 이 상태에서 앞, 뒤쪽 방향으로 제어하게 하기 위해서 y값을 조절하였고 오른쪽, 왼쪽 방향으로 제어하기 위해서 x값을 조절하였다. 제안하고 있는 x, y의 범위설정 하는 방법은 4절에서 더 다룰 것이며 이 제안은 우리가 원하는 범위에서 무선조종 자동차를 움직일 수 있게 하였다.

Table 1. 
Proposed distance control algorithm based on acceleration table
Direction Acceleration degree
x y
Stop 335~360 335~370
Forward 335~360 294~335
Backward 335~360 370~410
Right 360~410 335~370
Left 295~335 335~370

3-4 제안하는 UNO3와 HT12E(인코더 IC칩)설계

가속도제어 센서에 의해 전송된 아날로그데이터 값들이 표 1의 조건표에 따라 디지털 값으로 HT12E로 병렬로 들어간다. 그림 5는 이에 대한 설명을 보여주고 있다. HT12E에 대해 설명을 하자면 HT12E 인코더는 원격 제어 시스템 응용 프로그램 용으로 제작된 CMOS IC칩이다. 8비트 주소(A0-A7) 및 4비트 데이터 (AD8-AD11) 정보를 인코딩 할 수 있다. 각 주소 / 데이터 입력은 0 또는 1의 두 가지 논리 상태 중 하나로 설정할 수 있다. 핀 접지는 0으로 간주되며 +5V를 제공하거나 핀을 열어 놓으면 (연결되지 않음) High 상태로 제공될 수 있다[6]. 본 논문에서는 4비트 데이터를 사용하였으며 방향에 따라 데이터 입력을 0 또는 1을 다음과 같이 나누었다. 바퀴를 움직이게 하기 위한 디지털 논리값 설정은 다음과 같다. 3축 가속도 센서를 이용해서 얻은 표 1의 x와 y의 값은 아두이노를 통해서 수치 값의 범위에 따라서 4비트 데이터로 변환된다. 좌우 바퀴를 다른 방향으로 회전시키기 위해서 각각 2비트씩 사용했다. D8, D9의 경우 오른쪽, D10, D11의 경우 왼쪽 바퀴를 회전시키는데 사용했다. 무선조종 자동차가 앞으로 이동하기 위해서는 좌우 바퀴 모두 앞으로 회전하기 위해 D8과 D10에 논리 값 1을 D9와 D10에는 0의 값을 주었다. 뒤로 이동하기 D8과 D10에 논리 값 0을 D9와 D10에는 1의 값을 주었다. 오른쪽으로 이동하기 위해서는 D8에 논리 값 1을 주고 나머지에는 0의 값을 주었다. 왼쪽으로 이동하기 위해서는 D10에는 논리 값 1을 주고 나머지에는 0의 값을 주었다. 정지시키는 경우에는 모든 데이터에 논리값 0을 주었다. IC칩을 제어하는데 사용하는 전압은 5V를 사용하기 때문에 논리 값 1은 5V, 논리 값 0 은 0V가 입력되는 것을 확인할 수 있었다.


Fig. 5. 
Description of Arduino UNO3 and HT12E design principle

Table 2. 
Proposed distance control algorithm based on acceleration table
Direction 4 Bit data
D8 D9 D10 D11
Stop 0 0 0 0
Forward 1 0 1 0
Backward 0 1 0 1
Right 1 0 0 0
Left 0 0 1 0

3-5 제안하는 HT12E과 RF433 송신모듈 설계

RF 모듈은 이름에서 알 수 있듯이 RF (Radio Frequency)에서 작동합니다. 해당 주파수 범위는 30 KHz와 300 GHz 사이에서 다양하다. RF를 통한 전송은 여러 가지 이유로 IR (적외선)보다 낫다. RF를 통한 신호는 장거리를 통과하여 장거리 애플리케이션에 적합하다. 또한 IR은 대부분 시선 모드에서 작동하지만 송신기와 수신기 사이에 장애물이 있는 경우에도 RF 신호가 전송할 수 있다. RF 통신은 다른 IR 방출 소스의 영향을 받는 IR 신호와 달리 특정 주파수를 사용합니다. 이 RF 모듈은 RF 송신기와 RF 수신기로 구성됩니다. 송신기 / 수신기 (Tx / Rx) 쌍은 434 MHz의 주파수에서 작동합니다[7]. 그림 6을 송신기에 해당된다. HT12E 데이터출력 부분이 RF433 송신기의 데이터 입력단에 들어가게 설계를 한다.


Fig. 6. 
Description of HT12E and RF433 transmit module design principle

그림 7그림8는 송수신이 잘되는지 확인해보기 위해서 간단한 회로를 구성해 실험해보았다. 그림 7은 송신기를 UNO3와 연결하는 회로이다. 간단한 오픈소스를 스케치한 후 UNO3에 업로드 하였다. 데이터를 UNO3내에 LED가 켜지는 것으로 하고 이 데이터를 수신부로 보낸다. 그림 7은 수신기를 UNO3와 연결하는 회로이다. 간단한 오픈소스를 스케치한 후 UNO3에 업로드 하였다. 송신기에서 보낸 데이터를 수신기가 제대로 받으면 수신기와 부착된 UNO3 내 LED가 켜져야 한다. 그림 8은 수신기를 UNO3와 연결하는 회로이다. 간단한 오픈소스를 스케치한 후 UNO3에 업로드 하였다. 송신기에서 보낸 데이터를 수신기가 제대로 받으면 수신기와 부착된 UNO3 내 LED가 켜져야 한다.


Fig. 7. 
Arduino UNO3 and transmitter circuit configuration[8]


Fig. 8. 
Arduino UNO3 and receiver circuit configuration

그림 9를 보면 송신기 쪽 UNO3에서 LED가 켜지고 나서 얼마 시간이 지나지 않아 수신기 쪽 UNO3에서 LED가 켜지는 것을 확인하였다. 송수신기가 원활히 데이터를 주고받는 것을 확인할 수 있어 본 논문에서 다루고 있는 무선조종 자동차를 제어할 수 있게 되었다. 송신기 쪽 데이터입력단과 HT12E 데이터 출력단을 연결하고, 수신기 쪽 데이터입력단과 HT12D의 출력단을 연결하면 된다.


Fig. 9. 
Check with RF433MHz Transmit / Receive LED[9]

3-6 제안하는 RF433 수신모듈과 HT12D 설계

본 논문에서 3-2부터 3-5부까지가 송신부에 대한 설명 이었고, 3-6 부터는 수신부에 대한 설명이 시작된다. 3-5에서의 RF433송신부와 RF433수신부가 서로 통신을 하게 되어 데이터가 RF433수신부로 들어오게 된다. 이 데이터는 HT12D로 들어가게 된다.


Fig. 10. 
Description of RF433 transmitter module and HT12D design principle

3-7 제안하는 HT12D와 L293DNE 설계

HT12D는 HT12E 인코더와 쌍을 이루도록 만든 디코더 IC이다. 원격 제어 시스템 어플리케이션을 위해 만들어진 CMOS IC이다. 디코더는 8 비트의 어드레스 (A0-A7) 및 4 비트의 데이터 (AD8-AD11) 정보를 디코딩 할 수 있다. 인코더와 같이 이 디코더의 어드레스 핀은 접지에 의해 로직 로우로 설정 되며 핀을 + 5V에 연결하거나 오픈 상태로 유지 (연결되지 않음)하여 로직 하이로 설정할 수 있다. 디코더는 RF 또는 IR 전송 매체를 사용하여 캐리어에 의해 전송된 프로그래밍 된 인코더로부터 직렬 주소 및 데이터를 수신한다[10].

Table 3. 
HT12D and L293DNE IC chip connection
HT12D L293DNE
D8 4A
D9 3A
D10 2A
D11 1A


Fig. 11. 
Description of HT12D and L293DNE design principle

본 논문에서는 무선조종 자동차를 구동하기 위해서 DC모터를 사용하였다. 좌우 모터를 제어하기 위해서 L293D 칩을 사용하였다. 우리는 Pin 1(Enable), Pin 2 (In1), Pin 7 (In2)을 주로 사용하였다. 그림 12를 보면 순서대로 노랑색과 주황색으로 연결되어 있다. Pin 1(enable)을 GND로 옮기면 모터는 멈추어 서게 되고, pin ln1과 ln2에 무엇을 하던 모터는 동작하지 않는다. Enable핀은 On/Off 스위치와 같으며, PWM출력을 이용하여 모터의 속도를 조절하는데 유용하게 사용할 수 있다. enable핀을 다시 5V로 연결한다. 이제 ln1(pin2, 노랑)을 5V에서 GND로 옮긴다. 그러면 ln1과 ln2는 지금 모두 GND에 연결된 상태로 모터는 다시 멈추게 된다. ln2핀을 GND에서 5V로 옮긴다. 그러면 모터는 반대방향(방향B)로 움직인다. 마지막으로 ln1을 5V로 다시 옮깁니다. 그러면 ln1, ln2가 모두 5V가 되는데, 이 경우 모터가 멈추게 된다[8].

Table 4. 
Data input value according to the desired direction
In1 In2 Motor
GND GND 멈춤
5V GND 방향A로 회전
GND 5V 방향B로 회전
5V 5V 멈춤


Fig. 12. 
Motor control using L293D


Ⅳ. 손의 움직임에 의한 무선조종 자동차 구현결과 및 실험
4-1 시리얼 통신을 통해 얻을 수 있는 가속도

UNO3와 가속도센서를 연결한 후 시리얼통신을 통해 가속도 값 X, Y를 볼 수 있다. 본 눈문에서 언급하고 있는 3축 가속도 센서는 GY-61이며 XL335B를 탑재하고 있어 가속도를 측정할 수 있다. 3차원으로 움직일 때 가속도를 측정할 수 있으며 얻은 가속도로 회전하는 각도를 구할 수 있다. 평면에서 움직이는 무선조종 자동차를 구현하기 때문에 3축 가속도 센서 X축, Y축, Z축 중에서 X축, Y축 상에서 가속도를 측정하였다.


Fig. 13. 
Change of x, y value according to angle change of 3-axis acceleration sensor

4-2 회전각도에 대한 고찰

회전각도에 따라 무선조종 자동차가 움직인다. 즉, 특정 각도 범위 내에서 무선조종 자동차가 움직이게 시스템을 만들어야 한다. 그래서 각각의 회전각도에서의 수치 값을 설정한 뒤 범위를 구하기로 하였다. 왼쪽으로 무선조종 자동차가 움직이게 하는 것을 기준으로 잡고 각도에 따른 수치 값을 정한 후 회전각도의 범위를 지정하는 것을 계획으로 잡았다. 그리고 나머지 방향의 회전각도도 동일하게 적용하기로 한다. 대략적으로 45도 정도 회전했을 때 왼쪽방향으로 무선조종 자동차를 움직이게 하기를 원해서 시리얼 통신으로 확인을 한 결과, Y의 가속도 값을 335으로 고정시켜 놓고 45도정도 회전하였을 때의 X의 가속도 값이 335으로 나왔다. 이를 기준으로 나머지 3개의 회전각도에서 수치 값을 그림 14θ값이 회전 각도를 의미하며, 그림14의 식에 의해서 이론적으로 X값을 확인하였다.


Fig. 14. 
An angle corresponding to the output value x, y value of the acceleration sensor

표 4는 Y를 고정시켜 놓았을 때 회전각도에 따른 X의 값들을 Case별로 나눈 것이다. Case를 40도부터 55도까지의 4가지 경우로 나눈 이유는 45도부터 방향이 바꾸게 하기위해서 45도 미만의 X수치들을 파악해 사용하지 않기 위해서이다. 또한 45도보다 큰 각도가 허용하는 수치를 확인하기 위해 55도까지의 수치 값을 확인하였다. 표4의 각 Case별로 θ에 따른 수치 X는 다음의 식(1)을 이용해 구한다.

θ=tan-1335x , 335x=tanθx=335tanθ(1) 
Table 4. 
The y value is fixed at 335, and the x value
Category Rotation degree(°) X Y
Case 1 40 399 335
Case 2 45 335 335
Case 3 50 281 335
Case 4 55 235 335

가속도 센서는 예민하게 반응하기 때문에 Y값을 고정시킨 채로 X방향으로 움직일 수가 없다. 표 4에서 Case별로 각도가 5도씩 커질 때 X값은 대략 40~50사이로 작아지는 것을 볼 수 있다. 예민한 반응에 의해 Y축이 어느 정도 움직인다고 가정을 했다. 그래서 이번에는 Y를 370으로 고정시켜놓고 X의 가속도 값을 구해 보았다. 표 4의 각 Case별로 θ에 따른 수치 X는 다음의 식(2)을 이용해 구한다.

θ=tan-1370x , 370x=tanθx=370tanθ(2) 

표 5표 4와 마찬가지로 Y를 고정시켜 놓았을 때 회전각도에 따른 X의 값들을 Case별로 나눈 것이다. Case를 40도부터 55도까지의 4가지 경우로 나눈 이유는 45도부터 방향이 바꾸게 하기 위해서 45도 미만의 X수치들을 파악해 사용하지 않기 위해서이다. 또한 45도보다 큰 각도가 허용하는 수치를 확인하기 위해 55도까지의 수치 값을 확인하였다. 위의 Case대로 실험을 진행하였다. 표 4, 5에 의한 8개의 Case를 기준으로 실제로 시리얼통신을 이용해서 X, Y값을 측정하였다. Case별로 이론적으로 계산했던 X수치와 비슷한 X수치가 나왔다. 이론적으로 계산했던 수치와 직접 관측된 수치와 비교하여 왼쪽으로 움직일 때의 X, Y범위 값을 정하였다. 45도를 기준으로 범위를 지정하였다. 가속도 센서의 예민한 반응으로 인해 Y값을 335에서 370까지 5도 정도 변화를 주었을 때 X값도 45도를 기준으로 5도 정도의 변화를 주어 335에서 290으로 지정하였다. 처음에는 각도의 범위를 설정해서 하려고 했지만 10도 정도를 움직였을 때 생각보다 방향을 움직이기 위한 범위가 넓어졌다. 그래서 특정 각도에서만 움직이게 하는 것이 오류를 범하는 확률을 줄일 수 있을 거라 생각해 민감한 변화에 의한 수치의 변화만을 범위로 지정했다. 무선조종 자동차의 진행을 좌우상향 방향을 각도에 의한 수치를 이론적으로 계산한 뒤 실제 관측 값과 비교하여 원하는 각도에 대해 원하는 방향으로 움직이는지 가장 합리적인 파라메타 값을 도출하였다. 그래서 그림 15를 보면 X, Y범위에 따라 어떤 방향으로 가는지 직관적으로 확인할 수 있다.

Table 5. 
The y value is fixed at 370, and the x value
Category Rotation degree(°) X Y
Case 1 40 440 370
Case 2 45 370 370
Case 3 50 311 370
Case 4 55 259 370


Fig. 15. 
Graph direction graph according to X, Y range

4-3 무선조종 자동차 멈춤에 대한 범위설정

위의 실험에서는 모든 범위를 40으로 놓고 예외적으로 “Stop”에 대한 부분만 범위만 35로 놓았다. 이 범위를 각각 15, 35, 55로 다르게 했을 때 일어나는 변화에 대해서 관찰해보았다. 범위를 15와 55로 하면 X, Y의 최솟값은 그대로 이고 X, Y의 최댓값에 변화가 생긴다. 그래서 앞, 오른쪽의 범위도 바뀌게 된다. 표 6은 방금 언급한 것을 정리한 것이다.

Table 6. 
X, Y range value when stop is divided into three cases
Category Range of Stop X Y
Case 1 15 335~350 335~350
Case 2 35 335~370 335~370
Case 3 55 335~395 335~390

각각 Case에 따른 방향전환속도를 측정해 보았다. Case2를 기준으로 Case1과 Case3의 방향전환속도를 비교해보았다. Case별로 왼쪽방향으로 움직이다 멈추고 오른쪽으로 방향을 바꿀 때의 무선조종 자동차가 멈춰있는 시간을 관측하였으며 각각 5번씩 실행하였다. 시간은 멈춤 후부터 측정을 하였으며 가속도 센서를 움직이는 속도를 최대한 비슷하게 하였다.

표7에서 구한 속도를 바탕으로 평균속도를 구하였다. Case별로 모두 더한 값을 전체 시행횟수 5로 나눠주었다.

Table 7. 
Observation time of RC car stop when acceleration sensor is changed from left to right
Category Range of Stop Time
Case 1 15 1.3 1.5 1.2 1.3 1.4
Case 2 35 2.3 2.4 1.8 2.2 2.1
Case 3 55 3.2 3.4 3.3 2.8 3.1

Table 8. 
The average value of the time obtained in Table 7
Category Range of Stop Average of time
Case 1 15 1.34
Case 2 35 2.16
Case 3 55 3.16


Fig. 16. 
Graph direction graph according to X, Y range

Stop의 범위를 15, 35, 55의 3가지 경우로 나누어 방향이 바뀔 때 멈춰있는 시간을 측정하였다. Case1부터 보면 범위가 15일 때는 방향 전환을 하는 시간이 1초 초반대로 너무 짧았고, 멈춰있게 하는 범위 범위가 짧다보니 조금만 움직여도 방향전환이 되었다. 즉, 멈춰있을 때의 안정도가 떨어진다. Case3은 범위가 55일 때이다. 이 경우는 3초대 후반이 나왔고, 안정성은 높지만 범위가 넓다보니 손목을 많이 좀 더 오른쪽 방향으로 45도보다 더 움직여야 하는 단점이 있어 Case2의 결과가 가장 이상적이라는 것을 확인하였다. 결국에 원하는 각도에 의해 움직이게 만들었고, 위에서 구한 파라미터 데이터를 통신해 무선조종 자동차를 움직이게 하였다.


Ⅳ. 결 론

본 논문에서는 구현된 3축 가속도 센서를 이용한 무선조종 자동차로 간단한 손의 움직임으로 자동차를 움직이는 기능을 가지고 있다. RF통신을 이용해 가속도 센서에 의한 수치 데이터를 직렬통신으로 무선조종 자동차의 수신부로 보내 손의 움직임에 따라서 자동차가 움직일 수 있게 하였다. 이를 구현시키기 위해서 가속도 센서의 데이터 시트를 확인하여 무선조종 자동차의 좌우상향 방향을 각도에 의한 수치를 이론적으로 계산하였고, 실제 관측 값과 비교하여 원하는 각도에 대해 원하는 방향으로 움직이는지 가장 합리적인 파라메타 값을 도출할 수 있었다. 무선조종 자동차는 DC모터를 이용해서 바퀴가 굴러갈 수 있도록 하였다. 기존의 무선조종 자동차를 조이스틱으로 움직이는 것이 아니라 손의 움직임을 이용한 기술로 구동에 성공하였다. 비교적 저렴한 RF통신이 아닌 블루투스 모듈을 이용해 무선으로 무선조종 자동차를 움직이는 것도 가능할 것으로 생각한다. 또한 무선조종 자동차에 초음파 센서 혹은 적외선 센서를 달아 무선조종 자동차가 움직이는 방향에 장애물을 감지하여 피해서 움직일 수 있는 기술을 추가적으로 연구할 수 있으리라 본다.


참고문헌
1. Hongyeon Kim, Junki Min, “Implementaton of a Motion Capture System using 3-axis Accelerometer”, Journal of KIISE, 17(6), p383-388, June, 2011.
2. Jeong-Rae Cho, Hye-Suk Kim, Doo-Keol Chae, and Suk-Ja Lim, “Smart CCTV Security Service in IoT(Internet of Things) Environment”, Journal of Digital Contents Society, 18(6), p1135-1142, (2017).
3. Ki-ho Kang, and Young-Suk Lee, “A Study on Remote Automatic Flipped System for Music Score Based on IoT”, Journal of Digital Contents Society, 19(2), p259-267, (2018).
4. http://www.jkelec.co.kr/img/sensors/manual/adxl335_gy61/adxl335_gy61_manual.html
5. https://ko.wikipedia.org/wiki/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
6. https://www.farnell.com/datasheets/1899539.pdf
7. http://www.mantech.co.za/Datasheets/Products/433Mhz_RF-TX&RX.pdf
8. https://www.farnell.com/datasheets/1525377.pdf
9. http://wiki.vctec.co.kr/opensource/arduino/dcmotordirection
10. https://randomnerdtutorials.com/rf-433mhz-transmitter-receiver-module-with-arduino/

저자소개

임수민(Su-Min Lim)

2014년 ~ 현재: 강원대학교 IT대학 전기전자공학과 재학

※관심분야: 사물인터넷(IoT) 및 움직임 제어 무선조종 자동차 등

신민재(Min-Jae Shin)

2014년 ~ 현재: 강원대학교 IT대학 전기전자공학과 재학

※관심분야: 사물인터넷(IoT) 및 움직임 제어 무선조종 자동차 등

김동회(Dong-Hoi Kim)

2005년 : 고려대학교 전파공학과 (공학박사)

1989년 1월 ~ 1997년 1월 : 삼성전자 전임연구원

2000년 8월 ~ 2005년 8월 : 한국전자통신연구원 선임연구원

2006년 3월 ~ 현재 : 강원대학교 IT대학 전기전자공학과 교수

※관심분야: 네트워크 및 사물인터넷(IoT) 등