KR102479950B1 - Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템 - Google Patents

Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템 Download PDF

Info

Publication number
KR102479950B1
KR102479950B1 KR1020210002529A KR20210002529A KR102479950B1 KR 102479950 B1 KR102479950 B1 KR 102479950B1 KR 1020210002529 A KR1020210002529 A KR 1020210002529A KR 20210002529 A KR20210002529 A KR 20210002529A KR 102479950 B1 KR102479950 B1 KR 102479950B1
Authority
KR
South Korea
Prior art keywords
module
information
source code
recommended
modules
Prior art date
Application number
KR1020210002529A
Other languages
English (en)
Other versions
KR20220100271A (ko
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 KR1020210002529A priority Critical patent/KR102479950B1/ko
Priority to PCT/KR2021/000267 priority patent/WO2022149635A1/ko
Publication of KR20220100271A publication Critical patent/KR20220100271A/ko
Application granted granted Critical
Publication of KR102479950B1 publication Critical patent/KR102479950B1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • G09B1/00Manually or mechanically operated educational appliances using elements forming, or bearing, symbols, signs, pictures, or the like which are arranged or adapted to be arranged in one or more particular ways
    • G09B1/32Manually or mechanically operated educational appliances using elements forming, or bearing, symbols, signs, pictures, or the like which are arranged or adapted to be arranged in one or more particular ways comprising elements to be used without a special support
    • 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
    • G09B1/00Manually or mechanically operated educational appliances using elements forming, or bearing, symbols, signs, pictures, or the like which are arranged or adapted to be arranged in one or more particular ways
    • G09B1/32Manually or mechanically operated educational appliances using elements forming, or bearing, symbols, signs, pictures, or the like which are arranged or adapted to be arranged in one or more particular ways comprising elements to be used without a special support
    • G09B1/325Manually or mechanically operated educational appliances using elements forming, or bearing, symbols, signs, pictures, or the like which are arranged or adapted to be arranged in one or more particular ways comprising elements to be used without a special support the elements comprising interacting electronic components
    • 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
    • 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
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip

Abstract

본 발명은 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리; 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 인식하고, 인식된 실제 오브젝트 및 실제 오브젝트에 대한 타겟 오브젝트에 기초하여 생성된 가상 오브젝트가 표시되는 사용자 단말; 및 실제 오브젝트 및 가상 오브젝트에 대한 기 저장된 토폴로지에 기초하여 소스 코드를 생성하는 서버를 포함한 코딩 교육용 시스템이다.

Description

AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템{A CODING TRAINING SYSTEM ENABLES MODULE ASSEMBLY THROUGH AUGMENTED REALITY}
본 발명은 AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템에 관한 것으로서, 태블릿 PC, 스마트폰 등과 같은 무선 디바이스를 통해 토폴로지(Topology) 인식이 가능한 모듈들을 AR(Augmented Reality)로 결합함으로써 손쉽게 소스 코드를 생성함과 동시에 코딩에 대한 흥미를 높일 수 있는, AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템에 관한 것이다.
최근 교육, 취미, 연구, 생산 등을 목적으로 하는 다양한 모듈 기반 제작 도구들이 제안되고 있다. 이러한 제작 도구들에 포함된 모듈들은 각각 특정한 기능을 수행할 수 있으며, 서로 연결되어 모듈 어셈블리를 형성할 수 있도록 제공된다. 이때, 각각의 모듈은 서로 전기적으로도 연결되어 에너지, 신호, 데이터 등을 송수신할 수 있도록 제공될 수도 있다.
이러한 모듈 어셈블리들은 소프트웨어 또는 하드웨어의 전문가인 연구원부터 학생, 일반인 등 다양한 사람들이 이용하고 있다.
그러나, 전문가를 제외한 일반인이나 학생들에게는 각 모듈들이 제대로 동작할 수 있도록 조립하고, 조립된 모듈 어셈블리를 구동시키기에 적합한 소프트웨어를 작성하여 사용하는 것이 어려울 수 있다.
또한, 언제 어디서나 모듈 조립을 통해 코딩을 학습할 수 있는 코딩 교육용 시스템은 없었기 때문에 보다 활발한 코딩 교육의 활성화를 위해 시간과 장소에 구애받지 않고 코딩을 재미있게 학습할 수 있는 서비스를 제공하는 시스템에 대한 개발이 필요하다.
[관련기술문헌]
1. 모듈을 이용한 사용자 참여형 전자책 시스템 및 동작 방법(특허출원번호 제10-2020-0004579호)
본 발명은 상술한 기술적 문제에 대응하기 위하여 안출된 것으로, 본 발명의 목적은 종래 기술에서의 한계와 단점에 의해 발생하는 다양한 문제점을 실질적으로 보완할 수 있는 것으로, 태블릿 PC로 촬영한 모듈들의 토폴로지를 인식하여 AR(Augmented Reality)로 모듈 결합에 대한 경우의 수를 제공하고, 이를 기반으로 모듈들을 조립함으로써 사용자의 관심을 증폭시킬 수 있고 보다 손쉬운 방법으로 소스 코드를 생성할 수 있는 AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템을 제공하는데 있다.
본 발명의 일 실시예에 따른 코딩 교육용 시스템은 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리; 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 인식하고, 인식된 실제 오브젝트 및 실제 오브젝트에 대한 타겟 오브젝트에 기초하여 생성된 가상 오브젝트가 표시되는 사용자 단말; 및 실제 오브젝트 및 가상 오브젝트에 대한 기 저장된 토폴로지에 기초하여 소스 코드를 생성하는 서버를 포함할 수 있다.
또한, 추천된 소스 코드인 추천 소스 코드는 카메라로 인식된 모듈 결합 중 일부가 동종의 모듈로 치환됨에 따라 편집 가능하도록 설정될 수 있다.
또한, 학습부는 추천 소스 코드를 기초로 결합된 모듈 어셈블리가 정상적으로 작동하지 않는 경우에는 에러가 난 것으로 판단하고, 에러의 원인을 학습할 수 있다.
또한, 서버는 적어도 하나의 타겟 오브젝트를 기초로 결합 가능한 모듈에 대한 추천 조립 정보를 제공하되 사용자로부터 미리 설정된 모듈 내에서 제공하는 추천 조립 정보 생성부를 포함할 수 있다.
또한, 서버는 실제 오브젝트 및 타겟 오브젝트가 삼차원 이미지로 표시되도록 카메라로부터 촬영된 이차원 이미지를 AR(Augmented Reality) 변환하는 증강현실 그래픽 표시부를 포함할 수 있다.
또한, 서버는 실제 오브젝트 및 가상 오브젝트가 결합된 전체적인 모듈 결합 구조에 대한 소스 코드를 제공하며 가상 오브젝트에 해당하는 소스 코드를 확인할 수 있도록 해당 소스 코드를 별도로 표시하여 제공하는 코드 정보 생성부를 포함할 수 있다.
또한, 가상 오브젝트는 추천 조립 정보로서 표시된 모듈을 사용자 단말의 디스플레이부 상에서 드래그 앤 드롭함에 따라 생성된 가상의 이미지일 수 있다.
본 발명의 다른 실시예에 코딩 교육용 시스템의 동작 방법은 모듈 정보 수신부를 이용하여 사용자 단말의 카메라로부터 촬영된 모듈 결합 이미지를 수신하는 단계; 타겟 오브젝트 제어부를 이용하여 모듈 결합 이미지로부터 타겟 오브젝트를 인식하는 단계; 추천 조립 정보 생성부를 이용하여 타겟 오브젝트를 기반으로 결합 가능한 여러가지 경우의 수의 추천 조립 정보를 제공하는 단계; 및 추천 조립 정보를 기초로 가상 조립 정보를 수신하고 최종 조립 정보를 결정하는 단계;를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 코딩 교육용 시스템은 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리; 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 촬영하고, 촬영된 모듈 결합에 기초하여 생성된 소스 코드를 표시하는 사용자 단말; 및 카메라로부터 촬영된 모듈 결합에 대한 토폴로지 정보 및 모듈 부착 순서 정보가 포함된 결정 패턴을 기 저장된 결정 패턴과 비교하여 소스 코드를 추천 및 생성하는 서버를 포함할 수 있다.
본 발명에 따른 과제의 해결수단은 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
본 발명의 실시예들에 의하면 적어도 다음과 같은 효과가 있다.
본 발명에 따르면, 카메라 모듈을 포함하는 무선 디바이스를 통해 촬영한 모듈들의 토폴로지가 인식되면 AR(Augmented Reality)로 모듈들을 조립할 수 있도록 하면서 조립가능한 경우의 수를 제공함으로써 사용자의 사고력 증진 및 문제 해결 능력 향상에 도움을 줄 수 있다.
본 발명에 따르면, 넥스트 모듈로서 결합가능한 모듈들에 대한 토폴로지를 인식하여 대응되는 소스코드를 함께 제공해줌으로써 코딩에 대한 사용자의 관심을 높이는데 도움을 줄 수 있다.
본 발명에 따르면, 모듈이 조립되는 전 과정을 소스 코드로 나타내어주되 현재 조립되는 모듈에 해당하는 소스 코드를 별도로 표기해줌으로써 코딩에 대한 이해도를 향상시키는데 도움을 줄 수 있다.
본 발명에 따르면, 모듈 결합을 통해 콘텐츠를 진행함에 있어서 시각 정보, 청각 정보 등을 출력함으로써 콘텐츠에 대한 사용자의 재미와 학습 효과를 동시에 제공할 수 있다.
본 발명에 따르면, 코딩 교육을 위한 다양한 콘텐츠를 증강현실화함으로써 인터렉티브한 콘텐츠로 흥미를 고취시킴과 동시에 코딩에 대한 개념 및 알고리즘을 보다 쉽게 이해할 수 있도록 도움을 줄 수 있다.
본 발명에 따르면, 무선 디바이스와 모듈 키트만으로 코딩 교육을 수행할 수 있게 됨에 따라 언택트 교육을 위한 제품의 활용도를 높일 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 실시예에 따른 모듈 어셈블리가 조립된 모습을 보여주는 사시도이다.
도 2는 도 1의 모듈 어셈블리 중 일부 모듈의 내부 구조를 보여주는 평면도이다.
도 3은 본 발명의 실시예에 따른 코딩 교육용 시스템의 개략도이다.
도 4는 본 발명의 실시예에 따른 서버를 설명하기 위한 블럭도이다.
도 5는 본 발명의 실시예에 따른 코딩 교육 시스템의 동작 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 추천 조립 정보가 표시되는 화면 예시도이다.
도 7은 본 발명의 실시예에 따른 증강현실 그래픽이 표시되는 화면 예시도이다.
도 8은 본 발명의 실시예에 따른 추천 조립 정보와 함께 소스 코드가 표시되는 화면 예시도이다.
발명의 이점, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우, '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
본 명세서의 해석의 명확함을 위해, 이하에서는 본 명세서에서 사용되는 용어들을 정의하기로 한다.
본 명세서에서 사용되는 용어, “사용자”는 본 발명의 코딩 교육용 시스템을 이용하는 사용자로서, 적어도 한 명으로 구성되는 것을 특징으로 한다. 본 명세서에서 사용자는 참여자 또는 플레이어(Player) 또는 유저(User)로 지칭될 수도 있다.
이하에서는 도 1 내지 도 2를 참조하여 본 발명의 실시예에 따른 코딩 교육용 시스템에서 하드웨어적으로 결합되는 모듈에 대해 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 모듈 어셈블리가 조립된 모습을 보여주는 사시도이다. 도 2는 도 1의 모듈 어셈블리 중 일부 모듈의 내부 구조를 보여주는 평면도이다.
모듈 어셈블리(300)는 서로 조립 가능한 하나 이상의 모듈들의 집합(10, 20, 30, 40, 50) 또는 이들이 조립된 구조체로 정의될 수도 있으며, 그 목적, 종류, 형태, 모듈의 개수 등에 의해 제한되지 않는다. 예컨대, 모듈 어셈블리(300)는 연구원이 특정 목적을 수행하기 위한 장치를 제작하기 위해 사용되는 연구용 키트의 일부일 수도 있다.
상기 복수개의 모듈들(10, 20, 30, 40, 50)은 전압 또는 전류의 변화로서 나타내는 신호, 데이터, 또는 전기 에너지(이하, “전기적 신호”라고도 함)를 다른 모듈 또는 외부 장치와 송수신할 수 있도록 구성된 객체로 정의될 수 있다. 이러한 모듈들은 중앙처리장치(CPU), 메모리(316), 전원 등을 구비하거나 또는 다른 모듈의 제어를 받아 작동 가능한 감지(Sensing) 수단, 처리(Processing) 수단 및 구동(Driving) 수단 등을 구비하여 각각 독립적으로 구동 가능할 수 있다.
또한, 각각의 모듈들(10, 20, 30, 40, 50)은 독립적으로 특정한 기능을 수행하거나, 다른 모듈과의 상호 작용에 의해 특정한 기능을 수행하도록 구성될 수도 있다. 모듈들이 중앙처리장치(CPU)를 구비하는 경우에는 각각의 모듈별로 펌웨어(Firmware)가 설치될 수도 있다.
상술한 바에 따라, 각각의 모듈들(10, 20, 30, 40, 50)은 하기 <표 1>과 같이, 크게 입력(Input) 모듈, 출력(Output) 모듈, 셋업(Setup) 모듈로 구분될 수 있다.
<표 1>
Figure 112021002561315-pat00001
입력 모듈은 리모컨 등으로부터 적외선 신호를 수신할 수 있는 적외선 모듈(IR(Infrared) module), X,Y,Z축 변화 각도와 가속도를 감지할 수 있는 자이로스코프 센서 모듈(Gyroscope module), 모듈 손잡이의 회전을 이용하여 회전 각도 혹은 회전 속도를 측정할 수 있는 다이얼 모듈(Dial module), 버튼의 눌림을 감지하여, 클릭, 더블 클릭, 눌린 상태를 감지하고, 토글(Toggle)을 사용해 온/오프(On/Off) 상태가 유지될 수 있도록 하는 버튼 모듈(Button module), 온도, 습도, 조도 등을 측정할 수 있는 환경 모듈(Environment module), 주변의 소리 세기(dB)와 주파수를 감지할 수 있는 마이크 모듈(Mic module) 및 거리를 감지할 수 있는 초음파 모듈(Ultrasonic module) 등으로 구성될 수 있다.
또한, 출력 모듈은 색 변경에 따른 시각적 표시가 가능한 LED 모듈(LED module), 스피커 모듈(Speaker module), 사용자가 그린 그림이나, 글자 또는 모듈 정보 등을 화면에 표시하는 디스플레이 모듈(Display module), 속도, 각도, 토크(Torque)를 설정하여 전기 신호를 모터 모듈로 보내서 회전 운동을 시켜주는 모터 컨트롤러 모듈(Motor Controller module), 또는 모터 컨트롤러에서 받은 전기적 신호를 회전운동으로 변환할 수 있는 모터 모듈(Motor; MDP-14) 등으로 구성될 수 있다.
또한, 셋업 모듈은 다른 모듈에 전원을 공급할 때 사용되는 배터리 모듈(Battery module) 및 블루투스(Bluetooth), 와이파이(WiFi) 혹은 USB 연결을 통해 모듈을 PC, 스마트폰 또는 모듈과 연결시킬 수 있는 네트워크 모듈(Network module) 등으로 구성될 수 있다.
또한, 각각의 모듈들(10, 20, 30, 40, 50)은 외부의 구동 장치(80)와 케이블(70)에 의해 연결될 수도 있다. 이 경우, 모듈 어셈블리(300)는 리모컨 또는 스마트폰의 신호를 수신하여 모터를 선택적으로 작동시키는 장치일 수 있다. 상기와 같은 모듈 어셈블리(300)의 구성은 하나의 예에 불과하며, 각각의 모듈(10, 20, 30, 40, 50)은 독립적으로, 또는 다른 모듈과의 연동을 통해 임의의 기능을 수행할 수 있도록 제공될 수 있다.
모듈들(10, 20, 30, 40, 50)은 이웃하는 다른 모듈과 면 접촉 가능하도록 복수 개의 측면을 갖는 다각형 기둥 형상인 입체일 수 있다. 여기서, 면 접촉은 측면의 모든 면적이 모두 접촉되는 것 만을 의미하는 것은 아니며, 측면의 일부만 접촉되어 어느 하나의 모듈의 측면과 다른 모듈의 측면이 서로 마주보며 일부분이 접촉되는 것을 포함하는 의미로 이해되어야 한다. 도 4를 참조하면, 각각의 모듈들(10, 20, 30, 40, 50)은 정사각형 형상의 평면을 갖는 것을 예로 들어 도시하였다. 즉, 본 실시예에서의 모듈들은 4개의 측면을 갖는 직육면체인 것을 예로 설명한다. 한편, 다른 실시예로서 모듈들(10, 20, 30, 40, 50)은 평면상 정삼각형, 직사각형, 정오각형 등의 다각형 기둥 형상으로 형성될 수도 있고, 특히, 정다각형 형상으로 형성될 수 있다. 일부의 모듈들이 서로 다른 입체적 형상을 가질 수도 있다. 또한, 모듈들 중 일부는 뿔, 다면체 등의 다양한 입체적 형상을 가질 수도 있다.
모듈(10)은 외관을 형성하는 하우징(1)과, 상기 하우징(1)의 측면에 노출되어 전기 신호 등을 연결된 다른 모듈에 전달하거나 수신할 수 있는 단자(2)와, 하우징의 외부로 선택적으로 돌출되는 핀(도 1의 (3) 또는 도 2의 (106))이 제공된 핀 설치부(105) 및 다른 모듈의 핀이 삽입되는 핀 수용부(도 1의 (4) 또는 도 2의 (103))를 포함할 수 있다.
한편, 제1 모듈(10)의 일 측면에는 외부 장치와 통신할 수 있는 시리얼 포트(Serial Port)를 포함할 수 있다. 예컨대, 시리얼 포트는 USB(Universal Serial Bus), USB-C type, IEEE 1394, 썬더볼트(Thunderbolt) 등의 유선 시리얼 통신을 할 수 있는 다양한 규격의 포트를 사용할 수 있다.
하우징(1)은 평면이 정사각형인 직육면체 형상으로 형성된 케이스로서, 내부의 구성품들을 보호한다. 하우징(1)은 도 1에 도시된 바와 같이 상부 케이스(1a)와 하부 케이스(1b)가 결합되는 형태로 제공될 수 있다. 하우징(1)을 구성하는 방법은 필요에 따라 상부 케이스(1a)와 하부 케이스(1b)가 일체로 형성되거나, 더 많은 부분으로 나뉘어 조립될 수도 있다. 또한, 하부 케이스(1b)는 외형 및 내부 구조를 형성하는 프레임, 프레임의 내측에 제공되는 기판(102) 및 기판(102)에 설치되는 기능 유닛(104)을 더 포함할 수 있다. 보다 상세하게, 기판(102)에는 제1 모듈(10)의 기능을 구현하기 위한 기능 유닛(104)이 실장될 수 있으며, 프레임의 내측 공간 중앙부에 고정 설치될 수 있다. 기능 유닛(104)은 예를 들어 마이크로프로세서(180)를 포함할 수 있으며, 이때 제1 모듈(10)이 독립적인 펌웨어에 의해 구동되면 제1 모듈(10)을 제어하기 위해 제공될 수 있다.
또 다른 예로서, 제1 모듈(10)이 적외선 센서 모듈인 경우, 기능 유닛(104)은 적외선 센서 및 적외선 센서로부터 감지된 값을 처리하는데 필요한 ADC(Analog Digital Converter) 및 다른 모듈 또는 외부 하드웨어와 통신하는 데 필요한 인터페이스 예컨대, I2C 또는 UART, 또는 USB 등의 통신 인터페이스 등 필요한 디바이스들을 포함할 수 있다. 이처럼 본 발명의 모듈(10, 20, 30, 40, 50)은 상술한 기능 유닛(104)의 기능에 따라 모듈의 종류가 정해질 수 있다.
또 다른 예로서, 기능 유닛(104)이 후술되는 마이크로프로세서(180) 및 메모리(190)를 포함하고 있으며, 다른 유닛들을 제어할 수 있는 OS 또는 펌웨어를 포함하고 있는 경우에는 메인 모듈이 될 수 있다.
또는, 기능 유닛(104)이 센서의 센싱 값을 다른 모듈 또는 외부 디바이스에 전달할 수 있는 경우에는 센서 모듈이 될 수 있다.
또는, 기능 유닛(104)이 NB-IOT, LTE, LoRa, WiFi, Bluetooth, USB, 케이블 모뎀 등 다양한 유무선 통신 장치를 포함하면서 다른 모듈로부터 전기적 신호를 수신하여 상술한 유무선 통신 장치를 통하여 다른 외부 디바이스에 전기적 신호를 전송할 수 있는 경우에는 통신 모듈이 될 수 있다.
또는, 기능 유닛(104)이 모터 등의 다양한 액추에이터 및 액추에이터 제어 회로들을 포함하여 구동이 가능하게 하는 경우에는 구동 모듈이 될 수 있다. 기타 본원 발명의 모듈의 더욱 상세한 구조 및 결합에 대해서는 대한민국 등록특허 공보 제10-1761596에 상세하게 기재되어 있으며, 본원 특허 명세서에 참조로서 포함된다.
단자(2)는 전기 신호 등을 연결된 다른 모듈에 전달하거나 다른 모듈로부터 받을 수 있으며, 일 예로 하우징(1)의 내부에 제공된 기판(102)으로부터 전기 신호 등을 전달받아 단자에 접촉된 다른 모듈의 단자로 전달할 수 있다. 단자(2)는 다수 개의 접촉 점이나 연결 핀을 가질 수 있으며, 이는 전기 신호 등의 전달 방법, 표준화된 규격 등에 따라 다양한 형태를 가질 수 있다.
이와 같은 단자(2)는 핀(도 1의 (3) 또는 도 2의 (106)), 핀 설치부(105), 핀 수용부(도 1의 (4) 또는 도 2의 (103))와 한 세트를 이루어 하우징(1)의 일 측면에 배치될 수 있다. 구체적으로, 단자(2)는 핀(도 1의 (3) 또는 도 2의 (106))과 핀 수용부(도 1의 (4) 또는 도 2의 (103)) 사이에 배치될 수 있으며, 다른 모듈의 핀과 핀 수용부 사이에 배치된 단자에 접촉될 수 있다. 본 실시예에서는 하우징(1)의 모든 측면에 단자(2)가 제공되는 것을 예로 들었으나, 실시예에 따라서는 단자(2)가 형성되지 않은 측면이 존재할 수도 있다.
프레임은 하우징(1)의 일부 또는 전부를 구성하는 구조물로서, 하우징(1)의 일부 또는 전부의 외형을 형성하고, 내부에 각종 부품이 설치되기 위한 공간과 구조를 제공할 수 있다. 본 실시예에서 프레임은 하우징(1)의 하부 케이스(1b)를 형성하는 것을 예로 들어 설명하나, 본 발명의 권리범위는 이에 한정되지 않는다. 또한, 본 실시예에서 프레임은 사각형 형상으로 형성되며, 4개의 코너(corner)를 갖는다.
이하에서는 도 3 내지 도 4를 참조하여 본 발명의 실시예에 다른 코딩 교육용 시스템(1000) 및 이를 구성하는 서버에 대해 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 코딩 교육용 시스템의 개략도이다. 도 4는 본 발명의 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.
도 3을 참조하면 코딩 교육용 시스템(1000)은 서버(100), 사용자 단말(200) 및 모듈 어셈블리(300)를 포함한다.
코딩 교육용 시스템(1000)은 코딩에 대한 사용자들의 흥미를 극대화하기 위해 카메라가 포함된 무선 디바이스를 통해 촬영한 모듈들의 토폴로지가 인식되면 AR(Augmented Reality)로 모듈들을 조립할 수 있도록 조립가능한 경우의 수를 제공함에 따라 다양한 버전의 콘텐츠를 제공하는 시스템이다. 구체적으로, 코딩 교육용 시스템(1000)은 인터넷, 인트라넷, 또는 광대역 통신망 등의 네트워크(900)를 통해 서버(100) 및 사용자 단말(200)을 연결하는 것을 특징으로 한다. 이때, 서버(100) 또는 사용자 단말(200)은 모듈 어셈블리(300)를 구동시킬 수 있는 프로그램의 소스 코드를 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴을 제공할 수 있다. 이러한 소스 코드의 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴에 대해서는 본 출원인이 이전에 발명한 대한민국 특허출원 제10-2018-0114166호 및 제10-2018-0114171호에 상세하게 기재되어 있으며, 위의 두 특허는 참조로서 포함된다.
보다 상세하게, 서버(100)는 모듈 결합 상태를 촬영하여 인식하고 인식된 타겟 오브젝트에 대응하는 증강현실 그래픽(이하, 'AR 그래픽'이라고도 함) 또는 가상현실 그래픽(이하, 'VR 그래픽'이라고도 함)을 소스 코드와 함께 제공하거나, 인식된 타겟 오브젝트를 기초로 결합 가능한 추천 조립 정보를 다양한 경우의 수로 제공하는 구성이다. 서버(100)는 도 4에 도시된 바와 같이, 모듈 정보 수신부(110), 타겟 오브젝트 제어부(120), 추천 조립 정보 생성부(130), 증강현실 그래픽 표시부(140), 코드 정보 생성부(150), 학습부(160), 통신 제어부(170), 마이크로프로세서(180) 및 메모리(190)를 포함한다.
모듈 정보 수신부(110)는 모듈을 조립하기 전 사용자가 가지고 있는 모듈들에 대한 정보를 수신하는 구성이다. 예를 들어, 모듈들에 대한 정보(이하, '모듈 정보'라고도 함)는 모듈 ID, 바디 메시지(Body message), 모듈 카테고리, 기능 정보 및 메타 정보 중 적어도 하나를 포함한다. 여기서, 모듈 ID는 UUID(Universally Unique identifier)와 같은 모듈 고유의 식별자이거나 메인 모듈에서 결합 시 부여하는 임시 ID일 수 있다. 또한, 모듈 ID는 본 발명의 모듈 간의 패킷을 확인함으로써 모듈의 동작 상태를 확인하기 위한 수단일 수 있다. 예를 들어, 본 발명의 모듈들은 메세지를 보내는 모듈 및 메시지를 수신하는 모듈이 있기 때문에, 모듈 ID에는 메시지를 보내는 메시지 전송 모듈의 정보를 담은 고유번호(Source module information(for sender)) 및 메시지를 수신하는 메시지 수신 모듈의 정보를 담은 고유번호(Target module information(for receiver))로 구성될 수 있다. 모듈 ID를 이용한 동작 상태 판단 과정은 후술되는 학습부와 함께 설명하기로 한다.
또한, 모듈 카테고리는 치환 가능한 모듈들을 찾는 것을 보조하기 위하여 복수의 모듈을 수행 기능을 중심으로 유사한 기능을 가진 모듈들을 상위 개념으로 분류하는 개념이다. 예컨대, 센서, 키, 마이크 등 전기 신호를 입력하는 모듈들은 '입력', 액추에이터, 디스플레이, LED 등은 '출력', 또는 마이크로프로세서(180)를 포함하며, 사용자가 포팅한 프로그램을 실행시킬 수 있는 모듈, 네트워크 모듈, 배터리 모듈 또는 가중치 표시 모듈은 '셋업' 등이 모듈 카테고리의 예가 될 수 있다.
또한, 기능 정보는 모듈의 상세 기능을 표시한 것으로, 예를 들어, 컨트롤 모듈, 적외선 센서 모듈, 스위치 모듈, 전원 모듈 및 네트워크 모듈 등이 상세 기능이 될 수 있다. 이 경우, 모듈의 기능은 각 모듈 내의 기능 유닛(104)의 구성에 따라 달라질 수 있다.
또한, 메타 정보는 모듈의 기타 정보로서, 예를 들어, '선풍기' 등의 구체적인 기기 명이 될 수도 있고, '바람', 또는 '시원' 등과 같은 선풍기와 연관된 연관 검색어들이 될 수 있다.
또한, 구동 정보는 각 모듈을 구동하기 위한 드라이버(Driver)이다. 이러한 구동 정보는 해당 모듈이 저장하고 있다가 모듈 연결 시에 컨트롤 모듈에 제공하거나 또는 컨트롤 모듈이 모듈 정보를 사용자 단말(200)에 제공하는 경우, 사용자 단말(200)로부터 다운로드 받을 수 있다. 또한, 펌웨어는 모듈 어셈블리(300)를 동작시키기 위한 소프트웨어로서, 사용자 단말(200)을 통해 소스 코드를 작성하여 컴파일 후 실행파일로 생성할 수 있다. 또는 컨트롤 모듈이 조립 정보를 사용자 단말(200)에게 제공하는 경우, 사용자 단말(200)로부터 소스 코드를 추천받고, 추천받은 소스 코드(이하, '추천 소스 코드'라고도 함)를 컴파일한 실행파일(펌웨어)을 사용자 단말(200)로부터 다운로드 받을 수 있다.
타겟 오브젝트 제어부(120)는 서로 모듈 결합된 모듈 어셈블리(300)의 토폴로지(Topology, 이하, '모듈 어셈블리(300)의 연결 구조'라고도 함)를 감지할 수 있는 하드웨어 및/또는 소프트웨어의 구성요소로서, 토폴로지를 감지하는 프로토콜을 실행하여 여러가지 경우의 수로 타겟 오브젝트를 결정하는 기능을 수행한다. 보다 상세하게, 타겟 오브젝트 제어부(120)는 모듈의 고유 정보, 연결 순위(이하, '모듈부착 순서 정보'라고도 함), 하위 연결 모듈 정보, 모듈 카테고리 정보 및 단계 정보를 포함하는 모듈 토폴로지 정보에 기초하여 토폴로지를 결정할 수 있다.
여기서, 모듈 고유 정보(1048-1)는 모듈 어셈블리에 포함되고 연결되는 기능 모듈들의 모듈 ID를 나타낸다. 이 경우, 모듈 ID는 UUID(Universally Unique IDentifier)와 같은 모듈 고유의 식별자 일 수 있으며, 컨트롤 모듈에서 연결 시 부여하는 임시 ID일 수도 있다.
연결 순위는 메인 모듈에 접속하는 순서를 나타낸다. 메인 모듈에 이미 결합되어 있는 복수의 모듈인 모듈 그룹이 결합되는 경우에는 모듈 그룹에 동일한 공통 연결 순위가 부여될 수 있다.
하위 연결 모듈 정보는 해당 모듈보다 단계가 낮은 모듈에 대한 모듈 고유 정보를 나타낸다. 기본적으로 각 모듈은 해당 모듈과 연결된 모듈들의 정보를 저장하고 메인 모듈에 연결될 때 하위로 연결된 모듈의 정보를 메인 모듈에게 제공할 수 있다.
모듈 카테고리 정보는 모듈의 기능에 따라 모듈을 분류한 정보이다. 예를 들어, 입력 모듈은 입력되는 전기 신호를 수집하는 모듈로서, 마이크로폰, 온도 센서, 자이로스코프 센서, 적외선 센서, 초음파 센서 등의 각종 센서와 다이얼, 버튼, 키보드 등의 키 입력을 포함한다. 출력 모듈은 모터 등의 액추에이터, 발광다이오드(LED), 액정 디스플레이 장치, 스피커를 포함한다. 통신 모듈은 LTE, Bluetooth 등의 네트워크 모듈을 포함한다. 메인 모듈은 사용자 단말(200)에서 프로그래밍한 애플리케이션을 실행할 수 있는 모듈로서, 마이크로프로세서를 포함한다. 이러한 카테고리 정보에 기초하여 서버에서는 모듈 추천 시 치환 가능한 모듈인지, 추가 가능한 모듈인지 여부를 판단할 수 있다.
단계 정보는 메인 모듈과의 거리를 의미하며, 메인 모듈로부터 해당 모듈까지 최단 경로 상으로 연결된 모듈을 카운팅함으로써 결정될 수 있다.
또한, 타겟 오브젝트 제어부(120)는 감지된 토폴로지에 따라 모듈의 연결 토폴로지를 결정하여 메모리(190)에 기입할 수 있다. 한편, 타겟 오브젝트 제어부(120)의 모듈 토폴로지 정보에 기초하여 토폴로지를 감지하고 결정하는 방법에 대해서는 본 출원인이 이전에 발명한 대한민국 특허출원 제10-2018-0114171호에 상세하게 기재되어 있으며, 위 특허를 참조로서 포함한다.
추천 조립 정보 생성부(130)는 타겟 오브젝트 제어부(120)로부터 감지된 토폴로지에 기초하여 이미 결합된 상태의 모듈들 다음으로 결합 가능한 모듈에 대한 정보를 제공하는 구성이다. 여기서, 추천 조립 정보는 가상 오브젝트로서 결합될 수 있는 모듈들에 대한 추천 조립 정보로서, 결합 가능한 모듈들이 포함되되 사용자로부터 미리 설정된(사용자가 소지하고 있다고 사전에 설정한) 모듈들 중에서 생성되는 것을 특징으로 한다. 단, 실시예에 따라서 사용자로부터 미리 설정된 모듈에 포함되지 않는 모듈이 추천 조립 정보로 제공될 수 있는데 이는 새로운 모듈에 대한 구매가 요구될 수 있고 이를 통해 보다 다양한 모듈 결합을 수행함으로써 사용자의 흥미를 고취시킬 수 있는 효과가 있다.
또한, 결합 가능한 여러가지 경우의 수로 제공된 가상 오브젝트들에 대한 이미지는 증강현실 그래픽 표시부(140)에 의해 AR(Augmented Reality) 또는 VR(Virtual Reality)로 변환되어 3D 형태로 표시되는 것을 특징으로 한다. 증강현실 그래픽 표시부(140)는 사용자 단말의 카메라를 통해 인식된 실제 오브젝트 및 실제 오브젝트에 결합 가능한 가상 오브젝트를 사용자 단말(200)의 화면에 표시하는 구성이다. 다시 말해, 증강현실 그래픽 표시부(140)는 실제 오브젝트의 결합 가능한 측면에 다음으로 결합될 수 있는 모듈의 위치를 실제 사물처럼 가상 오브젝트로 표시할 수 있다. 이때, 가상 오브젝트는 모듈 토폴로지 정보에 기초하여 순차적으로 표시되며, 사용자 단말(200)의 화면에는 순차적으로 표시된 가상 오브젝트들이 복수 개 표시될 수 있다.
코드 정보 생성부(150)는 모듈 조립 정보에 기초하여 소스 코드를 생성하는 구성이다. 보다 상세하게, 코드 정보 생성부(150)는 서버(100)에 기 저장된 토폴로지에 해당하는 소스 코드를 생성하는 구성이다. 다시 말해, 코드 정보 생성부(150)는 서버(100)의 메모리(190)에 기 저장된 소스 코드를 기초로 모듈 조립 시 모듈들에 대한 소스 코드를 생성하는 것이다. 이때, 코드 정보 생성부(150)는 조립 가능한 가상 오브젝트에 대한 소스 코드까지 동시에 생성할 수 있다. 이에 따라서, 추천 조립 정보 생성부(130)에 의해 여러가지 경우의 수로 생성되는 추천 조립 정보에 따라 복수 개의 소스 코드가 사용자 단말(200)의 화면에 표시될 수 있다.
또한, 코드 정보 생성부(150)는 모듈 부착 순서 정보 및 토폴로지 정보에 따라 기 저장된 소스 코드들 중 유사도가 높은 소스 코드를 추천하여 제공할 수도 있다. 구체적으로, 모듈 부착 순서 정보까지 반영된 토폴로지 정보인 타겟 오브젝트를 기초로 기 저장된 소스 코드 내에서 동일한 정보를 가지고 있거나 유사한 정보를 가진 소스 코드를 검색하여 추천해줄 수 있다. 이때, 기 저장된 소스 코드 내에서 토폴로지와 모듈 부착 순서 정보가 동일한 소스 코드를 검색의 최우선으로 삼고, 토폴로지가 동일하되 모듈 부착 순서 정보가 다른 것은 그 다음순으로 삼고, 토폴로지와 모듈 부착 순서 정보가 모두 다른 경우는 그 다음순으로 삼는 등 추천 우선 순위를 설정하여 추천 소스 코드를 제공할 수 있다.
여기서, 추천 소스 코드들은 코드 이외에 카테고리 정보와 각각의 구성 모듈, 요약정보, VR실행 동영상, 완성 모듈의 토폴로지 썸네일(Thumbnail) 영상 정보, 저작자 정보를 더 포함할 수도 있다. 여기서, VR실행 동영상은 가상으로 소리입력(마이크이용), 빛 입력(카메라 이용), 근접(카메라 이용), 소리출력(스피커 이용), 빛 출력(LED광원), 지오이드(geoid)면 기준의 기울기 감지(자이로스코프 이용), 동서남북 방향감지(지자기센서 이용) 방법을 이용해서 실행될 수 있다.
한편, 추천 소스 코드는 일부 동종의 모듈로 치환함에 따라 편집가능한 것을 특징으로 한다. 예를 들어, 추천 소스 코드를 편집할 수 있게 됨에 따라 적외선 입력하는 추천 소스 코드에서 마이크 입력이 가능한 소스 코드로 바꾼다던가 스피커 모듈에서 소리로 알려주던 것을 램프 모듈에서 빛을 깜박여 알려주는 소스 코드로 치환할 수 있다. 이에 따른 모듈 치환 과정에서는 AI의 도움을 통해 동종 모듈로서의 치환에 따른 '치환전 모듈에 부속된 변수들이나 모듈 어드레스(Address)'를 '치환후 모듈의 모듈 어드레스'로 자동 변환될 수 있다.
또한, 다른 실시예에 따른 코드 정보 생성부(150)는 모듈 카테고리 정보가 포함된 기 결정 패턴을 카메라로 촬영할 때, 각각의 모듈 상부에 표시된 패턴들(예: 바토드, QR코드, 특정 색깔, 하우징의 왼쪽 외장)과 상기 패턴들의 전체적인 나열 패턴을 인식하여 서버(100)에 기 저장된 소스 코드 중 해당 패턴으로 저장된 카테고리의 소스 코드를 추천해줄 수도 있다. 즉, 전체적인 나열 패턴 속에 모듈 카테고리가 포함되어 있는 경우에는 전체 패턴 촬영 시 기 저장 소스 코드 중에서 카테고리가 동일한 추천 코드들이 제공될 수 있다. 이때, 소스 코드들의 실행은 VR 영상으로 표시될 수 있다.
학습부(160)는 모듈 어셈블리들이 정상적으로 작동할 수 있도록 추천 조립 정보 생성부(130)에 의해 생성되는 추천 조립 정보 중 사용자에 의해 입력된 가상 조립 정보에 대응하는 모듈의 동작 여부를 학습하는 구성이다. 학습부(160)는 에러 체킹(checking) 방법에 기초하여 패킷 데이터(Packet data)를 검사함으로써 에러 여부를 판단하고 에러의 원인을 학습시킴으로써 모듈 결합들을 정상적으로 작동시킬 수 있다.
보다 상세하게, 학습부(160)는 패킷 데이터를 검사함으로써 발생한 에러의 종류를 파악할 수 있다. 이때 발생한 에러의 종류를 분석하여 에러의 원인을 파악할 수 있다. 이를 학습함으로써 에러의 발생을 최소화시킬 수 있다. 여기서, 패킷 데이터를 검사하는 방법은 보내는 자(sender)와 받는 자(receiver) 간의 메시지를 주고받는 본 발명의 통신 패킷 구조를 이용한 방법이다. 예컨대, sender의 메세지를 recevier가 정상 수신한 경우, recevier가 다시 sender에게 정상 수신을 했다는 답변을 보냄으로써 정상 동작 여부를 확인할 수 있다. 이때, sender는 입력 모듈을, receiver는 출력 모듈을 의미하는 것일 수 있다. 다시 말해, 본 발명의 통신 패킷 구조는 sender가 메시지를 전송하면 전송된 메시지에 대해 답변이 반드시 오는 구조로 되어 있기 때문에 모듈 간의 패킷을 확인함으로써 동작이 정상 수행되고 있는지 확인할 수 있다.
이에 따라, 학습부(160)는 모듈의 상태 불량을 탐지할 수 있다. 보다 상세하게 입력 모듈에서 측정된 데이터의 값이 사용자가 설정한 임계값을 초과한 경우에는 정상인 것으로 판단하여 사용자로부터 미리 정해진 출력 모듈이 동작을 수행할 수 있도록 미리 정해진 출력 모듈로 메시지를 전송한다. 다만, 출력 모듈이 모듈 자체 결함으로 인해 응답하지 않는 경우에는 출력 모듈로부터 수신 확인 메시지(이하, 응답이라고도 함)가 수신되지 않기 때문에 불량인 것으로 판단함에 따라 모듈 결함 에러 문구를 사용자 단말(200)로 전송하여 화면에는 모듈 결함 에러 문구가 표시될 수 있다.
또한, 학습부(160)는 타겟 오브젝트를 기초로 결합 가능한 조립 정보가 없는 경우 사용하고자 하는 모듈이 없다고 판단하여 알림을 전송할 수 있다. 다시 말해, 본 발명의 통신 패킷(이하, 'MODI 패킷'이라고도 함)에는 메시지를 보내고자 하는 타겟 모듈에 대한 모듈 정보가 담긴 패킷 주소가 할당되어 있기 때문에, 상기 타겟 모듈이 존재하지 않는데 메시지가 송신된 경우에 송신 에러 메시지를 표시할 수 있다.
또한, 학습부(160)는 모듈의 동작 상태에 대한 이상 여부를 확인할 수 있다. 구체적으로, 본 발명의 통신 패킷 중 모듈의 동작이 정상적으로 이루어지고 있는지 확인할 수 있는 모듈 정보 패킷(Module information packet)을 활용하여, 모듈 동작 이상 여부 파악할 수 있다. 예를 들어, 출력 모듈 중 하나인 모터 모듈이 속도 출력 30%로 설정된 상태에서 모터가 동작하고 있다고 가정한 경우, 모터가 동작하는 동안 모듈 정보를 요청하는 통신 패킷을 송신하여 해당 모터의 출력 설정 값이 30%로 유지된 채 동작이 잘 수행하고 있는지 확인함으로써 동작 상태에 대한 이상 여부를 확인할 수 있다.
또한, 학습부(160)는 사용자가 작성한 소스 코드의 동작 이상 여부를 판단하는 가상 모듈을 이용하여 모듈의 정상 동작 여부를 확인할 수 있다. 구체적으로, 사용자가 작성한 소스 코드가 실행되었을 경우를 가정하여 가상 모듈(Virtual module)을 이용하여 통신 패킷을 생성함으로써, 전체 코드를 실제 모듈에 삽입하기 전에 문제없이 동작하는지 검증할 수 있다. 즉, 학습부(160)는 통신 패킷의 규격이 정해져 있고 모듈의 수행가능한 명령의 종류가 정해져 있다는 특징을 이용하여 소스 코드를 가상 모듈이 존재하는 코딩 교육용 시스템(1000)의 백그라운드에서 검증을 진행함으로써 소스 코드의 동작 이상 여부를 쉽고 빠르게 판단할 수 있다.
통신 제어부(170)는 무선 통신을 통하여 모듈(300)과 서버(100) 또는 사용자 단말(200)이 서로 통신할 때 통신을 제어하는 역할을 수행한다. 구체적으로, 통신 제어부(315)는 외부 기기와의 통신 및 모듈 사이의 통신을 제어할 수 있다. 외부 기기와의 통신은 NB-IOT, LTE, LoRa, WiFi, Bluetooth, USB, 케이블 모뎀 등 다양한 유무선 통신을 포함할 수 있다. 한편, 모듈 사이의 통신은 UART, I2C, LIN, CAN 등 다양한 내부 통신 수단을 이용하여 모듈 간 통신을 수행할 수 있다. 통신 제어부(315) 내에는 상술한 다양한 유무선 통신 수단 또는 모듈 사이의 통신 수단을 포함할 수도 있고, 별도의 네트워크 모듈과 연결될 때 별도의 네트워크 모듈을 제어하는 방식으로 통신할 수도 있다.
마이크로프로세서(180)는 모듈 정보 수신부(110), 타겟 오브젝트 제어부(120), 추천 조립 정보 생성부(130), 증강현실 그래픽 표시부(140), 코드 정보 생성부(150) 및 학습부(160) 중 적어도 일부가 소프트웨어 모듈로 구현되는 경우에, 그 소프트웨어 모듈을 실행하게 한다.
메모리(190)는 마이크로프로세서(180)에서 실행될 수 있는 소프트웨어 모듈과 모듈 어셈블리(300)의 동작에 필요한 각종 정보 및 연결된 모듈의 조립 정보에 관한 각종 정보들을 포함하며, 예를 들어, 메모리(190)는 모듈 정보, 구동 정보, 조립 정보 및 펌웨어를 포함할 수 있다. 또한, 메모리(190)는 모듈 어셈블리를 구성하는 모듈들에 대한 소스 코드를 저장할 수 있다. 이때, 메모리(190)에는 에러 없이 돌아가는 완성된 소스 코드만 저장되는 것이 아니라, 편집(치환) 중인 미완성 소스 코드들도 저장될 수 있다. 또한, 메모리(190)는 사용자 단말(200)에 표시되는 콘텐츠의 장르, 콘텐츠의 저자 정보, 키워드, 컨텐츠 정보, 등을 저장할 수 있다.
한편, 본 발명에서 사용자 단말(200)의 화면은 디스플레이부라고도 지칭할 수 있으며, 디스플레이부는 콘텐츠 정보, 퀘스트 수행 정보, 이벤트 요소 등을 태블릿 PC, 스마트폰 등과 연결하여 이미지, 영상 등 다양한 형태로의 출력을 수행하는 구성이다.
도 3을 참조하면, 사용자 단말(200)은 서버(100)로부터 수신한 콘텐츠와 사용자가 선택한 모드 모듈(320)과 대응하는 퀘스트가 표시되는 구성이다. 구체적으로, 사용자 단말(200)은 네트워크를 통해 연결된 모듈 어셈블리(300)로부터 조립 정보를 수신하여 조립 정보에 해당하는 콘텐츠를 제공하는 것을 특징으로 한다. 예를 들어, 본 발명의 실시예에 따른 사용자 단말(200)은 태블릿 PC(Tablet PC)인 것을 기본으로 한다. 다만, 사용자 단말(200)의 종류는 이에 제한되지 않으며 카메라, 스피커, 자이로스코프, 지자기센서 등을 함께 구비한 2D 디스플레이, 3D 디스플레이, 헤드 마운티드 디스플레이(Head-mounted display; HMD), 스마트 구글(Smart google) 중 어느 하나일 수도 있다. 도 1을 참조하면, 사용자 단말(200)은 복수개인 것으로 도시되었지만 사용자들의 플레이모드(예: 플레이어가(Player)가 1명인 경우, 2명인 경우, 그 이상인 경우)에 따라 사용자 단말(200)은 하나일 수도 있고, 그 이상일 수도 있다. 본 발명에서는 플레이어가 한명일 수도 있고, 두 명 또는 그 이상일 수도 있다. 단, 사용자 단말(200)이 하나일 때 플레이어가 2명 또는 그 이상인 경우에는 사용자 단말(200)의 화면 영역이 플레이어의 수만큼 분할되어 콘텐츠를 표시할 수 있다.
또한, 사용자 단말(200)은 모듈 어셈블리(300)를 구동시킬 수 있는 프로그램의 소스 코드를 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴을 제공할 수 있다. 이러한 소스 코드의 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴에 대해서는 본 출원인이 이전에 발명한 대한민국 특허출원 제10-2018-0114166호 및 제10-2018-0114171호에 상세하게 기재되어 있으며, 위의 두 특허는 참조로서 포함된다.
모듈 어셈블리(300)는 학생, 선생님 등의 사용자가 모듈들을 조립하면서 보다 흥미롭게 전자 장치의 작동 원리를 이해할 수 있는 교육용 키트로서, 사용자 단말(200)과 유무선으로 연결되는 구성이다. 모듈 어셈블리(300)는 사용자 단말(200)과 유/무선으로 연결되어 인터넷, 인트라넷, 또는 광대역 통신망 등의 네트워크를 통해 사용자 단말(200)과 연결될 수 있다. 또는 유무선 통신 특히, 시리얼 포트 연결을 통하여 사용자 단말(200)과 연결될 수 있다. 아울러, 네트워크는 USB, RS-222 및 IEEE1394 등의 유선 근거리 통신 수단, WiFi 및 Bluetooth 등의 무선 근거리 통신 수단 및 인터넷 연결 등을 포함할 수 있다.
이하에서는 도 5 내지 도 8을 참조하여 본 발명의 실시예에 따른 코딩 교육 시스템의 동작 과정을 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 코딩 교육 시스템의 동작 과정을 설명하기 위한 순서도이다. 도 6은 본 발명의 실시예에 따른 추천 조립 정보가 표시되는 화면 예시도이다. 도 7은 본 발명의 실시예에 따른 증강현실 그래픽이 표시되는 화면 예시도이다. 도 8은 본 발명의 실시예에 따른 추천 조립 정보와 함께 소스 코드가 표시되는 화면 예시도이다. 도 6 내지 도 8에서의 각 구성은 앞서 상술한 구성들과 역할이 동일하므로 중복 설명은 생략하기로 한다.
단계 S501에서, 서버(100)의 모듈 정보 수신부(110)는 사용자 단말(200)의 카메라로부터 촬영된 모듈 결합 이미지를 수신한다. 도 6을 참조하면, 사용자가 사용자 단말(200)의 디스플레이부에 표시된 카메라 버튼(603)을 클릭하여 후면에 장착된 카메라를 통해 실제로 결합된 모듈 결합(601)을 촬영하면, 디스플레이부에는 실제 오브젝트에 대한 이미지와 함께 AR 형태의 가상 오브젝트 위치 정보(602)가 점선 형태로 깜박이면서 함께 표시되는 것을 특징으로 한다. 도 6에서는 두 가지 경우(CASE 1,2)의 가상 오브젝트(602)로서 표시되는 것으로 가정하였으나, 가상 오브젝트의 결합 종류, 결합 위치, 결합 개수는 이에 제한되지 않는다.
이후 단계 S502에서, 서버(100)의 타겟 오브젝트 제어부(120)를 이용하여 모듈 결합 이미지로부터 타겟 오브젝트를 인식한다.
이후 단계 S503에서, 서버(100)의 증강현실 그래픽 표시부(140)는 타겟 오브젝트를 기초로 결합 가능한 이미지 형태의 추천 조립 정보를 AR 형태로 제공한다. 도 7을 참조하면 도 6처럼 카메라를 통해 실제로 결합된 모듈 결합이 촬영됨에 따라 인식된 실제 오브젝트에 대한 타겟 오브젝트를 기초로 결합 가능한 추천 조립 정보(702)가 AR 형태로 표시된다. 이때, 사용자는 추천 조립 정보(702)에 나타난 결합 가능한 모듈들을 앞서 추천받은 가상 오브젝트 위치 정보(602)에 기초하여 조립하기 위해 드래그 앤 드롭(Drag and Drop)하면 AR 형태의 가상 오브젝트(704)가 해당 위치에 표시될 수 있다. 이때, 드래그 앤 드롭할 수 있는 모듈들은 실제 실물로 가지고 있는 모듈을 RF ID 태깅하거나, 촬영하거나, 바코드를 읽거나, 특정 가상 모듈에 대해서 인앱(In-app) 결제함에 따라 생성되는 것이다. 한편 도 7에서 디스플레이에 표시되는 구성들은 2D인 것처럼 도시되었으나, 모두 AR로 변환된 3D 이미지(3-Dimensional image)로 표시되는 것으로 이해되는 것이 바람직하다.
이때, 단계 S504처럼, 서버(100)의 코드 정보 생성부(150)는 타겟 오브젝트에 매칭되는 기 저장 소스 코드를 동시에 제공한다. 도 8을 참조하면, 사용자 단말(200)의 오브젝트 표시 영역(800)에 실제 오브젝트에 대한 이미지와 가상 오브젝트에 대한 이미지가 나타나고, 이와 동시에 각각에 대한 소스 정보(801A, 801B)가 표시되는 것을 알 수 있다. 801A는 제1 가상오브젝트(704)에 해당하는 소스 코드이며, 801은 실제 오브젝트에 제1 가상오브젝트(704)까지 결합된 모듈 결합에 대한 전체 소스 코드를 의미한다. 또한, 802B는 제2 가상오브젝트(803)에 해당하는 소스 코드이며, 802는 실제 오브젝트에 제2 가상오브젝트(803)까지 결합된 모듈 결합에 대한 전체 소스 코드를 의미한다.
단계 S505에서, 사용자 단말(200)에 표시된 복수의 추천 조립 정보 중 사용자에 의해 입력된 가상 조립 정보를 수신한다. 이때, 단계 S506처럼, 서버(100)의 학습부(160)는 모듈 동작 여부를 판단한다. 이때, 정상적으로 모듈 결합들이 정상적으로 작동하는 경우에는 단계 S507처럼 수신된 가상 조립 정보를 최종 조립 정보로 결정한다. 단, 정상적으로 작동하지 않는 경우에는 에러(Error)가 난 것으로 판단하여 단계 S508처럼 에러를 체크하여 에러의 원인을 학습한다. 에러를 체크하는 방법은 앞서 학습부(160)에서 수행하는 기능과 동일하므로 중복 설명은 생략한다.
이후, 단계 S509에서 에러 여부를 판단하여 에러가 난 것으로 판단되면 단계 S508을 반복하고, 정상적으로 작동되면 단계 S507을 수행한다.
이와 같이 본 발명은 카메라 모듈을 포함하는 무선 디바이스를 통해 촬영한 모듈들의 토폴로지가 인식되면 AR(Augmented Reality)로 모듈들을 조립할 수 있도록 하면서 조립가능한 경우의 수를 제공함으로써 사용자의 사고력 증진 및 문제 해결 능력 향상에 도움을 줄 수 있다.
본 발명에 따르면, 넥스트 모듈로서 결합가능한 모듈들에 대한 토폴로지를 인식하여 대응되는 소스코드를 함께 제공해줌으로써 코딩에 대한 사용자의 관심을 높이는데 도움을 줄 수 있다.
본 발명에 따르면, 모듈이 조립되는 전 과정을 소스 코드로 나타내어주되 현재 조립되는 모듈에 해당하는 소스 코드를 별도로 표기해줌으로써 코딩에 대한 이해도를 향상시키는데 도움을 줄 수 있다.
본 발명에 따르면, 모듈 결합을 통해 콘텐츠를 진행함에 있어서 시각 정보, 청각 정보 등을 출력함으로써 콘텐츠에 대한 사용자의 재미와 학습 효과를 동시에 제공할 수 있다.
본 발명에 따르면, 코딩 교육을 위한 다양한 콘텐츠를 증강현실화함으로써 인터렉티브한 콘텐츠로 흥미를 고취시킴과 동시에 코딩에 대한 개념 및 알고리즘을 보다 쉽게 이해할 수 있도록 도움을 줄 수 있다.
본 발명에 따르면, 무선 디바이스와 모듈 키트만으로 코딩 교육을 수행할 수 있게 됨에 따라 언택트 교육을 위한 제품의 활용도를 높일 수 있다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 펌웨어(firmware), 소프트웨어(software) 또는 하드웨어(hardware)로 구성된다. 알고리즘 또는 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 디지털 신호 처리 디바이스(Digital Signal Processing Device)의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리(316)에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리(316)에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 상기 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등) 및 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
1: 하우징 2: 단자
3, 106: 핀 4, 103: 핀 수용부
101: 코너 102: 기판
104: 기능 유닛 105: 핀 설치부
1000: 코딩 교육용 서버
100: 서버 200: 사용자 단말
300: 모듈 어셈블리

Claims (14)

  1. 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리;
    상기 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 인식하고, 인식된 실제 오브젝트 및 상기 실제 오브젝트에 대한 타겟 오브젝트에 기초하여 생성된 가상 오브젝트가 표시되는 사용자 단말; 및
    상기 실제 오브젝트 및 상기 가상 오브젝트에 대한 기 저장된 토폴로지에 기초하여 소스 코드를 추천 및 생성하는 서버를 포함하고,
    상기 서버는 상기 실제 오브젝트 및 상기 가상 오브젝트가 결합된 전체적인 모듈 결합 구조에 대한 소스 코드를 제공하며 상기 가상 오브젝트에 해당하는 소스코드를 확인할 수 있도록 해당 소스 코드를 별도로 표시하여 제공하는 코드 정보 생성부를 포함하는, 코딩 교육용 시스템.
  2. 제1항에 있어서,
    추천된 상기 소스 코드인 추천 소스 코드는 상기 카메라로 인식된 모듈 결합 중 일부가 동종의 모듈로 치환됨에 따라 편집 가능하도록 설정되는, 코딩 교육용 시스템.
  3. 제2항에 있어서,
    상기 추천 소스 코드를 기초로 결합된 모듈 어셈블리가 정상적으로 작동하지 않는 경우에는 에러가 난 것으로 판단하고 에러의 원인을 학습하는 학습부를 더 포함하는, 코딩 교육용 시스템.
  4. 제1항에 있어서,
    상기 서버는 적어도 하나의 상기 타겟 오브젝트를 기초로 결합 가능한 모듈에 대한 추천 조립 정보를 제공하되 사용자로부터 미리 설정된 모듈 내에서 제공하는 추천 조립 정보 생성부를 포함하는, 코딩 교육용 시스템.
  5. 제1항에 있어서,
    상기 서버는 상기 실제 오브젝트 및 상기 타겟 오브젝트가 삼차원 이미지로 표시되도록 상기 카메라로부터 촬영된 이차원 이미지를 AR(Augmented Reality) 변환하는 증강현실 그래픽 표시부를 포함하는, 코딩 교육용 시스템.
  6. 삭제
  7. 제4항에 있어서,
    상기 가상 오브젝트는 상기 추천 조립 정보로서 표시된 모듈을 상기 사용자 단말의 디스플레이부 상에서 드래그 앤 드롭함에 따라 생성된 가상의 오브젝트인, 코딩 교육용 시스템.
  8. 모듈 정보 수신부를 이용하여 사용자 단말의 카메라로부터 촬영된 모듈 결합 이미지를 수신하는 단계;
    타겟 오브젝트 제어부를 이용하여 모듈 결합 이미지로부터 타겟 오브젝트를 인식하는 단계;
    추천 조립 정보 생성부를 이용하여 상기 타겟 오브젝트를 기반으로 결합 가능한 여러가지 경우의 수의 추천 조립 정보를 제공하는 단계;
    상기 추천 조립 정보를 기초로 가상 조립 정보를 수신하고 최종 조립 정보를 결정하는 단계; 및
    코드 정보 생성부를 이용하여 상기 카메라에 의해 인식된 실제 오브젝트 및 상기 실제 오브젝트에 대한 타겟 오브젝트에 기초하여 생성된 가상 오브젝트가 결합된 전체적인 모듈 결합 구조에 대한 소스 코드를 제공하며 상기 가상 오브젝트에 해당하는 소스코드를 확인할 수 있도록 해당 소스 코드를 별도로 표시하여 제공하는 단계를 포함하는, 코딩 교육용 시스템의 동작 방법.
  9. 제8항에 있어서,
    상기 타겟 오브젝트는 모듈의 고유 정보, 연결 순위, 하위 연결 모듈 정보, 모듈 카테고리 정보 및 단계 정보를 포함하는 모듈 토폴로지 정보에 기초하여 결정되는, 코딩 교육용 시스템의 동작 방법.
  10. 제8항에 있어서,
    증강현실 그래픽 표시부를 이용하여 사용자 단말에 표시된 상기 모듈 결합에 대한 실제 오브젝트 및 상기 타겟 오브젝트를 기초로 생성된 상기 추천 조립 정보 중 사용자에 의해 선택된 가상 오브젝트가 삼차원 이미지로 표시되도록 이차원 이미지를 AR(Augmented Reality) 변환하는 단계를 더 포함하는, 코딩 교육용 시스템의 동작 방법.
  11. 제8항에 있어서,
    상기 추천 조립 정보를 제공하는 단계는 상기 추천 조립 정보에 대한 토폴로지 정보에 기초하여 소스 코드 정보를 실시간으로 제공하는 단계를 더 포함하는, 코딩 교육용 시스템의 동작 방법.
  12. 제8항에 있어서,
    상기 사용자 단말은 태블릿 PC 및 스마트폰을 포함하는 무선 통신 단말기인, 코딩 교육용 시스템의 동작 방법.
  13. 제8항에 있어서,
    상기 모듈 결합은 입력 모듈 및 출력 모듈 중 적어도 하나를 포함하고,
    상기 입력 모듈은 환경 모듈, 버튼 모듈, 자이로스코프 모듈, 마이크 모듈, 적외선 모듈, 다이얼 모듈 및 초음파 모듈 중 적어도 하나이고,
    상기 출력 모듈은 LED 모듈, 스피커 모듈, 디스플레이 모듈, 모터 컨트롤러 모듈 및 모터 모듈 중 적어도 하나인, 코딩 교육용 시스템의 동작 방법.
  14. 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리;
    상기 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 촬영하고, 촬영된 모듈 결합에 기초하여 생성된 소스 코드를 표시하는 사용자 단말; 및
    상기 카메라로부터 촬영된 상기 모듈 결합에 대한 토폴로지 정보 및 모듈 부착 순서 정보가 포함된 결정 패턴을 기 저장된 결정 패턴과 비교하여 상기 소스 코드를 추천 및 생성하는 서버를 포함하고,
    상기 서버는 실제 오브 젝트 및 가상 오브젝트가 결합된 전체적인 모듈 결합 구조에 대한 소스 코드를 제공하며 가상 오브젝트에 해당하는 소스코드를 확인할 수 있도록 해당 소스 코드를 별도로 표시하여 제공하는, 코딩 교육용 시스템.
KR1020210002529A 2021-01-08 2021-01-08 Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템 KR102479950B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210002529A KR102479950B1 (ko) 2021-01-08 2021-01-08 Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템
PCT/KR2021/000267 WO2022149635A1 (ko) 2021-01-08 2021-01-08 Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210002529A KR102479950B1 (ko) 2021-01-08 2021-01-08 Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템

Publications (2)

Publication Number Publication Date
KR20220100271A KR20220100271A (ko) 2022-07-15
KR102479950B1 true KR102479950B1 (ko) 2022-12-21

Family

ID=82357464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210002529A KR102479950B1 (ko) 2021-01-08 2021-01-08 Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템

Country Status (2)

Country Link
KR (1) KR102479950B1 (ko)
WO (1) WO2022149635A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102197753B1 (ko) 2020-08-19 2021-01-04 이준서 Vr/ar 기반 코딩블록 배치의 캐릭터 제어 게임을 통한 코딩 교육 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101073933B1 (ko) * 2008-12-01 2011-10-17 한국전자통신연구원 부품 데이터의 지능형 조립 방식을 이용한 사용자기기의 디자인 시스템 및 방법
KR101989089B1 (ko) * 2017-07-18 2019-06-14 네이버랩스 주식회사 클라우드 소싱 기반의 ar 컨텐츠 템플릿을 수집하여 ar 컨텐츠를 자동으로 생성하는 방법 및 시스템
KR102126521B1 (ko) * 2018-08-01 2020-06-24 (주)미래융합정보기술 유치원 및 초등학교 저학년기의 물리적 프로그래밍을 위한 텐저블 코딩 블록 시스템
KR20200076626A (ko) * 2018-12-18 2020-06-29 인영조 증강현실 기반의 학습 컨텐츠 제공 방법 및 시스템
KR102217922B1 (ko) * 2019-01-08 2021-02-19 주식회사 럭스로보 조립 정보 제공 시스템 및 모듈 어셈블리
KR102391628B1 (ko) * 2019-02-18 2022-04-28 김종태 증강현실과 연계 동작 가능한 스마트 코딩블록 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102197753B1 (ko) 2020-08-19 2021-01-04 이준서 Vr/ar 기반 코딩블록 배치의 캐릭터 제어 게임을 통한 코딩 교육 장치 및 방법

Also Published As

Publication number Publication date
WO2022149635A1 (ko) 2022-07-14
KR20220100271A (ko) 2022-07-15

Similar Documents

Publication Publication Date Title
US11887312B2 (en) Fiducial marker patterns, their automatic detection in images, and applications thereof
EP3188812B1 (en) Interactive learning blocks
US10846075B2 (en) Host applications of modular assembly system
Bell Beginning sensor networks with Arduino and Raspberry Pi
CN108292816B (zh) 模块化组件系统
KR20200076169A (ko) 놀이 컨텐츠를 추천하는 전자 장치 및 그의 동작 방법
KR102479950B1 (ko) Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템
US11586180B2 (en) Assembly information providing system and module assembly
KR20110092140A (ko) 개인별 맞춤 학습이 가능한 r-러닝 시스템
US11455147B2 (en) System for coding without compilation and a module assembly
KR102463835B1 (ko) 미션 해결형 콘텐츠를 제공하는 코딩 교육용 시스템 및 그 방법
EP3905056A1 (en) Reader participation type e-book system and operation method using modules
KR100931391B1 (ko) 공간모델 기반의 유비쿼터스 환경 시뮬레이션 모듈 및 방법
KR102289872B1 (ko) 플러그 앤 플레이 모듈 어셈블리 및 플러그 앤 플레이 시스템
AU2021105372A4 (en) Wearable device
CN102723014A (zh) 多用途互动式装置
CN116935084A (zh) 一种虚拟现实设备及校验数据的方法
Sourov Design and Construction of IOT BOT
Montz A novel virtual reality-based system for remote environmental monitoring and control using an activity modulated wireless sensor network
Chapa et al. BOGGLES: Boundary Optical GeoGraphic Lidar Environment System
JP2002315065A (ja) 遠隔指示システム、遠隔指示方法、及びその方法を実現するプログラムを記憶した記録媒体
KR20110092139A (ko) 종합적 개인 서비스 기능을 구비한 r-러닝 단말기 및 이를 이용한 r-러닝 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right