Ⅰ. 서론
최근 업무 효율을 높이기 위해 업무용 데스크 위에 음악을 듣기 위한 블루투스 스피커를 사용하거나 핸드폰, 태블릿 등을 놓고 활용하여 업무를 수행하는 등 다양한 크기나 형태의 스마트 기기들을 활용하는 경우가 많아지고 있다. 그러나 기존의 일반 데스크에서는 주변의 기기들을 적절히 활용하기 위해서 해당기기에 맞는 별도의 거치대를 구비하는 등의 비용 지출이 늘어나는 문제가 있다. 이에 본 논문에서는 데스크를 다양한 장비나 기기를 거치할 수 있는 형태로 자유롭게 변형하고 활용할 수 있는 방안에 대하여 제안하고자 한다. 이를 위해 본 논문에서는 예술 분야에서 많이 활용되고 있는 핀 아트 기술을 도입하여 데스크의 높이를 영역별로 자유롭게 변경할 수 있는 데스크를 설계 및 구현하고자 한다. 이를 통해 다양한 형태의 기기를 자유롭게 배치하여 활용할 수 있고 이를 통해 업무 효율을 증가시킬 수 있음을 다양한 형태 변형 예를 제시하여 보이고자 한다.
본 논문의 구성은 다음과 같다. 먼저 2장에서 본 논문에서 활용하고자 하는 핀 아트 기술에 대해 살펴보고 본 연구와 관련된 사항을 요약한다. 3장에서는 제안하는 시스템의 하드웨어 구성 및 안드로이드 애플리케이션 구성에 관하여 다루고 4장에서 실제 구현 결과를 다양하게 보인다. 마지막으로 5장에서 결론을 제시한다.
Ⅱ. 관련연구
최근 사용자 중심의 경험을 바탕으로 맞춤형 서비스를 제공하고자 하는 콘텐츠 제작 및 제공에 관한 다양한 연구가 제시되고 있다[1, 2]. 그러나 대부분의 연구가 콘텐츠 중심으로 이루어지고 있어, 작업 효율을 높일 수 있는 환경 제공에 관한 연구는 극히 미비한 실정이다. 이에 본 연구에서는 하드웨어 제어를 통한 사용자 중심의 맞춤형 작업 환경을 제공할 수 있는 방안을 다루고자 한다.
핀 아트(Pin Art) 또는 핀 스크린(Pinscreen)은 1985년 W. Fleming이 특허로 제안하였던 디스플레이패널 같은 것으로, 아주 작은 둘레의 핀 형태를 화면에 배치하고 각 개별 핀의 높이를 제어하여 다양한 형태의 그림을 도트 페인팅 형태로 보여주는 기술 혹은 그러한 화면을 말한다[3, 4]. 이는 예술 분야나 게임, 엔터테인먼트 분야에서 널리 사용되고 있는 기술이다[5, 6]. 이 기술은 평면을 다수의 핀 형태로 구성하고 이를 변형할 수 있어 다양하게 활용될 수 있다. 본 논문에서도 데스크의 영역을 핀 형태로 나누어 각각의 핀을 제어함으로써 데스크의 윗 면을 자유롭게 재구성하는데 활용하고자 한다.
안드로이드는 구글에서 2007년에 발표한 운영제체이다. 안드로이드는 오픈소스 진영인 리눅스 기반으로 개발한 운영체제를 사용하고 있어 소스 코드를 완전 개방하는 방식을 통해 개발효율을 높이고 있다[7]. 본 연구에서 제안하는 재구성 가능한 데스크의 제어를 위한 인터페이스로 안드로이드 애플리케이션을 사용하고자 한다. 이는 누구나 간단한 터치 및 숫자 입력만을 통해서 쉽고 빠르게 원하는 형태의 데스크로 변형할 수 있도록 하기 위함이다.
최근 업무를 수행함에 있어 그 효율을 높이기 위하여 다양한 기기를 데스크에 올려놓고 활용하는 경우가 많다. 그러나 기존의 데스크 변형에 관한 연구는 데스크의 높낮이 조절을 위한 구조 설계[8]에 대한 내용이 제한된 바 있고, 최근 시제품으로 출시되는 데스크는 사용자의 키에 맞춰 높낮이를 수동 혹은 자동으로 조절할 수 있는 정도에 그치고 있다. 따라서 본 연구에서는 <그림 1>과 같이 데스크의 윗면을 자유롭게 재구성하고 다양하게 활용할 수 있는 방안에 대하여 제안하고자 한다.
<그림 1> 재구성 가능한 데스크 구상도
Ⅲ. 핀 아트 기술을 활용한 데스크
3.1 시스템 구성
핀 아트 기반의 맞춤형 데스크는 타일같이 바둑판식으로 나눠진 20개의 핀으로 구성하였다. 핀은 바닥과 수직 방향으로 상하 움직임이 가능하도록 설계하였다. 핀의 동작을 통해 전체적인 데스크의 형태가 변경된다. 핀의 동작을 제어하기 위하여 아두이노 기반의 하드웨어를 구성하였고, 사용자가 안드로이드 애플리케이션에서 핀의 높낮이를 설정하여 하드웨어를 제어할 수 있도록 설계하였다. 하드웨어와 애플리케이션 간의 통신은 TCP/IP 소켓 통신을 사용한다.
3.2 하드웨어 구성
제안하는 시스템의 하드웨어는 아두이노 Mega2560 보드, 스텝 모터, 모터 드라이버(SZH-EK001), WiFi 통신모듈(ESP8266)로 구성하였다. 아두이노 Mega2560 보드는 최근의 IoT 응용을 위해 가장 널리 사용되는 아두이노 UNO 보드보다 입출력 포트가 많고, 메모리용량 등 기본 사양이 더욱 높게 설계된 보드이다. 제안하는 시스템은 아두이노 보드하나가 5개의 모터 드라이버를 제어하고 WiFi 통신모듈을 이용하기 때문에 다수의 포트 연결이 필요하다. 이에 Mega2560 보드를 핀 제어를 위한 제어모듈로 선정하였다. 모터 드라이버(SZH-EK001)는 외부전압 5V, 12V를 입력받는 포트, GND 포트, 메인 보드로부터 신호를 입력받는 포트 4개, 스텝 모터를 제어할 수 있는 4개의 출력 포트로 구성된다. 모터 드라이 버는 12V의 외부 전압을 모터에 공급하고, 스텝 모터는 2개의 상을 가지고 4개의 신호 입력 받아 동작하고 모터 드라이버 4개의 출력 포트를 통해 모터 제어입력을 받는다. 제안하는 시스템에서는 총 20개의 핀을 제어하도록 설계하였기 때문에 총 4개의 Mega2560 보드를 병렬적으로 사용할 수 있도록 구성하였다. <그림 2>는 아두이노 한 개당 연결되는 모터 제어부 회로도이다.
<그림 2> 모터 제어부 설계
WiFi 통신모듈(ESP8266)은 Mega2560의 시리얼 포트의 RX, TX를 교차로 연결하여 시리얼 통신을 하고, 3.3V의 정격전압을 가진다. 이 통신모듈의 환경설정 및 공유기 접속은 AT 명령어를 통해 변경이 가능하다. 다수의 통신모듈과 WiFi 통신을 위해서는 모든 통신모듈이 하나의 공유기에 접속하여 각각의 IP를 할당받도록 하였다. 할당받은 IP를 기반으로 TCP/IP통신을 통해 모터 제어를 위한 데이터를 수신할 수 있도록 하였다. <그림 3>은 통신 모듈의 연결 회로도이다.
<그림 3> 하드웨어 통신 모듈 회로
모터 제어 회로와 통신 모듈 회로도를 통합한 전체 회로도의 형태는 <그림 4>와 같다.
<그림 4> 전체 하드웨어 구성
3.3 핀 구조와 동작 원리
모터는 보편적으로 회전 운동을 하기 때문에 자동차의 바퀴를 굴리는 것과 같이 물체를 회전하는 용도로 사용된다. 그러나 제안하는 시스템에서의 핀 동작은 상하 움직임을 통해 높낮이를 조절하는 것이다. 따라서 모터의 회전 운동을 직선 운동으로 변환해야 한다. 이를 위해 본 논문에서는 스크류 샤프트 활용하도록 설계하였다. 스크류 샤프트는 3D 프린터, CD-ROM 등 좌우, 상하 직선 운동이 필요한 장비들에 사용된다. <그림 5>에서 보이는 바와 같이 스크류 샤프트를 모터의 회전 부분과 연결하여 동작하면 모터의 회전운동을 직선 운동으로 변경할 수 있다. 이를 통해 모터의 회전으로 핀의 높낮이 조절을 가능하도록 하였다. <그림 5>과 같이 스크류 샤프트 막대 중간에 있는 리드 스크류에 핀 모형을 부착시켜 모터가 회전 시, 스크류 샤프트의 홈에 따라 핀이 수직 혹은 수평 방향으로 이동한다.
<그림 5> 스텝 모터에 연결한 스크류 샤프트를 이용한 높이 조절
본 논문에서 제안하는 핀의 구조와 형태는 직육면체로 설계하였고 이를 <그림 6>에서 보였다. 핀의 밑면은 리드 스크류와 핀을 연결하여 고정할 수 있도록 중앙에 10mm의 원형 구멍이 있는 형태로 디자인하였다. 본 논문에서 설계한 핀은 레이저 각인 장비를 사용하여 아크릴판을 절단하여 제작하였다.
<그림 6> 제안하는 핀의 구조 설계
3.4 안드로이드 애플리케이션
본 논문에서 제안하는 변형 가능한 데스크는 안드로이드 애플리케이션을 통해 사용자가 데스크의 변형을 제어하도록 구현하였다. 구현한 애플리케이션은 <그림 7>과 같이 총 20개의 버튼으로 구성되며 NumberPicker를 이용하여 20개로 구성된 데스크의 높낮이를 제어하도록 한다. NumberPicker는 0~5의 숫자로 구성되고, 숫자가 클수록 높이가 높아 지도록 설정하였다. 또한, 높이에 따라 다른 색을 설정해 두어 사용자가 전체적인 테이블의 높이를 한눈에 파악할 수 있도록 하였다.
<그림 7> 데스크 제어를 위한 안드로이드 애플리케이션 인터페이스
본 논문에서 제안하는 애플리케이션은 목록 선택, 실시간 테이블, 목록 추가로 구성하였다. 우선 목록 추가 페이지에서 목록을 저장하면 사용자는 목록 선택 페이지에서 저장된 목록을 선택하여 원하는 테이블 형태로 바로 변형되도록 할 수 있다. 실시간 테이블 페이지에서는 제어 정보를 소켓 통신으로 전송하여 실시간으로 원하는 형태의 테이블로 변형할 수 있다.
각 페이지는 Fragment로 구성하여 화면을 재사용하도록 하였다. 이를 통해 화면 공간을 낭비하는 문제를 줄임과 동시에 Fragment를 사용하여 런타임에 화면의 외관을 수정할 수도 있는 장점을 갖는다. 목록 선택 페이지는 ListView로 구성하여 테이블 목록을 리스트로 볼 수 있게 구현하였다.
<그림 8>는 안드로이드의 UML 구성이다. 처음 intro page는 MainActivity class에서 시작된다. 그 다음 페이지는 MainPageActivity_st class에서 담당하도록 하였고, 해당 페이지에서 각각의 제어 기능을 수행하도록 구현하였다. 이 페이지는 핀을 제어하는 UI로 구성된다. 또한, 기술적으로는 Fragment로 구성하여 화면을 재사용하도록 하였다. 첫 페이지인 목록선택 부분에서는 List view를 사용하기 때문에 중간에 List view adapter를 이용하여 List view를 만들었다. 이와 같은 기능은 ListAdatper class가 담당하도록 설계하였고, 글씨체 등의 변경은 TypefaceUtil class에서 담당한다.
<그림 8> 안드로이드 애플리케이션 UML
3.5 TCP/IP 통신
본 논문에서 제안하는 데스크 설계는 안드로이드 애플리케이션으로 하드웨어를 제어하는 방식으로 통신 설계가 필요하다. 이를 위해 <그림 9>와 같이 다수의 WiFi 모듈이 하나의 공유기에 접속하고 각각의 IP를 할당받아 통신을 수행할 수 있는 TCP/IP 통신방식을 사용하였다. 다수의 아두이노 제어 모듈과 안드로이드는 소켓 통신을 위해 하나의 공유기에 동시에 접속하도록 하였다. 안드로이드는 소켓 통신의 클라이언트가 되며 아두이노 보드들은 공유기로부터 할당받은 IP 주소와 지정된 포트번호로 구성되는 서버를 생성함으로써 소켓 통신의 서버가 된다.
<그림 9> TCP/IP 통신부 구성
안드로이드와 아두이노 간의 소켓 통신을 위한 패킷의 데이터 프레임은 1Byte로 설계하였고, 통신 속도는 9600baud rate로 설정하였다. 패킷의 데이터 구조는 상위 4bit가 하드웨어의 모터 번호 정보를 가지고, 그 다음 1bit는 모터의 회전 방향에 대한 정보, 나머지 3bit는 회전량에 대한 정보를 갖도록 설계하였다. 회전량은 핀의 무게와 회전 시간에 따라 값이 변하기 때문에 총 5단계로 정하였다. <표 1>에서 소켓 통신을 위한 데이터 프레임 구조를 보였다.
<표 1> 소켓 통신을 위한 데이터 프레임 구조 및 의미
3.6 시스템 동작
사용자는 원하는 데스크를 구성하기 위해 안드로이드 애플리케이션을 통하여 핀의 높이를 설정한다. 높이 값 설정 시, 저장된 높이 데이터와 설정한 데이터의 값을 비교한다. 데이터 값이 변하지 않으면 아무런 동작을 하지 않고, 데이터의 변화가 생겼을 경우 데이터 프레임을 구성하고 데이터를 보낼 서버 IP 주소를 선정한다. 클라이언트 소켓 생성 후 값을 하드웨어 부분으로 전달해 준다. 클라이언트로부터 전달 받은 값은 하드웨어 서버가 수신하여 데이터를 분석한다. 데이터 프레임 구조에 따라 설정된 스텝 모터를 동작시켜 핀의 높낮이를 제어한다. 결과적으로 이러한 과정을 통해 사용자가 원하는 맞춤형 데스크를 구성할 수 있다. 안드로이드 애플리케이션과 하드웨어 제어 모듈의 동작을 <그림 10>에 보였다.
<그림 10> 시스템 동작 순서도
Ⅳ. 시스템 동작 실험 결과
4.1 전체 시스템 구현 결과
<그림 11>에서 전체 시스템 중 하드웨어 모듈의 구현 결과를 보였다. 그림에서 보이는 바와 같이 총 20개의 핀을 4개의 아두이노와 연결된 20개의 모터와 WiFi 통신 모듈을 이용하여 제어가 가능하도록 구현하였다. WiFi 통신에서 데이터 프레임 구조로 총 10개의 모터 번호를 지정할 수 있도록 설계하였으나 하나의 아두이노 서버에 5개의 모터가 연결되어 있어 실제적으로는 모터 번호는 5번까지만 사용하도록 하였다.
<그림 11> 하드웨어 구현 결과
4.2 데스크 형태 변형 결과
실험을 통해 사용자가 사용하는 물체에 맞게 다양한 형태로 책상의 변형될 수 있음을 확인하였다. 첫번째로 <그림 12>와 같은 도서를 놓을 수 있는 형태로 변형되도록 설정하였다. 도서이용의 편의성을 높일 수 있다.
<그림 12> 도서를 올려놓기 위한 데스크 형태 변형
두 번째 형태는 <그림 13>에서 보이는 바와 같이 스마트 폰을 올려놓을 수 있는 형태이다. 이는 최근에 개인 미디어 등을 이용한 교육이나 엔터테인먼트가 증가하는 시점에서 편하게 즐길 수 있도록 도움을 줄 수 있다.
<그림 13> 핸드폰 거치대와 같은 형태 변형
세 번째로 <그림 14>와 같이 태블릿 PC를 데스크에 올려 사용자가 편하게 화면을 보거나 업무에 활용할 수 있는 형태의 변형을 구성하였다. 마지막으로
<그림 14> 태블릿 활용을 위한 형태 변형
<그림 15>와 같이 악세사리, 인형, 모형 등 크기가 작은 물체들을 전시할 수 있는 형태의 변형으로도 활용될 수 있음을 보였다.
<그림 15> 인형 등의 전시 활용을 위한 형태 변형
Ⅴ. 결론
기존의 평범한 일자형 책상은 조립이 자유롭지 못하고 높낮이 조절 또한 불가능하였다. 이와 달리 본 논문에서는 사용자 편의와 활용 목적에 맞게 영역별로 자유로운 높낮이 조절이 가능한 책상을 제안하였다. 제안하는 데스크는 핀 아트 기술을 응용하여 설계하였고 각각의 핀들은 안드로이드 애플리케이션으로 자유롭게 제어가 가능하도록 설계하였다.
제안하는 데스크는 애플리케이션을 통해 사용자가 원하는 모형의 데스크를 저장해 놓고 필요한 순간에 편하게 선택하여 언제든지 사용할 수 있도록 하였다. 또한 소켓 통신을 이용하여 제어 정보를 실시간으로 보내고 즉각적으로 변경할 수 있도록 구현하였다. 이를 통해 사용자가 자유자재로 변형이 가능하기 때문에 다양한 목적에 맞게 활용할 수 있는 편의성을 제공하였다. 기존의 일자형 데스크에서는 다양한 기기에 따라 별도의 거치대를 구비하여 사용해야하기 때문에 데스크의 활동도가 떨어질 뿐만 아니라 별도의 비용이 발생하는 단점이 있다. 본 논문에서 제안한 형태 변형이 가능한 데스크를 더 넓은 면적의 데스크 형태로 확장한다면 부분적으로 변형된 공간에 다양한 기기를 배치할 수 있어 업무 효율을 향상시키는 데에도 도움이 될 것이다.
참고문헌
- 차시호.류민우, "서비스 오케스트레이션 기반 사용자 맞춤형 IoT 서비스의 설계 및 구현," 디지털산업정보학회 논문지, 제11권, 제3호, 2015, pp.21-29.
- 권준희.김성림, "사물인터넷 환경에서 새로운 사용자를 고려한 정보 추천 기법", 디지털산업정보학회논문지, 제13권, 제1호, 2017, pp. 23-35. https://doi.org/10.17662/ksdim.2017.13.1.023
- W. Fleming, Pin Screen, US Patent 4.536.980, 1985.
- Pin Art, http://en.wikipedia.org/wiki/Pin_Art
- S. Saito, et al, "Pinscreen: 3D avatar from a single image," SIGGRAPH ASIA 2016 Emerging Technologies. ACM, 2016.
- Pinscreen: Instant 3D Avatars, http://pinscreen.com
- 윤병춘.김영훈.양유석.서영훈.김덕환, "무선 네트워크의 발전에 따른 스마트폰의 형태 및 콘텐츠서비스 시장의 동향 연구," 한국콘텐츠학회지, 제8권, 제2호, 2010, pp. 39-44. https://doi.org/10.20924/CCTHBL.2010.8.2.039
- 김교형, "높낮이 조절이 가능한 책상 개발," 영남대학교 공업기술연구소 논문지, 제29권, 제1호, 2001, pp. 45-51.