KR20220100271A - A coding training system enables module assembly through augmented reality - Google Patents

A coding training system enables module assembly through augmented reality Download PDF

Info

Publication number
KR20220100271A
KR20220100271A KR1020210002529A KR20210002529A KR20220100271A KR 20220100271 A KR20220100271 A KR 20220100271A KR 1020210002529 A KR1020210002529 A KR 1020210002529A KR 20210002529 A KR20210002529 A KR 20210002529A KR 20220100271 A KR20220100271 A KR 20220100271A
Authority
KR
South Korea
Prior art keywords
module
information
assembly
recommended
source code
Prior art date
Application number
KR1020210002529A
Other languages
Korean (ko)
Other versions
KR102479950B1 (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 KR1020210002529A priority Critical patent/KR102479950B1/en
Priority to PCT/KR2021/000267 priority patent/WO2022149635A1/en
Publication of KR20220100271A publication Critical patent/KR20220100271A/en
Application granted granted Critical
Publication of KR102479950B1 publication Critical patent/KR102479950B1/en

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/00Information and communication technology [ICT] specially adapted for implementation of business processes of 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Multimedia (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

The present invention relates to a coding training system which comprises: a module assembly in which a plurality of modules independently performing specific functions are assembled to be configured; a user terminal which recognizes a module combination of being actually coupled with a camera during module assembly, and displays a recognized real object and a virtual object generated based on a target object for the real object; and a server which generates a source code based on pre-stored topologies for the real and virtual objects.

Description

AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템{A CODING TRAINING SYSTEM ENABLES MODULE ASSEMBLY THROUGH AUGMENTED REALITY}A system for coding education that enables module assembly through AR {A CODING TRAINING SYSTEM ENABLES MODULE ASSEMBLY THROUGH AUGMENTED REALITY}

본 발명은 AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템에 관한 것으로서, 태블릿 PC, 스마트폰 등과 같은 무선 디바이스를 통해 토폴로지(Topology) 인식이 가능한 모듈들을 AR(Augmented Reality)로 결합함으로써 손쉽게 소스 코드를 생성함과 동시에 코딩에 대한 흥미를 높일 수 있는, AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템에 관한 것이다.The present invention relates to a coding education system capable of assembling a module through AR, and by combining modules capable of topology recognition through a wireless device such as a tablet PC, a smartphone, etc. into AR (Augmented Reality), a source code is easily generated It relates to a coding education system capable of assembling a module through AR, which can increase interest in coding at the same time.

최근 교육, 취미, 연구, 생산 등을 목적으로 하는 다양한 모듈 기반 제작 도구들이 제안되고 있다. 이러한 제작 도구들에 포함된 모듈들은 각각 특정한 기능을 수행할 수 있으며, 서로 연결되어 모듈 어셈블리를 형성할 수 있도록 제공된다. 이때, 각각의 모듈은 서로 전기적으로도 연결되어 에너지, 신호, 데이터 등을 송수신할 수 있도록 제공될 수도 있다. Recently, various module-based production tools for education, hobbies, research, production, etc. have been proposed. The modules included in these manufacturing tools can each perform a specific function, and are provided to be connected to each other to form a module assembly. In this case, each module may be provided to be electrically connected to each other to transmit and receive energy, signals, data, and the like.

이러한 모듈 어셈블리들은 소프트웨어 또는 하드웨어의 전문가인 연구원부터 학생, 일반인 등 다양한 사람들이 이용하고 있다. These module assemblies are used by various people such as researchers who are experts in software or hardware, students, and the general public.

그러나, 전문가를 제외한 일반인이나 학생들에게는 각 모듈들이 제대로 동작할 수 있도록 조립하고, 조립된 모듈 어셈블리를 구동시키기에 적합한 소프트웨어를 작성하여 사용하는 것이 어려울 수 있다.However, it may be difficult for the general public or students except for experts to write and use software suitable for assembling each module to operate properly and driving the assembled module assembly.

또한, 언제 어디서나 모듈 조립을 통해 코딩을 학습할 수 있는 코딩 교육용 시스템은 없었기 때문에 보다 활발한 코딩 교육의 활성화를 위해 시간과 장소에 구애받지 않고 코딩을 재미있게 학습할 수 있는 서비스를 제공하는 시스템에 대한 개발이 필요하다. In addition, since there was no system for coding education that could learn coding by assembling modules anytime, anywhere, development of a system that provides a service for learning coding in a fun way regardless of time and place to activate more active coding education I need this.

[관련기술문헌] [Related technical literature]

1. 모듈을 이용한 사용자 참여형 전자책 시스템 및 동작 방법(특허출원번호 제10-2020-0004579호)1. User participatory e-book system and operation method using module (Patent Application No. 10-2020-0004579)

본 발명은 상술한 기술적 문제에 대응하기 위하여 안출된 것으로, 본 발명의 목적은 종래 기술에서의 한계와 단점에 의해 발생하는 다양한 문제점을 실질적으로 보완할 수 있는 것으로, 태블릿 PC로 촬영한 모듈들의 토폴로지를 인식하여 AR(Augmented Reality)로 모듈 결합에 대한 경우의 수를 제공하고, 이를 기반으로 모듈들을 조립함으로써 사용자의 관심을 증폭시킬 수 있고 보다 손쉬운 방법으로 소스 코드를 생성할 수 있는 AR을 통한 모듈 조립이 가능한 코딩 교육용 시스템을 제공하는데 있다.The present invention has been devised to respond to the above technical problem, and an object of the present invention is to substantially supplement various problems caused by limitations and disadvantages in the prior art, and the topology of modules photographed with a tablet PC AR (Augmented Reality) provides the number of cases for module combination by recognizing , and by assembling modules based on this, the user's interest can be amplified and the source code can be generated in an easier way. It is to provide a coding education system that can be assembled.

본 발명의 일 실시예에 따른 코딩 교육용 시스템은 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리; 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 인식하고, 인식된 실제 오브젝트 및 실제 오브젝트에 대한 타겟 오브젝트에 기초하여 생성된 가상 오브젝트가 표시되는 사용자 단말; 및 실제 오브젝트 및 가상 오브젝트에 대한 기 저장된 토폴로지에 기초하여 소스 코드를 생성하는 서버를 포함할 수 있다.A coding education system according to an embodiment of the present invention includes: a module assembly configured by assembling a plurality of modules independently performing a specific function; a user terminal that recognizes the module assembly actually coupled in the module assembly with a camera, and displays a recognized real object and a virtual object generated based on a target object for the real object; and a server that generates source codes based on pre-stored topologies for real objects and virtual objects.

또한, 추천된 소스 코드인 추천 소스 코드는 카메라로 인식된 모듈 결합 중 일부가 동종의 모듈로 치환됨에 따라 편집 가능하도록 설정될 수 있다.In addition, the recommended source code, which is the recommended source code, may be set to be editable as some of the module combinations recognized by the camera are replaced with modules of the same type.

또한, 학습부는 추천 소스 코드를 기초로 결합된 모듈 어셈블리가 정상적으로 작동하지 않는 경우에는 에러가 난 것으로 판단하고, 에러의 원인을 학습할 수 있다.Also, when the module assembly coupled based on the recommended source code does not operate normally, the learning unit may determine that an error has occurred and learn the cause of the error.

또한, 서버는 적어도 하나의 타겟 오브젝트를 기초로 결합 가능한 모듈에 대한 추천 조립 정보를 제공하되 사용자로부터 미리 설정된 모듈 내에서 제공하는 추천 조립 정보 생성부를 포함할 수 있다.In addition, the server may include a recommended assembling information generating unit that provides recommended assembly information for a module that can be combined based on at least one target object, but is provided in a module preset by the user.

또한, 서버는 실제 오브젝트 및 타겟 오브젝트가 삼차원 이미지로 표시되도록 카메라로부터 촬영된 이차원 이미지를 AR(Augmented Reality) 변환하는 증강현실 그래픽 표시부를 포함할 수 있다.In addition, the server may include an augmented reality graphic display unit for AR (Augmented Reality) conversion of a two-dimensional image taken from the camera so that the real object and the target object are displayed as a three-dimensional image.

또한, 서버는 실제 오브젝트 및 가상 오브젝트가 결합된 전체적인 모듈 결합 구조에 대한 소스 코드를 제공하며 가상 오브젝트에 해당하는 소스 코드를 확인할 수 있도록 해당 소스 코드를 별도로 표시하여 제공하는 코드 정보 생성부를 포함할 수 있다.In addition, the server provides the source code for the overall module combination structure in which the real object and the virtual object are combined, and may include a code information generator that separately displays and provides the source code so that the source code corresponding to the virtual object can be checked. have.

또한, 가상 오브젝트는 추천 조립 정보로서 표시된 모듈을 사용자 단말의 디스플레이부 상에서 드래그 앤 드롭함에 따라 생성된 가상의 이미지일 수 있다.Also, the virtual object may be a virtual image generated by dragging and dropping a module displayed as recommended assembly information on the display unit of the user terminal.

본 발명의 다른 실시예에 코딩 교육용 시스템의 동작 방법은 모듈 정보 수신부를 이용하여 사용자 단말의 카메라로부터 촬영된 모듈 결합 이미지를 수신하는 단계; 타겟 오브젝트 제어부를 이용하여 모듈 결합 이미지로부터 타겟 오브젝트를 인식하는 단계; 추천 조립 정보 생성부를 이용하여 타겟 오브젝트를 기반으로 결합 가능한 여러가지 경우의 수의 추천 조립 정보를 제공하는 단계; 및 추천 조립 정보를 기초로 가상 조립 정보를 수신하고 최종 조립 정보를 결정하는 단계;를 포함할 수 있다.In another embodiment of the present invention, the method of operating a coding education system includes: receiving a module combined image photographed from a camera of a user terminal using a module information receiving unit; recognizing the target object from the module combined image using the target object control unit; providing recommended assembling information of various cases that can be combined based on the target object by using the recommended assembling information generating unit; and receiving virtual assembly information based on the recommended assembly information and determining final assembly information.

본 발명의 또 다른 실시예에 따른 코딩 교육용 시스템은 독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리; 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 촬영하고, 촬영된 모듈 결합에 기초하여 생성된 소스 코드를 표시하는 사용자 단말; 및 카메라로부터 촬영된 모듈 결합에 대한 토폴로지 정보 및 모듈 부착 순서 정보가 포함된 결정 패턴을 기 저장된 결정 패턴과 비교하여 소스 코드를 추천 및 생성하는 서버를 포함할 수 있다.A coding education system according to another embodiment of the present invention includes: a module assembly configured by assembling a plurality of modules independently performing a specific function; a user terminal for photographing the module combination actually coupled in the module assembly with a camera, and displaying a source code generated based on the captured module combination; and a server for recommending and generating a source code by comparing a decision pattern including topology information about module combination captured from the camera and module attachment order information with a pre-stored decision pattern.

본 발명에 따른 과제의 해결수단은 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The solution of the problem according to the present invention is not limited by the contents exemplified above, and more various effects are included in the present specification.

본 발명의 실시예들에 의하면 적어도 다음과 같은 효과가 있다.According to the embodiments of the present invention, there are at least the following effects.

본 발명에 따르면, 카메라 모듈을 포함하는 무선 디바이스를 통해 촬영한 모듈들의 토폴로지가 인식되면 AR(Augmented Reality)로 모듈들을 조립할 수 있도록 하면서 조립가능한 경우의 수를 제공함으로써 사용자의 사고력 증진 및 문제 해결 능력 향상에 도움을 줄 수 있다.According to the present invention, when the topology of modules photographed through a wireless device including a camera module is recognized, the number of possible cases is provided while assembling the modules in AR (Augmented Reality), thereby enhancing the user's thinking ability and problem-solving ability can help you improve.

본 발명에 따르면, 넥스트 모듈로서 결합가능한 모듈들에 대한 토폴로지를 인식하여 대응되는 소스코드를 함께 제공해줌으로써 코딩에 대한 사용자의 관심을 높이는데 도움을 줄 수 있다.According to the present invention, it is possible to help increase the user's interest in coding by recognizing the topology of modules that can be combined as the next module and providing the corresponding source code together.

본 발명에 따르면, 모듈이 조립되는 전 과정을 소스 코드로 나타내어주되 현재 조립되는 모듈에 해당하는 소스 코드를 별도로 표기해줌으로써 코딩에 대한 이해도를 향상시키는데 도움을 줄 수 있다.According to the present invention, the entire process of assembling a module is indicated as source code, but the source code corresponding to the currently assembled module is separately indicated, thereby helping to improve the understanding of coding.

본 발명에 따르면, 모듈 결합을 통해 콘텐츠를 진행함에 있어서 시각 정보, 청각 정보 등을 출력함으로써 콘텐츠에 대한 사용자의 재미와 학습 효과를 동시에 제공할 수 있다.According to the present invention, it is possible to simultaneously provide a user's fun and learning effect for the content by outputting visual information, auditory information, etc. in the process of content through module combination.

본 발명에 따르면, 코딩 교육을 위한 다양한 콘텐츠를 증강현실화함으로써 인터렉티브한 콘텐츠로 흥미를 고취시킴과 동시에 코딩에 대한 개념 및 알고리즘을 보다 쉽게 이해할 수 있도록 도움을 줄 수 있다.According to the present invention, by augmenting various contents for coding education, it is possible to inspire interest with interactive contents and help to more easily understand the concepts and algorithms for coding.

본 발명에 따르면, 무선 디바이스와 모듈 키트만으로 코딩 교육을 수행할 수 있게 됨에 따라 언택트 교육을 위한 제품의 활용도를 높일 수 있다.According to the present invention, as coding education can be performed only with a wireless device and a module kit, the utilization of products for untact education can be increased.

본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effect according to the present invention is not limited by the contents exemplified above, and more various effects are included in the present specification.

도 1은 본 발명의 실시예에 따른 모듈 어셈블리가 조립된 모습을 보여주는 사시도이다.
도 2는 도 1의 모듈 어셈블리 중 일부 모듈의 내부 구조를 보여주는 평면도이다.
도 3은 본 발명의 실시예에 따른 코딩 교육용 시스템의 개략도이다.
도 4는 본 발명의 실시예에 따른 서버를 설명하기 위한 블럭도이다.
도 5는 본 발명의 실시예에 따른 코딩 교육 시스템의 동작 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 추천 조립 정보가 표시되는 화면 예시도이다.
도 7은 본 발명의 실시예에 따른 증강현실 그래픽이 표시되는 화면 예시도이다.
도 8은 본 발명의 실시예에 따른 추천 조립 정보와 함께 소스 코드가 표시되는 화면 예시도이다.
1 is a perspective view showing a state in which a module assembly according to an embodiment of the present invention is assembled.
FIG. 2 is a plan view illustrating an internal structure of some modules of the module assembly of FIG. 1 .
3 is a schematic diagram of a system for teaching coding according to an embodiment of the present invention.
4 is a block diagram illustrating a server according to an embodiment of the present invention.
5 is a flowchart for explaining the operation process of the coding education system according to an embodiment of the present invention.
6 is an exemplary view of a screen on which recommended assembly information is displayed according to an embodiment of the present invention.
7 is an exemplary view of a screen on which augmented reality graphics are displayed according to an embodiment of the present invention.
8 is an exemplary view of a screen on which a source code is displayed together with recommended assembly information according to an embodiment of the present invention.

발명의 이점, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages of the invention, and methods of achieving them, will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims.

본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우, '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.The shapes, sizes, proportions, angles, numbers, etc. disclosed in the drawings for explaining the embodiments of the present invention are illustrative and the present invention is not limited to the illustrated matters. In addition, in describing the present invention, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. When 'including', 'having', 'consisting', etc. mentioned in this specification are used, other parts may be added unless 'only' is used. When a component is expressed in the singular, the case in which the plural is included is included unless otherwise explicitly stated.

구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.In interpreting the components, it is interpreted as including an error range even if there is no separate explicit description.

본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.Each feature of the various embodiments of the present invention may be partially or wholly combined or combined with each other, and as those skilled in the art will fully understand, technically various interlocking and driving are possible, and each embodiment may be independently implemented with respect to each other, It may be possible to implement together in a related relationship.

본 명세서의 해석의 명확함을 위해, 이하에서는 본 명세서에서 사용되는 용어들을 정의하기로 한다.For clarity of interpretation of the present specification, terms used herein will be defined below.

본 명세서에서 사용되는 용어, “사용자”는 본 발명의 코딩 교육용 시스템을 이용하는 사용자로서, 적어도 한 명으로 구성되는 것을 특징으로 한다. 본 명세서에서 사용자는 참여자 또는 플레이어(Player) 또는 유저(User)로 지칭될 수도 있다.As used herein, the term “user” refers to a user who uses the coding education system of the present invention, and is characterized by being composed of at least one person. In this specification, a user may be referred to as a participant, a player, or a user.

이하에서는 도 1 내지 도 2를 참조하여 본 발명의 실시예에 따른 코딩 교육용 시스템에서 하드웨어적으로 결합되는 모듈에 대해 설명하기로 한다.Hereinafter, a module that is hardware-coupled in the coding education system according to an embodiment of the present invention will be described with reference to FIGS. 1 to 2 .

도 1은 본 발명의 실시예에 따른 모듈 어셈블리가 조립된 모습을 보여주는 사시도이다. 도 2는 도 1의 모듈 어셈블리 중 일부 모듈의 내부 구조를 보여주는 평면도이다.1 is a perspective view showing a state in which a module assembly according to an embodiment of the present invention is assembled. FIG. 2 is a plan view showing the internal structure of some modules of the module assembly of FIG. 1 .

모듈 어셈블리(300)는 서로 조립 가능한 하나 이상의 모듈들의 집합(10, 20, 30, 40, 50) 또는 이들이 조립된 구조체로 정의될 수도 있으며, 그 목적, 종류, 형태, 모듈의 개수 등에 의해 제한되지 않는다. 예컨대, 모듈 어셈블리(300)는 연구원이 특정 목적을 수행하기 위한 장치를 제작하기 위해 사용되는 연구용 키트의 일부일 수도 있다. The module assembly 300 may be defined as a set (10, 20, 30, 40, 50) of one or more modules that can be assembled with each other or a structure in which they are assembled, and is not limited by the purpose, type, form, number of modules, etc. does not For example, the module assembly 300 may be part of a research kit used by a researcher to fabricate a device for performing a specific purpose.

상기 복수개의 모듈들(10, 20, 30, 40, 50)은 전압 또는 전류의 변화로서 나타내는 신호, 데이터, 또는 전기 에너지(이하, “전기적 신호”라고도 함)를 다른 모듈 또는 외부 장치와 송수신할 수 있도록 구성된 객체로 정의될 수 있다. 이러한 모듈들은 중앙처리장치(CPU), 메모리(316), 전원 등을 구비하거나 또는 다른 모듈의 제어를 받아 작동 가능한 감지(Sensing) 수단, 처리(Processing) 수단 및 구동(Driving) 수단 등을 구비하여 각각 독립적으로 구동 가능할 수 있다.The plurality of modules (10, 20, 30, 40, 50) transmit and receive signals, data, or electrical energy (hereinafter, also referred to as “electrical signals”) represented as changes in voltage or current with other modules or external devices. It can be defined as an object configured to be able to These modules are provided with a central processing unit (CPU), a memory 316, a power supply, or the like, which can be operated under the control of other modules, such as a sensing means, a processing means and a driving means, etc. Each may be independently driven.

또한, 각각의 모듈들(10, 20, 30, 40, 50)은 독립적으로 특정한 기능을 수행하거나, 다른 모듈과의 상호 작용에 의해 특정한 기능을 수행하도록 구성될 수도 있다. 모듈들이 중앙처리장치(CPU)를 구비하는 경우에는 각각의 모듈별로 펌웨어(Firmware)가 설치될 수도 있다. In addition, each of the modules 10 , 20 , 30 , 40 , and 50 may be configured to independently perform a specific function or to perform a specific function by interaction with other modules. When the modules include a central processing unit (CPU), firmware may be installed for each module.

상술한 바에 따라, 각각의 모듈들(10, 20, 30, 40, 50)은 하기 <표 1>과 같이, 크게 입력(Input) 모듈, 출력(Output) 모듈, 셋업(Setup) 모듈로 구분될 수 있다. As described above, each of the modules 10, 20, 30, 40, and 50 is largely divided into an input module, an output module, and a setup module as shown in Table 1 below. can

<표 1><Table 1>

Figure pat00001
Figure pat00001

입력 모듈은 리모컨 등으로부터 적외선 신호를 수신할 수 있는 적외선 모듈(IR(Infrared) module), X,Y,Z축 변화 각도와 가속도를 감지할 수 있는 자이로스코프 센서 모듈(Gyroscope module), 모듈 손잡이의 회전을 이용하여 회전 각도 혹은 회전 속도를 측정할 수 있는 다이얼 모듈(Dial module), 버튼의 눌림을 감지하여, 클릭, 더블 클릭, 눌린 상태를 감지하고, 토글(Toggle)을 사용해 온/오프(On/Off) 상태가 유지될 수 있도록 하는 버튼 모듈(Button module), 온도, 습도, 조도 등을 측정할 수 있는 환경 모듈(Environment module), 주변의 소리 세기(dB)와 주파수를 감지할 수 있는 마이크 모듈(Mic module) 및 거리를 감지할 수 있는 초음파 모듈(Ultrasonic module) 등으로 구성될 수 있다.The input module is an infrared module that can receive an infrared signal from a remote control, etc., a gyroscope module that can detect the angle and acceleration of the X, Y, and Z axes, and the handle of the module. Dial module that can measure rotation angle or rotation speed using rotation, detects button press, detects click, double click, and pressed state, and toggles on/off /Off) button module to keep the state, environment module to measure temperature, humidity, illuminance, etc., microphone to detect ambient sound intensity (dB) and frequency It may be composed of a module (Mic module) and an ultrasonic module (Ultrasonic module) capable of sensing a distance.

또한, 출력 모듈은 색 변경에 따른 시각적 표시가 가능한 LED 모듈(LED module), 스피커 모듈(Speaker module), 사용자가 그린 그림이나, 글자 또는 모듈 정보 등을 화면에 표시하는 디스플레이 모듈(Display module), 속도, 각도, 토크(Torque)를 설정하여 전기 신호를 모터 모듈로 보내서 회전 운동을 시켜주는 모터 컨트롤러 모듈(Motor Controller module), 또는 모터 컨트롤러에서 받은 전기적 신호를 회전운동으로 변환할 수 있는 모터 모듈(Motor; MDP-14) 등으로 구성될 수 있다.In addition, the output module includes an LED module, a speaker module, and a display module that displays a picture drawn by a user, characters, or module information on the screen, which can be visually displayed according to color change, A motor controller module that transmits electric signals to the motor module to perform rotational motion by setting speed, angle, and torque, or a motor module that converts electrical signals received from the motor controller into rotational motion ( Motor; MDP-14), etc.

또한, 셋업 모듈은 다른 모듈에 전원을 공급할 때 사용되는 배터리 모듈(Battery module) 및 블루투스(Bluetooth), 와이파이(WiFi) 혹은 USB 연결을 통해 모듈을 PC, 스마트폰 또는 모듈과 연결시킬 수 있는 네트워크 모듈(Network module) 등으로 구성될 수 있다.In addition, the setup module is a battery module used to supply power to other modules and a network module that can connect the module with a PC, smartphone or module through Bluetooth, Wi-Fi or USB connection. (Network module) and the like.

또한, 각각의 모듈들(10, 20, 30, 40, 50)은 외부의 구동 장치(80)와 케이블(70)에 의해 연결될 수도 있다. 이 경우, 모듈 어셈블리(300)는 리모컨 또는 스마트폰의 신호를 수신하여 모터를 선택적으로 작동시키는 장치일 수 있다. 상기와 같은 모듈 어셈블리(300)의 구성은 하나의 예에 불과하며, 각각의 모듈(10, 20, 30, 40, 50)은 독립적으로, 또는 다른 모듈과의 연동을 통해 임의의 기능을 수행할 수 있도록 제공될 수 있다.In addition, each of the modules 10 , 20 , 30 , 40 , and 50 may be connected to an external driving device 80 by a cable 70 . In this case, the module assembly 300 may be a device for selectively operating a motor by receiving a signal from a remote control or a smart phone. The configuration of the module assembly 300 as described above is only one example, and each module 10, 20, 30, 40, 50 can perform any function independently or through interworking with other modules. may be provided for.

모듈들(10, 20, 30, 40, 50)은 이웃하는 다른 모듈과 면 접촉 가능하도록 복수 개의 측면을 갖는 다각형 기둥 형상인 입체일 수 있다. 여기서, 면 접촉은 측면의 모든 면적이 모두 접촉되는 것 만을 의미하는 것은 아니며, 측면의 일부만 접촉되어 어느 하나의 모듈의 측면과 다른 모듈의 측면이 서로 마주보며 일부분이 접촉되는 것을 포함하는 의미로 이해되어야 한다. 도 4를 참조하면, 각각의 모듈들(10, 20, 30, 40, 50)은 정사각형 형상의 평면을 갖는 것을 예로 들어 도시하였다. 즉, 본 실시예에서의 모듈들은 4개의 측면을 갖는 직육면체인 것을 예로 설명한다. 한편, 다른 실시예로서 모듈들(10, 20, 30, 40, 50)은 평면상 정삼각형, 직사각형, 정오각형 등의 다각형 기둥 형상으로 형성될 수도 있고, 특히, 정다각형 형상으로 형성될 수 있다. 일부의 모듈들이 서로 다른 입체적 형상을 가질 수도 있다. 또한, 모듈들 중 일부는 뿔, 다면체 등의 다양한 입체적 형상을 가질 수도 있다.The modules 10 , 20 , 30 , 40 , and 50 may be three-dimensional in the shape of a polygonal column having a plurality of side surfaces to be in surface contact with other neighboring modules. Here, the surface contact does not mean that all areas of the side are all in contact, but only a part of the side is in contact so that the side of one module and the side of the other module face each other and are understood to include a part in contact should be Referring to FIG. 4 , each of the modules 10 , 20 , 30 , 40 , and 50 is illustrated as having a square-shaped plane as an example. That is, the modules in this embodiment will be described as an example of a rectangular parallelepiped having four sides. Meanwhile, as another embodiment, the modules 10 , 20 , 30 , 40 , and 50 may be formed in a polygonal prism shape such as an equilateral triangle, a rectangle, or a regular pentagon in plan view, and in particular, may be formed in a regular polygonal shape. Some modules may have different three-dimensional shapes. In addition, some of the modules may have various three-dimensional shapes such as horns and polyhedrons.

모듈(10)은 외관을 형성하는 하우징(1)과, 상기 하우징(1)의 측면에 노출되어 전기 신호 등을 연결된 다른 모듈에 전달하거나 수신할 수 있는 단자(2)와, 하우징의 외부로 선택적으로 돌출되는 핀(도 1의 (3) 또는 도 2의 (106))이 제공된 핀 설치부(105) 및 다른 모듈의 핀이 삽입되는 핀 수용부(도 1의 (4) 또는 도 2의 (103))를 포함할 수 있다. The module 10 includes a housing 1 forming an external appearance, a terminal 2 exposed on the side surface of the housing 1 to transmit or receive an electric signal to another module connected thereto, and optionally to the outside of the housing. A pin installation part 105 provided with a pin protruding to (3 in FIG. 1 or 106 in FIG. 2) and a pin receiving part (in FIG. 1 (4) or FIG. 2 ( in FIG. 103)) may be included.

한편, 제1 모듈(10)의 일 측면에는 외부 장치와 통신할 수 있는 시리얼 포트(Serial Port)를 포함할 수 있다. 예컨대, 시리얼 포트는 USB(Universal Serial Bus), USB-C type, IEEE 1394, 썬더볼트(Thunderbolt) 등의 유선 시리얼 통신을 할 수 있는 다양한 규격의 포트를 사용할 수 있다.Meanwhile, one side of the first module 10 may include a serial port capable of communicating with an external device. For example, the serial port may use a port of various standards capable of performing wired serial communication, such as Universal Serial Bus (USB), USB-C type, IEEE 1394, and Thunderbolt.

하우징(1)은 평면이 정사각형인 직육면체 형상으로 형성된 케이스로서, 내부의 구성품들을 보호한다. 하우징(1)은 도 1에 도시된 바와 같이 상부 케이스(1a)와 하부 케이스(1b)가 결합되는 형태로 제공될 수 있다. 하우징(1)을 구성하는 방법은 필요에 따라 상부 케이스(1a)와 하부 케이스(1b)가 일체로 형성되거나, 더 많은 부분으로 나뉘어 조립될 수도 있다. 또한, 하부 케이스(1b)는 외형 및 내부 구조를 형성하는 프레임, 프레임의 내측에 제공되는 기판(102) 및 기판(102)에 설치되는 기능 유닛(104)을 더 포함할 수 있다. 보다 상세하게, 기판(102)에는 제1 모듈(10)의 기능을 구현하기 위한 기능 유닛(104)이 실장될 수 있으며, 프레임의 내측 공간 중앙부에 고정 설치될 수 있다. 기능 유닛(104)은 예를 들어 마이크로프로세서(180)를 포함할 수 있으며, 이때 제1 모듈(10)이 독립적인 펌웨어에 의해 구동되면 제1 모듈(10)을 제어하기 위해 제공될 수 있다. The housing 1 is a case formed in the shape of a rectangular parallelepiped having a square plane, and protects internal components. The housing 1 may be provided in a form in which the upper case 1a and the lower case 1b are coupled as shown in FIG. 1 . As for the method of configuring the housing 1, the upper case 1a and the lower case 1b may be integrally formed, or may be assembled by being divided into more parts, if necessary. In addition, the lower case 1b may further include a frame forming an external and internal structure, a substrate 102 provided inside the frame, and a functional unit 104 installed on the substrate 102 . In more detail, the functional unit 104 for implementing the function of the first module 10 may be mounted on the substrate 102 , and may be fixedly installed in the center of the inner space of the frame. The functional unit 104 may include, for example, a microprocessor 180 , which may be provided to control the first module 10 if the first module 10 is driven by an independent firmware.

또 다른 예로서, 제1 모듈(10)이 적외선 센서 모듈인 경우, 기능 유닛(104)은 적외선 센서 및 적외선 센서로부터 감지된 값을 처리하는데 필요한 ADC(Analog Digital Converter) 및 다른 모듈 또는 외부 하드웨어와 통신하는 데 필요한 인터페이스 예컨대, I2C 또는 UART, 또는 USB 등의 통신 인터페이스 등 필요한 디바이스들을 포함할 수 있다. 이처럼 본 발명의 모듈(10, 20, 30, 40, 50)은 상술한 기능 유닛(104)의 기능에 따라 모듈의 종류가 정해질 수 있다. As another example, when the first module 10 is an infrared sensor module, the function unit 104 is configured with an analog digital converter (ADC) and other modules or external hardware necessary to process the infrared sensor and values sensed from the infrared sensor. It may include necessary devices such as an interface necessary for communication, for example, a communication interface such as I2C or UART, or USB. As such, in the modules 10 , 20 , 30 , 40 , and 50 of the present invention, the type of the module may be determined according to the function of the above-described functional unit 104 .

또 다른 예로서, 기능 유닛(104)이 후술되는 마이크로프로세서(180) 및 메모리(190)를 포함하고 있으며, 다른 유닛들을 제어할 수 있는 OS 또는 펌웨어를 포함하고 있는 경우에는 메인 모듈이 될 수 있다. As another example, if the functional unit 104 includes a microprocessor 180 and a memory 190 to be described later, and includes an OS or firmware capable of controlling other units, it may be a main module. .

또는, 기능 유닛(104)이 센서의 센싱 값을 다른 모듈 또는 외부 디바이스에 전달할 수 있는 경우에는 센서 모듈이 될 수 있다.Alternatively, when the functional unit 104 can transmit the sensing value of the sensor to another module or an external device, it may be a sensor module.

또는, 기능 유닛(104)이 NB-IOT, LTE, LoRa, WiFi, Bluetooth, USB, 케이블 모뎀 등 다양한 유무선 통신 장치를 포함하면서 다른 모듈로부터 전기적 신호를 수신하여 상술한 유무선 통신 장치를 통하여 다른 외부 디바이스에 전기적 신호를 전송할 수 있는 경우에는 통신 모듈이 될 수 있다. Alternatively, the functional unit 104 receives an electrical signal from another module, including various wired and wireless communication devices such as NB-IOT, LTE, LoRa, WiFi, Bluetooth, USB, and cable modem, and receives an electrical signal from another external device through the above-described wired/wireless communication device. If it can transmit an electrical signal to the communication module can be.

또는, 기능 유닛(104)이 모터 등의 다양한 액추에이터 및 액추에이터 제어 회로들을 포함하여 구동이 가능하게 하는 경우에는 구동 모듈이 될 수 있다. 기타 본원 발명의 모듈의 더욱 상세한 구조 및 결합에 대해서는 대한민국 등록특허 공보 제10-1761596에 상세하게 기재되어 있으며, 본원 특허 명세서에 참조로서 포함된다.Alternatively, when the functional unit 104 includes various actuators such as a motor and actuator control circuits to enable driving, it may be a driving module. Other more detailed structures and combinations of the module of the present invention are described in detail in Korean Patent No. 10-1761596, which is incorporated by reference in the present patent specification.

단자(2)는 전기 신호 등을 연결된 다른 모듈에 전달하거나 다른 모듈로부터 받을 수 있으며, 일 예로 하우징(1)의 내부에 제공된 기판(102)으로부터 전기 신호 등을 전달받아 단자에 접촉된 다른 모듈의 단자로 전달할 수 있다. 단자(2)는 다수 개의 접촉 점이나 연결 핀을 가질 수 있으며, 이는 전기 신호 등의 전달 방법, 표준화된 규격 등에 따라 다양한 형태를 가질 수 있다. The terminal 2 may transmit an electrical signal or the like to or receive from another module connected thereto. For example, the terminal 2 receives an electrical signal from the board 102 provided in the housing 1 and receives the electrical signal from the other module in contact with the terminal. It can be transmitted through the terminal. The terminal 2 may have a plurality of contact points or connection pins, which may have various shapes according to a method of transmitting an electric signal or the like, a standardized standard, and the like.

이와 같은 단자(2)는 핀(도 1의 (3) 또는 도 2의 (106)), 핀 설치부(105), 핀 수용부(도 1의 (4) 또는 도 2의 (103))와 한 세트를 이루어 하우징(1)의 일 측면에 배치될 수 있다. 구체적으로, 단자(2)는 핀(도 1의 (3) 또는 도 2의 (106))과 핀 수용부(도 1의 (4) 또는 도 2의 (103)) 사이에 배치될 수 있으며, 다른 모듈의 핀과 핀 수용부 사이에 배치된 단자에 접촉될 수 있다. 본 실시예에서는 하우징(1)의 모든 측면에 단자(2)가 제공되는 것을 예로 들었으나, 실시예에 따라서는 단자(2)가 형성되지 않은 측면이 존재할 수도 있다.Such a terminal 2 includes a pin ((3) in FIG. 1 or (106) in FIG. 2), a pin installation part 105, and a pin receiving part ((4) in FIG. 1 or (103) in FIG. 2) and It may be arranged on one side of the housing 1 to form a set. Specifically, the terminal 2 may be disposed between a pin ((3) in FIG. 1 or (106) in FIG. 2) and a pin receiving part ((4) in FIG. 1 or (103) in FIG. 2), It may be in contact with a terminal disposed between the pin of another module and the pin receiving portion. In this embodiment, the terminal 2 is provided on all sides of the housing 1 as an example, but depending on the embodiment, there may be a side on which the terminal 2 is not formed.

프레임은 하우징(1)의 일부 또는 전부를 구성하는 구조물로서, 하우징(1)의 일부 또는 전부의 외형을 형성하고, 내부에 각종 부품이 설치되기 위한 공간과 구조를 제공할 수 있다. 본 실시예에서 프레임은 하우징(1)의 하부 케이스(1b)를 형성하는 것을 예로 들어 설명하나, 본 발명의 권리범위는 이에 한정되지 않는다. 또한, 본 실시예에서 프레임은 사각형 형상으로 형성되며, 4개의 코너(corner)를 갖는다.The frame is a structure constituting a part or all of the housing 1 , and forms an outer shape of a part or all of the housing 1 , and may provide a space and a structure for installing various parts therein. In this embodiment, the frame is described as an example forming the lower case 1b of the housing 1, but the scope of the present invention is not limited thereto. In addition, in this embodiment, the frame is formed in a rectangular shape and has four corners.

이하에서는 도 3 내지 도 4를 참조하여 본 발명의 실시예에 다른 코딩 교육용 시스템(1000) 및 이를 구성하는 서버에 대해 설명하기로 한다.Hereinafter, a system for coding education according to an embodiment of the present invention 1000 and a server constituting the same will be described with reference to FIGS. 3 to 4 .

도 3은 본 발명의 실시예에 따른 코딩 교육용 시스템의 개략도이다. 도 4는 본 발명의 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.3 is a schematic diagram of a system for teaching coding according to an embodiment of the present invention. 4 is a block diagram for explaining the configuration of a server according to an embodiment of the present invention.

도 3을 참조하면 코딩 교육용 시스템(1000)은 서버(100), 사용자 단말(200) 및 모듈 어셈블리(300)를 포함한다.Referring to FIG. 3 , the coding education system 1000 includes a server 100 , a user terminal 200 , and a module assembly 300 .

코딩 교육용 시스템(1000)은 코딩에 대한 사용자들의 흥미를 극대화하기 위해 카메라가 포함된 무선 디바이스를 통해 촬영한 모듈들의 토폴로지가 인식되면 AR(Augmented Reality)로 모듈들을 조립할 수 있도록 조립가능한 경우의 수를 제공함에 따라 다양한 버전의 콘텐츠를 제공하는 시스템이다. 구체적으로, 코딩 교육용 시스템(1000)은 인터넷, 인트라넷, 또는 광대역 통신망 등의 네트워크(900)를 통해 서버(100) 및 사용자 단말(200)을 연결하는 것을 특징으로 한다. 이때, 서버(100) 또는 사용자 단말(200)은 모듈 어셈블리(300)를 구동시킬 수 있는 프로그램의 소스 코드를 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴을 제공할 수 있다. 이러한 소스 코드의 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴에 대해서는 본 출원인이 이전에 발명한 대한민국 특허출원 제10-2018-0114166호 및 제10-2018-0114171호에 상세하게 기재되어 있으며, 위의 두 특허는 참조로서 포함된다.The system for coding education 1000 is the number of cases that can be assembled so that the modules can be assembled in AR (Augmented Reality) when the topology of the modules photographed through a wireless device including a camera is recognized in order to maximize users' interest in coding. It is a system that provides various versions of content as it is provided. Specifically, the coding education system 1000 is characterized in that the server 100 and the user terminal 200 are connected through a network 900 such as the Internet, an intranet, or a broadband communication network. In this case, the server 100 or the user terminal 200 may provide an authoring tool capable of writing, recommending, and compiling (or interpreting) the source code of a program capable of driving the module assembly 300 . An authoring tool capable of writing, recommending, and compiling (or interpreting) such source code is described in detail in Korean Patent Application Nos. 10-2018-0114166 and 10-2018-0114171 previously invented by the present applicant. and the above two patents are incorporated by reference.

보다 상세하게, 서버(100)는 모듈 결합 상태를 촬영하여 인식하고 인식된 타겟 오브젝트에 대응하는 증강현실 그래픽(이하, 'AR 그래픽'이라고도 함) 또는 가상현실 그래픽(이하, 'VR 그래픽'이라고도 함)을 소스 코드와 함께 제공하거나, 인식된 타겟 오브젝트를 기초로 결합 가능한 추천 조립 정보를 다양한 경우의 수로 제공하는 구성이다. 서버(100)는 도 4에 도시된 바와 같이, 모듈 정보 수신부(110), 타겟 오브젝트 제어부(120), 추천 조립 정보 생성부(130), 증강현실 그래픽 표시부(140), 코드 정보 생성부(150), 학습부(160), 통신 제어부(170), 마이크로프로세서(180) 및 메모리(190)를 포함한다.In more detail, the server 100 captures and recognizes the module coupling state and recognizes augmented reality graphics (hereinafter, also referred to as 'AR graphics') or virtual reality graphics (hereinafter also referred to as 'VR graphics') corresponding to the recognized target object. ) is provided together with the source code, or the recommended assembly information that can be combined based on the recognized target object is provided in various cases. As shown in FIG. 4 , the server 100 includes a module information receiving unit 110 , a target object control unit 120 , a recommended assembly information generating unit 130 , an augmented reality graphic display unit 140 , and a code information generating unit 150 . ), a learning unit 160 , a communication control unit 170 , a microprocessor 180 and a memory 190 .

모듈 정보 수신부(110)는 모듈을 조립하기 전 사용자가 가지고 있는 모듈들에 대한 정보를 수신하는 구성이다. 예를 들어, 모듈들에 대한 정보(이하, '모듈 정보'라고도 함)는 모듈 ID, 바디 메시지(Body message), 모듈 카테고리, 기능 정보 및 메타 정보 중 적어도 하나를 포함한다. 여기서, 모듈 ID는 UUID(Universally Unique identifier)와 같은 모듈 고유의 식별자이거나 메인 모듈에서 결합 시 부여하는 임시 ID일 수 있다. 또한, 모듈 ID는 본 발명의 모듈 간의 패킷을 확인함으로써 모듈의 동작 상태를 확인하기 위한 수단일 수 있다. 예를 들어, 본 발명의 모듈들은 메세지를 보내는 모듈 및 메시지를 수신하는 모듈이 있기 때문에, 모듈 ID에는 메시지를 보내는 메시지 전송 모듈의 정보를 담은 고유번호(Source module information(for sender)) 및 메시지를 수신하는 메시지 수신 모듈의 정보를 담은 고유번호(Target module information(for receiver))로 구성될 수 있다. 모듈 ID를 이용한 동작 상태 판단 과정은 후술되는 학습부와 함께 설명하기로 한다.The module information receiving unit 110 is configured to receive information about the modules that the user has before assembling the module. For example, information on modules (hereinafter, also referred to as 'module information') includes at least one of a module ID, a body message, a module category, function information, and meta information. Here, the module ID may be a module-specific identifier such as a universally unique identifier (UUID) or a temporary ID given when combining by the main module. In addition, the module ID may be a means for confirming the operation state of the module by checking the packet between the modules of the present invention. For example, since the modules of the present invention have a module for sending a message and a module for receiving a message, the module ID includes a unique number (Source module information (for sender)) containing information of the message sending module that sends a message and a message. It may be composed of a unique number (Target module information (for receiver)) containing information of the receiving message receiving module. The operation state determination process using the module ID will be described together with a learning unit to be described later.

또한, 모듈 카테고리는 치환 가능한 모듈들을 찾는 것을 보조하기 위하여 복수의 모듈을 수행 기능을 중심으로 유사한 기능을 가진 모듈들을 상위 개념으로 분류하는 개념이다. 예컨대, 센서, 키, 마이크 등 전기 신호를 입력하는 모듈들은 '입력', 액추에이터, 디스플레이, LED 등은 '출력', 또는 마이크로프로세서(180)를 포함하며, 사용자가 포팅한 프로그램을 실행시킬 수 있는 모듈, 네트워크 모듈, 배터리 모듈 또는 가중치 표시 모듈은 '셋업' 등이 모듈 카테고리의 예가 될 수 있다. In addition, the module category is a concept of classifying modules having similar functions into a higher level concept based on a function of performing a plurality of modules in order to assist in finding replaceable modules. For example, modules for inputting electrical signals such as sensors, keys, and microphones include 'inputs', actuators, displays, LEDs, etc. are 'outputs', or microprocessors 180, which can execute programs ported by the user. For a module, a network module, a battery module, or a weight display module, 'setup' may be an example of a module category.

또한, 기능 정보는 모듈의 상세 기능을 표시한 것으로, 예를 들어, 컨트롤 모듈, 적외선 센서 모듈, 스위치 모듈, 전원 모듈 및 네트워크 모듈 등이 상세 기능이 될 수 있다. 이 경우, 모듈의 기능은 각 모듈 내의 기능 유닛(104)의 구성에 따라 달라질 수 있다. In addition, the function information indicates detailed functions of the module, and for example, a control module, an infrared sensor module, a switch module, a power module, and a network module may be detailed functions. In this case, the function of the module may vary according to the configuration of the functional unit 104 in each module.

또한, 메타 정보는 모듈의 기타 정보로서, 예를 들어, '선풍기' 등의 구체적인 기기 명이 될 수도 있고, '바람', 또는 '시원' 등과 같은 선풍기와 연관된 연관 검색어들이 될 수 있다. In addition, the meta information is other information of the module, and for example, may be a specific device name such as 'fan', or may be related search words related to a fan such as 'wind' or 'shiwon'.

또한, 구동 정보는 각 모듈을 구동하기 위한 드라이버(Driver)이다. 이러한 구동 정보는 해당 모듈이 저장하고 있다가 모듈 연결 시에 컨트롤 모듈에 제공하거나 또는 컨트롤 모듈이 모듈 정보를 사용자 단말(200)에 제공하는 경우, 사용자 단말(200)로부터 다운로드 받을 수 있다. 또한, 펌웨어는 모듈 어셈블리(300)를 동작시키기 위한 소프트웨어로서, 사용자 단말(200)을 통해 소스 코드를 작성하여 컴파일 후 실행파일로 생성할 수 있다. 또는 컨트롤 모듈이 조립 정보를 사용자 단말(200)에게 제공하는 경우, 사용자 단말(200)로부터 소스 코드를 추천받고, 추천받은 소스 코드(이하, '추천 소스 코드'라고도 함)를 컴파일한 실행파일(펌웨어)을 사용자 단말(200)로부터 다운로드 받을 수 있다.In addition, the driving information is a driver for driving each module. Such driving information may be stored by the corresponding module and provided to the control module when the module is connected, or may be downloaded from the user terminal 200 when the control module provides module information to the user terminal 200 . In addition, the firmware is software for operating the module assembly 300 , and may be created as an executable file after compiling by writing a source code through the user terminal 200 . Alternatively, when the control module provides assembly information to the user terminal 200, a source code is recommended from the user terminal 200, and the recommended source code (hereinafter, also referred to as 'recommended source code') is compiled into an executable file ( firmware) may be downloaded from the user terminal 200 .

타겟 오브젝트 제어부(120)는 서로 모듈 결합된 모듈 어셈블리(300)의 토폴로지(Topology, 이하, '모듈 어셈블리(300)의 연결 구조'라고도 함)를 감지할 수 있는 하드웨어 및/또는 소프트웨어의 구성요소로서, 토폴로지를 감지하는 프로토콜을 실행하여 여러가지 경우의 수로 타겟 오브젝트를 결정하는 기능을 수행한다. 보다 상세하게, 타겟 오브젝트 제어부(120)는 모듈의 고유 정보, 연결 순위(이하, '모듈부착 순서 정보'라고도 함), 하위 연결 모듈 정보, 모듈 카테고리 정보 및 단계 정보를 포함하는 모듈 토폴로지 정보에 기초하여 토폴로지를 결정할 수 있다. The target object control unit 120 is a component of hardware and/or software capable of detecting a topology (hereinafter, also referred to as a 'connection structure of the module assembly 300') of the module assembly 300 that is module-coupled to each other. , it performs the function of determining the target object in a number of cases by executing a protocol that detects the topology. In more detail, the target object control unit 120 is based on module topology information including module unique information, connection order (hereinafter also referred to as 'module attachment order information'), lower connection module information, module category information, and step information. to determine the topology.

여기서, 모듈 고유 정보(1048-1)는 모듈 어셈블리에 포함되고 연결되는 기능 모듈들의 모듈 ID를 나타낸다. 이 경우, 모듈 ID는 UUID(Universally Unique IDentifier)와 같은 모듈 고유의 식별자 일 수 있으며, 컨트롤 모듈에서 연결 시 부여하는 임시 ID일 수도 있다. Here, the module-specific information 1048 - 1 indicates module IDs of functional modules included in and connected to the module assembly. In this case, the module ID may be an identifier unique to the module, such as a Universally Unique IDentifier (UUID), or a temporary ID given by the control module when connecting.

연결 순위는 메인 모듈에 접속하는 순서를 나타낸다. 메인 모듈에 이미 결합되어 있는 복수의 모듈인 모듈 그룹이 결합되는 경우에는 모듈 그룹에 동일한 공통 연결 순위가 부여될 수 있다.The connection order indicates the order of accessing the main module. When a module group that is a plurality of modules already coupled to the main module is combined, the same common connection rank may be assigned to the module group.

하위 연결 모듈 정보는 해당 모듈보다 단계가 낮은 모듈에 대한 모듈 고유 정보를 나타낸다. 기본적으로 각 모듈은 해당 모듈과 연결된 모듈들의 정보를 저장하고 메인 모듈에 연결될 때 하위로 연결된 모듈의 정보를 메인 모듈에게 제공할 수 있다.The sub-connected module information indicates module-specific information about a module with a lower level than the corresponding module. Basically, each module stores information on modules connected to the corresponding module, and when connected to the main module, can provide the main module with information on the lower connected modules.

모듈 카테고리 정보는 모듈의 기능에 따라 모듈을 분류한 정보이다. 예를 들어, 입력 모듈은 입력되는 전기 신호를 수집하는 모듈로서, 마이크로폰, 온도 센서, 자이로스코프 센서, 적외선 센서, 초음파 센서 등의 각종 센서와 다이얼, 버튼, 키보드 등의 키 입력을 포함한다. 출력 모듈은 모터 등의 액추에이터, 발광다이오드(LED), 액정 디스플레이 장치, 스피커를 포함한다. 통신 모듈은 LTE, Bluetooth 등의 네트워크 모듈을 포함한다. 메인 모듈은 사용자 단말(200)에서 프로그래밍한 애플리케이션을 실행할 수 있는 모듈로서, 마이크로프로세서를 포함한다. 이러한 카테고리 정보에 기초하여 서버에서는 모듈 추천 시 치환 가능한 모듈인지, 추가 가능한 모듈인지 여부를 판단할 수 있다.The module category information is information that classifies the module according to the function of the module. For example, the input module is a module for collecting input electrical signals, and includes various sensors such as a microphone, a temperature sensor, a gyroscope sensor, an infrared sensor, and an ultrasonic sensor, and key input such as a dial, a button, and a keyboard. The output module includes an actuator such as a motor, a light emitting diode (LED), a liquid crystal display device, and a speaker. The communication module includes a network module such as LTE and Bluetooth. The main module is a module capable of executing an application programmed in the user terminal 200 and includes a microprocessor. Based on such category information, the server may determine whether a module is a replaceable module or an addable module when recommending a module.

단계 정보는 메인 모듈과의 거리를 의미하며, 메인 모듈로부터 해당 모듈까지 최단 경로 상으로 연결된 모듈을 카운팅함으로써 결정될 수 있다.The step information means a distance from the main module, and may be determined by counting modules connected on the shortest path from the main module to the corresponding module.

또한, 타겟 오브젝트 제어부(120)는 감지된 토폴로지에 따라 모듈의 연결 토폴로지를 결정하여 메모리(190)에 기입할 수 있다. 한편, 타겟 오브젝트 제어부(120)의 모듈 토폴로지 정보에 기초하여 토폴로지를 감지하고 결정하는 방법에 대해서는 본 출원인이 이전에 발명한 대한민국 특허출원 제10-2018-0114171호에 상세하게 기재되어 있으며, 위 특허를 참조로서 포함한다. In addition, the target object controller 120 may determine the connection topology of the module according to the sensed topology and write it to the memory 190 . On the other hand, a method for detecting and determining a topology based on the module topology information of the target object control unit 120 is described in detail in Korean Patent Application No. 10-2018-0114171 previously invented by the present applicant, and the above patent is incorporated by reference.

추천 조립 정보 생성부(130)는 타겟 오브젝트 제어부(120)로부터 감지된 토폴로지에 기초하여 이미 결합된 상태의 모듈들 다음으로 결합 가능한 모듈에 대한 정보를 제공하는 구성이다. 여기서, 추천 조립 정보는 가상 오브젝트로서 결합될 수 있는 모듈들에 대한 추천 조립 정보로서, 결합 가능한 모듈들이 포함되되 사용자로부터 미리 설정된(사용자가 소지하고 있다고 사전에 설정한) 모듈들 중에서 생성되는 것을 특징으로 한다. 단, 실시예에 따라서 사용자로부터 미리 설정된 모듈에 포함되지 않는 모듈이 추천 조립 정보로 제공될 수 있는데 이는 새로운 모듈에 대한 구매가 요구될 수 있고 이를 통해 보다 다양한 모듈 결합을 수행함으로써 사용자의 흥미를 고취시킬 수 있는 효과가 있다. The recommended assembly information generating unit 130 is configured to provide information on a module that can be combined next to modules in an already combined state based on the topology sensed by the target object control unit 120 . Here, the recommended assembling information is recommended assembling information for modules that can be combined as virtual objects, and is generated from among the modules that are included in the combinable modules and set in advance by the user (pre-set that the user has) do it with However, according to an embodiment, a module not included in a preset module may be provided as recommended assembly information by the user, which may require a purchase for a new module, thereby stimulating the user's interest by performing more various module combinations. There is an effect that can make it happen.

또한, 결합 가능한 여러가지 경우의 수로 제공된 가상 오브젝트들에 대한 이미지는 증강현실 그래픽 표시부(140)에 의해 AR(Augmented Reality) 또는 VR(Virtual Reality)로 변환되어 3D 형태로 표시되는 것을 특징으로 한다. 증강현실 그래픽 표시부(140)는 사용자 단말의 카메라를 통해 인식된 실제 오브젝트 및 실제 오브젝트에 결합 가능한 가상 오브젝트를 사용자 단말(200)의 화면에 표시하는 구성이다. 다시 말해, 증강현실 그래픽 표시부(140)는 실제 오브젝트의 결합 가능한 측면에 다음으로 결합될 수 있는 모듈의 위치를 실제 사물처럼 가상 오브젝트로 표시할 수 있다. 이때, 가상 오브젝트는 모듈 토폴로지 정보에 기초하여 순차적으로 표시되며, 사용자 단말(200)의 화면에는 순차적으로 표시된 가상 오브젝트들이 복수 개 표시될 수 있다. In addition, the images of the virtual objects provided in the number of possible combinations are converted into AR (Augmented Reality) or VR (Virtual Reality) by the augmented reality graphic display unit 140 and displayed in 3D form. The augmented reality graphic display unit 140 is configured to display a real object recognized through the camera of the user terminal and a virtual object that can be combined with the real object on the screen of the user terminal 200 . In other words, the augmented reality graphic display unit 140 may display the position of a module that can be coupled next to the combinable side of the real object as a virtual object like a real object. In this case, the virtual objects are sequentially displayed based on the module topology information, and a plurality of sequentially displayed virtual objects may be displayed on the screen of the user terminal 200 .

코드 정보 생성부(150)는 모듈 조립 정보에 기초하여 소스 코드를 생성하는 구성이다. 보다 상세하게, 코드 정보 생성부(150)는 서버(100)에 기 저장된 토폴로지에 해당하는 소스 코드를 생성하는 구성이다. 다시 말해, 코드 정보 생성부(150)는 서버(100)의 메모리(190)에 기 저장된 소스 코드를 기초로 모듈 조립 시 모듈들에 대한 소스 코드를 생성하는 것이다. 이때, 코드 정보 생성부(150)는 조립 가능한 가상 오브젝트에 대한 소스 코드까지 동시에 생성할 수 있다. 이에 따라서, 추천 조립 정보 생성부(130)에 의해 여러가지 경우의 수로 생성되는 추천 조립 정보에 따라 복수 개의 소스 코드가 사용자 단말(200)의 화면에 표시될 수 있다.The code information generating unit 150 is configured to generate a source code based on module assembly information. In more detail, the code information generating unit 150 is configured to generate a source code corresponding to a topology pre-stored in the server 100 . In other words, the code information generating unit 150 generates source codes for the modules when assembling the modules based on the source codes pre-stored in the memory 190 of the server 100 . In this case, the code information generating unit 150 may simultaneously generate source codes for assemblable virtual objects. Accordingly, a plurality of source codes may be displayed on the screen of the user terminal 200 according to the recommended assembly information generated by the recommended assembly information generating unit 130 in various cases.

또한, 코드 정보 생성부(150)는 모듈 부착 순서 정보 및 토폴로지 정보에 따라 기 저장된 소스 코드들 중 유사도가 높은 소스 코드를 추천하여 제공할 수도 있다. 구체적으로, 모듈 부착 순서 정보까지 반영된 토폴로지 정보인 타겟 오브젝트를 기초로 기 저장된 소스 코드 내에서 동일한 정보를 가지고 있거나 유사한 정보를 가진 소스 코드를 검색하여 추천해줄 수 있다. 이때, 기 저장된 소스 코드 내에서 토폴로지와 모듈 부착 순서 정보가 동일한 소스 코드를 검색의 최우선으로 삼고, 토폴로지가 동일하되 모듈 부착 순서 정보가 다른 것은 그 다음순으로 삼고, 토폴로지와 모듈 부착 순서 정보가 모두 다른 경우는 그 다음순으로 삼는 등 추천 우선 순위를 설정하여 추천 소스 코드를 제공할 수 있다.Also, the code information generator 150 may recommend and provide a source code having a high similarity among pre-stored source codes according to module attachment order information and topology information. Specifically, based on the target object, which is topology information reflected up to module attachment order information, it is possible to search for and recommend a source code having the same information or similar information in a pre-stored source code. At this time, the source code with the same topology and module attachment order information in the pre-stored source code is given the highest priority in the search, and the one with the same topology but different module attachment order information is taken in the next order, and the topology and module attachment order information are all in the next order. In other cases, the recommendation source code may be provided by setting the recommendation priority, such as taking the next order.

여기서, 추천 소스 코드들은 코드 이외에 카테고리 정보와 각각의 구성 모듈, 요약정보, VR실행 동영상, 완성 모듈의 토폴로지 썸네일(Thumbnail) 영상 정보, 저작자 정보를 더 포함할 수도 있다. 여기서, VR실행 동영상은 가상으로 소리입력(마이크이용), 빛 입력(카메라 이용), 근접(카메라 이용), 소리출력(스피커 이용), 빛 출력(LED광원), 지오이드(geoid)면 기준의 기울기 감지(자이로스코프 이용), 동서남북 방향감지(지자기센서 이용) 방법을 이용해서 실행될 수 있다.Here, the recommended source codes may further include category information, each component module, summary information, VR execution video, topology thumbnail image information of the completed module, and author information in addition to the code. Here, VR execution video is virtually sound input (using microphone), light input (using camera), proximity (using camera), sound output (using speaker), light output (LED light source), and the slope of the geoid plane. Detection (using a gyroscope), direction detection (using geomagnetic sensor), east, west, north, and south directions can be used.

한편, 추천 소스 코드는 일부 동종의 모듈로 치환함에 따라 편집가능한 것을 특징으로 한다. 예를 들어, 추천 소스 코드를 편집할 수 있게 됨에 따라 적외선 입력하는 추천 소스 코드에서 마이크 입력이 가능한 소스 코드로 바꾼다던가 스피커 모듈에서 소리로 알려주던 것을 램프 모듈에서 빛을 깜박여 알려주는 소스 코드로 치환할 수 있다. 이에 따른 모듈 치환 과정에서는 AI의 도움을 통해 동종 모듈로서의 치환에 따른 '치환전 모듈에 부속된 변수들이나 모듈 어드레스(Address)'를 '치환후 모듈의 모듈 어드레스'로 자동 변환될 수 있다.On the other hand, the recommended source code is characterized in that it is editable by substituting some modules of the same type. For example, as the recommended source code can be edited, the recommended source code that inputs infrared is changed to the source code that can input the microphone, or the source code that notifies the speaker module with sound by flashing the light from the lamp module. can be substituted. Accordingly, in the module replacement process, 'variables or module addresses attached to the module before replacement' according to the replacement as the same module can be automatically converted into the 'module address of the module after replacement' with the help of AI.

또한, 다른 실시예에 따른 코드 정보 생성부(150)는 모듈 카테고리 정보가 포함된 기 결정 패턴을 카메라로 촬영할 때, 각각의 모듈 상부에 표시된 패턴들(예: 바토드, QR코드, 특정 색깔, 하우징의 왼쪽 외장)과 상기 패턴들의 전체적인 나열 패턴을 인식하여 서버(100)에 기 저장된 소스 코드 중 해당 패턴으로 저장된 카테고리의 소스 코드를 추천해줄 수도 있다. 즉, 전체적인 나열 패턴 속에 모듈 카테고리가 포함되어 있는 경우에는 전체 패턴 촬영 시 기 저장 소스 코드 중에서 카테고리가 동일한 추천 코드들이 제공될 수 있다. 이때, 소스 코드들의 실행은 VR 영상으로 표시될 수 있다.In addition, when the code information generating unit 150 according to another embodiment captures a predetermined pattern including module category information with a camera, the patterns displayed on the upper part of each module (eg, bartode, QR code, specific color, The left exterior of the housing) and the overall arrangement pattern of the patterns may be recognized and the source code of the category stored as the corresponding pattern among the source codes pre-stored in the server 100 may be recommended. That is, when the module category is included in the overall listing pattern, recommendation codes having the same category among the previously stored source codes when the entire pattern is photographed may be provided. In this case, the execution of the source codes may be displayed as a VR image.

학습부(160)는 모듈 어셈블리들이 정상적으로 작동할 수 있도록 추천 조립 정보 생성부(130)에 의해 생성되는 추천 조립 정보 중 사용자에 의해 입력된 가상 조립 정보에 대응하는 모듈의 동작 여부를 학습하는 구성이다. 학습부(160)는 에러 체킹(checking) 방법에 기초하여 패킷 데이터(Packet data)를 검사함으로써 에러 여부를 판단하고 에러의 원인을 학습시킴으로써 모듈 결합들을 정상적으로 작동시킬 수 있다.The learning unit 160 is configured to learn whether a module corresponding to the virtual assembly information input by the user among the recommended assembly information generated by the recommended assembly information generation unit 130 operates so that the module assemblies can operate normally. . The learning unit 160 may determine whether an error exists by examining packet data based on an error checking method, and may normally operate module combinations by learning the cause of the error.

보다 상세하게, 학습부(160)는 패킷 데이터를 검사함으로써 발생한 에러의 종류를 파악할 수 있다. 이때 발생한 에러의 종류를 분석하여 에러의 원인을 파악할 수 있다. 이를 학습함으로써 에러의 발생을 최소화시킬 수 있다. 여기서, 패킷 데이터를 검사하는 방법은 보내는 자(sender)와 받는 자(receiver) 간의 메시지를 주고받는 본 발명의 통신 패킷 구조를 이용한 방법이다. 예컨대, sender의 메세지를 recevier가 정상 수신한 경우, recevier가 다시 sender에게 정상 수신을 했다는 답변을 보냄으로써 정상 동작 여부를 확인할 수 있다. 이때, sender는 입력 모듈을, receiver는 출력 모듈을 의미하는 것일 수 있다. 다시 말해, 본 발명의 통신 패킷 구조는 sender가 메시지를 전송하면 전송된 메시지에 대해 답변이 반드시 오는 구조로 되어 있기 때문에 모듈 간의 패킷을 확인함으로써 동작이 정상 수행되고 있는지 확인할 수 있다.In more detail, the learning unit 160 may determine the type of error generated by examining the packet data. At this time, the cause of the error can be identified by analyzing the type of error that occurred. By learning this, the occurrence of errors can be minimized. Here, the method of inspecting packet data is a method using the communication packet structure of the present invention in which a message is exchanged between a sender and a receiver. For example, when the recevier normally receives the sender's message, it is possible to check whether the recevier is operating normally by sending a reply that the recevier has successfully received the sender again. In this case, the sender may mean an input module and the receiver may mean an output module. In other words, since the communication packet structure of the present invention has a structure in which a reply to the transmitted message is always provided when the sender transmits a message, it is possible to check whether the operation is being performed normally by checking the packet between modules.

이에 따라, 학습부(160)는 모듈의 상태 불량을 탐지할 수 있다. 보다 상세하게 입력 모듈에서 측정된 데이터의 값이 사용자가 설정한 임계값을 초과한 경우에는 정상인 것으로 판단하여 사용자로부터 미리 정해진 출력 모듈이 동작을 수행할 수 있도록 미리 정해진 출력 모듈로 메시지를 전송한다. 다만, 출력 모듈이 모듈 자체 결함으로 인해 응답하지 않는 경우에는 출력 모듈로부터 수신 확인 메시지(이하, 응답이라고도 함)가 수신되지 않기 때문에 불량인 것으로 판단함에 따라 모듈 결함 에러 문구를 사용자 단말(200)로 전송하여 화면에는 모듈 결함 에러 문구가 표시될 수 있다. Accordingly, the learning unit 160 may detect a defective state of the module. In more detail, when the value of the data measured by the input module exceeds the threshold value set by the user, it is determined as normal and a message is transmitted from the user to the predetermined output module so that the predetermined output module can perform the operation. However, if the output module does not respond due to a module itself defect, a module defect error message is sent to the user terminal 200 as it is determined that the output module is defective because a acknowledgment message (hereinafter, also referred to as a response) is not received from the output module. Module fault error message may be displayed on the screen by sending.

또한, 학습부(160)는 타겟 오브젝트를 기초로 결합 가능한 조립 정보가 없는 경우 사용하고자 하는 모듈이 없다고 판단하여 알림을 전송할 수 있다. 다시 말해, 본 발명의 통신 패킷(이하, 'MODI 패킷'이라고도 함)에는 메시지를 보내고자 하는 타겟 모듈에 대한 모듈 정보가 담긴 패킷 주소가 할당되어 있기 때문에, 상기 타겟 모듈이 존재하지 않는데 메시지가 송신된 경우에 송신 에러 메시지를 표시할 수 있다.Also, when there is no assembly information that can be combined based on the target object, the learning unit 160 may determine that there is no module to be used and transmit a notification. In other words, since a packet address containing module information for a target module to which a message is to be sent is assigned to the communication packet (hereinafter, also referred to as a 'MODI packet') of the present invention, the message is transmitted even though the target module does not exist. In this case, a transmission error message can be displayed.

또한, 학습부(160)는 모듈의 동작 상태에 대한 이상 여부를 확인할 수 있다. 구체적으로, 본 발명의 통신 패킷 중 모듈의 동작이 정상적으로 이루어지고 있는지 확인할 수 있는 모듈 정보 패킷(Module information packet)을 활용하여, 모듈 동작 이상 여부 파악할 수 있다. 예를 들어, 출력 모듈 중 하나인 모터 모듈이 속도 출력 30%로 설정된 상태에서 모터가 동작하고 있다고 가정한 경우, 모터가 동작하는 동안 모듈 정보를 요청하는 통신 패킷을 송신하여 해당 모터의 출력 설정 값이 30%로 유지된 채 동작이 잘 수행하고 있는지 확인함으로써 동작 상태에 대한 이상 여부를 확인할 수 있다.In addition, the learning unit 160 may check whether the operation state of the module is abnormal. Specifically, it is possible to determine whether a module operation is abnormal by utilizing a module information packet that can confirm whether a module operation is being performed normally among the communication packets of the present invention. For example, if it is assumed that the motor is operating with the motor module, which is one of the output modules, set to 30% speed output, a communication packet requesting module information is transmitted while the motor is operating to set the output value of the motor. By checking whether the operation is well performed while maintaining this 30%, it is possible to check whether there is an abnormality in the operation state.

또한, 학습부(160)는 사용자가 작성한 소스 코드의 동작 이상 여부를 판단하는 가상 모듈을 이용하여 모듈의 정상 동작 여부를 확인할 수 있다. 구체적으로, 사용자가 작성한 소스 코드가 실행되었을 경우를 가정하여 가상 모듈(Virtual module)을 이용하여 통신 패킷을 생성함으로써, 전체 코드를 실제 모듈에 삽입하기 전에 문제없이 동작하는지 검증할 수 있다. 즉, 학습부(160)는 통신 패킷의 규격이 정해져 있고 모듈의 수행가능한 명령의 종류가 정해져 있다는 특징을 이용하여 소스 코드를 가상 모듈이 존재하는 코딩 교육용 시스템(1000)의 백그라운드에서 검증을 진행함으로써 소스 코드의 동작 이상 여부를 쉽고 빠르게 판단할 수 있다.Also, the learning unit 160 may check whether the module operates normally by using a virtual module that determines whether the source code written by the user is abnormal. Specifically, it is possible to verify whether the entire code operates without a problem before inserting the entire code into the actual module by generating a communication packet using a virtual module assuming that the source code written by the user is executed. That is, the learning unit 160 verifies the source code in the background of the coding education system 1000 in which the virtual module exists by using the characteristics that the standard of the communication packet is determined and the types of commands that can be performed of the module are determined. It is possible to quickly and easily determine whether the source code is operating abnormally.

통신 제어부(170)는 무선 통신을 통하여 모듈(300)과 서버(100) 또는 사용자 단말(200)이 서로 통신할 때 통신을 제어하는 역할을 수행한다. 구체적으로, 통신 제어부(315)는 외부 기기와의 통신 및 모듈 사이의 통신을 제어할 수 있다. 외부 기기와의 통신은 NB-IOT, LTE, LoRa, WiFi, Bluetooth, USB, 케이블 모뎀 등 다양한 유무선 통신을 포함할 수 있다. 한편, 모듈 사이의 통신은 UART, I2C, LIN, CAN 등 다양한 내부 통신 수단을 이용하여 모듈 간 통신을 수행할 수 있다. 통신 제어부(315) 내에는 상술한 다양한 유무선 통신 수단 또는 모듈 사이의 통신 수단을 포함할 수도 있고, 별도의 네트워크 모듈과 연결될 때 별도의 네트워크 모듈을 제어하는 방식으로 통신할 수도 있다.The communication control unit 170 serves to control communication when the module 300 and the server 100 or the user terminal 200 communicate with each other through wireless communication. Specifically, the communication control unit 315 may control communication with an external device and communication between modules. Communication with an external device may include various wired/wireless communications such as NB-IOT, LTE, LoRa, WiFi, Bluetooth, USB, and cable modem. Meanwhile, communication between modules may be performed using various internal communication means such as UART, I2C, LIN, and CAN. The communication control unit 315 may include the above-described various wired/wireless communication means or communication means between modules, or may communicate in a manner that controls the separate network module when connected to a separate network module.

마이크로프로세서(180)는 모듈 정보 수신부(110), 타겟 오브젝트 제어부(120), 추천 조립 정보 생성부(130), 증강현실 그래픽 표시부(140), 코드 정보 생성부(150) 및 학습부(160) 중 적어도 일부가 소프트웨어 모듈로 구현되는 경우에, 그 소프트웨어 모듈을 실행하게 한다. The microprocessor 180 includes a module information receiving unit 110 , a target object control unit 120 , a recommended assembly information generating unit 130 , an augmented reality graphic display unit 140 , a code information generating unit 150 , and a learning unit 160 ). When at least a part of the software module is implemented as a software module, the software module is executed.

메모리(190)는 마이크로프로세서(180)에서 실행될 수 있는 소프트웨어 모듈과 모듈 어셈블리(300)의 동작에 필요한 각종 정보 및 연결된 모듈의 조립 정보에 관한 각종 정보들을 포함하며, 예를 들어, 메모리(190)는 모듈 정보, 구동 정보, 조립 정보 및 펌웨어를 포함할 수 있다. 또한, 메모리(190)는 모듈 어셈블리를 구성하는 모듈들에 대한 소스 코드를 저장할 수 있다. 이때, 메모리(190)에는 에러 없이 돌아가는 완성된 소스 코드만 저장되는 것이 아니라, 편집(치환) 중인 미완성 소스 코드들도 저장될 수 있다. 또한, 메모리(190)는 사용자 단말(200)에 표시되는 콘텐츠의 장르, 콘텐츠의 저자 정보, 키워드, 컨텐츠 정보, 등을 저장할 수 있다.The memory 190 includes a software module that can be executed in the microprocessor 180 and various types of information necessary for the operation of the module assembly 300 and various pieces of information related to assembly information of a connected module, for example, the memory 190 . may include module information, driving information, assembly information, and firmware. Also, the memory 190 may store source codes for modules constituting the module assembly. In this case, in the memory 190 , not only the completed source code that runs without an error is stored, but also the incomplete source code being edited (replaced) may be stored. Also, the memory 190 may store a genre of content displayed on the user terminal 200 , author information of the content, keywords, content information, and the like.

한편, 본 발명에서 사용자 단말(200)의 화면은 디스플레이부라고도 지칭할 수 있으며, 디스플레이부는 콘텐츠 정보, 퀘스트 수행 정보, 이벤트 요소 등을 태블릿 PC, 스마트폰 등과 연결하여 이미지, 영상 등 다양한 형태로의 출력을 수행하는 구성이다. Meanwhile, in the present invention, the screen of the user terminal 200 may also be referred to as a display unit, and the display unit connects content information, quest performance information, event elements, etc. It is a configuration that performs output.

도 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)의 화면 영역이 플레이어의 수만큼 분할되어 콘텐츠를 표시할 수 있다. Referring to FIG. 3 , the user terminal 200 is configured to display content received from the server 100 and a quest corresponding to the mode module 320 selected by the user. Specifically, the user terminal 200 receives assembly information from the module assembly 300 connected through a network, and provides content corresponding to the assembly information. For example, the user terminal 200 according to the embodiment of the present invention is based on a tablet PC (Tablet PC). However, the type of the user terminal 200 is not limited thereto, and a 2D display, a 3D display, a head-mounted display (HMD), a smart Google (Smart) provided together with a camera, a speaker, a gyroscope, a geomagnetic sensor, etc. google) may be any one of them. Referring to FIG. 1 , although it is shown that there are a plurality of user terminals 200 , the user terminals 200 according to the user's play mode (eg, when there is one player, when there are two players, or more). It may be one, or it may be more than one. In the present invention, there may be one player, two or more players. However, when there is one user terminal 200 and there are two or more players, the screen area of the user terminal 200 may be divided by the number of players to display content.

또한, 사용자 단말(200)은 모듈 어셈블리(300)를 구동시킬 수 있는 프로그램의 소스 코드를 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴을 제공할 수 있다. 이러한 소스 코드의 작성, 추천 및 컴파일(또는 인터프리트)할 수 있는 저작툴에 대해서는 본 출원인이 이전에 발명한 대한민국 특허출원 제10-2018-0114166호 및 제10-2018-0114171호에 상세하게 기재되어 있으며, 위의 두 특허는 참조로서 포함된다.In addition, the user terminal 200 may provide an authoring tool capable of writing, recommending, and compiling (or interpreting) the source code of a program capable of driving the module assembly 300 . An authoring tool capable of writing, recommending, and compiling (or interpreting) such source code is described in detail in Korean Patent Application Nos. 10-2018-0114166 and 10-2018-0114171 previously invented by the present applicant. and the above two patents are incorporated by reference.

모듈 어셈블리(300)는 학생, 선생님 등의 사용자가 모듈들을 조립하면서 보다 흥미롭게 전자 장치의 작동 원리를 이해할 수 있는 교육용 키트로서, 사용자 단말(200)과 유무선으로 연결되는 구성이다. 모듈 어셈블리(300)는 사용자 단말(200)과 유/무선으로 연결되어 인터넷, 인트라넷, 또는 광대역 통신망 등의 네트워크를 통해 사용자 단말(200)과 연결될 수 있다. 또는 유무선 통신 특히, 시리얼 포트 연결을 통하여 사용자 단말(200)과 연결될 수 있다. 아울러, 네트워크는 USB, RS-222 및 IEEE1394 등의 유선 근거리 통신 수단, WiFi 및 Bluetooth 등의 무선 근거리 통신 수단 및 인터넷 연결 등을 포함할 수 있다.The module assembly 300 is an educational kit that allows users, such as students and teachers, to understand the operating principle of an electronic device more interestingly while assembling the modules, and is configured to be connected to the user terminal 200 by wire or wireless. The module assembly 300 may be connected to the user terminal 200 by wire/wireless and may be connected to the user terminal 200 through a network such as the Internet, an intranet, or a broadband communication network. Alternatively, it may be connected to the user terminal 200 through wired/wireless communication, in particular, a serial port connection. In addition, the network may include wired short-range communication means such as USB, RS-222 and IEEE1394, wireless short-range communication means such as WiFi and Bluetooth, and Internet connection.

이하에서는 도 5 내지 도 8을 참조하여 본 발명의 실시예에 따른 코딩 교육 시스템의 동작 과정을 설명하기로 한다.Hereinafter, an operation process of the coding education system according to an embodiment of the present invention will be described with reference to FIGS. 5 to 8 .

도 5는 본 발명의 실시예에 따른 코딩 교육 시스템의 동작 과정을 설명하기 위한 순서도이다. 도 6은 본 발명의 실시예에 따른 추천 조립 정보가 표시되는 화면 예시도이다. 도 7은 본 발명의 실시예에 따른 증강현실 그래픽이 표시되는 화면 예시도이다. 도 8은 본 발명의 실시예에 따른 추천 조립 정보와 함께 소스 코드가 표시되는 화면 예시도이다. 도 6 내지 도 8에서의 각 구성은 앞서 상술한 구성들과 역할이 동일하므로 중복 설명은 생략하기로 한다.5 is a flowchart for explaining the operation process of the coding education system according to an embodiment of the present invention. 6 is an exemplary view of a screen on which recommended assembly information is displayed according to an embodiment of the present invention. 7 is an exemplary view of a screen on which augmented reality graphics are displayed according to an embodiment of the present invention. 8 is an exemplary view of a screen on which a source code is displayed together with recommended assembly information according to an embodiment of the present invention. Each configuration in FIGS. 6 to 8 has the same role as the configuration described above, and thus a redundant description thereof will be omitted.

단계 S501에서, 서버(100)의 모듈 정보 수신부(110)는 사용자 단말(200)의 카메라로부터 촬영된 모듈 결합 이미지를 수신한다. 도 6을 참조하면, 사용자가 사용자 단말(200)의 디스플레이부에 표시된 카메라 버튼(603)을 클릭하여 후면에 장착된 카메라를 통해 실제로 결합된 모듈 결합(601)을 촬영하면, 디스플레이부에는 실제 오브젝트에 대한 이미지와 함께 AR 형태의 가상 오브젝트 위치 정보(602)가 점선 형태로 깜박이면서 함께 표시되는 것을 특징으로 한다. 도 6에서는 두 가지 경우(CASE 1,2)의 가상 오브젝트(602)로서 표시되는 것으로 가정하였으나, 가상 오브젝트의 결합 종류, 결합 위치, 결합 개수는 이에 제한되지 않는다.In step S501 , the module information receiving unit 110 of the server 100 receives the module combined image photographed from the camera of the user terminal 200 . Referring to FIG. 6 , when the user clicks the camera button 603 displayed on the display unit of the user terminal 200 to photograph the actually coupled module combination 601 through a camera mounted on the back, the display unit displays a real object. It is characterized in that the virtual object position information 602 in the form of AR is displayed together with the image of , while blinking in a dotted line form. In FIG. 6 , it is assumed that the virtual object 602 is displayed as the virtual object 602 in two cases (CASE 1 and 2), but the combination type, the combination position, and the number of combinations of the virtual object are not limited thereto.

이후 단계 S502에서, 서버(100)의 타겟 오브젝트 제어부(120)를 이용하여 모듈 결합 이미지로부터 타겟 오브젝트를 인식한다. Then, in step S502, the target object is recognized from the module combined image using the target object control unit 120 of the server 100.

이후 단계 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)로 표시되는 것으로 이해되는 것이 바람직하다. Then, in step S503, the augmented reality graphic display unit 140 of the server 100 provides the recommended assembly information in the form of an image that can be combined based on the target object in the form of AR. Referring to FIG. 7 , as shown in FIG. 6 , the recommended assembly information 702 that can be combined based on the target object for the real object recognized as the module combination actually coupled through the camera is photographed is displayed in AR form. At this time, when the user drags and drops the combinable modules shown in the recommended assembly information 702 to assemble them based on the previously recommended virtual object location information 602, the AR-shaped virtual object 704 is created. may be displayed at that location. At this time, the modules that can be dragged and dropped are generated by RF ID tagging, photographing, reading barcodes, or in-app payment for a specific virtual module with an actual module. Meanwhile, although the components displayed on the display in FIG. 7 are illustrated as being 2D, it is preferable to understand that they are all displayed as a 3D image (3-dimensional image) converted into AR.

이때, 단계 S504처럼, 서버(100)의 코드 정보 생성부(150)는 타겟 오브젝트에 매칭되는 기 저장 소스 코드를 동시에 제공한다. 도 8을 참조하면, 사용자 단말(200)의 오브젝트 표시 영역(800)에 실제 오브젝트에 대한 이미지와 가상 오브젝트에 대한 이미지가 나타나고, 이와 동시에 각각에 대한 소스 정보(801A, 801B)가 표시되는 것을 알 수 있다. 801A는 제1 가상오브젝트(704)에 해당하는 소스 코드이며, 801은 실제 오브젝트에 제1 가상오브젝트(704)까지 결합된 모듈 결합에 대한 전체 소스 코드를 의미한다. 또한, 802B는 제2 가상오브젝트(803)에 해당하는 소스 코드이며, 802는 실제 오브젝트에 제2 가상오브젝트(803)까지 결합된 모듈 결합에 대한 전체 소스 코드를 의미한다. At this time, as in step S504, the code information generating unit 150 of the server 100 simultaneously provides a pre-stored source code matching the target object. Referring to FIG. 8 , it can be seen that an image of a real object and an image of a virtual object are displayed in the object display area 800 of the user terminal 200, and source information 801A and 801B for each are displayed at the same time. can 801A denotes a source code corresponding to the first virtual object 704, and 801 denotes the entire source code for module combining up to the first virtual object 704 in the real object. In addition, 802B denotes a source code corresponding to the second virtual object 803, and 802 denotes the entire source code for module combining up to the second virtual object 803 in the real object.

단계 S505에서, 사용자 단말(200)에 표시된 복수의 추천 조립 정보 중 사용자에 의해 입력된 가상 조립 정보를 수신한다. 이때, 단계 S506처럼, 서버(100)의 학습부(160)는 모듈 동작 여부를 판단한다. 이때, 정상적으로 모듈 결합들이 정상적으로 작동하는 경우에는 단계 S507처럼 수신된 가상 조립 정보를 최종 조립 정보로 결정한다. 단, 정상적으로 작동하지 않는 경우에는 에러(Error)가 난 것으로 판단하여 단계 S508처럼 에러를 체크하여 에러의 원인을 학습한다. 에러를 체크하는 방법은 앞서 학습부(160)에서 수행하는 기능과 동일하므로 중복 설명은 생략한다.In step S505, the virtual assembly information input by the user among a plurality of recommended assembly information displayed on the user terminal 200 is received. At this time, like step S506, the learning unit 160 of the server 100 determines whether the module is operating. At this time, when the module combinations normally operate normally, the received virtual assembly information is determined as the final assembly information as in step S507. However, if it does not operate normally, it is determined that an error has occurred, and the error is checked as in step S508 to learn the cause of the error. Since the error checking method is the same as the function performed by the learning unit 160 above, a redundant description will be omitted.

이후, 단계 S509에서 에러 여부를 판단하여 에러가 난 것으로 판단되면 단계 S508을 반복하고, 정상적으로 작동되면 단계 S507을 수행한다.Thereafter, it is determined whether there is an error in step S509, and if it is determined that there is an error, step S508 is repeated, and if it operates normally, step S507 is performed.

이와 같이 본 발명은 카메라 모듈을 포함하는 무선 디바이스를 통해 촬영한 모듈들의 토폴로지가 인식되면 AR(Augmented Reality)로 모듈들을 조립할 수 있도록 하면서 조립가능한 경우의 수를 제공함으로써 사용자의 사고력 증진 및 문제 해결 능력 향상에 도움을 줄 수 있다.As described above, the present invention provides the number of cases that can be assembled while allowing the modules to be assembled in AR (Augmented Reality) when the topology of the modules photographed through the wireless device including the camera module is recognized, thereby enhancing the user's thinking ability and problem solving ability. can help you improve.

본 발명에 따르면, 넥스트 모듈로서 결합가능한 모듈들에 대한 토폴로지를 인식하여 대응되는 소스코드를 함께 제공해줌으로써 코딩에 대한 사용자의 관심을 높이는데 도움을 줄 수 있다.According to the present invention, it is possible to help increase the user's interest in coding by recognizing the topology of modules that can be combined as the next module and providing the corresponding source code together.

본 발명에 따르면, 모듈이 조립되는 전 과정을 소스 코드로 나타내어주되 현재 조립되는 모듈에 해당하는 소스 코드를 별도로 표기해줌으로써 코딩에 대한 이해도를 향상시키는데 도움을 줄 수 있다.According to the present invention, the entire process of assembling a module is indicated as source code, but the source code corresponding to the currently assembled module is separately indicated, thereby helping to improve the understanding of coding.

본 발명에 따르면, 모듈 결합을 통해 콘텐츠를 진행함에 있어서 시각 정보, 청각 정보 등을 출력함으로써 콘텐츠에 대한 사용자의 재미와 학습 효과를 동시에 제공할 수 있다.According to the present invention, it is possible to simultaneously provide a user's fun and learning effect for the content by outputting visual information, auditory information, etc. in the process of content through module combination.

본 발명에 따르면, 코딩 교육을 위한 다양한 콘텐츠를 증강현실화함으로써 인터렉티브한 콘텐츠로 흥미를 고취시킴과 동시에 코딩에 대한 개념 및 알고리즘을 보다 쉽게 이해할 수 있도록 도움을 줄 수 있다.According to the present invention, by augmenting various contents for coding education, it is possible to inspire interest with interactive contents and help to more easily understand the concepts and algorithms for coding.

본 발명에 따르면, 무선 디바이스와 모듈 키트만으로 코딩 교육을 수행할 수 있게 됨에 따라 언택트 교육을 위한 제품의 활용도를 높일 수 있다.According to the present invention, as coding education can be performed only with a wireless device and a module kit, the utilization of products for untact education can be increased.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 펌웨어(firmware), 소프트웨어(software) 또는 하드웨어(hardware)로 구성된다. 알고리즘 또는 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 디지털 신호 처리 디바이스(Digital Signal Processing Device)의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.Each block in the accompanying block diagram and combinations of steps in the flowchart are composed of firmware, software, or hardware. may be performed by an algorithm or computer program instructions. These algorithms or computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable digital signal processing device, such that the instructions are executed by the processor of the computer or other programmable data processing equipment. These will create a means for performing the functions described in each block of the block diagram or in each step of the flowchart.

이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리(316)에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리(316)에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.These algorithms or computer program instructions may also be stored in a computer-usable or computer-readable memory 316, which may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable Alternatively, the instructions stored in the computer readable memory 316 may produce an article of manufacture containing instruction means for performing a function described in each block in the block diagram or in each step in the flowchart. The computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in each block of the block diagram and each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Further, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function(s). It should also be noted that it is also possible for the functions recited in blocks or steps to occur out of order in some alternative embodiments. For example, it is possible that two blocks or steps shown one after another may in fact be performed substantially simultaneously, or that the blocks or steps may sometimes be performed in reverse order depending on the corresponding function.

또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 상기 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등) 및 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.In addition, the system according to the present invention can be implemented as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data readable by a computer system is stored. The computer-readable recording medium includes a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optical readable medium (eg, a CD-ROM, a DVD, etc.). In addition, the computer-readable recording medium is distributed in a network-connected computer system so that the computer-readable code can be stored and executed in a distributed manner.

1: 하우징 2: 단자
3, 106: 핀 4, 103: 핀 수용부
101: 코너 102: 기판
104: 기능 유닛 105: 핀 설치부
1000: 코딩 교육용 서버
100: 서버 200: 사용자 단말
300: 모듈 어셈블리
1: Housing 2: Terminal
3, 106: pin 4, 103: pin receiving part
101: corner 102: board
104: function unit 105: pin mounting part
1000: Server for coding training
100: server 200: user terminal
300: module assembly

Claims (14)

독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리;
상기 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 인식하고, 인식된 실제 오브젝트 및 상기 실제 오브젝트에 대한 타겟 오브젝트에 기초하여 생성된 가상 오브젝트가 표시되는 사용자 단말; 및
상기 실제 오브젝트 및 상기 가상 오브젝트에 대한 기 저장된 토폴로지에 기초하여 소스 코드를 추천 및 생성하는 서버를 포함하는, 코딩 교육용 시스템.
a module assembly in which a plurality of modules independently performing specific functions are assembled and configured;
a user terminal that recognizes a module combination actually coupled among the module assembly with a camera, and displays a recognized real object and a virtual object generated based on a target object for the real object; and
A system for coding education comprising a server for recommending and generating source codes based on pre-stored topologies for the real object and the virtual object.
제1항에 있어서,
추천된 상기 소스 코드인 추천 소스 코드는 상기 카메라로 인식된 모듈 결합 중 일부가 동종의 모듈로 치환됨에 따라 편집 가능하도록 설정되는, 코딩 교육용 시스템.
According to claim 1,
The recommended source code, which is the recommended source code, is set to be editable as some of the module combinations recognized by the camera are replaced with modules of the same type.
제2항에 있어서,
상기 추천 소스 코드를 기초로 결합된 모듈 어셈블리가 정상적으로 작동하지 않는 경우에는 에러가 난 것으로 판단하고 에러의 원인을 학습하는 학습부를 더 포함하는, 코딩 교육용 시스템.
3. The method of claim 2,
When the module assembly coupled based on the recommended source code does not operate normally, it is determined that an error has occurred and further comprising a learning unit for learning the cause of the error.
제1항에 있어서,
상기 서버는 적어도 하나의 상기 타겟 오브젝트를 기초로 결합 가능한 모듈에 대한 추천 조립 정보를 제공하되 사용자로부터 미리 설정된 모듈 내에서 제공하는 추천 조립 정보 생성부를 포함하는, 코딩 교육용 시스템.
According to claim 1,
The server provides at least one recommended assembly information for a module that can be combined based on the target object, but includes a recommended assembly information generator that is provided in a module preset by the user, Coding education system.
제1항에 있어서,
상기 서버는 상기 실제 오브젝트 및 상기 타겟 오브젝트가 삼차원 이미지로 표시되도록 상기 카메라로부터 촬영된 이차원 이미지를 AR(Augmented Reality) 변환하는 증강현실 그래픽 표시부를 포함하는, 코딩 교육용 시스템.
According to claim 1,
The server comprises an augmented reality graphic display unit for AR (Augmented Reality) conversion of the two-dimensional image taken from the camera so that the real object and the target object are displayed as a three-dimensional image, the coding education system.
제1항에 있어서,
상기 서버는 상기 실제 오브젝트 및 상기 가상 오브젝트가 결합된 전체적인 모듈 결합 구조에 대한 소스 코드를 제공하며 상기 가상 오브젝트에 해당하는 소스 코드를 확인할 수 있도록 해당 소스 코드를 별도로 표시하여 제공하는 코드 정보 생성부를 포함하는, 코딩 교육용 시스템.
According to claim 1,
The server provides a source code for the overall module combination structure in which the real object and the virtual object are combined, and includes a code information generator that separately displays and provides the source code so that the source code corresponding to the virtual object can be checked A system for teaching coding.
제4항에 있어서,
상기 가상 오브젝트는 상기 추천 조립 정보로서 표시된 모듈을 상기 사용자 단말의 디스플레이부 상에서 드래그 앤 드롭함에 따라 생성된 가상의 오브젝트인, 코딩 교육용 시스템.
5. The method of claim 4,
The virtual object is a virtual object generated by dragging and dropping the module displayed as the recommended assembly information on the display unit of the user terminal, the coding education system.
모듈 정보 수신부를 이용하여 사용자 단말의 카메라로부터 촬영된 모듈 결합 이미지를 수신하는 단계;
타겟 오브젝트 제어부를 이용하여 모듈 결합 이미지로부터 타겟 오브젝트를 인식하는 단계;
추천 조립 정보 생성부를 이용하여 상기 타겟 오브젝트를 기반으로 결합 가능한 여러가지 경우의 수의 추천 조립 정보를 제공하는 단계; 및
상기 추천 조립 정보를 기초로 가상 조립 정보를 수신하고 최종 조립 정보를 결정하는 단계;를 포함하는, 코딩 교육용 시스템의 동작 방법.
Receiving the module combined image taken from the camera of the user terminal using the module information receiving unit;
recognizing the target object from the module combined image using the target object control unit;
providing recommended assembling information of various cases that can be combined based on the target object by using the recommended assembling information generating unit; and
Receiving virtual assembly information based on the recommended assembly information and determining final assembly information; Containing, the operating method of the coding education system.
제8항에 있어서,
상기 타겟 오브젝트는 모듈의 고유 정보, 연결 순위, 하위 연결 모듈 정보, 모듈 카테고리 정보 및 단계 정보를 포함하는 모듈 토폴로지 정보에 기초하여 결정되는, 코딩 교육용 시스템의 동작 방법.
9. The method of claim 8,
The target object is determined based on module topology information including module unique information, connection ranking, lower connection module information, module category information, and step information, the operating method of the coding education system.
제8항에 있어서,
증강현실 그래픽 표시부를 이용하여 사용자 단말에 표시된 상기 모듈 결합에 대한 실제 오브젝트 및 상기 타겟 오브젝트를 기초로 생성된 상기 추천 조립 정보 중 사용자에 의해 선택된 가상 오브젝트가 삼차원 이미지로 표시되도록 이차원 이미지를 AR(Augmented Reality) 변환하는 단계를 더 포함하는, 코딩 교육용 시스템의 동작 방법.
9. The method of claim 8,
AR (Augmented) a two-dimensional image so that the virtual object selected by the user among the recommended assembly information generated based on the target object and the real object for the module combination displayed on the user terminal using the augmented reality graphic display is displayed as a three-dimensional image Reality) further comprising the step of transforming, the operating method of the coding education system.
제8항에 있어서,
상기 추천 조립 정보를 제공하는 단계는 상기 추천 조립 정보에 대한 토폴로지 정보에 기초하여 소스 코드 정보를 실시간으로 제공하는 단계를 더 포함하는, 코딩 교육용 시스템의 동작 방법.
9. The method of claim 8,
The step of providing the recommended assembly information further comprises the step of providing source code information in real time based on the topology information for the recommended assembly information, the operating method of the coding education system.
제8항에 있어서,
상기 사용자 단말은 태블릿 PC 및 스마트폰을 포함하는 무선 통신 단말기인, 코딩 교육용 시스템의 동작 방법.
9. The method of claim 8,
The user terminal is a wireless communication terminal including a tablet PC and a smart phone, the operating method of the coding education system.
제8항에 있어서,
상기 모듈 결합은 입력 모듈 및 출력 모듈 중 적어도 하나를 포함하고,
상기 입력 모듈은 환경 모듈, 버튼 모듈, 자이로스코프 모듈, 마이크 모듈, 적외선 모듈, 다이얼 모듈 및 초음파 모듈 중 적어도 하나이고,
상기 출력 모듈은 LED 모듈, 스피커 모듈, 디스플레이 모듈, 모터 컨트롤러 모듈 및 모터 모듈 중 적어도 하나인, 코딩 교육용 시스템의 동작 방법.
9. The method of claim 8,
The module combination includes at least one of an input module and an output module,
The input module is at least one of an environment module, a button module, a gyroscope module, a microphone module, an infrared module, a dial module, and an ultrasonic module,
The output module is at least one of an LED module, a speaker module, a display module, a motor controller module, and a motor module, the operating method of the coding education system.
독립적으로 특정 기능을 수행하는 복수의 모듈이 조립되어 구성되는 모듈 어셈블리;
상기 모듈 어셈블리 중 실제로 결합된 모듈 결합을 카메라로 촬영하고, 촬영된 모듈 결합에 기초하여 생성된 소스 코드를 표시하는 사용자 단말; 및
상기 카메라로부터 촬영된 상기 모듈 결합에 대한 토폴로지 정보 및 모듈 부착 순서 정보가 포함된 결정 패턴을 기 저장된 결정 패턴과 비교하여 상기 소스 코드를 추천 및 생성하는 서버를 포함하는, 코딩 교육용 시스템.
a module assembly in which a plurality of modules independently performing specific functions are assembled and configured;
a user terminal for photographing the actually combined module combination of the module assembly with a camera, and displaying a source code generated based on the photographed module combination; and
Comprising a server for recommending and generating the source code by comparing a decision pattern including topology information and module attachment order information about the module combination photographed from the camera with a pre-stored decision pattern.
KR1020210002529A 2021-01-08 2021-01-08 A coding training system enables module assembly through augmented reality KR102479950B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210002529A KR102479950B1 (en) 2021-01-08 2021-01-08 A coding training system enables module assembly through augmented reality
PCT/KR2021/000267 WO2022149635A1 (en) 2021-01-08 2021-01-08 Coding learning system enabling module assembly by means of ar

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210002529A KR102479950B1 (en) 2021-01-08 2021-01-08 A coding training system enables module assembly through augmented reality

Publications (2)

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

Family

ID=82357464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210002529A KR102479950B1 (en) 2021-01-08 2021-01-08 A coding training system enables module assembly through augmented reality

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200014650A (en) * 2018-08-01 2020-02-11 (주)미래융합정보기술 Tangible coding blocks system for physical programming in child of kindergarten and the lower grades elementary school
KR20200086050A (en) * 2019-01-08 2020-07-16 주식회사 럭스로보 A system for providing assembly information and a module assembly
KR20200101300A (en) * 2019-02-18 2020-08-27 김종태 Smart Coding Block System that can work with augmented reality
KR102197753B1 (en) * 2020-08-19 2021-01-04 이준서 Apparatus and method using character control game through arrangement of coding block based on vr/ar

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101073933B1 (en) * 2008-12-01 2011-10-17 한국전자통신연구원 System and method for design of user equipment by using the intelligent assembly of part data
KR101989089B1 (en) * 2017-07-18 2019-06-14 네이버랩스 주식회사 Method and system for authoring ar content by collecting ar content templates based on crowdsourcing
KR20200076626A (en) * 2018-12-18 2020-06-29 인영조 Method and system for providing teaching contents based on augmented reality

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200014650A (en) * 2018-08-01 2020-02-11 (주)미래융합정보기술 Tangible coding blocks system for physical programming in child of kindergarten and the lower grades elementary school
KR20200086050A (en) * 2019-01-08 2020-07-16 주식회사 럭스로보 A system for providing assembly information and a module assembly
KR20200101300A (en) * 2019-02-18 2020-08-27 김종태 Smart Coding Block System that can work with augmented reality
KR102197753B1 (en) * 2020-08-19 2021-01-04 이준서 Apparatus and method using character control game through arrangement of coding block based on vr/ar

Also Published As

Publication number Publication date
WO2022149635A1 (en) 2022-07-14
KR102479950B1 (en) 2022-12-21

Similar Documents

Publication Publication Date Title
EP3188812B1 (en) Interactive learning blocks
US10293268B2 (en) Block, block system, information processing apparatus, display method, and information processing method
WO2019086042A1 (en) Puzzle cube, and control method and terminal therefor
KR20200076169A (en) Electronic device for recommending a play content and operating method thereof
US11229841B2 (en) Reader participation type electronic book system using module and operation method
KR102479950B1 (en) A coding training system enables module assembly through augmented reality
KR102217922B1 (en) A system for providing assembly information and a module assembly
KR102463835B1 (en) A coding training system providing mission-solving contents and the method therof
KR102301027B1 (en) A system and method for constructing a reader participation type electronic book using module
US11455147B2 (en) System for coding without compilation and a module assembly
KR20110092140A (en) R-learning system
Yamanoor et al. Raspberry Pi Pico DIY Workshop: Build exciting projects in home automation, personal health, gardening, and citizen science
KR100931391B1 (en) Ubiquitous Environment Simulation Module and Method Based on Spatial Model
KR102289872B1 (en) A plug and play module assembly and a plug and play system
WO2021044851A1 (en) Information processing device and information processing method
Montz A novel virtual reality-based system for remote environmental monitoring and control using an activity modulated wireless sensor network
Pathan Smart building and home mautomation based on voice and gestures
Ni et al. A robotic tour guide using a NAO T14 humanoid with a wheeled mobile platform
Chapa et al. BOGGLES: Boundary Optical GeoGraphic Lidar Environment System
CN102723014A (en) Multipurpose interactive apparatus
Zarif Sourov et al. Design And Construction of IOT BOT
Sourov Design and Construction of IOT BOT
KR20220096518A (en) METHOD FOR PROVIDING IoT SYSTEM-BASED TRAINING ON AUGMENTED REALITY AND SERVER USING THE SAME
KR20130056465A (en) Educational service system and method for assembling a robot

Legal Events

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