KR102294853B1 - 코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법 - Google Patents

코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법 Download PDF

Info

Publication number
KR102294853B1
KR102294853B1 KR1020200165628A KR20200165628A KR102294853B1 KR 102294853 B1 KR102294853 B1 KR 102294853B1 KR 1020200165628 A KR1020200165628 A KR 1020200165628A KR 20200165628 A KR20200165628 A KR 20200165628A KR 102294853 B1 KR102294853 B1 KR 102294853B1
Authority
KR
South Korea
Prior art keywords
avatar
coding block
electronic device
displaying
output
Prior art date
Application number
KR1020200165628A
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 KR1020200165628A priority Critical patent/KR102294853B1/ko
Application granted granted Critical
Publication of KR102294853B1 publication Critical patent/KR102294853B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

전자 장치의 제어 방법이 개시된다. 본 제어 방법은, 사용자 입력에 따라 적어도 하나의 코딩 블록을 생성하는 단계, 생성된 코딩 블록을 디스플레이하는 단계, 디스플레이된 코딩 블록이 실행됨에 따라, 실행된 코딩 블록을 기반으로 동작하는 아바타를 디스플레이하는 단계를 포함한다.

Description

코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법 { ELECTRONIC APPARATUS FOR PROVIDING AVATAR OPERATED ACCORDING TO CODING BLOCKS, AND CONTROL METHOD }
본 개시는 코딩 블록을 이용한 교육 서비스를 제공하는 전자 장치에 관한 것으로, 보다 상세하게는, 코딩 블록에 따라 동작하는 아바타를 시각적으로 제공하는 전자 장치에 관한 것이다.
종래 컴퓨터 프로그래밍과 관련된 코딩 교육을 제공하는 기관 내지는 업체의 경우, 코딩의 결과를 보여주기 위한 하드웨어 장치를 학생들 각각에 대해 준비할 필요가 있었다.
또한, 언택트 방식으로 코딩 교육이 진행되는 경우라면, 학생들 각각이 하드웨어 장치를 구매할 필요가 있었다.
다만, 매 수업마다 다른 내용의 코딩을 설계하는 일반적인 교육 과정을 고려했을 때, 모든 학생들이 수업마다 적합한 하드웨어 장치를 이용하기에는 비용상/설치상의 문제가 있었다.
한편, 수학적/논리적 구조에 따라 연결되는 코딩 블록을 이용하여 코드를 시각적으로 표현하는 코딩 교육이 고안된 이후, 관련된 다양한 서비스/장치가 제공되고 있다.
등록 특허 공보 제10-19792850000호(프로그래밍 학습 및 창의력 향상 교육 시스템)
본 개시는 코딩 결과에 따라 동작하는 외부 장치를 대체할 수 있는 아바타를 통해 코딩 결과를 확인하도록 하는 전자 장치 및 그 제어 방법을 제공한다.
본 개시의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 개시의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 개시의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 사용자 입력에 따라 적어도 하나의 코딩 블록을 생성하는 단계, 상기 생성된 코딩 블록을 디스플레이하는 단계, 상기 디스플레이된 코딩 블록이 실행됨에 따라, 상기 실행된 코딩 블록을 기반으로 동작하는 아바타를 디스플레이하는 단계를 포함한다.
상기 아바타를 디스플레이하는 단계는, 사용자 입력에 따라 상기 아바타를 디스플레이하고, 상기 실행된 코딩 블록을 기반으로 동작하도록 상기 디스플레이 된 아바타를 제어할 수 있다.
한편, 상기 전자 장치의 제어 방법은, 상기 디스플레이 된 코딩 블록에 대한 사용자 입력에 따라, 상기 디스플레이 된 코딩 블록과 관련된 입력 변수, 조건, 기능 및 출력 중 적어도 하나를 설정하는 단계를 더 포함할 수 있다.
이때, 상기 전자 장치의 제어 방법은, 상기 설정된 코딩 블록의 출력과 관련된 적어도 하나의 외부 장치가 상기 전자 장치와 연결되었는지 여부를 식별하는 단계를 더 포함할 수 있다. 그리고, 상기 아바타를 디스플레이하는 단계는, 상기 외부 장치가 연결되지 않은 것으로 식별되는 경우, 상기 설정된 코딩 블록의 출력과 관련된 동작을 수행하는 상기 아바타를 디스플레이 할 수 있다.
여기서, 상기 전자 장치의 제어 방법은, 상기 외부 장치가 연결되지 않은 것으로 식별되는 경우, 상기 외부 장치가 연결되지 않았음을 사용자에게 알리는 단계를 더 포함할 수도 있다. 이 경우, 상기 아바타를 디스플레이하는 단계는, 상기 외부 장치를 대체하는 상기 아바타의 디스플레이를 요청하는 사용자 입력이 수신되면, 상기 설정된 코딩 블록의 출력과 관련된 동작을 수행하는 상기 아바타를 디스플레이 할 수 있다.
또한, 상기 아바타를 디스플레이하는 단계는, 상기 외부 장치가 연결되지 않은 것으로 식별되는 경우, 상기 외부 장치와 대응되는 상기 아바타의 모드를 선택하고, 상기 선택된 모드 상에서 상기 설정된 코딩 블록의 출력과 관련된 동작을 수행하는 상기 아바타를 디스플레이 할 수도 있다.
본 개시에 따른 전자 장치는, 코딩 블록에 따라 구현되는 코드의 결과를 아바타를 통해 직관적으로 제공한다는 효과가 있다.
아울러, 본 개시에 따른 전자 장치는, 코딩 블록에 따라 구현된 코드의 출력에 따라 동작할 외부 장치가 연결되지 않은 경우에도, 외부 장치를 대체할 수 있는 아바타를 통해 코드의 실행 결과를 제공할 수 있다는 장점이 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도,
도 3a 내지 도 3b는 본 개시의 일 실시 예에 따라 전자 장치가 제공하는 코딩 블록 및 아바타를 설명하기 위한 도면들,
도 4는 본 개시의 일 실시 예에 따라 전자 장치가 제공하는 코딩 블록 및 아바타를 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따라 전자 장치가 제공하는 코딩 블록 및 아바타를 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 알고리즘, 그리고
도 7은 본 개시의 다양한 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
본 개시에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당해 기술 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소를 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안 된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안 된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 개시의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 1을 참조하면, 전자 장치(100)는 메모리(110), 사용자 입력부(120), 디스플레이(130), 프로세서(140) 등을 포함할 수 있다.
전자 장치(100)는 모니터와 연결된 데스크탑 PC, 노트북 PC, 태블릿 PC, 키오스크, PDA(Personal Digital Assistants), 스마트폰 등 다양한 PC로 구현될 수 있다.
메모리(110)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 적어도 하나의 인스트럭션 또는 데이터를 저장하기 위한 구성이다.
메모리(110)는 ROM, 플래시 메모리 등의 비휘발성 메모리를 포함할 수 있으며, DRAM 등으로 구성된 휘발성 메모리를 포함할 수 있다. 또한, 메모리(110)는 하드 디스크, SSD(Solid state drive) 등을 포함할 수도 있다.
사용자 입력부(120)는 다양한 사용자 입력 내지는 사용자 명령을 수신하기 위한 구성이다. 사용자 입력부(120)는 하나 이상의 버튼, 터치스크린, 마이크, 카메라 등 다양한 구성을 포함할 수 있다.
디스플레이(130)는 LCD(Liquid Crystal Display), PDP(Plasma Display Panel), OLED(Organic Light Emitting Diodes), TOLED(Transparent OLED), Micro LED 등으로 구현될 수 있으나, 이에 한정되는 것은 아니고 이밖에 종래 알려진 다양한 형태의 디스플레이를 포함할 수 있다.
디스플레이(130)는, 사용자의 터치 조작을 감지할 수 있는 터치스크린 형태로 구현될 수 있으며, 접히거나 구부러질 수 있는 플렉서블 디스플레이로 구현될 수도 있다.
프로세서(140)는 전자 장치(100)를 전반적으로 제어하기 위한 구성이다. 구체적으로, 프로세서(140)는 메모리(110)와 연결되는 한편 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 본 개시의 다양한 실시 예들에 따른 동작을 수행할 수 있다.
프로세서(140)는 하나 이상의 프로세서로 구성될 수 있다. 이때, 하나 이상의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서 등을 포함할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
후술할 도 2의 제어 방법은, 프로세서(140)가 메모리(110)에 저장된 적어도 하나의 컴퓨터 프로그램 또는 애플리케이션을 실행한 결과 수행될 수 있다. 예를 들어, 전자 장치(100)로 하여금 후술할 도 2의 제어 방법을 수행하도록 하는 컴퓨터 프로그램은, Blender, Electron, Blockly, JavaScript, Unity 등의 프로그램들 중 적어도 하나를 이용하여 구현될 수 있으나, 이에 한정되지 않는다.
Blender는 3D모델을 제작할 수 있도록 지원해주는 모델링 프로그램이다.
Blender는 해당 프로그램을 이용하여 제작한 3D모델을 Unity에서 사용할 수 있도록 변환해주는 기능을 제공한다. 따라서 Blender를 사용하여 적어도 하나의 아바타가 제작될 수 있다.
Electron은 JavaScript기반의 크로스 플랫폼 프로그램이다. 크로스 플랫폼 프로그램이란 다양한 OS에서 각 OS의 Native 언어(ex. Android의 Java와 Kotlin, iOS와 OSX의 Object-C, Swift, Windows의 C#과 C++ 등)를 사용하지 않고 하나의 언어로 다양한 환경을 대응할 수 있는 프로그램을 개발할 수 있는 프로그램을 뜻한다. 이러한 프로그램을 사용하면 하나의 언어로 여러 환경을 대응할 수 있고, 개발 기간이 단축되는 효과가 있다.
Blockly는 Google과 MIT에서 개발한 블록 기반 비주얼 프로그래밍 언어 및 편집기를 작성하기 위한 JavaScript기반의 라이브러리이다. 해당 라이브러리를 사용하면 블록 코딩 프로그램의 핵심 기능을 편리하게 개발할 수 있다.
Unity는 2D, 3D 인터랙티브 콘텐츠 제작을 위한 통합 저작 프로그램이다.
Unity를 사용하여 적어도 하나의 블록 코딩 프로그램이 제작될 수 있으며, Blender를 사용하여 제작된 아바타를 통해 블록 코딩의 결과가 확인될 수 있다.
이하 도 2를 통해, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 동작 단계 별로 설명한다.
도 2를 참조하면, 프로세서(140)는 사용자 입력부(120)를 통해 수신된 사용자 입력에 따라 적어도 하나의 코딩 블록을 생성할 수 있다(S210).
이때, 사용자 입력은 전자 장치(100)와 연결된 적어도 하나의 입력 장치(ex. 마우스, 키보드 등)를 통해 수신될 수도 있다.
코딩 블록은, 적어도 하나의 코드를 구성하는 단위 명령문을 나타내는 시각적 블록이다. 하나 이상의 코딩 블록이 논리 구조에 따라 시각적으로 연결되어 하나의 코드를 구성할 수 있다.
이때, 각 코딩 블록은, 시작 명령, 종료 명령, 입력 명령, 처리 명령, 출력 명령 등 다양한 명령에 해당할 수 있다. 또한, 각 코딩 블록은, 입력 변수, 기능, 조건, 출력 값 등에 해당할 수도 있다.
각 코딩 블록은, 적어도 하나의 코딩 블록이 결착될 수 있도록 시각적으로 구현될 수 있다. 예를 들어, 조건문에 해당하는 특정 코딩 블록의 돌기 부분들에 각각 조건과 출력(조건에 따른 동작)에 해당하는 코딩 블록들의 홈 부분이 결착될 수 있다. 다만, 코딩 블록의 구체적인 모양이 이에 한정되지 않음은 물론이다.
프로세서(140)는 사용자 입력에 따라 생성된 코딩 블록을 디스플레이 하도록 디스플레이(130)를 제어할 수 있다(S220).
이때, 각 코딩 블록이 생성된 순서 및/또는 사용자 입력에 따라 정의된 각 코딩 블록 간의 연결 관계에 따라, 하나 이상의 코딩 블록이 연결되어 디스플레이 될 수 있다.
또한, 디스플레이 된 코딩 블록에 대한 사용자 입력에 따라, 프로세서(140)는 디스플레이 된 코딩 블록과 관련된 입력 변수, 조건, 기능 및 출력 중 적어도 하나를 설정할 수 있다.
여기서, 입력 변수, 조건, 기능, 출력 등에 각각 해당하는 코딩 블록들이 해당 코딩 블록에 결착됨으로써, 해당 코딩 블록에 대한 입력 변수, 조건, 기능, 출력 등이 설정될 수 있다.
그리고, 프로세서(140)는 디스플레이 된 하나 이상의 코딩 블록이 실행됨에 따라, 실행된 코딩 블록을 기반으로 동작하는 아바타를 디스플레이 할 수 있다(S230).
구체적으로, 프로세서(140)는, 복수의 코딩 블록이 결착되어 적어도 하나의 코드가 논리적/문법적 오류 없이 완성됨에 따라, 해당 코드에 따라 동작하는 아바타를 디스플레이 할 수 있다.
아바타는, 코딩 결과를 시각적으로 나타내기 위한 개체 내지는 캐릭터로 정의될 수 있다.
일 실시 예로, 디스플레이(130) 상에, 서로 연결된 하나 이상의 코딩 블록과 함께 아바타가 디스플레이 된 상황을 가정한다.
여기서, 아바타는, 적어도 하나의 코딩 블록이 생성 및 디스플레이 되기 전 초기 화면부터 디스플레이 된 것일 수도 있고, 아바타를 디스플레이 하기 위한 사용자 명령에 따라 디스플레이 된 것일 수도 있다.
그리고, 결착된 복수의 코딩 블록을 포함하는 코드를 실행하고자 하는 사용자 입력이 수신되면, 프로세서(140)는 해당 코드에 따라 동작하도록 (디스플레이 된) 아바타를 제어할 수 있다.
도 3a 내지 도 3b, 도 4, 도 5는 각각 본 개시의 다양한 실시 예에 따라 전자 장치가 제공하는 코딩 블록 및 아바타를 설명하기 위한 도면들이다.
도 3a는, 코딩 블록 및 아바타가 표시되는 전자 장치(100)의 디스플레이(130)의 일 화면에 해당한다.
도 3a를 참조하면, 프로세서(140)는 적어도 하나의 코딩 블록을 생성 및 각 코딩 블록의 파라미터를 설정하기 위한 UI(User Interface. 301)를 제공할 수 있다.
UI(301)를 통해 수신되는 사용자 입력을 기반으로, 프로세서(140)는 하나 이상의 코딩 블록을 생성하고, 생성된 코딩 블록 각각의 파라미터(입력 변수, 조건, 기능, 출력 등)를 정의할 수 있다.
예를 들어, 도 3a를 참조하면, UI(301) 내의 '변수' 항목이 선택됨에 따라 제공되는 하나 이상의 메뉴를 통해 코딩 블록(310)이 생성될 수 있다. 그리고, UI(301) 내의 '함수' 항목 및 '숫자' 항목에 따라 카메라 초기화 및 카메라 번호(0번)가 각각 설정될 수 있다.
이러한 사용자 입력에 따라, 도 3a와 같이 다양한 코딩 블록들(310, 320, 330, 331, 332, 333, 334, 334-1, 334-2)이 생성 및 설정되어 디스플레이 될 수 있다. 또한, 도 3a를 참조하면, 아바타(350)가 디스플레이 될 수 있다.
도 3a의 코딩 블록들을 참조하면, 코딩 블록들(310, 320)에 의해 카메라 및 사물모델(“기본”(ex. 사물 객체 인식용 인공지능 모델))이 정의되었다.
여기서, 카메라(0번)는, 전자 장치(100)의 사용자 입력부(120)에 포함되는 카메라이거나 또는 전자 장치(100)와 연결된 외부 장치의 카메라일 수 있다.
그리고, 코딩 블록(330)을 통해 if문이 정의되었다. 구체적으로, 코딩 블록(331)에 따라 조건이 설정되었으며, 코딩 블록들(332, 333)에 따라 카메라를 통해 촬영된 이미지(프레임)가 사물모델에 입력되도록 설정되었다.
그리고, 코딩 블록들(334, 334-1, 334-2)에 따라, 인식된 사물이 “cup”이면 “이것은 종이컵입니다.”라는 음성이 출력되도록 설정되었다.
도 3b는 실제로 “cup”이 인식된 상황에 디스플레이(130)에 표시되는 화면이 도시된 것이다.
도 3b를 참조하면, 아바타(350)는 카메라(0번)를 통해 실시간으로 촬영되는 이미지(351)를 표시할 수 있으며, 이미지(351) 내에서 “cup”이 인식됨에 따라 전자 장치(100)는 스피커 등을 통해 “이것은 종이컵입니다.”라는 음성을 출력할 수 있다.
또한, 아바타(350)가 “이것은 종이컵입니다.”라는 음성을 출력함을 나타내는 시각적 UI(355)가 표시될 수도 있다.
한편, 도 4는, 코딩 블록들(410, 420, 420-1, 420-2, 420-3, 420-4)에 따라, 카메라(0번)를 통해 촬영된 이미지(프레임)에 포함된 대상의 표정을 인식하여, 해당 표정을 로보미(450)가 출력하도록 설정된 상황을 도시한 것이다.
도 4를 참조하면, 카메라(0번)를 통해 촬영된 대상(ex. 사용자)의 표정(ex. 웃음)에 따라, 로보미(450)는 웃는 표정을 나타내는 이미지(455)를 표시할 수 있다.
한편, 도 5는, 코딩 블록들(510, 520, 520-1, 520-2, 520-3, 520-4, 520-5, 520-6, 520-7, 520-8, 520-9, 520-10, 520-11, 520-12, 520-13, 520-14, 520-15)에 따라, 사용자 명령(0 ~ 4)을 기반으로 아두이노 4모터 자동차의 동작이 설정된 상황을 도시한 것이다.
다만, 예를 들어, 아두이노 4모터 자동차가 전자 장치(100)에 연결되지 않은 상황을 가정할 수 있다.
이 경우, 프로세서(140)는 아바타(550)가 아두이노 4모터 자동차의 동작을 대신하도록 제어할 수 있다.
구체적으로, 도 4를 참조하면, 프로세서(140)는 사용자 명령(0 ~ 4)에 따라 앞으로 이동, 뒤로 이동, 왼쪽으로 회전, 오른쪽으로 회전, 정지 등의 동작을 수행하도록, (디스플레이 된) 아바타(550)를 제어할 수 있다.
상술한 도 3a 내지 도 3b, 도 4, 도 5 등을 통해 도시되었듯, 아바타는 코딩 블록들로 구성된 코드의 출력에 따라 다양한 동작(ex. 음성 출력, 이미지 표시, 이동)을 수행할 수 있다.
즉, 프로세서(140)는 코딩 블록들로 구성된 코드의 출력에 따라 아바타의 모드를 설정할 수 있고, 해당 모드 상에서 아바타의 동작을 제어할 수 있다.
여기서, 모드는, 이미지 표시 모드, 음성 출력 모드, 이동 모드 등 코딩에 따라 설정되는 (코딩 블록의) 출력에 따라 정의될 수 있다.
일 실시 예에 다르면, 모드를 기반으로 아바타의 외관이 달라질 수 있다. 예를 들어, 아바타의 모드가 이동 모드인 경우, 아바타가 자동차에 탑승한 모습 또는 아바타에 바퀴가 달린 모습 등이 외관으로 제공될 수 있다.
이렇듯, 본 개시에 따른 전자 장치(100)는, 다양한 모드의 아바타(350, 450, 550)를 통해 코드의 결과를 시각적으로 표현함으로써, 보다 직관적이고 재미있는 코딩 교육 서비스를 제공할 수 있다.
또한, 본 개시에 따른 전자 장치(100)는, 코드의 결과가 반영될 하드웨어 기기(ex. 자동차, 로봇 등)가 전자 장치(100)에 연결되지 않은 경우에도, 아바타를 통해 코드의 결과를 시각적으로 제공할 수 있다.
관련하여, 도 6은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 알고리즘이다.
도 6을 참조하면, 사용자 입력에 따라 적어도 하나의 코딩 블록이 생성(디스플레이)되고 코딩 블록의 파라미터(ex. 입력 변수, 조건, 기능, 출력 등)가 설정되면(S610), 프로세서(140)는 코딩 블록의 출력과 관련된 외부 장치가 연결되었는지 여부를 식별할 수 있다(S620).
예를 들어, 코딩 블록들에 의해, 사용자 명령(1번 누름)이 입력되면 자동차가 전진하도록 설정된 상황을 가정할 수 있다. 이때, 자동차의 전진은 출력에 해당한다.
여기서, 프로세서(140)는 해당 자동차가 전자 장치(100)에 연결되었는지 여부를 식별할 수 있다.
구체적으로, 프로세서(140)는 통신부 등을 통해 제어할 수 있는 외부 장치(ex. 자동차)가 전자 장치(100)에 연결되었는지 식별할 수 있다.
만약, 코딩 블록의 출력과 관련된 외부 장치(ex. 자동차)가 연결된 경우라면(S620 - Y), 프로세서(140)는 코딩 블록이 실행됨에 따라(S660 - Y) 해당 동작을 수행하도록 외부 장치를 제어할 수 있다.
반면, 코딩 블록의 출력과 관련된 외부 장치(ex. 자동차)가 연결되지 않은 경우라면(S620 - N), 프로세서(140)는 코딩 블록의 출력(ex. 전진 등)과 관련된 동작을 수행하기 위한 아바타를 디스플레이 할 수 있다(S630).
일 예로, 프로세서(140)는 코딩 블록의 출력과 관련된 외부 장치가 연결되지 않았음을 알리는 적어도 하나의 UI(ex. 자동차가 연결되어 있지 않습니다)를 제공할 수도 있다.
이때, 프로세서(140)는 아바타의 디스플레이 여부를 문의하는 UI를 디스플레이 할 수도 있다.
그리고, (연결되지 않은) 외부 장치를 대체하는 아바타의 디스플레이를 요청하는 사용자 입력이 수신되면, 프로세서(140)는 아바타를 디스플레이 할 수 있다.
이때, 프로세서(140)는 (연결되지 않은) 외부 장치와 대응되는 아바타의 모드를 선택할 수 있다. 구체적으로, 프로세서(140)는 코딩 블록의 출력(ex. 이미지 표시, 음성 출력, 이동 등)에 따라 선택된 모드의 아바타를 디스플레이 할 수 있다.
그리고, 코딩 블록이 실행되면(S640 - Y), 프로세서(140)는 코딩 블록의 출력에 따른 동작을 수행하도록 아바타를 제어할 수 있다(S650).
이때, 아바타의 동작을 설명하기 위한 텍스트가 동작을 수행하는 아바타와 함께 디스플레이 될 수 있다. 본 텍스트는 디스플레이(130)의 화면 상에서 동작을 수행하는 아바타와 근접한 위치에 디스플레이 될 수 있다.
본 텍스트는, 코드 내 특정한 조건 등이 만족됨에 따라 도출되는 특정한 출력에 대한 정보를 포함할 수 있다. 즉, 본 텍스트를 통해, 사용자는 어떤 코딩 블록의 어떠한 출력이 현재 아바타의 동작을 통해 도출되고 있는지를 확인할 수 있다.
이렇듯, 본 개시에 따른 전자 장치(100)는, 코드를 구성하는 코딩 블록의 출력에 대응되는 외부 장치의 연결 여부에 따라 아바타를 선택적으로 이용함으로써, 하드웨어 기기의 존재 유무에 따라 유연한 코딩 교육 환경을 제공할 수 있다.
한편, 도 6과 달리, 코딩 블록의 출력에 따른 동작을 수행하기 위한 외부 장치가 연결된 경우라도, 사용자 입력에 따라서는 출력이 아바타를 통해 제공될 수도 있다.
일 예로, 프로세서(140)는 코딩 블록의 출력을 아바타로 제공할지 외부 장치를 통해 제공할지 여부를 선택하도록 하는 UI를 제공할 수 있다.
여기서, 만약 코딩 블록의 출력을 아바타로 제공하기 위한 사용자 입력이 수신되면, 프로세서(140)는 코딩 블록(코드)이 실행됨에 따라 해당 출력의 동작을 수행하도록 아바타를 제어할 수 있다.
도 7은 본 개시의 다양한 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 7을 참조하면, 전자 장치(100)는 메모리(110), 사용자 입력부(120), 디스플레이(130), 프로세서(140) 외에 스피커(150), 통신부(160) 등을 더 포함할 수 있다.
스피커(150)는 다양한 정보를 청각적으로 제공하기 위한 구성이다. 도 7과 달리, 전자 장치(100)는 스피커 외에 적어도 하나의 이어폰/헤드폰 단자를 포함할 수도 있다.
일 실시 예로, 프로세서(140)는 아바타의 음성을 출력하도록 스피커(150)를 제어할 수 있다.
통신부(160)는 적어도 하나의 외부 장치와 통신을 수행하기 위한 구성이다.
통신부(160)는 유선 통신 및/또는 무선 통신을 통해 구현된 네트워크를 기반으로, 외부 장치와 연결될 수 있다. 이때, 통신부(160)는 외부 장치와 직접적으로 연결될 수도 있지만, 네트워크를 제공하는 하나 이상의 외부 서버(ex. ISP(Internet Service Provider))를 통해서 외부 전자 장치와 연결될 수도 있다.
무선 통신은 LTE(long-term evolution), LTE-A(LTE Advance), 5G(5th Generation) 이동통신, CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), GSM(Global System for Mobile Communications), DMA(Time Division Multiple Access), WiFi(Wi-Fi), WiFi Direct, Bluetooth, NFC(near field communication), Zigbee 등의 통신 방식 중 적어도 하나를 포함할 수 있다.
유선 통신은 이더넷(Ethernet), 광 네트워크(optical network), USB(Universal Serial Bus), 선더볼트(ThunderBolt) 등의 통신 방식 중 적어도 하나를 포함할 수 있다. 여기서, 통신부(160)는 상술한 유무선 통신 방식에 따른 네트워크 인터페이스(Network Interface) 또는 네트워크 칩을 포함할 수 있다. 한편, 통신 방식은 상술한 예에 한정되지 아니하고, 기술의 발전에 따라 새롭게 등장하는 통신 방식을 포함할 수 있다.
일 실시 예로, 프로세서(140)는 통신부(160)를 통해 연결된 외부 장치를 식별할 수 있다. 구체적으로, 프로세서(140)는, 통신부(160)를 통해 외부 장치의 식별 정보를 수신하는 방식으로, 연결된 외부 장치를 식별할 수 있다.
그리고, 프로세서(140)는 생성된 코딩 블록의 출력과 관련된 외부 장치가 통신부(160)를 통해 연결되었는지 여부를 식별할 수 있다.
만약, 출력과 관련된 외부 장치가 연결되지 않은 것으로 식별된 경우, 프로세서(140)는 외부 장치를 대체하는 아바타가 코딩 블록의 출력과 관련된 동작을 수행하도록 제어할 수 있다.
한편, 일 실시 예로, 전자 장치(100)는 통신부(160)를 통해 적어도 하나의 서버와 통신을 수행하는 한편, 서버를 통해 제공되는 애플리케이션 또는 웹 페이지를 통해 상술한 도 2의 실시 예에 따른 서비스를 제공할 수 있다.
한편, 이상에서 설명된 전자 장치(100)의 다양한 실시 예들은 서로 저촉되는 것이 아닌 한 둘 이상이 결합되어 수행될 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다.
일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 전자 장치(100)에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions) 또는 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어 또는 컴퓨터 프로그램은 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자 장치(100)에서의 처리 동작을 상술한 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 전자 장치 110: 메모리
120: 사용자 입력부 130: 디스플레이
140: 프로세서

Claims (8)

  1. 전자 장치의 제어 방법에 있어서,
    사용자 입력에 따라 적어도 하나의 코딩 블록을 생성하는 단계;
    상기 생성된 코딩 블록을 디스플레이하는 단계;
    상기 디스플레이 된 코딩 블록에 대한 사용자 입력에 따라, 상기 디스플레이 된 코딩 블록과 관련된 입력 변수, 조건, 기능 및 출력 중 적어도 하나를 설정하는 단계; 및
    상기 디스플레이된 코딩 블록이 실행됨에 따라, 상기 실행된 코딩 블록을 기반으로 동작하는 아바타를 디스플레이하는 단계;를 포함하고,
    상기 전자 장치의 제어 방법은,
    상기 코딩 블록에 대해 설정된 출력과 관련된 적어도 하나의 외부 장치가 상기 전자 장치와 연결되었는지 여부를 식별하는 단계;를 더 포함하고,
    상기 아바타를 디스플레이하는 단계는,
    상기 외부 장치가 상기 전자 장치와 연결되지 않은 것으로 식별되는 경우, 상기 설정된 코딩 블록의 출력과 관련된 동작을 수행하는 상기 아바타를 디스플레이하는, 전자 장치의 제어 방법.
  2. 제1항에 있어서,
    상기 아바타를 디스플레이하는 단계는,
    사용자 입력에 따라 상기 아바타를 디스플레이하고,
    상기 실행된 코딩 블록을 기반으로 동작하도록 상기 디스플레이 된 아바타를 제어하는, 전자 장치의 제어 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 전자 장치의 제어 방법은,
    상기 외부 장치가 연결되지 않은 것으로 식별되는 경우, 상기 외부 장치가 연결되지 않았음을 사용자에게 알리는 단계;를 더 포함하고,
    상기 아바타를 디스플레이하는 단계는,
    상기 외부 장치를 대체하는 상기 아바타의 디스플레이를 요청하는 사용자 입력이 수신되면, 상기 설정된 코딩 블록의 출력과 관련된 동작을 수행하는 상기 아바타를 디스플레이하는, 전자 장치의 제어 방법.
  6. 제1항에 있어서,
    상기 아바타를 디스플레이하는 단계는,
    상기 외부 장치가 연결되지 않은 것으로 식별되는 경우, 상기 외부 장치와 대응되는 상기 아바타의 모드를 선택하고,
    상기 선택된 모드 상에서 상기 설정된 코딩 블록의 출력과 관련된 동작을 수행하는 상기 아바타를 디스플레이하는, 전자 장치의 제어 방법.
  7. 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 인스트럭션을 실행함으로써 제1항의 제어 방법을 수행하는 프로세서;를 포함하는, 전자 장치.
  8. 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서,
    전자 장치의 적어도 하나의 프로세서에 의해 실행되어, 상기 전자 장치로 하여금 제1항의 제어 방법을 수행하도록 하는, 컴퓨터 프로그램.
KR1020200165628A 2020-12-01 2020-12-01 코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법 KR102294853B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200165628A KR102294853B1 (ko) 2020-12-01 2020-12-01 코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200165628A KR102294853B1 (ko) 2020-12-01 2020-12-01 코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법

Publications (1)

Publication Number Publication Date
KR102294853B1 true KR102294853B1 (ko) 2021-08-27

Family

ID=77504347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200165628A KR102294853B1 (ko) 2020-12-01 2020-12-01 코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법

Country Status (1)

Country Link
KR (1) KR102294853B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230155281A (ko) * 2022-05-03 2023-11-10 (주)언리얼컴퍼니 블록 코딩에 기반하여 적응적 설계가 가능한 방탈출 게임 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180037631A (ko) * 2016-10-04 2018-04-13 (주)모션블루 블록을 이용한 코딩 교육 서비스 제공 장치 및 방법
KR101908939B1 (ko) * 2017-08-03 2018-10-17 노상민 코딩 교육 서비스 방법 및 이를 수행하기 위한 장치
KR101979285B1 (ko) 2018-01-29 2019-05-15 최예은 프로그래밍 학습 및 창의력 향상 교육 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180037631A (ko) * 2016-10-04 2018-04-13 (주)모션블루 블록을 이용한 코딩 교육 서비스 제공 장치 및 방법
KR101908939B1 (ko) * 2017-08-03 2018-10-17 노상민 코딩 교육 서비스 방법 및 이를 수행하기 위한 장치
KR101979285B1 (ko) 2018-01-29 2019-05-15 최예은 프로그래밍 학습 및 창의력 향상 교육 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230155281A (ko) * 2022-05-03 2023-11-10 (주)언리얼컴퍼니 블록 코딩에 기반하여 적응적 설계가 가능한 방탈출 게임 시스템
KR102663732B1 (ko) 2022-05-03 2024-05-03 (주)언리얼컴퍼니 블록 코딩에 기반하여 적응적 설계가 가능한 방탈출 게임 시스템

Similar Documents

Publication Publication Date Title
US9881404B2 (en) Manipulating graphical objects
CN108228287B (zh) 基于qt的用户界面控件的生成方法及装置
US20190005013A1 (en) Conversation system-building method and apparatus based on artificial intelligence, device and computer-readable storage medium
US8843892B2 (en) Visual representations of code in application development environments
US20170329464A1 (en) Dynamic button with sub-buttons
US20160216872A1 (en) Manipulating graphical objects
US20150044642A1 (en) Methods and Systems for Learning Computer Programming
US11372624B2 (en) System for creating graphical content
CN105335282A (zh) 用于应用的跨平台测试的方法和系统
US9495348B2 (en) Template application error detection
CN111190589A (zh) 一种可视化的编程方法及终端设备
JP7351877B2 (ja) グラフィカルユーザインターフェースプロトタイプの提供方法および装置
KR102294853B1 (ko) 코딩 블록에 따라 동작하는 아바타를 제공하는 전자 장치, 및 제어 방법
CN112102446A (zh) 一种动画处理方法、设备及计算机可读存储介质
US20200210038A1 (en) Robot eye lamp control method and apparatus and terminal device using the same
US10788961B2 (en) Method of automatically switching mode of work screen of digital content authoring tool
KR101628930B1 (ko) 디스플레이 장치 및 그 제어 방법
Nagesh et al. Cross-platform mobile application development
CN105740222A (zh) 用于阅读器排版的方法、设备、阅读器和电子设备
KR102655528B1 (ko) 사용자의 번역 능력을 향상시키기 위한 순차적인 텍스트 작성 과정을 지원하는 솔루션
CN112579144A (zh) 数据处理方法及装置
WO2019132409A1 (ko) 전자 장치 및 그 제어 방법
KR20140005014A (ko) 멀티 플랫폼 게임 제작에서의 그래픽 콘텐츠 최적화 방법
AU2013299742B2 (en) Manipulating graphical objects
US20230176834A1 (en) Graphical programming environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant