KR20160062555A - 교육용 완구 제어 시스템 - Google Patents

교육용 완구 제어 시스템 Download PDF

Info

Publication number
KR20160062555A
KR20160062555A KR1020140165476A KR20140165476A KR20160062555A KR 20160062555 A KR20160062555 A KR 20160062555A KR 1020140165476 A KR1020140165476 A KR 1020140165476A KR 20140165476 A KR20140165476 A KR 20140165476A KR 20160062555 A KR20160062555 A KR 20160062555A
Authority
KR
South Korea
Prior art keywords
toy
data
gui
driving
unit
Prior art date
Application number
KR1020140165476A
Other languages
English (en)
Inventor
최영석
우덕건
채병석
Original Assignee
주식회사 로보로보
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 로보로보 filed Critical 주식회사 로보로보
Priority to KR1020140165476A priority Critical patent/KR20160062555A/ko
Publication of KR20160062555A publication Critical patent/KR20160062555A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H30/00Remote-control arrangements specially adapted for toys, e.g. for toy vehicles
    • A63H30/02Electrical arrangements
    • A63H30/04Electrical arrangements using wireless transmission
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S280/00Land vehicles
    • Y10S280/05Motorized golf carts

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Toys (AREA)

Abstract

상기 완구 제어 시스템은 구동부, 단말기 및 통신부를 포함하고, 상기 단말기는 그래픽 유저 인터페이스(Graphic User Interface: GUI) 및 텍스트 인터페이스를 포함한다. 상기 구동부는 완구의 구동을 실행하고, 상기 단말기는 상기 구동부의 구동을 설정하고 전송하며, 상기 통신부는 상기 단말기 및 상기 구동부를 연결하여 데이터의 송수신을 수행한다. 상기 GUI는 미리 설정된 기능을 나타내는 블록들을 나타내고, 상기 텍스트 인터페이스는 상기 GUI 측면에 형성되어 C 언어 프로그래밍 상황을 나타내며, 상기 GUI 상에서 상기 블록들을 드래그 이동하면 상기 텍스트 인터페이스는 상기 블록의 기능에 해당하는 상기 프로그래밍 언어의 작성과정을 순차적으로 나열하여 표시한다.

Description

교육용 완구 제어 시스템{TOY CONTROL SYSTEM FOR EDUCATION}
본 발명은 교육용 완구 제어 시스템에 관한 것으로, 더욱 상세하게는 그래픽 유저 인터페이스(Graphic User Interface: GUI)와 프로그래밍 언어의 동기화를 통해 완구를 제어하고 동시에 학습이 가능한 완구 제어 시스템에 관한 것이다.
최근에는 조부모와 같이 지내는 아이들의 증가로 인해 구매력이 높은 할아버지 할머니들의 아이들을 위한 완구구입이 늘어나고 있고 경제력 있는 20, 30대 직장인들의 취미생활로 완구구입이 가파르게 증가하고 있다. 더불어 에니메이션, 영화 등의 영향으로 에니메이션과 영화와의 연계를 통해 조립 로봇 완구의 수요가 증가하고 있고, 조립을 통해 창의력을 증진시키고 나만의 로봇을 만들고자 하는 수요가 늘고 있어서 완구의 시장이 나날이 증가하고 있다.
이렇게 완구를 즐기는 연령층이 다양해지면서 단순하게 이동만 하거나 소수의 기능들을 출력하는 완구보다는 사용자가 컴퓨터 상에서 기능을 추가하고 변환시키며 완구들은 자체 프로토콜을 통해 추가되고 변환된 기능들의 데이터들을 읽어서 다양한 동작들을 구동이 가능하고 복수의 센서들을 장착하여 다양한 외부자극에 다양한 반응을 발생시키도록 연구하고 있다.
그러나 로봇을 제어하는 방법은 컴퓨터 상에서 복잡한 프로그램 언어의 사용을 필요로 하기 때문에, 학생들이나 컴퓨터 프로그램에 익숙하지 않은 사용자들이 컴퓨터 프로그램을 사용하여 로봇의 동작을 제어하는 것은 쉬운 일이 아니다.
이와 관련하여 대한민국 특허공개 제2000-0014814호는 로봇 제어 프로그램에 관한 것으로서 로봇 감지 신호가 발생되면 로봇을 정지시킨 후 상응하는 동작을 수행하게 하는 발명을 개시하고 있고, 대한민국 특허등록 제2010-0940630호는 문자 인식 장치 및 방법을 포함하고 음성을 통해 제어되는 발명을 개시하고 있으나, 사용자가 손쉽게 완구를 제어하고 이를 통해 학습 기회까지 제공하는 발명은 개시하지 않고 있다.
따라서, 사용자가 그래픽 유저 인터페이스(Graphic User Interface: GUI)를 통해 완구를 손쉽게 제어하고 이러한 제어를 통해 학습 기회까지 제공하는 발명에 대한 연구가 필요하다.
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 그래픽 유저 인터페이스(Graphic User Interface: GUI)와 프로그래밍 언어를 동기화하여 완구를 제어하며 제어하는 방법을 나타내는 완구 제어 시스템을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 완구 제어 시스템은 구동부, 단말기 및 통신부를 포함하고, 상기 단말기는 그래픽 유저 인터페이스(Graphic User Interface: GUI) 및 텍스트 인터페이스를 포함한다. 상기 구동부는 완구의 구동을 실행하고, 상기 단말기는 상기 구동부의 구동을 설정하고 전송하며, 상기 통신부는 상기 단말기 및 상기 구동부를 연결하여 데이터의 송수신을 수행한다. 상기 GUI는 미리 설정된 기능을 나타내는 블록들을 나타내고, 상기 텍스트 인터페이스는 상기 GUI 측면에 형성되어 C 언어 프로그래밍 상황을 나타내며, 상기 GUI 상에서 상기 블록들을 드래그 이동하면 상기 텍스트 인터페이스는 상기 블록의 기능에 해당하는 상기 프로그래밍 언어의 작성과정을 순차적으로 나열하여 표시한다.
일 실시예에서, 상기 단말기는 사용자가 상기 텍스트 인터페이스에서 상기 블록들이 포함하는 기능에 대한 상기 프로그래밍 언어의 작성으로 발생하는 텍스트 데이터를 수신하여 GUI 데이터로 변경시키는 텍스트 데이터 처리부를 더 포함할 수 있다.
일 실시예에서, 상기 텍스트 데이터 처리부가 상기 GUI 데이터를 상기 GUI로 전송하면 상기 프로그래밍 언어에 해당하는 기능의 블록이 상기 GUI 상에서 이동할 수 있다.
일 실시예에서, 상기 데이터는 프로그래밍 언어를 통한 헥스(Intel HEX: HEX) 데이터로 코드화 되어 상기 구동부에 전송되고 저장될 수 있다.
일 실시예에서, 상기 구동부는 상기 HEX 데이터를 저장하고 완구의 구동을 준비하며 순차적으로 상기 HEX 데이터를 실행 및 해석하여 완구를 구동할 수 있다.
일 실시예에서, 상기 구동부는 송수신부, 데이터저장부, 완구시동부, 제어부 및 출력부를 포함하고, 상기 송수신부는 상기 HEX 데이터를 송수신하고, 상기 데이터저장부는 상기 HEX 데이터를 플래시 메모리에 저장하고, 상기 완구시동부는 완구의 바이오스(Basic Input Output System: BIOS)를 로드하여 부팅순서대로 상기 완구의 입출력포트를 활성화 하고, 상기 제어부는 상기 HEX 데이터를 통한 부트로더의 로드를 통해 제어데이터를 발생시키며, 상기 출력부는 상기 출력데이터를 수신하여 완구를 구동시킬 수 있다.
일 실시예에서, 상기 단말기는 상기 블록들의 이동으로 상기 GUI에서 발생하는 상기 GUI 데이터를 수신하여 텍스트 데이터로 변경시켜 상기 텍스트 인터페이스로 전송하는 GUI 데이터 처리부를 더 포함할 수 있다.
일 실시예에서, 상기 GUI는 기능창 및 설정창을 포함하고, 상기 기능창은 상기 완구의 기능들을 나타내는 블록들을 나타내고, 상기 설정창은 상기 기능창으로부터 상기 블록들이 드래그 이동되어 상기 완구의 구동 순서를 설정할 수 있다.
일 실시예에서, 상기 블록은 Start 블록, DC Motor 블록 및 Brake 블록을 포함하고, 상기 Start 블록은 상기 완구의 구동시작을 나타내고, 상기 DC Motor 블록은 상기 완구를 이동시키고, 상기 Brake 블록은 상기 완구의 구동을 멈추며, 상기 설정창으로 상기 Start 블록, 상기 DC Motor 블록 및 상기 Brake 블록을 차례대로 각각의 상기 블록들의 하부를 향해 드래그 이동하여 연결되어 블록트리를 형성하면, 상기 완구는 구동시작, 이동 및 구동을 멈추는 동작을 순서대로 구동할 수 있다.
본 발명의 실시예들에 의하면, 그래픽 유저 인터페이스(Graphic User Interface: GUI)는 사용자가 직관적으로 완구의 기능들을 기능창의 블록들을 통해 파악하고, 블록들을 선택적으로 설정창으로 드래그하여 이동시켜 블록트리를 설정하여 전문적인 프로그래밍 언어를 이용하여 코드를 제작할 필요없이 블록들이 나타내는 완구의 기능들을 순차적으로 구현할 수 있다.
또한, 텍스트 인터페이스는 프로그래밍창을 통해 사용자가 완구의 동작을 위한 프로그래밍 언어를 설계하면, 블록들이 순차적으로 설정창으로 이동하여 블록트리를 형성하고, 이는 설계한 프로그래밍 언어가 나타내는 완구의 동작을 나타내므로 C 언어와 같은 프로그래밍 언어를 배우고 학습하려는 사용자들에게 보다 전문적인 제어를 가능하게 하고, 흥미를 유발한다는 점에서 장점이 있다.
또한, 블록트리를 형성하면 자동으로 블록트리를 의미하는 프로그래밍 언어가 블록들을 설정창으로 이동할때마다 순차적으로 작성되어 프로그래밍창에 나타나므로, 프로그래밍 언어를 배우는 사용자에게 프로그래밍 언어 설계에 대한 가이드를 제공함으로써 프로그래밍 언어를 통한 완구의 제어를 학습하고, 학습할 수 있는 교육적 기능에 있어서의 장점이 있다.
또한, 완구의 내부에 바이오스를 포함한 부트로더가 완구에 형성될 장치들에 포함되어 있어, 각각의 장치들에 대응하는 별도의 확장 보드들의 설치가 필요없어 사용자가 완구를 제어하는데 있어서 편의성이 증가한다.
또한, GUI에서 블록들의 조합으로 설정되는 블록트리는 블록들의 다양한 조합으로 설정이 가능하므로 사용자들이 창의적으로 완구의 동작을 설정할 수 있는 장점이 있고, 복잡한 컴퓨터 프로그램 언어를 배우기 전에 프로그램을 설정하는데 흥미를 유발시킬 수 있는 교육적인 장점이 있다.
도 1은 본 발명의 일 실시예에 의한 완구 제어 시스템을 나타내는 블록선도이다.
도 2는 도 1의 단말기의 그래픽 유저 인터페이스(Graphic User Interface: GUI) 및 텍스트 인터페이스 상의구동화면을 나타내는 이미지이다.
도 3은 도 1의 구동부를 나타내는 블록선도이다.
도 4는 도 3의 구동부의 동작순서를 나타내는 순서도이다.
도 5는 도 1의 완구 제어 시스템의 동작순서를 나타내는 순서도이다.
이하 첨부한 도면을 참조하여 본 발명의 실시예에 따른 완구 제어 시스템에 대해 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 실시예들을 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "이루어진다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
도 1은 본 발명의 일 실시예에 의한 완구 제어 시스템을 나타내는 블록선도이다.
도 2는 도 1의 단말기의 그래픽 유저 인터페이스(Graphic User Interface: GUI) 및 텍스트 인터페이스 상의 구동화면을 나타내는 이미지이다.
도 1 및 도 2를 참조하면, 상기 완구 제어 시스템(100)은 단말기(200), 통신부(300) 및 구동부(400)를 포함한다.
상기 단말기(200)는 그래픽 유저 인터페이스(Graphic User Interface: GUI)(210), 텍스트 인터페이스(220), GUI 데이터 처리부(230) 및 텍스트 데이터 처리부(240)를 포함하여 사용자가 완구를 제어할 수 있도록 하고, 상기 GUI(210)는 기능창(211) 및 설정창(212)을 포함하며, 상기 텍스트 인터페이스(220)는 프로그래밍창(221)을 포함하며, 상기 기능창(211)은 블록들(211a)을 포함하고, 상기 설정창(212)은 블록트리(212a)를 포함한다.
상기 단말기(200)는 로봇, 자동차, 인형 등의 완구를 제어하기 위해 사용하는 컴퓨터, 스마트폰, 노트북 또는 태블릿 기기일 수 있다. 상기 단말기(200)는 상기 통신부(300)를 통해 상기 구동부(400)와 데이터의 송수신을 수행한다.
상기 GUI(210)는 상기 단말기(200)와 상기 구동부(400) 사이를 연결하는 접속 장치로서, 해당 사용자가 상기 GUI(210)를 통해 상기 구동부(400)의 구동을 제어하면, 상기 GUI(210)는 사용자의 제어를 인식하고 이를 데이터화 하여 상기 통신부(300)를 거쳐 상기 구동부(400)에 상기 데이터를 전송하게 된다. 즉, 상기 GUI(210)는 사용자와 상기 단말기(200)를 연결하여 효율적으로 상기 구동부(400)를 제어할 수 있도록 도와주는 장치이다.
여기에서 상기 GUI(210)는 그래픽을 통해 사용자와 컴퓨터간 인터페이스를 구현하는 것으로서, 윈도우의 마우스를 사용하여 아이콘을 클릭해서 프로그램을 실행하거나, 아이패드의 어플 아이콘을 터치하여 어플을 실행하는 방식과 동일하다. 이런 그래픽을 사용하는 상기 GUI(210)는 문자로 이루어진 명령어로 의사소통을 하는 문자 유저 인터페이스(Character User Interface: CUI)와 비교해서 직관적이고 손쉽게 상기 단말기(200)를 실행할 수 있는 장점이 있다.
기존에 상기 완구를 제어하는 방법은 조이스틱이나 버튼을 이용한 조 종기 를 위주로 사용하였고, 최근에는 스마트폰과 연동하여 상기 스마트폰의 터치를 이용하거나 자이로센서를 사용하여 상기 완구를 제어하는 방법이 개발되고 있다. 하지만, 상기 완구의 연속적인 동작을 창의적으로 구현하기 위해서는 별도로 컴퓨터와 연결해서 C언어와 같은 전문적인 용어를 사용하여 편집하지 않는 이상 상기 완구의 복잡하고 다양한 동작을 구현하기는 쉽지 않다.
그러나, 본 발명의 상기 GUI(210)는 상기 블록들(211a)이 상기 단말기(200)와 연결된 완구가 실현 가능한 세분화된 동작들이나 기능들을 나타내고 있어, 사용자가 상기 블록들(211a)을 상기 설정창(212)으로 이동시켜 다양한 조합의 상기 블록트리(212a)를 형성시키면, 상기 블록트리(212a) 안에서 상기 블록들(211a)이 상기 설정창(212)에서 아래를 향해 연결된 순서대로 상기 완구가 동작하게 된다.
예를 들어, 상기 블록들(211a)은 Start 블록, DC Motor 블록 및 Brake 블록을 포함할 수 있고, 상기 블록트리(212a)의 상기 블록들(211a) 중 상기 Start 블록을 상기 설정창(212)의 상기 블록트리(212a)의 상부의 위치로 드래그하고, 상기 DC Motor 블록을 상기 블록트리(212a)의 상기 Start 블록의 하부에 드래그하고, 다시 상기 Brake 블록을 상기 DC Motor 블록의 하부에 연결하고, 이를 상기 구동부(400)로 전송하면, 상기 완구는 상기 Start 블록의 명령으로 전원을 켜고 순차적으로 상기 DC Motor 블록의 명령으로 상기 완구의 모터가 구동하여 전진하며, 상기 Brake 블록의 명령으로 상기 완구는 일정 거리를 이동한 후 멈추게 된다.
따라서, 사용자는 상기 블록들(211a)이 포함할 수 있는 복수의 기능들을 연결하여 생성되는 다양한 상기 블록트리(212a)의 조합으로 생성되는 다양한 구동명령을 통해 다양한 완구의 동작을 구현시킬 수 있고, 전문적인 컴퓨터 용어를 모르는 학생들의 경우 직관적으로 상기 완구의 동작을 구현할 수 있어, 상기 완구를 제어하는데 흥미를 유발하고, 더불어 프로그래밍에 관심을 유발하는 교육적인 효과를 가져올 수 있다. 한편, 상기 블록들(211a)은 완구의 구조나 기능에 따라서 다른 기능들을 나타낼 수 있다.
반면에, 상기 텍스트 인터페이스(220)는 도 2의 상기 GUI(210)를 나타내는 창의 측면에 형성되고, 사용자가 이해하기 쉬운 프로그래밍 언어인 포트란(Fortran), ALGOL, COBOL, BASIC 및 C언어 등의 고급언어뿐만 아니라 기계적인 프로그래밍 언어를 일컫는 저급언어인 기계어 또는 어셈블리 언어를 직접 작성할 수 있다. 즉, 상기 GUI(210)를 사용하여 상기 완구를 제어하는 것에 흥미를 가지고 좀 더 전문적이고 세분화된 제어를 배우고자 하는 사용자에게 유용하다.
예를 들어, 상기 기능창(211)에 나열되어 있는 상기 블록들(211a)이 포함하는 기능들에 더하여 새로운 기능을 가진 블록을 추가 할 수 있고, 상기 블록들(211a)의 모양을 변화시킬 수 있으며, 색깔 또한 바꿀 수 있다. 그리고, 상기 설정창(212)에 형성되는 상기 블록트리(212a)의 모양과 상기 블록트리(212a)가 쌓여지는 순서 등을 사용자의 취향대로 바꿀 수 있으며, 색깔 또한 바꿀 수 있다.
여기에서 상기 GUI 데이터 처리부(230)는 상기 GUI(210) 및 상기 텍스트 인터페이스(220) 사이에 형성되어, 상기 GUI(210)에서 설정하는 블록트리(212a)의 내용을 포함하는 GUI 데이터(250)를 상기 GUI(210)으로부터 수신하여 텍스트 데이터(260)로 전환시키고, 상기 텍스트 인터페이스(220)는 상기 텍스트 데이터(260)를 수신하여 이를 고급언어 또는 저급언어로 구성되는 프로그래밍 언어를 시작부터 나열하며 표시한다.
상기 텍스트 데이터 처리부(240)는 상기 텍스트 인터페이스(220)로부터 텍스트 데이터(270)를 수신하여 GUI 데이터(280)로 전환시켜 상기 GUI(210)으로 전송한다. 상기 텍스트 데이터(270)는 상기 텍스트 인터페이스(230)에서 설계한 상기 블록트리(212a)의 내용을 포함하여, 상기 텍스트 데이터 처리부(240)를 통해 GUI 데이터(280)로 전환되어 상기 GUI(210)로 전송된다.
상기 텍스트 인터페이스(220)에서 고급언어 및 또는 저급언어와 같은 프로그래밍 언어를 사용하여 프로그래밍을 입력하거나 삭제하는 경우 상기 텍스트 데이터 처리부(240)를 통해 상기 GUI(210) 상의 상기 블록들(211a)이 상기 설정창(212)으로 이동하면서 상기 프로그래밍창(221)에 해당하는 블록트리가 상기 GUI(210)상에 형성된다.
그리고, 상기 GUI(210)에서 상기 블록들(211a)을 상기 설정창(212)으로 드래그 이동시켜 상기 블록트리(212a)를 형성하면, 상기 GUI 데이터 처리부(230)를 통해 상기 텍스트 인터페이스(220)는 상기 블록트리(212a)에 해당하는 고급언어 또는 저급언어와 같은 프로그래밍 언어의 프로그래밍 과정을 순차적으로 표시한다.
따라서, 사용자는 상기 GUI(210)를 사용하여 상기 블록들(211a)을 이동시켜 상기 블록트리(212a)를 형성함과 동시에 측면에 나타나는 상기 프로그래밍창(221)을 통해 상기 블록트리(212a)에 해당하는 고급언어 또는 저급언어를 확인할 수 있고, 상기 프로그래밍창(221)을 사용하여 직접 완구를 제어할 수 있어 완구의 제어를 통해 프로그래밍 언어를 배울 수 있고, 상기 프로그래밍창(221)을 통한 프로그래밍 기술의 전문성을 기를 수 있는 장점이 있다.
또한, 상기 프로그래밍창(221)을 통해 상기 블록들(211a)의 기능들이 추가되면, 사용자가 조합하여 형성할 수 있는 상기 블록트리(212a)의 경우의 수가 증가하여 상기 완구의 동작들이 다양해지고 사용자는 자신이 프로그래밍한 대로 상기 완구가 구동하는 것을 확인할 수 있다.
또한, 상기 설정창(212)에서 사용자가 상기 블록트리(212a)를 설정하면, 상기 프로그래밍창(221)은 상기 블록트리(212a)를 구현하기 위한 프로그래밍 언어의 설계 순서를 시작부터 완료까지 순서대로 나타내기 때문에 사용자는 상기 블록들(211a)을 상기 설정창(212)으로 이동하면서 상기 프로그래밍창(221)에서 구현되는 프로그래밍 언어의 변화를 직접 확인 할 수 있어, 고급언어 및 저급언어를 배우고자 시작하는 사용자에게 흥미를 유발하고, 프로그래밍 언어에 대한 설계 능력을 향상시킬 수 있는 장점이 있다.
그리고, 사용자는 상기 GUI(210) 및 상기 텍스트 인터페이스(220)의 동기화 또는 연동기능을 통해 편리하게 완구를 제어함과 동시에 자연스럽게 저급언어 및 고급언어의 학습이 이루어지고, 상기 프로그래밍창(221)을 통해 사용자의 취향에 맞는 다양하고 복잡한 기능을 추가하고 인터페이스의 디자인을 변경할 수 있어, 상기 GUI(210)의 기능 및 완구의 기능의 한계를 최대한 사용할 수 있게 된다.
도 3은 도 1의 구동부를 나타내는 블록선도이다.
도 4는 도 3의 구동부의 동작순서를 나타내는 순서도이다.
도 3 및 도 4를 참조하면, 상기 구동부(400)는 송수신부(410), 제어부(420), 데이터저장부(430), 완구시동부(440) 및 출력부(450)를 포함한다.
상기 송수신부(410)는 상기 통신부(300)를 통해 상기 단말기(200)와 데이터를 송수신한다. 상기 제어부(420)는 상기 송수신부(410)를 통해 입력되는 상기 단말기(200)의 프로토콜 명령 메시지를 수신하여 상기 데이터저장부(430)에 저장한다. 상기 제어부(420)는 상기 단말기(200)로부터 송수신된 상기 프로토콜 명령 메시지, 포트속도, 데이터비트, 패리티비트, 등의 송수신 데이터를 분석하여 상기 출력부(450)로 출력하기 위한 제어데이터의 표시형태 구분을 설정할 수 있다. 상기 표시형태 구분은 헥스(Intel HEX: HEX)를 사용하고, 상기 데이터는 HEX 데이터를 사용한다.
따라서, 상기 제어부(420)는 상기 송수신부(410)로부터 상기HEX 데이터를 송수신하고, 상기 HEX 데이터를 임시로 저장하고, 해석하여 상기 제어데이터를 생성하고, 상기 제어데이터는 상기 출력부(450)로 전송된다. 상기 제어데이터는 상기 단말기(200)의 상기 GUI(210)를 통해 사용자가 드래그하여 설정한 상기 블록트리(212a)의 상기 구동명령에 관한 정보를 포함하고, 상기 출력부(450)가 상기 제어데이터를 수신하면, 해당 완구는 상기 블록트리(212a)의 상기 구동명령에 따라서, 순차적으로 구동하게 된다.
상기 데이터저장부(430)는 상기 단말기(200)에서 생성된 상기 HEX 데이터를 해당 완구의 컨트롤러내의 플래시 메모리에 저장한다. 상기 플래시 메모리란 소비전력이 작고, 전원이 꺼지더라도 저장된 정보가 사라지지 않은 채 유지되며, 저장용량이 큰 데이터저장형(NAND)과 처리속도가 빠른 코드저장형(NOR)으로 분류된다.
상기 HEX 데이터가 플래시 메모리에 저장되고, 완구의 전원을 작동시키면, 상기 완구시동부(440)가 작동하며 내부 롬에 저장된 바이오스(Basic Input Output System: BIOS)가 로드되고, 상기 바이오스는 완구의 각각의 입출력장치들에 대한 부트로더(Bootloader)들을 로드한다. 상기 부트로더는 상기 제어부(420)에서 구동되며, 상기 제어부(420)는 상기 부트로더의 로드를 통해 제어 데이터를 발생시킨다.
구체적으로는 완구 내에 형성된 롬에 있는 상기 바이오스가 로드되어 부팅순서대로 완구의 각각의 장치들에 대한 부트로더들을 로드한다. 이때 상기 부트로더란 시스템의 하드웨어를 초기화하고 운영체제의 커널을 메모리에 올려 실행시키는 프로그램을 의미하며, 완구의 전원을 켜는 순간 가장 먼저 실행되는 프로그램으로 완구의 하드웨어 즉 장치들을 준비하는 역할을 한다.
상기 부트로더는 일반적으로 시스템 메모리의 물리주소 0번지부터 위치하여 ROM, Flash ROM, SRAM 등 정적인 메모리에 위치하고, 메모리, 하드웨어 등의 초기화 및 커널과 램 디스크를 램에 적재하여 실행하는 기능을 가지고 있다. 일반적으로 상기 부트로더가 실행되는 순서는 처음에 완구에 전원이 인가되고, 중앙처리장치(Central Processing Unit: CPU)가 상기 바이오스의 프로그램을 실행시켜 완구의 장치들의 상태를 체크하고 어떠한 장치가 접속되고 사용이 가능한지 등을 체크한다.
따라서, 상기 부트로더는 상기 플래시 메모리에 상주하여 컴파일된 상기 HEX 데이터가 상기 플래시 메모리에 입력되면, 컴파일된 상기 HEX 데이터의 명령으로 완구의 동작들이 이루어지게 된다. 한편, 상기 HEX 데이터는 상기 데이터저장부(430)에서 상기 완구시동부(440)로 이동하면서 완구 내부에 형성된 컴파일러(Compiler)를 거쳐 상기 HEX 데이터를 컴퓨터가 직접 이해할 수 있는 기계어로 전환시킨다.
컴파일된 상기 HEX 데이터는 상기 부트로더가 형성된 상기 플래시 메모리에 입력되어 완구의 각각의 장치들을 로드하여 완구의 구동을 준비하고, 상기 HEX 데이터를 통해 사용자가 설정한 완구의 구동에 따라 완구의 장치들이 구동하게 된다.
결국, 완구의 내부에 형성되는 상기 중앙처리장치, 바이오스, 부트로더 및 컴파일러는 별도의 확장 보드의 필요가 없이 해당 사용자가 상기 GUI(210) 또는 상기 텍스트 인터페이스(220)를 사용하여 설정한 상기 블록트리(212a)의 내용을 포함하는 출력 데이터인 상기 HEX 데이터를 직접 컴파일하고 상기 부트로더는 상기 컴파일된 HEX 데이터를 상기 데이터저장부(430) 및 상기 완구시동부(440)를 거쳐 다운로드 받아 완구의 각각의 장치들을 자동으로 제어할 수 있게 되어, 상기 GUI(210) 및 상기 텍스트 인터페이스(220)와 함께 완구의 구체적인 구동을 설정이 가능하고, 상기 부트로더를 통한 빠른 완구의 제어가 가능한 장점이 있다.
도 4를 참조하면, 상기 GUI(210) 또는 상기 텍스트 인터페이스(220)로 설계된 상기 블록트리(212a)의 상기 구동명령을 통해 생성된 상기 HEX 데이터는 컴파일러를 통해 컴파일 되어 상기 데이터저장부(430)의 상기 플래시 메모리에 입력되고, 상기 완구시동부(440)는 상기 바이오스를 로드하여 부팅순서대로 상기 완구의 입출력포트를 활성화한다(단계 S101).
상기 부트로더는 상기 플래시 메모리에 상주하며, 입력되는 상기 HEX 데이터를 실행하여 제어 데이터를 발생시킨다(단계 S102).
상기 출력부는 상기 제어 데이터를 수신하여 완구에 형성된 각각의 장치들이 상기 HEX 데이터의 설정대로 순차적으로 구동되도록 하고, 구동을 마치면 종료한다(단계 S103).
도 5는 도 1의 완구 제어 시스템의 동작순서를 나타내는 순서도이다.
도 5를 참조하면, 우선 사용자는 상기 단말기(200)를 실행한다(단계 S201).
상기 단말기(200)의 상기 GUI(210) 또는 상기 텍스트 인터페이스(220)를 실행하여 상기 기능창(211), 상기 설정창(212) 또는 상기 프로그래밍창(221)을 통해 상기 단말기(200)에 나타낸다(단계 S202).
상기 기능창(211)의 상기 블록들(211a)이 나타내는 복수의 기능들을 사용자의 임의대로 선택적으로 상기 설정창(212)으로 이동시키거나, 상기 텍스트 인터페이스(220)를 통해 프로그래밍을 위한 저급언어 및 상급언어를 설계하여 상기 블록트리(212a)를 설정하면 상기 블록트리(212a)의 구동명령에 해당하는 상기 HEX 데이터를 생성한다(단계 203).
상기 HEX 데이터는 상기 통신부(300)를 통해 상기 구동부(400)로 송신되고, 상기 HEX 데이터는 상기 송수신부(410)를 거쳐 상기 제어부(420)로 이동하고, 상기 데이터저장부(430)에 저장된다. 그리고, 상기 HEX 데이터는 상기 제어부(420)의 상기 데이터저장부(430)에서 상기 플래시 메모리에 저장되며, 상기 완구시동부(440)는 완구의 바이오스를 로드하여 부팅순서대로 상기 완구의 입출력포트를 활성화시키고, 상기 제어부(420)는 상기 HEX 데이터를 통한 부트로더의 로드를 통해 제어 데이터를 발생시킨다(단계 204).
상기 HEX 데이터는 파일 형식으로 상기 데이터저장부(430)의 상기 플래시 메모리에 저장된다(단계 205).
상기 부트로더의 로딩을 통해 제어 데이터가 발생하고, 상기 제어 데이터는 상기 출력부(450)로 전송되어 완구가 상기 블록트리(212a)의 구동명령에 따라서 순차적으로 구동한다(단계 206).
상기와 같은 본 발명의 실시예들에 의하면, 상기 GUI(210)는 사용자가 직관적으로 완구의 기능들을 상기 기능창(211)의 상기 블록들(211a)을 통해 파악하고, 상기 블록들(211a)을 선택적으로 상기 설정창(212)으로 드래그하여 이동시켜 상기 블록트리(212a)를 설정하여 전문적인 프로그래밍 언어를 이용하여 코드를 제작할 필요없이 상기 블록들(211a)이 나타내는 완구의 기능들을 순차적으로 구현할 수 있다.
또한, 상기 텍스트 인터페이스(220)는 상기 프로그래밍창(221)을 통해 사용자가 완구의 동작을 위한 프로그래밍 언어를 설계하면, 상기 블록들(211a)이 순차적으로 상기 설정창(212)으로 이동하여 상기 블록트리(212a)를 형성하고, 이는 설계한 프로그래밍 언어가 나타내는 완구의 동작을 나타내므로 C 언어와 같은 프로그래밍 언어를 배우고 학습하려는 사용자들에게 보다 전문적인 제어를 가능하게 하고, 흥미를 유발한다는 점에서 장점이 있다.
또한, 상기 블록트리(212a)를 형성하면 자동으로 상기 블록트리(212a)를 의미하는 프로그래밍 언어가 상기 블록들(211a)을 상기 설정창(212)으로 이동할때마다 순차적으로 작성되어 상기 프로그래밍창(221)에 나타나므로, 프로그래밍 언어를 배우는 사용자에게 프로그래밍 언어 설계에 대한 가이드를 제공함으로써 프로그래밍 언어를 통한 완구의 제어를 학습하고, 학습할 수 있는 교육적 기능에 있어서의 장점이 있다.
또한, 완구의 내부에 상기 바이오스를 포함한 부트로더가 완구에 형성될 장치들에 포함되어 있어, 각각의 장치들에 대응하는 별도의 확장 보드들의 설치가 필요없어 사용자가 완구를 제어하는데 있어서 편의성이 증가한다.
또한, 상기 GUI(210)에서 상기 블록들(211a)의 조합으로 설정되는 상기 블록트리(212a)는 상기 블록들(211a)의 다양한 조합으로 설정이 가능하므로 사용자들이 창의적으로 완구의 동작을 설정할 수 있는 장점이 있고, 복잡한 컴퓨터 프로그램 언어를 배우기 전에 프로그램을 설정하는데 흥미를 유발시킬 수 있는 교육적인 장점이 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명에 따른 다양한 조합의 블록트리를 설정하거나 프로그래밍 언어를 작성하여 완구를 제어하는 완구 제어 시스템은 가정, 회사 및 학교에서 사용될 수 있는 산업상 이용 가능성을 갖는다.
100 : 완구 제어 시스템 200 : 단말기
300 : 통신부 400 : 구동부
410 : 송수신부 420 : 제어부
430 : 데이터저장부 440 : 완구시동부
450 : 출력부

Claims (9)

  1. 완구의 구동을 실행하는 구동부;
    상기 구동부의 구동을 설정하고 전송하는 단말기; 및
    상기 단말기 및 상기 구동부를 연결하여 데이터의 송수신을 수행하는 통신부를 포함하고,
    상기 단말기는,
    미리 설정된 기능을 나타내는 블록들을 나타내는 그래픽 유저 인터페이스(Graphic User Interface: GUI); 및
    상기 GUI 측면에 형성되어 프로그래밍 언어를 나타내는 텍스트 인터페이스를 포함하며,
    상기 GUI 상에서 상기 블록들을 드래그 이동하면 상기 텍스트 인터페이스는 상기 블록의 기능에 해당하는 상기 프로그래밍 언어의 작성과정을 순차적으로 나열하여 표시하는 것을 특징으로 하는 완구 제어 시스템.
  2. 제1 항에 있어서,
    상기 단말기는,
    사용자가 상기 텍스트 인터페이스에서 상기 블록들이 포함하는 기능에 대한 상기 프로그래밍 언어의 작성으로 발생하는 텍스트 데이터를 수신하여 GUI 데이터로 변경시키는 텍스트 데이터 처리부를 더 포함하는 것을 특징으로 하는 완구 제어 시스템.
  3. 제2 항에 있어서,
    상기 텍스트 데이터 처리부가 상기 GUI 데이터를 상기 GUI로 전송하면 상기 프로그래밍 언어에 해당하는 기능의 블록이 상기 GUI 상에서 이동하는 것을 특징으로 하는 완구 제어 시스템.
  4. 제2 항에 있어서,
    상기 데이터는,
    프로그래밍 언어를 통한 헥스(Intel HEX: HEX) 데이터로 코드화 되어 상기 구동부에 전송되고 저장되는 것을 특징으로 하는 완구 제어 시스템.
  5. 제4 항에 있어서,
    상기 구동부는,
    상기 HEX 데이터를 저장하고 완구의 구동을 준비하며 순차적으로 상기 HEX 데이터를 실행 및 해석하여 완구를 구동하는 것을 특징으로 하는 완구 제어 시스템.
  6. 제5 항에 있어서,
    상기 구동부는,
    상기 HEX 데이터를 송수신하는 송수신부;
    상기 HEX 데이터를 플래시 메모리에 저장하는 데이터 저장부;
    완구의 바이오스(Basic Input Output System: BIOS)를 로드하여 부팅순서대로 상기 완구의 입출력포트를 활성화 하는 완구시동부;
    상기 HEX 데이터를 통한 부트로더의 로드를 통해 제어 데이터를 발생시키는 제어부; 및
    상기 제어데이터를 수신하여 완구를 구동시키는 출력부를 포함하는 것을 특징으로 하는 완구 제어 시스템.
  7. 제2 항에 있어서,
    상기 단말기는,
    상기 블록들의 이동으로 상기 GUI에서 발생하는 상기 GUI 데이터를 수신하여 텍스트 데이터로 변경시켜 상기 텍스트 인터페이스로 전송하는 GUI 데이터 처리부를 더 포함하는 것을 특징으로 하는 완구 제어 시스템.
  8. 제1 항에 있어서,
    상기 GUI는,
    상기 완구의 기능들을 나타내는 블록들을 나타내는 기능창; 및
    상기 기능창으로부터 상기 블록들이 드래그 이동되어 상기 완구의 구동 순서를 설정하는 설정창을 포함하는 것을 특징으로 하는 완구 제어 시스템.
  9. 제8 항에 있어서,
    상기 블록은,
    상기 완구의 구동시작을 나타내는 Start 블록;
    상기 완구를 이동시키는 DC Motor 블록; 및
    상기 완구의 구동을 멈추는 Brake 블록을 포함하며,
    상기 설정창으로 상기 Start 블록, 상기 DC Motor 블록 및 상기 Brake 블록을 차례대로 각각의 상기 블록들의 하부를 향해 드래그 이동하여 연결되어 블록트리를 형성하면, 상기 완구는 구동시작, 이동 및 구동을 멈추는 동작을 순서대로 구동하는 것을 특징으로 하는 완구 제어 시스템.
KR1020140165476A 2014-11-25 2014-11-25 교육용 완구 제어 시스템 KR20160062555A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140165476A KR20160062555A (ko) 2014-11-25 2014-11-25 교육용 완구 제어 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140165476A KR20160062555A (ko) 2014-11-25 2014-11-25 교육용 완구 제어 시스템

Publications (1)

Publication Number Publication Date
KR20160062555A true KR20160062555A (ko) 2016-06-02

Family

ID=56135686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140165476A KR20160062555A (ko) 2014-11-25 2014-11-25 교육용 완구 제어 시스템

Country Status (1)

Country Link
KR (1) KR20160062555A (ko)

Similar Documents

Publication Publication Date Title
KR102069096B1 (ko) 피지컬 디바이스의 직접적 원격 제어 장치
Wolber et al. App inventor
US10163365B2 (en) System and method for teaching programming of devices
Valk The lego mindstorms EV3 discovery book: A beginner's guide to building and programming robots
CN109848985B (zh) 一种机器人的图形编程方法、装置及智能终端
Cicolani et al. Beginning Robotics with Raspberry Pi and Arduino
JP6319772B2 (ja) リアルタイムで行われる移動ロボットの脈絡ある挙動を生成する方法およびシステム
IL174116A (en) A proactive UI that includes a learning component
KR101676676B1 (ko) 저항과 자석이 내장된 카드키 및 보드를 이용한 로봇 프로그래밍 교육용 키트 및 방법
Kurniawan Iot projects with arduino nano 33 ble sense
US20190227776A1 (en) System for co-ordination of logical sequence of instructions across electronic devices using visual programming and wireless communication
Walter et al. Learning MIT app inventor: A hands-on guide to building your own android apps
Thai Exploring robotics with ROBOTIS Systems
CN113570944B (zh) 一种用于积木块编程学习的智能教具控制系统和方法
CN102354285A (zh) 一种嵌入式图形界面快速开发装置及方法
Staple Learn Robotics Programming: Build and control AI-enabled autonomous robots using the Raspberry Pi and Python
Palazzetti Getting started with UDOO
Bellas et al. Robobo: the next generation of educational robot
KR20140033297A (ko) 스마트 로봇 교육 서비스 플랫폼 시스템
KR102186719B1 (ko) 블록형 무선 코딩 명령어 입력 장치 및 방법
Besari et al. Preliminary design of interactive visual mobile programming on educational robot ADROIT V1
KR20160062555A (ko) 교육용 완구 제어 시스템
Ochiai et al. Towards Digital Nature: Bridging the Gap between Turing Machine Objects and Linguistic Objects in LLMMs for Universal Interaction of Object-Oriented Descriptions
KR20160063662A (ko) 완구 제어 시스템
Yamanoor et al. Python Programming with Raspberry Pi

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application