The Korean Society of Marine Engineering
[ Article ]
Journal of the Korean Society of Marine Engineering - Vol. 38, No. 6, pp.723-729
ISSN: 2234-7925 (Print) 2234-8352 (Online)
Print publication date Jul 2014
Received 06 Feb 2014 Revised 10 Mar 2014 Accepted 27 May 2014
DOI: https://doi.org/10.5916/jkosme.2014.38.6.723

A smartphone toy control system based on bluetooth using stop-and-wait ARQ protocol

SongJ. H.1 ; KimH. K.2 ; ShinO. K.
1Division of IT, Korea Maritime and Ocean University 2Division of IT, Korea Maritime and Ocean University
Stop-and-Wait ARQ 프로토콜을 적용한 스마트폰의 블루투스 기반 완구 제어 시스템

Correspondence to: Division of IT, Korea Maritime and Ocean University, Dongsam-dong, Yeongdo-gu, Busan, 606-791, Korea, E-mail: okshin@kmou.ac.kr, Tel: 051-410-4572

When the bluetooth technology of smartphone is applied to a remote control system, communication errors caused by wave attenuation and interference results in the shortening of communication distance, loss of the target device control and malfunctioning. In this study, we propose a method to adopt a retransmission persistence controlled S/W ARQ in bluetooth communication to minimize the effect of the communication failure and to detect and handle the state where the target device gets lost control. We implemented a motor-driven RC car equpped with a bluetooth communication module and a steering application program on smartphone to test the proposed method. The experiments are conducted in three communication environments, and have resulted in the increase of the communication distance by at least 30% when S/W ARQ is applied. Moreover, when the communication was disrupted due to environmental disturbances, the S/W ARQ based system stopped immediately any undergoing operations to avoid possible malfunction.

초록

스마트폰의 블루투스 통신기술을 원격 제어 시스템에 적용하였을 때, 전파 감쇠와 간섭 등으로 인한 통신오류는 원격 조종 거리의 제한 및 제어 대상 기기의 조종 불능과 오동작의 원인이 된다. 본 연구에서는 통신 오류의 영향을 최소화하고, 또한 통신 장애로 인해 제어 대상 기기가 조종 불능상태에 빠졌을 때 시스템이 이를 감지하고 대처하도록 하기 위한 방편으로, 블루투스 원격 통신 시스템에 재전송 지속성이 조절되는 S/W ARQ를 이용하는 방법을 제안한다. 본 연구에서는 블루투스 모듈이 장착된 RC카(Remote control car)와 이를 조종하기 위한 스마트폰 애플리케이션을 구현한 다음, 제안하는 방법을 시험하였다. 몇 가지 통신 환경에서 시스템을 실험한 결과, S/W ARQ를 적용하였을 때 통신 가능한 거리가 최소한 30% 이상 늘어났음을 확인할 수 있었다. 뿐만 아니라, 통신 장애가 발생하여 조종이 어려운 경우 S/W ARQ가 적용된 시스템은 즉시 구동을 멈추어 오동작을 회피함을 확인하였다.

Keywords:

bluetooth, ARQ, RC Car, Remote control system, 블루투스, RC 카, 원격 제어 시스템

1. 서 론

최근 개인용 정보통신기기인 스마트폰의 성능과 기능은 눈부시게 발전하고 있으며 응용범위도 크게 넓어지고 있다. 스마트폰에는 여러 가지 통신기술이 적용되어 있는데, 그중에서도 블루투스는 통신 모듈의 크기가 작고 전력소모가 적을 뿐 아니라 모듈의 가격 또한 저렴하여 활용 가능성이 매우 높은 근거리 통신기술이다[1]. 이 기술은 지금까지 주로 데스크탑 컴퓨터 혹은 포터블 컴퓨터와 주변기기 사이의 파일 전송, 각종 무선 음향기기 및 무선 입력장치 등에 많이 활용되었으며, 실생활과 밀접한 원격 제어 시스템의 통신수단으로도 유용하게 쓰일 수 있을 것이다.

본 연구에서는 스마트폰의 블루투스 통신 기능을 이용하여 원격 조종 완구나 가전제품 등을 원격에서 조종하는 시스템에 통신오류 제어 프로토콜의 하나인 S/W ARQ(Stop-and-Wait Automatic Response reQuest)을 적용하는 방안을 검토하고 그 효율성을 실험한다.

블루투스 통신은 ISM 대역의 전파를 사용하는데, 이 대역의 전파는 반사, 산란, 회절되기 쉬운 한편[3], 전력 소모와 전파 간섭을 최소화하기 위해 출력전력은 제한된다[1]. 따라서 통신 거리가 멀어지거나 통신 경로에 장애물이 나타나면 전파 감쇠가 일어나 통신오류가 증가한다. 블루투스 원격 제어 시스템에서 이를 극복하기 위해서는 다음의 기능을 갖춘 통신오류 제어 프로토콜이 필요하다: 프레임 누락 및 비트 오류가 발생하였을 때 이를 빠르게 감지할 수 있고, 오류가 발생한 데이터가 반복하여 전송되어야 하며, 제어기와 제어대상 간의 통신연결 상태를 유지하고, 연결 상태를 지속적으로 점검하여 연결이 끊어지면 이를 즉시 감지하여야 한다.

블루투스 표준 규격에는 통신오류를 제어하기 위해 ARQ를 이용한 프로파일들이 있으며, 영상음향장비 제어 프로파일인 AVRCP[3]와 같은 원격장비 제어 프로파일이 그 대표적인 예이다. 완구나 가전제품을 원격 제어하기 위한 프로파일은 블루투스 표준 규격에 제정되어 있지 않으므로, 이들 장비에 대한 통신 체계와 오류 제어 프로토콜을 마련할 필요가 있다. S/W ARQ는 비교적 단순한 제어 구조를 가지면서도[4] 이러한 원격 제어 시스템에 요구되는 기능들을 갖추고 있다.

본 연구에서는 원격 제어 시스템에 S/W ARQ 프로토콜을 적용했을 때의 특성과 효용성을 알아보기 위해, 블루투스 모듈을 장착한 RC카(Remote control car)와 RC카를 조종하는 스마트폰 애플리케이션으로 이루어진 원격 제어 시스템(이하 블루투스 RC카 시스템)을 구현하고, 세 가지 환경에서 이를 구동하여 실험을 수행하였다. 실험결과 S/W ARQ를 적용한 경우 조종 가능 거리가 상당히 늘어났으며, 또한 RC카가 사용자의 제어 범위를 벗어나 통신이 두절되었을 때 RC카가 이를 감지하여 대처함을 확인하였다.

본고의 구성은 다음과 같다. 제 2장에서는 본 연구에서 구현한 소프트웨어 및 하드웨어와 함께 스마트폰과 RC카에 구현된 S/W ARQ의 구조에 대해 설명한다. 제 3장에서는 제안하는 방안의 성능을 측정하기 위한 실험과 그 결과에 대해 설명한 다음 제 4장의 결론으로 끝맺는다.


2. 시스템 설계 및 구현

2.1 S/W ARQ와 블루투스 RC카 시스템

ARQ(Automatic Response reQuest, 자동 재전송)는 송신측이 프레임을 전송하면 수신측에서 수신 여부를 확인응답 프레임을 통해 송신측에 알리는 방식의 통신오류 제어 프로토콜이다. 프레임 재전송 타이머를 갖는 ARQ가 적용된 시스템의 경우, 송신측은 확인응답 프레임을 받지 못하거나 오류를 알리는 확인응답 프레임을 수신하였을 때 프레임을 재전송하여 오류 복구를 시도한다[4][5]. 이때 재전송은 프레임이 정상적으로 송신되거나 재전송 횟수가 일정 값에 도달할 때까지 계속되는데, 재전송 횟수를 조절하여 ARQ의 신뢰도와 효율성을 조절할 수 있다[6][7].

본 연구에서 다루고자 하는 RC카 시스템에서는, 스마트폰의 버튼이나 터치스크린으로 입력된 조종 명령이 블루투스를 통해 RC카로 전달된다. 이때 통신 장애가 발생하면 RC카가 오작동할 수 있는데, RC카가 전진 중에 스마트폰과 지나치게 멀어져 정지 명령 프레임을 받지 못하고 계속 전진하여 통제 불능 상태가 되는 경우가 대표적이다. 이러한 시스템에 재전송 타이머를 가진 ARQ를 적용하면 프레임 오류나 통신 두절을 송수신 양측이 모두 빠르게 감지하여[7] 대처할 수 있고, 프레임 재전송의 반복을 통해 오류 복구 가능성이 증대될 수 있으므로 RC카 시스템에 적합하다.

ARQ의 한 종류인 S/W ARQ는 프레임 하나를 전송하고 확인응답을 기다리다가, 확인응답이 수신되면 다음 프레임을 전송하는 방식이다. S/W ARQ의 경우 버퍼 공간 소요가 적고 제어 구조가 단순하여[5] 구현과 관리 측면에서 이점을 갖추었으므로, 본 연구에서는 S/W ARQ를 RC카 시스템에 적용하고 그 성능을 시험하였다.

2.2 시스템의 구성

스마트폰으로 조종되는 RC카 시스템을 Figure 1과 같이 구성하였다. Android OS 기반의 애플리케이션에서 버튼으로 입력된 조종 명령은 블루투스 모듈을 통해 RC카에 전송된다. RC카는 ATMega128 MCU와 블루투스 모듈, 모터 등으로 구성되었다. 스마트폰의 조종 명령이 블루투스 모듈을 통해 MCU로 전달되면, MCU는 이 명령에 따라 RC카를 구동하고 스마트폰에 확인응답을 전송한다.

Figure 1:

RC car system based on smartphone and bluetooth

RC카 및 S/W ARQ를 구동하기 위한 프레임의 구조는 Figure 2와 같다. 프레임의 길이는 모두 8비트이고, 다음의 두 가지 요소로 이루어진다 : ARQN은 S/W ARQ에서 프레임 전달 확인에 사용되는 ARQ 비트이다. COMMAND는 RC카를 구동하거나 통신 상태를 확인하는 명령이며, 그 종류는 Table 1에 자세히 나타내었다.

Figure 2:

Structure of frame (unit : bit)

List of COMMAND bits means

2.3 스마트폰과 RC카 시스템의 상태도

스마트폰의 S/W ARQ의 작동 방식을 Figure 3에 상태도로 나타내었다. 애플리케이션이 시작되면, 시스템은 바로 [Connection required] 상태로 이동한다. 이 상태에서 시스템은 RC카와의 연결이 필요함을 알리는 메시지를 스마트폰 화면에 띄우고, 연결 요청 프레임을 RC카로 주기적으로 전송하며 ACK 프레임을 기다린다. ACK 프레임이 수신되면, 시스템은 [ACK received]로 이동한다. ACK 프레임의 ARQN이 올바르면 상황에 따른 명령 프레임을 RC카로 전송하고, 통신 오류 횟수가 누적되는 errCount 변수를 리셋한 후 [Wait for ACK] 상태로 이동한다.

Figure 3:

State diagram of S/W ARQ in smartphone

만약 시스템이 위의 과정을 수행하는 중에 ACK가 일정 시간 이상 도착하지 않거나 ACK의 ARQN이 올바르지 않은 등의 통신 오류가 발생하면 그 횟수는 errCount에 누적되며, 명령 프레임은 재전송된다. errCount가 미리 설정된 오류 횟수 제한값인 Nmax에 도달하면, 시스템은 [Connection required]로 이동한다. 이후 프레임이 정상적으로 송수신되면 errCount가 0으로 초기화된다.

RC카에 구현된 S/W ARQ의 상태도는 Figure 4에 나타내었다. RC카에 전원을 인가하면, 시스템은 [Connection required] 상태로 이동한다. 이 상태에서 시스템은 차체의 구동을 멈추고 차체의 LED와 Buzzer를 작동시켜서 스마트폰과의 연결이 필요함을 표시한다. 연결 요청 프레임이 수신되면 시스템은 [Command received] 상태로 이동한다. 명령 프레임의 ARQN이 올바르면, 시스템은 ARQN을 반전시키고 ACK 프레임을 스마트폰에 전송하며, errCount를 초기화한 후 [Wait for command] 상태로 이동한다. 프레임이 정상적으로 송수신되는 동안 이 과정은 반복된다.

Figure 4:

State diagram of S/W ARQ in RC car

만약 시스템이 위의 과정을 수행하는 중에 명령 프레임이 일정 시간 이상 도착하지 않거나 명령 프레임의 ARQN이 올바르지 않은 경우, 혹은 프레임에 비트 오류가 발생하면 그 횟수는 errCount에 누적된다. ARQN이 올바르지 않은 경우, ACK 프레임은 재전송된다. errCount가 Nmax에 도달하면, 시스템은 [Connection required]로 이동하며, 이후 프레임이 정상적으로 송수신되면 errCount가 0으로 초기화된다.

이처럼 S/W ARQ의 상태 천이를 통해 스마트폰과 RC카가 지속적으로 연결을 유지함으로써, RC 카 시스템의 오류 검출 및 재전송이 이루어진다. 또한 오류 발생이 잦아 통신이 원활하지 않을 때, 스마트폰과 RC카가 S/W ARQ를 통해 상황을 감지하고 능동적으로 대응할 수 있다.

2.4 스마트폰 애플리케이션

RC카 조종을 위한 스마트폰 애플리케이션의 구조와 이에 관련된 스마트폰의 기능을 Figure 5에 블록 다이어그램으로 나타내었다. 애플리케이션은 스마트폰과 RC카의 연결을 성립시키기 위한 DeviceList activity, 조종 입력을 받아들이기 위한 CMD UI, 그리고 RC카와의 통신 과정에서 발생하는 오류를 제어하기 위한 S/W ARQ를 포함하는 Main activity로 이루어져 있다. 애플리케이션은 안드로이드 OS의 장치 제어 API를 통해 블루투스 모듈에 접근할 수 있다.

Figure 5:

Block diagram of smartphone application and related functions

2.5 RC카

RC카의 차체 내부에 구성한 제어장치를 Figure 6에 블록 다이어그램으로 나타내었다. 제어장치는 블루투스 통신 모듈과, 통신 모듈을 통해 전달된 제어 명령의 해석을 위한 ATMega128 MCU, 해석된 제어 명령에 따라 모터에 가해지는 전력을 조절하는 DC모터 드라이버, 차체를 움직이기 위한 앞뒤의 DC모터, 9.6v 전원과 그 전압을 5v 및 3.3v로 조절하는 레귤레이터, 상황에 따라 시청각적인 출력을 일으키기 위한 LED와 Buzzer 등으로 이루어져 있다.

Figure 6:

Block diagram of RC car


3. 시스템 성능시험 및 분석

RC카 시스템에 적용된 S/W ARQ의 효용을 검증하기 위해 3장의 설계에 따라 구현된 RC카 시스템을 시험하고 그 결과를 수집하였다.

블루투스가 사용하는 ISM 대역의 전파는 장애물에 의해 반사, 산란, 회절된다. 이 때문에 블루투스의 전파 수신율은 실내와 실외에서 많은 차이를 보이고, 실내에서도 공간의 넓이와 벽면의 재질, 내부 집기 등의 요인이 전파 수신율에 영향을 미친다[3]. 이를 고려하여 다양한 통신 환경에서 S/W ARQ의 효용을 시험하기 위해, 모두 세 가지 환경에서 시험을 시행하였다. 시험 환경 1 및 2를 Figure 7~8에 보였으며, 각 환경의 특성을 Table 2에 요약하였다.

Figure 7:

Test environment 1

Figure 8:

Test environment 2

Charicteristics of test environments

S/W ARQ를 적용하였을 때 성능 향상 정도를 알기 위해, 모든 시험환경에서 S/W ARQ를 적용한 ARQ 모드와 S/W ARQ를 적용하지 않은 비 ARQ 모드의 시험을 같이 수행하여 그 결과를 비교하였다. ARQ 모드에서는 S/W ARQ를 통해 스마트폰과 RC카 사이에 프레임이 송수신된다. 이 모드에서 스마트폰 혹은 RC카가 프레임을 전송한 후 상대방의 확인응답 프레임을 대기하는 시간은 50ms이고, 최대 재전송 횟수 Nmax는 20이다. 또한 스마트폰은 프레임 송수신 간격을 조절하기 위해 RC카로부터 ACK를 수신한 후 조종 명령 프레임을 송신하기 전에 40ms동안 대기하며, RC카는 조종 명령 프레임을 송신하면 대기 시간 없이 ACK 프레임을 송신한다. 통신 오류 횟수가 Nmax에 달하면 모터의 작동이 중지되고 RC카의 LED와 Buzzer가 작동한다.

비 ARQ 모드에서는 조종 명령이 입력되었을 때 명령 프레임이 RC카로 1회 송신된다. 이 프레임이 RC카에 정상적으로 수신되면 RC카는 프레임의 명령대로 동작하고 응답신호는 송신하지 않으며, 프 레임 손상이나 유실 등의 오류에 대해서는 어떠한 처리도 하지 않는다.

ARQ 모드와 비 ARQ 모드로 각각 스마트폰과 RC카 사이의 연결을 설정한 뒤, 스마트폰으로 RC카 앞바퀴의 방향을 조작하는 명령을 전송하여 동작 여부를 확인하였다. 스마트폰과 RC카 사이의 거리를 10m씩 늘여가며 시험하였고, 각 시험당 10회씩 명령전송을 반복하면서 앞바퀴가 동작한 횟수를 계수하였다.

시험의 결과를 Figure 9 ~ Figure 11에 나타내었다. 우선 확인할 수 있는 것은, 오류 제어 프로토콜 사용 여부와는 별개로 주변 환경이 블루투스 통신의 통달 거리에 상당한 영향을 미친다는 것이다. 비 ARQ 모드로 시스템을 운용하였을 때 개활지인운동장(시험 환경 3)의 100% 통달 거리는 10m였다. 건물 내 복도인 시험 환경 1과 2의 100% 통달 거리는 이보다 더 길었는데, 두 벽면 대부분이 콘크리트로 이루어진 시험 환경 1의 통달 거리(40m)가, 벽면의 재질에서 유리창과 목재의 비율이 높은 시험 환경 2의 통달 거리(30m)보다 길었다.

ARQ 모드를 적용하였을 때의 통신 성공률은 모든 시험 환경의 모든 거리에서 비 ARQ 모드와 같거나 그보다 높았으며, 이에 따라 조종이 가능한 거리도 증가하였다. 특히 시험 환경 3의 경우, ARQ 모드에서 100%의 통신 성공률을 기록한 최장거리는 20m인데, 이것은 비 ARQ 모드에 비해 두 배로 증가한 것이다. 또 이 환경의 ARQ 모드에서 한 번이라도 통신이 성공한 최장거리는 30m인데, 이 또한 비 ARQ 모드에 비해 10m 증가하였다.

Figure 9:

Result graph of test environment 1

Figure 10:

Result graph of test environment 2

Figure 11:

Result graph of test environment 3

ARQ 모드와 비 ARQ 모드의 성능 차이는 스마트폰과 RC카 사이의 거리가 어느 정도 떨어져서 비 ARQ 모드의 성능이 감소할 때 드러난다. 예를 들어 Figure 10의 시험 환경 2에서 40m 구간의 통신 성공 횟수를 비교하면, ARQ 모드의 경우 10회이고 비 ARQ 모드는 4회로, ARQ 모드를 적용하였을 때 250% 증가하였다. 같은 방법으로 비교하였을 때 50m 구간의 통신 성공률은 ARQ 모드 적용 시 350% 증가하였고, 60m 구간의 통신 성공률은 150% 증가하였다.

한편 ARQ 모드에서 시험 중 프레임 누락이 빈번히 일어나거나 통신이 두절될 경우, RC카의 모터 동작이 멈추고 LED와 Buzzer가 동작함을 확인하였다.


5. 결 론

본 연구에서는 스마트폰의 블루투스 통신 기능으로 구성한 원격 제어 시스템에 오류 제어 프로토콜로 S/W ARQ를 적용하고 그 효용성을 시험하여 검증하고자 하였다. 이를 위해 RC카 시스템을 제작한 다음, S/W ARQ를 적용하여 원격 조종 시험을 수행한 결과와 S/W ARQ를 적용하지 않고 같은 시험을 수행한 결과를 비교하였다. S/W ARQ를 적용하였을 때 조종 명령의 수신율이 개선되었고, 이로 인하여 S/W ARQ를 적용하지 않았을 때에 비해 조종 명령의 전반적인 통달 거리가 증가하였다. 또한 S/W ARQ를 통해 RC카 시스템이 통신 상황을 감지하여, 통신 상태가 좋지 않을 경우 기동을 멈추고 Buzzer와 LED 신호를 발생시켜 대응할 수 있음을 확인하였다. 이처럼 S/W ARQ의 적용을 통해 조종 명령의 수신율과 통달 거리를 증가시키고 통신 상황에 대한 대응 능력을 부여하는 기법은, RC카와 같은 완구류와 여러 가전제품 등 실생활에 밀접한 전자제품을 스마트폰으로 제어할 때의 효용성을 증가시킬 수 있을 것으로 생각된다. 또한 향후 본 연구의 결과를, 각종 원격 제어 시스템에 대한 블루투스 프로파일 제작에 응용할 수 있을 것이다.

References

  • Bluetooth Special Interest Group, Bluetooth specification version 4.1, http://www.bluetooth.org, Accessed December 3, (2013).
  • Y. J. Yoon, J. W. Kim, K. H. Kim, S. W. Choi, and S. H. Lee, A Study on Indoor Propagation Characteristics for a Short Distance Radio Communication Service in ISM Band, M.S. Thesis, Department of Electrical and Electronic Engineering, Yonsei University, Korea, (2002), (in Korean).
  • Bluetooth Special Interest Group, Audio/Video Remote Control Profile V15, http://www.bluetooth.org, Accessed November 13, (2013).
  • William stallings, Data and Computer Communications, 8th Ed., Prentice Hall, (2007).
  • S. Lin, Daniel J. Costello, and Michael J. Miller, “Automatic-repeat-request error control schemes”, IEEE Communications Magazine, 22(12), p5-17, (1984).
  • G. Fairhurst, and L. Wood, Advice to Link Designers on Link Automatic Repeat Request (ARQ), http://www.ietf.org/rfc/rfc3366.txt, Accessed November 13, (2013).
  • B. J. Kim, “A buffer size-based retransmission persistence control for ARQ protocols”, The Korea Institute of Electronic Communication Sciences, 6(4), p487-492, (2011), (in Korean).

Figure 1:

Figure 1:
RC car system based on smartphone and bluetooth

Figure 2:

Figure 2:
Structure of frame (unit : bit)

Figure 3:

Figure 3:
State diagram of S/W ARQ in smartphone

Figure 4:

Figure 4:
State diagram of S/W ARQ in RC car

Figure 5:

Figure 5:
Block diagram of smartphone application and related functions

Figure 6:

Figure 6:
Block diagram of RC car

Figure 7:

Figure 7:
Test environment 1

Figure 8:

Figure 8:
Test environment 2

Figure 9:

Figure 9:
Result graph of test environment 1

Figure 10:

Figure 10:
Result graph of test environment 2

Figure 11:

Figure 11:
Result graph of test environment 3

Table 1:

List of COMMAND bits means

명칭 10진수값 내용
BREAK 0 제동
STOP 1 모터 작동 정지
FORWARD 12~19 전진(값이 클수록 빠름)
LEFT 22~29 좌향(값이 클수록 빠름)
RIGHT 32~39 우향(값이 클수록 빠름)
BACK 42~49 후진(값이 클수록 빠름)
CONFIRM 63 통신상태 확인 신호

Table 2:

Charicteristics of test environments

번호 거리 유형 구조물 및 재질
1 60m 복도 벽(콘크리트) ,문(목재/철제)
2 80m 복도 벽(콘크리트, 목재), 문(목재). 창문(유리)
3 50m 야외 개활지