KR102437242B1 - Method, computer program and system for controlling and programming hardware by using a conversational interface - Google Patents

Method, computer program and system for controlling and programming hardware by using a conversational interface Download PDF

Info

Publication number
KR102437242B1
KR102437242B1 KR1020200039137A KR20200039137A KR102437242B1 KR 102437242 B1 KR102437242 B1 KR 102437242B1 KR 1020200039137 A KR1020200039137 A KR 1020200039137A KR 20200039137 A KR20200039137 A KR 20200039137A KR 102437242 B1 KR102437242 B1 KR 102437242B1
Authority
KR
South Korea
Prior art keywords
command
user
file
execution
data
Prior art date
Application number
KR1020200039137A
Other languages
Korean (ko)
Other versions
KR20210121808A (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 KR1020200039137A priority Critical patent/KR102437242B1/en
Publication of KR20210121808A publication Critical patent/KR20210121808A/en
Application granted granted Critical
Publication of KR102437242B1 publication Critical patent/KR102437242B1/en

Links

Images

Classifications

    • 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Abstract

본 발명은 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 방법, 컴퓨터 프로그램 및 시스템에 관한 것으로서, 더욱 상세하게는 사용자와 시스템의 음성 대화 방식에 의하여, 하드웨어의 설계, 테스트, 디버깅을 포함하는 제어와 그와 같은 제어의 프로그래밍을 가능하게 하는 물리적 컴퓨팅 방법, 컴퓨터 프로그램 및 시스템에 관한 것이다.
본 발명에 의하면, 범용 프로토 타입 회로의 제작시, 회로 조립을 위한 사용자의 요청에 대한 추가 정보를 제공하거나 조립 단계를 대화식으로 진행할 수 있도록 하고, 일차적으로 조립된 회로에 대한 테스트를 통한 디버깅 과정 역시 대화식으로 수행이 가능하도록 함으로써 쉽고 정확한 프로토 타입 회로의 제작을 가능하도록 한다. 또한 본 발명의 시스템을 이용하여, 사용자는 회로의 테스트 등을 위한 프로그램 코드의 작성시, 그러한 프로그램 코드를 대화 방식을 통하여 실시간으로 작성하고 실행시킬 수 있도록 하여 쉽고 빠른 디버깅을 가능하도록 한다.
The present invention relates to a physical computing method, computer program, and system for controlling and programming hardware through conversation, and more particularly, to a method of voice conversation between a user and a system, including designing, testing, and debugging of hardware. It relates to controls and physical computing methods, computer programs and systems that enable programming of such controls.
According to the present invention, when a general-purpose prototype circuit is manufactured, additional information on a user's request for circuit assembly is provided or the assembly step can be interactively performed, and the debugging process through testing of the assembled circuit is also By making it possible to perform interactively, it enables easy and accurate fabrication of prototype circuits. In addition, by using the system of the present invention, when a user writes a program code for a circuit test, etc., the user can write and execute the program code in real time through an interactive method, thereby enabling easy and fast debugging.

Description

대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 방법, 컴퓨터 프로그램 및 시스템{Method, computer program and system for controlling and programming hardware by using a conversational interface}Physical computing method, computer program and system for controlling and programming hardware through conversation

본 발명은 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 방법, 컴퓨터 프로그램 및 시스템에 관한 것으로서, 더욱 상세하게는 사용자와 시스템의 음성 대화 방식에 의하여, 하드웨어의 설계, 테스트, 디버깅을 포함하는 제어와 그와 같은 제어의 프로그래밍을 가능하게 하는 물리적 컴퓨팅 방법, 컴퓨터 프로그램 및 시스템에 관한 것이다.The present invention relates to a physical computing method, computer program, and system for controlling and programming hardware through conversation, and more particularly, to a method of voice conversation between a user and a system, including designing, testing, and debugging of hardware. It relates to controls and physical computing methods, computer programs and systems that enable programming of such controls.

물리적 컴퓨팅은, 프로그래밍 및 회로의 조립과 같이 서로 다르지만 밀접하게 결합된 복잡한 작업이다. 선행 연구에 따르면 이와같은 결합은, 초보자의 프로토 타입 제작(prototyping)에서의 디버깅 시간 중 상당 부분을 차지하도록 하면서도 결과적으로는 실패를 가져오는 실수의 주요 원인임을 분명히 보여준다. 종래의 연구는 이와 같은 프로토 타입 제작을 단순화하거나, 또는 새로운 디버깅 기능을 소개하는 시스템을 제시했지만, 이러한 시스템은 사용자가 수행할 수 있는 작업을 제한하거나, 초보자에게는 너무 복잡한 문제점이 있었다.Physical computing is a complex, yet tightly coupled, task, such as programming and assembling circuits. Previous studies clearly show that this combination is a major cause of mistakes that result in failures while taking up a significant portion of the debugging time in prototyping for beginners. Conventional studies have suggested a system that simplifies such prototyping or introduces a new debugging function, but such a system limits the tasks that a user can perform or is too complicated for beginners.

Fraser Anderson, Tovi Grossman, and George Fitzmaurice. 2017. Trigger-Action-Circuits: Leveraging Generative Design to Enable Novices to Design and Build Circuitry. In Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology (UIST ’17). ACM, New York, NY, USA, 331-.342. https://doi.org/10.1145/3126594.3126637Fraser Anderson, Tovi Grossman, and George Fitzmaurice. 2017. Trigger-Action-Circuits: Leveraging Generative Design to Enable Novices to Design and Build Circuitry. In Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology (UIST ’17). ACM, New York, NY, USA, 331-.342. https://doi.org/10.1145/3126594.3126637

본 발명은 이와 같은 문제점을 해결하기 위해 창안된 것으로서, 범용 프로토 타입 회로의 제작시, 회로 조립을 위한 사용자의 요청에 대한 추가 정보를 제공하거나 조립 단계를 대화식으로 진행할 수 있도록 하고, 일차적으로 조립된 회로에 대한 테스트를 통한 디버깅 과정 역시 대화식으로 수행이 가능하도록 함으로써 쉽고 정확한 프로토 타입 회로의 제작을 가능하도록 하는데 그 목적이 있다.The present invention was devised to solve such a problem, and when manufacturing a general-purpose prototype circuit, it provides additional information about a user's request for circuit assembly or enables the assembly step to be interactively performed, and the primary assembly The purpose of this is to enable easy and accurate prototype circuit fabrication by making it possible to interactively perform the debugging process through circuit testing.

또한 본 발명의 시스템을 이용하여, 사용자는 회로의 테스트 등을 위한 프로그램 코드의 작성시, 그러한 프로그램 코드를 대화 방식을 통하여 실시간으로 작성하고 실행시킬 수 있도록 하여 쉽고 빠른 디버깅을 가능하도록 하는데 다른 목적이 있다.In addition, by using the system of the present invention, when a user writes a program code for a circuit test, etc., another purpose is to enable easy and fast debugging by enabling the user to write and execute such program code in real time through a conversational method. have.

이와 같은 목적을 달성하기 위하여 본 발명에 따른 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 커맨드 실행 제어장치가 사용자의 음성에 의한 커맨드의 실행을 제어하는 방법은, (a) 사용자 커맨드 서버에 주기적으로 액세스하거나, 또는 커맨드 파일 서버가 별도로 존재하는 경우는 커맨드 파일 서버에 주기적으로 액세스하여, 커맨드 파일의 업데이트에 의한 변화가 있는지 체크하는 단계; (b) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오는 단계; (c) 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계; (d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및, (d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계를 포함한다.In order to achieve the above object, a method for controlling the execution of commands by a user's voice by a command execution control apparatus of a physical computing system that performs hardware control and programming through a conversation according to the present invention, (a) a user command periodically accessing the server or, if a command file server exists separately, periodically accessing the command file server to check whether there is a change due to the update of the command file; (b) when there is a change in the command file, importing new command data added to the command file; (c) transmitting image data for displaying a status according to the execution of the command data to the display monitor; (d1) providing a graphical interface for setting new parts according to a user's request; and (d2) according to the user's input of setting contents and clicking of the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly stored or the Definitions are added and updated and stored.

삭제delete

삭제delete

삭제delete

삭제delete

상기 단계(b)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에, (b11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및, (b12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계를 더 포함할 수 있다.When the command of the command data newly added in step (b) is a command for generating a state change in a circuit implemented on a breadboard by using a command execution device, after step (b), (b11) converting the command data into command execution code in a format executed by the command execution device; and, (b12) transmitting the command execution code to the command execution device.

삭제delete

상기 단계(b) 이후, (b21) 상기 커맨드 데이터를 로그(log) 파일에 업데이트하여 저장하는 단계를 더 포함할 수 있다.After the step (b), the method may further include (b21) updating and storing the command data in a log file.

사용자의 요청 입력이 수신된 경우, (e1) 상기 커맨드 실행 제어장치에서 동작중인 전체 프로그램을 하나의 실행코드 파일로 상기 커맨드 실행 제어장치에 저장하는 단계; 및, (e2) 상기 저장된 실행 코드 파일을 커맨드 실행장치로 업로드하는 단계를 더 포함할 수 있다.when a user's request input is received, (e1) storing the entire program being operated in the command execution control device as one executable code file in the command execution control device; and, (e2) uploading the stored executable code file to a command execution device.

본 발명의 다른 측면에 따르면, 사용자의 음성에 의한 커맨드의 실행을 제어하기 위하여, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 커맨드 실행 제어장치에서 동작하는 컴퓨터 프로그램은, 비일시적 저장 매체에 저장되며, 프로세서에 의하여, (a) 사용자 커맨드 서버에 주기적으로 액세스하거나, 또는 커맨드 파일 서버가 별도로 존재하는 경우는 커맨드 파일 서버에 주기적으로 액세스하여, 커맨드 파일의 업데이트에 의한 변화가 있는지 체크하는 단계; (b) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오는 단계;, (c) 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계; (d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및, (d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계가 실행되도록 하는 명령을 포함한다.According to another aspect of the present invention, in order to control execution of commands by a user's voice, a computer program operating in a command execution control device of a physical computing system that performs hardware control and programming through a conversation is stored in non-transitory storage. It is stored in the medium, and the processor (a) periodically accesses the user command server or, if the command file server exists separately, periodically accesses the command file server to check whether there is a change due to the command file update. to do; (b) when there is a change in the command file, importing command data newly added to the command file; (c) displaying image data for displaying a status according to the execution of the command data on a display monitor transmitting to a monitor; (d1) providing a graphical interface for setting new parts according to a user's request; and (d2) according to the user's input of setting contents and clicking of the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly stored or the Contains instructions that cause a step to be executed where the definition is added and updated.

상기 단계(b)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에, (b11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및, (b12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계가 실행되도록 하는 명령을 더 포함할 수 있다.When the command of the command data newly added in step (b) is a command for generating a state change in a circuit implemented on a breadboard by using a command execution device, after step (b), (b11) converting the command data into command execution code in a format executed by the command execution device; and, (b12) transmitting the command execution code to the command execution device.

본 발명의 또 다른 측면에 따르면, 사용자의 음성에 의한 커맨드의 실행을 제어하기 위한 장치는, 적어도 하나의 프로세서; 및 컴퓨터로 실행가능한 명령을 저장하는 적어도 하나의 메모리를 포함하되, 상기 적어도 하나의 메모리에 저장된 상기 컴퓨터로 실행가능한 명령은, 상기 적어도 하나의 프로세서에 의하여, (a) 사용자 커맨드 서버에 주기적으로 액세스하거나, 또는 커맨드 파일 서버가 별도로 존재하는 경우는 커맨드 파일 서버에 주기적으로 액세스하여, 커맨드 파일의 업데이트에 의한 변화가 있는지 체크하는 단계; (b) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오는 단계; (c) 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계; (d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및, (d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계가 실행되도록 한다.According to another aspect of the present invention, an apparatus for controlling execution of a command by a user's voice includes: at least one processor; and at least one memory storing computer-executable instructions, wherein the computer-executable instructions stored in the at least one memory are periodically accessed by the at least one processor (a) to a user command server. or, if the command file server exists separately, periodically accessing the command file server to check whether there is a change due to the command file update; (b) when there is a change in the command file, importing new command data added to the command file; (c) transmitting image data for displaying a status according to the execution of the command data to the display monitor; (d1) providing a graphical interface for setting new parts according to a user's request; and (d2) according to the user's input of setting contents and clicking of the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly stored or the Definitions are added to cause the update-saved steps to be executed.

상기 단계(b)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에, (b11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및, (b12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계가 더 실행되도록 할 수 있다.When the command of the command data newly added in step (b) is a command for generating a state change in a circuit implemented on a breadboard by using a command execution device, after step (b), (b11) converting the command data into command execution code in a format executed by the command execution device; and (b12) transmitting the command execution code to the command execution device.

본 발명의 또 다른 측면에 따르면, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템은, 음성 입출력장치로부터 사용자의 음성에 의한 커맨드를 텍스트로 변환한 커맨드를 수신하여, 상기 수신한 커맨드로부터 커맨드 데이터를 생성하는 사용자 커맨드 서버; 상기 커맨드 데이터의 커맨드가 포함된 커맨드 파일의 변화를 주기적으로 체크하여, 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오고, 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하며, 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하여, 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 커맨드 실행 제어장치; 및, 상기 커맨드 실행 제어장치로부터 수신한 이미지 데이터를 디스플레이하는 디스플레이 모니터를 포함한다.According to another aspect of the present invention, a physical computing system that performs hardware control and programming through conversation receives a command converted from a user's voice command into text from a voice input/output device, and receives the command from the received command. a user command server that generates command data; Changes in the command file including the command of the command data are periodically checked, and when there is a change in the command file, command data newly added to the command file is imported, and a status according to the execution of the command data is displayed. Transmitting image data to be displayed on the monitor to the display monitor, providing a graphic interface for setting new parts according to the user's request, including the setting contents of the parts according to the user's input of setting contents and clicking the save button a command execution control device in which a definition file (hereinafter referred to as a 'part file') is newly stored, or a definition of the part is added to an existing part file and updated and stored; and a display monitor configured to display the image data received from the command execution control device.

상기 사용자 커맨드 서버가 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하여 저장하는 기능을 더 포함하거나; 또는 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하여 저장하는 커맨드 파일서버를 더 포함하고, 상기 커맨드 실행 제어장치가 상기 커맨드 파일의 변화를 주기적으로 체크하는 방식은, 상기 사용자 커맨드 서버가 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하여 저장하는 기능을 포함하는 경우에는 상기 사용자 커맨드 서버의 커맨드 파일을 주기적으로 체크하고, 상기 커맨드 파일서버가 존재하는 경우에는 상기 커맨드 파일서버의 커맨드 파일을 주기적으로 체크할 수 있다.The user command server further includes a function of generating or updating the command data as a command file and storing it; or a command file server that generates or updates the command data as a command file and stores it, wherein the command execution control device periodically checks for changes in the command file. In the case of including a function of generating or updating and saving a command file, the command file of the user command server is periodically checked, and when the command file server exists, the command file of the command file server can be checked periodically. have.

상기 커맨드 실행 제어장치는, 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 커맨드 데이터를 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하고, 변환된 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 기능을 더 포함할 수 있다.The command execution control device is configured to execute the command data in the command execution device when a command of the newly added command data is a command for generating a state change in a circuit implemented on a breadboard by using the command execution device. The method may further include a function of converting the converted command execution code into a command execution code of a corresponding format, and transmitting the converted command execution code to the command execution device.

본 발명의 또 다른 측면에 따르면, 상기 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템(이하 '시스템'이라 한다)이, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 방법은, (a) 음성 입출력장치로부터 사용자의 음성에 의한 커맨드를 텍스트로 변환한 커맨드를 수신하여, 상기 수신한 커맨드로부터 커맨드 데이터를 생성하는 단계; (b) 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하는 단계; (c) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오고, 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계; (d) 상기 디스플레이 모니터에서 수신한 이미지 데이터를 디스플레이하는 단계; (d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및, (d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계를 포함한다.According to another aspect of the present invention, a method in which a physical computing system (hereinafter referred to as 'system') that performs hardware control and programming through the conversation performs hardware control and programming through the conversation comprises: (a ) receiving a command converted from a user's voice command into text from a voice input/output device, and generating command data from the received command; (b) generating or updating the command data as a command file; (c) when there is a change in the command file, sending command data newly added to the command file, and transmitting image data for displaying a status according to the execution of the command data to the display monitor ; (d) displaying the image data received on the display monitor; (d1) providing a graphical interface for setting new parts according to a user's request; and (d2) according to the user's input of setting contents and clicking of the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly stored or the Definitions are added and updated and stored.

상기 단계(c)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에, (c11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및, (c12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계를 더 포함할 수 있다.When the command of the command data newly added in step (c) is a command for generating a state change using a command execution device in a circuit implemented on a breadboard, after step (b), (c11) converting the command data into command execution code in a format executed by the command execution device; and (c12) transmitting the command execution code to the command execution device.

본 발명에 의하면, 범용 프로토 타입 회로의 제작시, 회로 조립을 위한 사용자의 요청에 대한 추가 정보를 제공하거나 조립 단계를 대화식으로 진행할 수 있도록 하고, 일차적으로 조립된 회로에 대한 테스트를 통한 디버깅 과정 역시 대화식으로 수행이 가능하도록 함으로써 쉽고 정확한 프로토 타입 회로의 제작을 가능하도록 하는 효과가 있다.According to the present invention, when a general-purpose prototype circuit is manufactured, additional information on a user's request for circuit assembly is provided or the assembly step can be interactively performed, and the debugging process through testing of the assembled circuit is also By making it possible to perform interactively, it has the effect of enabling easy and accurate fabrication of prototype circuits.

또한 본 발명의 시스템을 이용하여, 사용자는 회로의 테스트 등을 위한 프로그램 코드의 작성시, 그러한 프로그램 코드를 대화 방식을 통하여 실시간으로 작성하고 실행시킬 수 있도록 하여 쉽고 빠른 디버깅을 가능하도록 하는 효과가 있다.In addition, by using the system of the present invention, when a user writes a program code for circuit testing, etc., such program code can be written and executed in real time through a conversational method, thereby enabling easy and fast debugging. .

도 1은 본 발명에 따른, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 실제 모습을 도시한 도면.
도 2는 본 발명에 따른, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 전체 네트워크 구성을 도시한 도면.
도 3은 본 발명에 따른, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 시퀀스 다이어그램을 도시한 도면.
도 4는 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서, 디스플레이 모니터를 통하여 나타나는 그래픽 인터페이스를 예시한 도면.
도 5는 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 일 실시예를 도시한 도면.
도 6은 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 다른 실시예를 도시한 도면.
도 7은 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 또 다른 실시예를 도시한 도면.
도 8은 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 또 다른 실시예를 도시한 도면.
도 9는 추가될 새로운 컴포넌트(component)의 동작을 맞춤형(customization)으로 정의하는 그래픽 인터페이스의 일 실시예를 도시한 도면.
도 10은 본 발명의, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템을 통하여 형성될 수 있는 회로 프로토타입의 6가지 실시예를 도시한 도면.
1 is a diagram showing an actual appearance of a physical computing system that performs hardware control and programming through conversation, according to the present invention;
2 is a diagram illustrating an overall network configuration of a physical computing system that performs hardware control and programming through conversation, according to the present invention;
3 is a diagram showing a sequence diagram for performing hardware control and programming through conversation, according to the present invention;
4 is a diagram illustrating a graphic interface displayed through a display monitor in the process of controlling and programming hardware through conversation.
5 is a diagram illustrating an embodiment of a command used in a process of controlling and programming hardware through a conversation;
6 is a diagram illustrating another embodiment of a command used in a process of controlling and programming hardware through a conversation;
7 is a diagram illustrating another embodiment of a command used in a process of controlling and programming hardware through conversation;
8 is a diagram showing another embodiment of a command used in a process of controlling and programming hardware through conversation;
Fig. 9 is a diagram showing an embodiment of a graphical interface for defining the operation of a new component to be added as customization;
Figure 10 shows six embodiments of a circuit prototype that can be formed through a physical computing system that performs control and programming of hardware through dialogue, of the present invention.

이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, the terms or words used in the present specification and claims should not be construed as being limited to conventional or dictionary meanings, and the inventor should properly understand the concept of the term in order to best describe his invention. Based on the principle that it can be defined, it should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the configuration shown in the embodiments and drawings described in the present specification is merely the most preferred embodiment of the present invention and does not represent all of the technical spirit of the present invention, so at the time of the present application, various It should be understood that there may be equivalents and variations.

도 1은 본 발명에 따른, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템(1000)의 실제 모습을 도시한 도면이고, 도 2는 본 발명에 따른, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템(1000)의 전체 네트워크 구성을 도시한 도면이며, 도 3은 본 발명에 따른, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 시퀀스 다이어그램을 도시한 도면이고, 도 4는 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서, 디스플레이 모니터를 통하여 나타나는 그래픽 인터페이스를 예시한 도면이며, 특히 'how to use' 커맨드에 따른 와이어링 상태를 보여주는 화면일 수 있는데, 이에 대하여는 사용자(10)가 회로의 프로토타입을 구현하고 테스트하는 과정에서 제공하는 기능을 실시예로써 정리하여 설명하는 부분에서 후술한다.FIG. 1 is a diagram illustrating an actual state of a physical computing system 1000 that performs hardware control and programming through conversation, according to the present invention, and FIG. 2 is a diagram illustrating hardware control and programming through conversation according to the present invention. It is a diagram showing the overall network configuration of the physical computing system 1000 for performing It is a diagram illustrating a graphic interface displayed through a display monitor in the process of hardware control and programming through Functions provided in the process of implementing and testing a prototype of

이하에서는 도 2에 도시된 '대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템(1000)' 전체를 '시스템(1000)'으로 간단히 칭하기로 한다.Hereinafter, the entire 'physical computing system 1000 performing hardware control and programming through conversation' shown in FIG. 2 will be simply referred to as 'system 1000'.

사용자(10)는 음성을 통하여 시스템(1000)을 통한 물리적 컴퓨팅을 개시한다(S301). 음성 입출력장치(100)는, 사용자(10)의 음성을 인식하여 텍스트 데이터로 변환한 후 사용자 커맨드 서버(200)로 전달하고, 또한 사용자 커맨드 서버(200)로부터 수신한 대화 텍스트를 음성으로 변환하여 사용자(10)에게 출력하는 역할을 수행한다.The user 10 initiates physical computing through the system 1000 through voice (S301). The voice input/output device 100 recognizes the voice of the user 10, converts it into text data, and then transmits it to the user command server 200, and also converts the conversation text received from the user command server 200 into voice. It serves to output to the user 10 .

이후 사용자(10)와 사용자 커맨드 서버(200)와의 대화 과정(S302)은, 사용자가 시스템(1000)으로 하여금 수행시키기를 원하는 커맨드를 대화를 통하여 완성하는 과정이다. 그러한 대화 시퀀스에 대하여는 도 5 내지 도 8을 참조하여 상세히 후술하기로 한다. 사용자 커맨드 서버(200)는 네트워크 상에 위치한 일종의 클라우드 서버(cloud server)일 수 있다. 이와 같은 사용자 커맨드 서버(200)에, 도 3에 나타난 바와 같은, 사용자 커맨드 서버(200)가 수행하는 기능이 구현된 어플리케이션이 업로드되어 설치되며, 사용자(10)는 인터넷을 통하여 사용자 커맨드 서버(200)의 해당 어플리케이션에 접속하여 도 3의 시퀀스를 수행시킬 수 있다.Thereafter, the conversation process S302 between the user 10 and the user command server 200 is a process in which the user completes the command desired to be executed by the system 1000 through the conversation. Such a dialogue sequence will be described later in detail with reference to FIGS. 5 to 8 . The user command server 200 may be a kind of cloud server located on a network. As shown in FIG. 3 , an application implementing the functions performed by the user command server 200 is uploaded and installed to the user command server 200 , and the user 10 is connected to the user command server 200 through the Internet. ), the sequence of FIG. 3 may be performed by accessing the corresponding application.

사용자(10)와 사용자 커맨드 서버(200)와의 대화 과정(S301,S302)의 일 실시예를 도 5를 참조하여 설명하면 다음과 같다. 즉, 사용자가 "Write pin 3"라고 음성 명령을 시작하면, 음성 입출력장치(100)를 통하여 텍스트 데이터로 변환된 명령이 사용자 커맨드 서버(200)으로 전달된다(S301). 사용자 커맨드 서버(200)는 도 5의 'Write' 커맨드에 필요한 파라미터인 'Pin Value' 및 'Pin Number' 중 'Pin Value'가 빠졌음을 인식하고, 'Pin Value'를 사용자에게 요구하기 위하여 "What value?"라는 답변 텍스트를 출력하고, 음성 입출력장치(100)는 이를 수신하여 음성으로 변환하여 사용자(10)에게 출력하게 된다(S302). 이에 따라 사용자는 3번 핀에 인가될 적당한 값을 명령하고, 사용자 커맨드 서버(200)가 이를 수신하게 된다. 사용자(10)와 사용자 커맨드 서버(200) 사이의 대화에서는, 전술한 바와 같이 항상 음성 입출력장치(100)에 의한 인터페이스가 이루어지므로, 이하에서는 편의상 음성 입출력장치(100)의 인터페이스 수행 과정은 생략하고 설명하기로 한다.An embodiment of the conversation process ( S301 , S302 ) between the user 10 and the user command server 200 will be described with reference to FIG. 5 . That is, when the user starts a voice command "Write pin 3", the command converted into text data is transmitted to the user command server 200 through the voice input/output device 100 (S301). The user command server 200 recognizes that 'Pin Value' is missing from 'Pin Value' and 'Pin Number', which are parameters required for the 'Write' command of FIG. value?" is output, and the voice input/output device 100 receives it, converts it into a voice, and outputs it to the user 10 (S302). Accordingly, the user commands an appropriate value to be applied to pin 3, and the user command server 200 receives it. In a conversation between the user 10 and the user command server 200, the interface by the voice input/output device 100 is always performed as described above, so the process of performing the interface of the voice input/output device 100 will be omitted for convenience in the following description. to explain

사용자 커맨드 서버(200)는, 이와 같이 도 5의 'Write' 커맨드에 대한 파라미터인 'Pin Value'와 'Pin Number'가 모두 수신되면, 모든 파라미터를 포함한 'Write' 커맨드를 '커맨드 데이터'로 생성하여(S303), 커맨드 파일서버(300)로 송신한다(S304). '커맨드 데이터'라 함은, 사용자가 명령한 커맨드를 프로그램 코드화한 데이터로서, 그 일 실시예는 다음과 같다.The user command server 200 generates the 'Write' command including all parameters as 'command data' when both 'Pin Value' and 'Pin Number', which are parameters for the 'Write' command of FIG. 5 are received as described above. (S303), and transmits the command to the file server 300 (S304). The 'command data' is data obtained by program-coding a command commanded by a user, and an embodiment thereof is as follows.

Figure 112020033621337-pat00001
Figure 112020033621337-pat00001

커맨드 데이터는 이러한 프로그램 코드를 나타내는 텍스트 데이터일 수도 있으나, 위와 같은 프로그램 코드의 의미를 가지는 다른 포맷의 데이터일 수도 있다. 커맨드 파일서버(300)는 이러한 커맨드 데이터를 '커맨드 파일'로 생성 또는 업데이트하여 저장한다(S305).The command data may be text data representing such a program code, but may also be data in another format having the meaning of the above program code. The command file server 300 generates or updates such command data as a 'command file' and stores it (S305).

위에서는 사용자 커맨드 서버(200)와 커맨드 파일서버(300)가 별도의 서버로서 구성하여 설명하였으나, 사용자 커맨드 서버(200)와 커맨드 파일서버(300)가 구현하는 기능을 하나의 서버에서 구현할 수도 있다.In the above description, the user command server 200 and the command file server 300 are configured as separate servers, but the functions implemented by the user command server 200 and the command file server 300 may be implemented in one server. .

커맨드 실행 제어장치(400, 도 1 내지 도 3 참조)는 네트워크를 통하여 연결된 커맨드 파일서버(300)를 주기적으로 액세스하여, 커맨드 파일서버(300)에 저장되어 있는 커맨드 파일에 업데이트 등에 의한 변화가 있는지를 감지하고(S306), 변화가 있는 경우, 커맨드 파일에 새로 추가된 커맨드를 읽어온다(S307). 이때 커맨드 실행 제어장치(400)는 추가된 커맨드를, 사용자 커맨드 서버(200)에서 생성한 '커맨드 데이터' 포맷으로 읽어와서 저장할 수 있다.The command execution control device 400 (refer to FIGS. 1 to 3 ) periodically accesses the command file server 300 connected through the network, and checks whether there is a change due to an update or the like in the command file stored in the command file server 300 . is detected (S306), and if there is a change, a command newly added to the command file is read (S307). In this case, the command execution control device 400 may read and store the added command in the format of 'command data' generated by the user command server 200 .

커맨드 실행 제어장치(400)는 도 1에 도시된 바와 같이 커맨드 실행장치(600)와 연결되어 있으며, 커맨드 실행장치(600)는 브레드보드(700)에 구성된 회로에 따라 전선 등으로 연결되어 있다. 예를 들어 "Write pin 3" 커맨드를 통해 3번 핀에 일정 값을 인가하라는 커맨드를 커맨드 실행 제어장치(400)가 커맨드 파일서버(300)로부터 읽어오면, 커맨드 실행 제어장치(400)는 이를 커맨드 실행장치(600)로 보내되, 직접 커맨드 실행장치(600)에서 실행될 수 있는 실행 코드로 변환하여(S308) 커맨드 실행장치(600)로 보내게 된다(S311). 즉, 이와 같은 실행 코드는 커맨드 실행장치(600)가 수신하게 될 경우, 커맨드 실행장치(600)는 그 커맨드 실행 코드에 따라 커맨드 실행장치(600)의 3번 핀에 해당 값을 인가하게 되고(S312), 이에 따라 3번 핀과 브레드보드(700)를 연결하는 전선에 의해 해당 값이 전달되어, 브레드보드(700)의 회로에 해당 값을 전달하게 된다.The command execution control device 400 is connected to the command execution device 600 as shown in FIG. 1 , and the command execution device 600 is connected with a wire or the like according to a circuit configured on the breadboard 700 . For example, when the command execution control device 400 reads a command to apply a predetermined value to pin 3 through the “Write pin 3” command from the command file server 300 , the command execution control device 400 transmits the command It is sent to the execution device 600, converted into executable code that can be directly executed by the command execution device 600 (S308) and sent to the command execution device 600 (S311). That is, when the command execution device 600 receives such an execution code, the command execution device 600 applies a corresponding value to pin 3 of the command execution device 600 according to the command execution code ( S312), the corresponding value is transmitted by the wire connecting pin 3 and the breadboard 700 accordingly, and the corresponding value is transmitted to the circuit of the breadboard 700 .

한편, 커맨드 실행 제어장치(400)는 커맨드 파일서버(300)로부터 읽어온 새로운 커맨드 데이터(S307)를 저장하며, 그 커맨드를 실행할 경우의 결과, 즉, 그래픽 이미지를, 연결된 디스플레이 모니터(500)로 송신하고(S309), 디스플레이 모니터(500)는 이를 화면에 디스플레이해 준다. 도 4에는 그와 같이 그래픽 이미지가 디스플레이 모니터(500) 화면에 디스플레이된 실시예가 나타나 있다.On the other hand, the command execution control device 400 stores the new command data S307 read from the command file server 300 , and displays a result of executing the command, that is, a graphic image, to the connected display monitor 500 . and transmits (S309), and the display monitor 500 displays it on the screen. 4 shows an embodiment in which the graphic image is displayed on the screen of the display monitor 500 as described above.

도 4를 참조하면, 도 4(b)는 도 4(a)에서 디스플레이 모니터(500)를 확대한 도면이고, 도 4(c)는 도 4(a)에서 브레드보드(700)를 확대한 도면이다. '51'은 해당 핀에 인가된 값을 의미하고, '52'는 지금까지 실행된 커맨드에 대한 로그 데이터를 의미한다. '53'은 브레드보드(700) 상의 '54'를 화면에 디스플레이해준 것이다. '55' 내지 '57'은 브레드보드(700)에 구성된 부품들의 실시예로서, '55'는 LED, '56'은 포토레지스터(photoresistor), 그리고 '57'은 스위치를 나타낸다.4(b) is an enlarged view of the display monitor 500 in FIG. 4(a), and FIG. 4(c) is an enlarged view of the breadboard 700 in FIG. 4(a). to be. '51' means a value applied to the corresponding pin, and '52' means log data for commands executed so far. '53' indicates that '54' on the breadboard 700 is displayed on the screen. Reference numerals '55' to '57' denote examples of components included in the breadboard 700, '55' denotes an LED, '56' denotes a photoresistor, and '57' denotes a switch.

커맨드 실행 제어장치(400)는 커맨드 실행장치(600), 브레드보드(700), 각 부품 등의 이미지를 저장하고 있고, 또한 현재까지 실행된 커맨드에 따른 각 핀 등의 상태를 알고 있으므로, 이를 이미지화한 데이터를 디스플레이 모니터(500)에 보내줌으로써, 도 4(a)와 같은 형태로 디스플레이 모니터(500)에 디스플레이 되도록 해준다.The command execution control device 400 stores images of the command execution device 600 , the breadboard 700 , and each component, and also knows the state of each pin according to the command executed so far, so it is imaged By sending one data to the display monitor 500, it is displayed on the display monitor 500 in the form shown in FIG. 4(a).

도 5는 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 일 실시예를 도시한 도면이다.5 is a diagram illustrating an embodiment of a command used in a process of controlling and programming hardware through conversation.

'Write' 커맨드에 대하여는 전술한 바 있으며, 도 5의 다른 커맨드에 대하여도 'Write'와 유사한 방식으로 이루어진다. 사용자가 "Read" 커맨드를 말하면, 사용자 커맨드 서버(200)는 커맨드를 명확하게 하기 위해, 핀 타입(pin type)에 관하여 analog or digital?"를 질문하고, 또한 핀 번호를 알기 위해 "What is the pin number?"를 질문하게 된다.The 'Write' command has been described above, and the other commands of FIG. 5 are also performed in a similar manner to the 'Write' command. When the user speaks a "Read" command, the user command server 200 asks "analog or digital?" about the pin type, to clarify the command, and "What is the pin number?" is asked.

도 5에서 'Pulse' 커맨드는 어떤 주파수로 특정 핀에 펄스 신호가 인가되도록 하는 신호이다. 여기에는 도시된 바와 같이 'Pin Number', 'Delay', 'Count' 등의 파라미터가 필요하며, 사용자가 말할 때 이 파라미터들을 명령시에 모두 언급하지 않은 경우, 사용자 커맨드 서버(200)는 커맨드를 명확하게 하기 위해, 그와 같은 파라미터에 대한 질문을 사용자에게 보내게 된다. 'Delay'는 얼마 후에 펄스가 인가될 것인지를 의미하며, 'Count'는 몇 번 펄스가 발생될 것인지를 의미한다.In FIG. 5 , the 'Pulse' command is a signal for applying a pulse signal to a specific pin at a certain frequency. Here, as shown, parameters such as 'Pin Number', 'Delay', and 'Count' are required. For the sake of clarity, you will be asked questions about such parameters to the user. 'Delay' means how long after the pulse will be applied, and 'Count' means how many times the pulse will be generated.

도 5에서 'Pass Data'는 특정 핀의 출력신호가 가상적으로(virtually) 다른 특정 핀의 입력신호로 들어가도록 하는 신호를 말하며, 사용자는 "Pass data from pin 1 to pin 11"와 같이 명령을 내릴 수 있다.In FIG. 5, 'Pass Data' refers to a signal that allows an output signal of a specific pin to virtually enter an input signal of another specific pin, and the user can issue a command such as "Pass data from pin 1 to pin 11". can

도 6은 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 다른 실시예를 도시한 도면이다.6 is a diagram illustrating another embodiment of a command used in a process of controlling and programming hardware through conversation.

도 6은 도 5와 달리, 여러 단계의 브랜칭(branching)이 지원되는 커맨드를 나타내는데, 여기에는 'if' 문(statement)과 'do-after' 커맨드가 있다.Unlike FIG. 5, FIG. 6 shows a command in which branching of several stages is supported, and there are an 'if' statement and a 'do-after' command.

'if' 문의 예로는, 사용자(10)가 내리는 "If pin 5 is high, then write pin 3,"과 같은 커맨드가 있다.An example of the 'if' statement is a command such as "If pin 5 is high, then write pin 3," issued by the user 10 .

'do-after' 커맨드는, 특정한 일정 시간 간격(delay) 후에 특정한 행동(action)을 하도록 사용자(10)가 커맨드를 내리는 것이다.The 'do-after' command is a command from the user 10 to perform a specific action after a specific predetermined time interval (delay).

한편, 사용자(10)와 사용자 커맨드 서버(200) 간의 커맨드 완성을 위한 대화(conversation)에서, 사용자(10)는 커맨드를 말할 때, 정해진 문구를 반드시 정확하게 지켜 따라야 하는 것은 아니며, 자연스러운 언어로 말할 수 있다. 또한 사용자(10)는 커맨드에서 모든 선택사항(option)을 다 기억하고 있어야 할 필요도 없다.On the other hand, in a conversation for command completion between the user 10 and the user command server 200, the user 10 does not necessarily follow a set phrase when speaking a command, and can speak in a natural language. have. Also, the user 10 does not need to memorize all the options in the command.

이 경우 사용자 커맨드 서버(200)는 사용자(10)의 말로부터 In this case, the user command server 200 receives the words of the user 10 .

i) 커맨드의 정확한 의미를 자율적으로 추론(inferring)하거나, 또는i) autonomously infer the exact meaning of the command, or

ii) 사용자(10)에게 다시 질문을 함으로써,ii) by asking the user 10 again,

커맨드의 정확한 의미를 파악해 나갈 수 있다. 이와 같은 방식은, 도 5 내지 도 8의 모든 대화 프로세스에서 동일하게 적용된다.You can figure out the exact meaning of the command. This method is equally applied to all the conversation processes of FIGS. 5 to 8 .

예를 들어, 만약 사용자(10)가 "If pin 5 is high, then write pin 3," 라고 커맨드를 개시하면, 사용자 커맨드 서버(200)는, 'high'가 디지털 상태(digital state)를 나타내기 때문에 그 5번 핀이 디지털 핀이라고 추론할 수 있다.For example, if the user 10 initiates the command "If pin 5 is high, then write pin 3," the user command server 200 may indicate that 'high' indicates a digital state. Therefore, it can be inferred that the 5th pin is a digital pin.

그러나 "write pin 3" 부분이 모호하기 때문에 사용자 커맨드 서버(200)는 "What value?" 와 같이 커맨드를 명확히 하기 위한 질문을 사용자(10)에게 할 수 있다. 이에 대하여 사용자(10)가 디지털 값(high 또는 low) 또는 0~255의 숫자에 의한 수치값으로 대답함에 따라, 사용자 커맨드 서버(200)는 3번 핀에 그 디지털 값 또는 아날로그 값(PWM, pulse width modulation)을 인가하게 된다.However, since the "write pin 3" part is ambiguous, the user command server 200 asks "What value?" A question for clarifying the command may be asked to the user 10 . In response to this, as the user 10 answers with a digital value (high or low) or a numeric value from 0 to 255, the user command server 200 sends the digital value or analog value (PWM, pulse) to pin 3 width modulation) is applied.

동일한 로직을 따라, 아날로그 1번 핀으로부터 값을 읽기를 원하는 사용자(10)가, "Read value from analog pin 1", "Read from analog pin 1"와 같이 완전한 커맨드를 말하거나, 또는 "Read from pin 1", "Read"와 같이 불완전한 커맨드를 말할 수 있는데, 이와 같이 불완전한 커맨드의 경우에는 전술한 바와 같이 사용자 커맨드 서버(200)가 "Analog or digital?" 또는 "What is the pin number?" 등으로 사용자(10)에게 질문하여, 사용자(10)의 답변에 따라 커맨드를 완성하게 된다.Following the same logic, a user 10 who wants to read a value from analog pin 1 says a complete command such as "Read value from analog pin 1", "Read from analog pin 1", or "Read from pin 1" Incomplete commands such as 1” and “Read” can be said. In the case of such an incomplete command, as described above, the user command server 200 sends “Analog or digital?” or "What is the pin number?" The command is completed according to the answer of the user 10 by asking a question to the user 10 , for example.

도 7은 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 또 다른 실시예를 도시한 도면이다.7 is a diagram illustrating another embodiment of a command used in a process of controlling and programming hardware through conversation.

도 7에 도시된 'Pin Type', 'Pin Number', 'Pin Value', 'Delay', 'Count', 'Number' 등은 이미 도 5 및 도 6에 나타났던 파라미터이며, 도 7에서는 그러한 파라미터를 질문에 의해 보완할 때 어떤 과정이 수행되는지를 상세히 보여주는 일 실시예이다. 예를 들어 도 7에서, 사용자(10)가 말한 커맨드에서 핀 타입이 언급되지 않은 경우 사용자 커맨드 서버(200)는 사용자에게 "Analog or digital?"이라고 질문을 할 수 있고, 이에 대하여 사용자(10)는 "Analog" 또는 "Digital"이라고 대답하면, 이를 수신한 사용자 커맨드 서버(200)는 커맨드를 완성할 수 있게 되는 것이다.'Pin Type', 'Pin Number', 'Pin Value', 'Delay', 'Count', 'Number', etc. shown in FIG. 7 are parameters that have already appeared in FIGS. 5 and 6, and in FIG. 7, such parameters This is an example showing in detail what process is performed when supplementing with a question. For example, in FIG. 7 , when the pin type is not mentioned in the command spoken by the user 10 , the user command server 200 may ask the user "Analog or digital?" If "Analog" or "Digital" is answered, the user command server 200 receiving it can complete the command.

도 7에서 'comparison'은, 비교하는 대상 간의 부등호를 명확히 하기 위한 사용자 커맨드 서버(200)의 질문과, 이에 대하여 사용자(10)가 대답할 수 있는 부등호의 예를 나타낸 것이다.In FIG. 7 , 'comparison' shows a question of the user command server 200 for clarifying an inequality sign between objects to be compared, and an example of an inequality sign to which the user 10 can answer.

도 7의 'component'는 이하 도 8을 참조하여 설명하기로 한다.The 'component' of FIG. 7 will be described below with reference to FIG. 8 .

도 8은 대화를 통한 하드웨어의 제어 및 프로그래밍 과정에서 사용되는 커맨드(command)의 또 다른 실시예를 도시한 도면이다.8 is a diagram illustrating another embodiment of a command used in a process of controlling and programming hardware through conversation.

도 8(a)에서 'Check', 'Test', 커맨드는, 커맨드 실행장치(600)와 연결되어 있는 브레드보드(700)의 회로 상에 존재하는 부품(component)의 상태를 체크하거나, 해당 부품에 대한 테스트를 수행하기 위한 커맨드이다. 이 경우, 사용자가 "Check" 또는 "Test" 커맨드만을 말한 경우, 사용자 커맨드 서버(200)는 부품(component)가 무엇인지를 사용자(10)에게 질문하고, 사용자는 도 7에 나타난 바와 같은 부품들 중 하나를 말하며, 이와 같이 수신된 부품명에 의해 사용자 커맨드 서버(200)는 커맨드를 완성하여 해당 커맨드 데이터를 커맨드 파일서버(300)로 보내게 되는 것이다. 이와 같은 부품은, 사용자(10)에 의하여 추가가 가능하며, 이에 대하여는 도 9를 참조하여 후술하기로 한다.In FIG. 8( a ), 'Check', 'Test', and the command check the state of a component existing on the circuit of the breadboard 700 connected to the command execution device 600 , or the corresponding component. This is a command to perform a test on . In this case, when the user says only the "Check" or "Test" command, the user command server 200 asks the user 10 what the component is, and the user asks the user 10 what is the component as shown in FIG. 7 . one of them, the user command server 200 completes the command according to the part name received in this way and transmits the corresponding command data to the command file server 300 . Such a part can be added by the user 10 , which will be described later with reference to FIG. 9 .

'How to use' 커맨드는 특정 부품(component)에 대하여 사용자가 회로상에 어떻게 연결하는지를 모르는 경우, 이에 대한 용법을 사용자 커맨드 서버(200)가 설명해주는 커맨드이다. 이 커맨드 역시 'Check', 'Test', 커맨드와 동일하게, 부품에 대한 파라미터가 포함되어야 한다.The 'How to use' command is a command in which the user command server 200 explains how to use a specific component when the user does not know how to connect it to the circuit. This command also has to include parameters for parts, just like 'Check', 'Test', and commands.

도 8(b)는, 사용자(10)와 사용자 커맨드 서버(200)와의 대화를 좀더 유연하게 이어주는 문구의 일 실시예이다. 즉, 사용자(10)가 "Wait"라고 말할 경우, 사용자 커맨드 서버(200)는 "Ok, I will wait"라고 답하며, 사용자의 다음 커맨드를 기다리는 것과 같은 방식이다.FIG. 8( b ) is an embodiment of phrases that more flexibly connect a conversation between the user 10 and the user command server 200 . That is, when the user 10 says "Wait", the user command server 200 answers "Ok, I will wait", in the same manner as waiting for the user's next command.

이하에서는 지금까지 도 5 내지 도 8을 참조하여 설명한 다양한 커맨드를 이용하여 본 발명의 시스템(1000)이, 사용자(10)가 회로의 프로토타입을 구현하고 테스트하는 과정에서 제공하는 기능을, 실시예로써 정리하여 설명하기로 한다.Hereinafter, the system 1000 of the present invention provides functions provided by the user 10 in the process of implementing and testing a prototype of a circuit by using various commands described with reference to FIGS. 5 to 8. This will be summarized and explained.

1. 대화를 통한 프로그래밍1. Programming through conversation

사용자(10)는 풍속 센서(anemometer sensor), 토글 스위치, 저항, LED, 점퍼 와이어 등의 부품을 준비하고, 본 발명의 시스템(1000)에 음성으로 커맨드를 내린다. 사용자는 저항과 LED를 브레드보드(700)에 와이어로써 연결하고, LED의 양극(anode)을 커맨드 실행장치(600) 보드의 디지털 핀 11번(D11)에 연결한 후, "I want to write high to pin 11," 라고 말하면, LED가 켜지게 된다.The user 10 prepares parts such as an anemometer sensor, a toggle switch, a resistor, an LED, and a jumper wire, and gives a voice command to the system 1000 of the present invention. The user connects the resistor and the LED to the breadboard 700 as a wire, and connects the anode of the LED to the digital pin 11 (D11) of the command execution device 600 board, and then says “I want to write high” to pin 11," the LED turns on.

사용자(10)는 포토레지스터(photoresistor)를 커맨드 실행장치(600) 보드의 아날로그 핀 1번(A1)에 연결한 후 "Hmm... try to read from pin 1,"라고 말하면, 시스템(1000)의 사용자 커맨드 서버(200)는 그 핀이 아날로그 핀인지 디지털 핀인지를 질문하여, 사용자(10)의 답변에 의해 명확히 한다.The user 10 connects a photoresistor to the analog pin 1 (A1) of the command execution device 600 board and says "Hmm... try to read from pin 1," and the system 1000 's user command server 200 asks whether the pin is an analog pin or a digital pin, and is clarified by the user's 10 answer.

그 핀이 아날로그임을 확정한 후, 사용자(10)는 손으로 센서의 일부를 덮고, 디스플레이 모니터(500)에 그래픽으로 표현된 커맨드 실행장치(600) 보드의 A1 핀 옆의 화면에 표시되는 수치값을 실시간으로 확인한다. 최종적으로 사용자는 센서로부터 읽은 값을 LED의 밝기를 조절하는 사용하는데, 이때 단지 "Pass data from pin 1 to pin 11."라고 말하기만 하면 된다. 이제 사용자(10)는 손으로 포토레지스터 전지(cell)를 부분적으로 덮음에 의해 LED의 밝기를 조절할 수 있게 된다. 이후 사용자(10)는 "If A1 is greater than 120, then pulse D10 every 200 milliseconds." 라고 말함으로써 pulse 커맨드로 다른 LED를 테스트할 수 있다.After confirming that the pin is analog, the user 10 covers a part of the sensor with his hand, and the numerical value displayed on the screen next to the A1 pin of the command execution device 600 board graphically displayed on the display monitor 500 check in real time. Finally, the user uses the value read from the sensor to adjust the brightness of the LED, just say "Pass data from pin 1 to pin 11." Now, the user 10 can adjust the brightness of the LED by partially covering the photoresist cell by hand. Afterwards the user 10 says "If A1 is greater than 120, then pulse D10 every 200 milliseconds." You can test other LEDs with the pulse command by saying

시스템(1000)은 도 5 내지 도 8에 나타난 바와 같은 커맨드를 사용할 수 있으며, 커맨드 실행장치(600) 보드의 10개의 핀의 신호를 읽고(reading), 해당 핀에 신호를 인가(writing)할 수 있으며, 입력 핀으로부터 출력 핀으로 데이터를 전달(passing data)하거나, 핀에 펄스를 가하거나(pulsing), 핀을 리셋시키거나(resetting), 커맨드를 브랜칭(branching)하거나, 일정 시간 후에 일정 행동(action)이 일어나도록 스케줄링할 수 있다. 모든 커맨드는 즉각적 효과를 내며, 사용자는 실제 브레드보드(700) 상의 하드웨어와 디스플레이 모니터(500)에 나타난 그래픽 인터페이스를 통하여 동시에, 모든 핀의 상태를 실시간으로 확인할 수 있다.The system 1000 may use a command as shown in FIGS. 5 to 8 , and may read signals of 10 pins of the command execution device 600 board and apply a signal to the corresponding pins. Passing data from an input pin to an output pin, pulsing a pin, resetting a pin, branching a command, or performing a certain action ( action) can be scheduled to occur. All commands take effect immediately, and the user can simultaneously check the status of all pins in real time through the hardware on the breadboard 700 and the graphic interface displayed on the display monitor 500 .

본 발명의 시스템(1000)의 음성 및 문장 인식 능력에 의해, 전술한 바와 같이, 사용자(10)는 정확한 문장을 기억할 필요없이 자연스럽게 말할 수 있고, 시스템(1000)의 사용자 커맨드 서버(200)는, 사용자(10)의 커맨드가 부정확하거나, 커맨드와 직접 관련없는 대화 어구(예를 들어, "Hmm", "Uh", "Try to", "I want" 등)가 들어가더라도 커맨드의 정확한 의미를 자율적으로 추론(inferring)할 수 있다. 또한 전술한 바와 같이 불분명하거나 불완전한 커맨드의 경우에도 사용자 커맨드 서버(200)는 사용자(10)에게 질문하는 방식으로 커맨드의 모든 추가적인 파라미터를 보완받아 커맨드를 완성시킬 수 있다.The voice and sentence recognition capabilities of the system 1000 of the present invention, as described above, allow the user 10 to speak naturally without the need to memorize exact sentences, and the user command server 200 of the system 1000, Even if the user 10's command is inaccurate or contains dialogue phrases not directly related to the command (eg, "Hmm", "Uh", "Try to", "I want", etc.), the exact meaning of the command is autonomously determined. can be inferred. Also, even in the case of an unclear or incomplete command as described above, the user command server 200 may complete the command by supplementing all additional parameters of the command by asking the user 10 a question.

2. 에러 감지 및 문맥(context)을 통한 추론(inerring)2. Error detection and inference through context

사용자(10)가 LED의 양극을 12번 핀(아날로그 출력 기능이 없는 디지털 핀)에 연결한 후, LED로써 아날로그 신호(PWM)의 인가(writing)를 시험할 수 있다. 이때 사용자(10)가 "I want to write the value 200."라고 말할 경우, 시스템(1000)의 사용자 커맨드 서버(200)는 "What is the pin number?"라고 대답할 수 있다. 사용자(10)가 "Pin 12."라고 말하면, 사용자 커맨드 서버(200)는 사용자 대답의 오류를 인식하여, "This is not possible. I wrote the digital value high on digital pin 12 instead."와 같이 대답할 수 있다. 이 경우 사용자(10)는 실수하였음을 알고 현재 상태를 리셋 시킨 후, 아날로그 출력을 지원하는 D10 핀에 위 커맨드를 다시 실행시킬 수 있다.After the user 10 connects the anode of the LED to pin 12 (a digital pin without an analog output function), the writing of the analog signal PWM can be tested with the LED. In this case, when the user 10 says "I want to write the value 200.", the user command server 200 of the system 1000 may answer "What is the pin number?" When the user 10 says "Pin 12.", the user command server 200 recognizes an error in the user's answer, and answers as "This is not possible. I wrote the digital value high on digital pin 12 instead." can do. In this case, after realizing that the user 10 made a mistake and resetting the current state, the user 10 may execute the above command again on the D10 pin supporting the analog output.

일 실시예로서의 커맨드 실행장치(600) 보드에서는, 아날로그 입력핀(A0~A5)과 아날로그(PWM) 출력핀(~D3, ~D5, ~D6, ~D9, ~D10, and ~D11)의 한정된 핀 세트(subset) 만이 아날로그 입력핀 및 아날로그 출력핀으로 기능한다. 어떤 핀이든 디지털 read/write 동작은 가능하나, 위에 언급한 바와 같이 단지 지정된 아날로그 핀들만 아날로그 출력(PWM) 또는 아날로그 입력 동작을 수행할 수 있다.In the command execution device 600 board as an embodiment, limited pins of analog input pins (A0~A5) and analog (PWM) output pins (~D3, ~D5, ~D6, ~D9, ~D10, and ~D11) Only a subset functions as analog input pins and analog output pins. Any pin can perform digital read/write operation, but as mentioned above, only designated analog pins can perform analog output (PWM) or analog input operation.

특히, 출력 동작은 0에서 255까지의 값을 0~100% 의 듀티 사이클(duty cycle)에 매핑시키며, 반면 입력 동작은 0~5V 범위의 전압을, 0에서 1023까지의 숫자로 디지털 방식으로 변환한다. 본 발명의 시스템(1000)의 사용자 커맨드 서버(200)는 사용자가 실수로 아날로그 동작을 디지털 핀에 시도한 것을 파악할 수 있으며, 이 경우 사용자에게 이를 알리고 수정시키도록 할 수 있다.Specifically, the output operation maps a value from 0 to 255 to a duty cycle of 0 to 100%, while the input operation digitally converts a voltage ranging from 0 to 5V into a number from 0 to 1023. do. The user command server 200 of the system 1000 of the present invention may detect that a user has accidentally attempted an analog operation on a digital pin. In this case, the user may be notified and corrected.

사용자 커맨드 서버(200)는 사용자(10)에게, 핀들을 잘못 사용할 수 있는 경우에 대하여 알려줌으로써 논리적 오류를 막을 수 있다. 예를 들어 디지털 핀에 숫자 값을 사용하거나, 또는 서로 다른 타입의 핀들 간에 'Pass data' 커맨드를 사용하는 등의 경우이다.The user command server 200 may prevent a logical error by notifying the user 10 about a case in which pins may be used incorrectly. For example, when using a numeric value for a digital pin, or using a 'Pass data' command between different types of pins.

나아가, 사용자 커맨드 서버(200)는 불분명한 점이 발생할 우려가 없을 때에는 자율적으로 정확한 옵션을 추론할 수 있다. 예를 들어 사용자가 "If pin 5 is high, then write pin 10" 라고 했을 때, 사용자 커맨드 서버(200)는 'high'는 디지털 상태를 나타내는 것이기 때문에 5번 핀을 디지털 핀이라고 판단할 수 있다.Furthermore, the user command server 200 can autonomously infer the correct option when there is no risk of ambiguity. For example, when the user says "If pin 5 is high, then write pin 10", the user command server 200 may determine that pin 5 is a digital pin because 'high' represents a digital state.

그러나 사용자(10)가 "Write pin 10"라고 한 경우, 사용자 커맨드 서버(200)는 사용자(10)에게 명확히 해줄 것을 요구할 수 있다. 사용자(10)가 디지털 값(high 또는 low) 또는 숫자값(0에서 255까지의 숫자)로 대답하는 것에 따라, 사용자 커맨드 서버(200)는 10번 핀에 디지털 값 또는 아날로그 값(PWM)을 쓸(writing) 수 있다.However, when the user 10 says "Write pin 10", the user command server 200 may request the user 10 to clarify. As the user 10 replies with a digital value (high or low) or a numeric value (a number from 0 to 255), the user command server 200 writes a digital value or analog value (PWM) to pin 10. can (writing)

3. 회로 개발중인 사용자에게 정보 제공3. Providing information to users who are developing the circuit

만약 사용자가 풍속 센서(anemometer sensor)를 처음 사용하는 경우, 사용자(10)는 그것을 어떻게 연결할 지 모를 것이므로, 시스템(1000)에 "How do I use an anemometer?"과 같이 질문할 수 있다. 이것은 전술한 바와 같은 'How to use' 커맨드에 해당하며, 특정 부품에 대하여 어떻게 브레드보드(700) 상에 연결(wiring)해야 하는지를 알려주게 되는 커맨드이다. 이 경우 시스템(1000)은 풍속 센서 부품을 어떻게 브레드보드(700)와 커맨드 실행장치(600) 상에 와이어를 이용하여 연결해야 하는지를, 단계별로 디스플레이 모니터(500)에 그래픽으로 보여주거나 또는 연결된 최종 와이어링 상태를 한번에 디스플레이하여 보여줄 수 있다. 또한 이와 함께 시스템(1000)은 그러한 연결 과정을 음성 출력으로 사용자(10)에게 설명해 줄 수 있다.If the user uses the anemometer sensor for the first time, the user 10 may not know how to connect it, and thus may ask the system 1000 such as “How do I use an anemometer?”. This corresponds to the 'How to use' command as described above, and is a command that informs how to connect on the breadboard 700 with respect to a specific component. In this case, the system 1000 graphically shows how to connect the wind speed sensor component to the breadboard 700 and the command execution device 600 using a wire on the display monitor 500 step by step, or the final wire connected The ring status can be displayed and shown at once. Also, the system 1000 may explain such a connection process to the user 10 through voice output.

이 경우의 과정 역시 도 3의 시퀀스를 따라 이루어진다. 즉, 사용자 커맨드 서버(200)가, "How do I use an anemometer?"라는 사용자(10)의 질문을 인식한 후(S301,S302) 풍속 센서의 연결을 단계별로 설명할 때, 각 단계에 해당하는 설명을 단계별로 커맨드 데이터로 생성하고(S303), 그 커맨드 데이터를 커맨드 파일서버(300)로 보낸다(S304). 커맨드 파일서버(300)는 그 단계에 해당하는 커맨드 데이터를 커맨드 파일에 업데이트하고(S305), 커맨드 실행 제어장치(400)가 주기적으로 커맨드 파일서버(300)의 커맨드 파일을 액세스하여 변화 발생 여부를 감지 중에, 변화를 감지하면(S306), 해당 커맨드 파일에서 추가된 커맨드 데이터를 읽어온다(S307). 전술한 바와 같이 커맨드 파일서버(300)는 별도의 서버로 구성될 수도 있으나, 커맨드 파일서버(300)의 기능은 사용자 커맨드 서버(200)가 수행하도록 구성될 수도 있다. 즉, 사용자 커맨드 서버(200)가 커맨드 파일서버(300)의 역할도 함께 수행하도록 할 수 있다.The process in this case is also performed according to the sequence of FIG. 3 . That is, when the user command server 200 explains the connection of the wind speed sensor step by step after recognizing the question of the user 10 "How do I use an anemometer?" (S301, S302), each step corresponds to The description is generated as command data step by step (S303), and the command data is sent to the command file server 300 (S304). The command file server 300 updates the command data corresponding to the step in the command file (S305), and the command execution control device 400 periodically accesses the command file of the command file server 300 to check whether a change has occurred. During detection, if a change is detected (S306), the command data added from the corresponding command file is read (S307). As described above, the command file server 300 may be configured as a separate server, but the function of the command file server 300 may be configured to be performed by the user command server 200 . That is, the user command server 200 may also perform the role of the command file server 300 .

도 3에서 설명한 경우와 같이 커맨드 실행장치(600)와 브레드보드(700)가 연결된 핀들과 관련하여 신호를 인가하거나 신호값을 읽어오는 것이라면, 커맨드 실행장치(600)를 제어하여야 하므로, 커맨드 실행장치(600)에 전달할 커맨드 실행 코드를 생성하여야 하나(S308), 위의 'How to use' 커맨드의 경우와 같이 사용자(10)에게 커맨드 실행장치(600)와 브레드보드(700) 간의 연결(wiring) 단계를 설명하는 것이라면, 커맨드 실행 코드를 생성할 필요는 없으며, 따라서 커맨드 실행 코드를 커맨드 실행장치(600)로 전달하는 과정도 필요없게 된다. 단지 커맨드 실행 제어장치(400)는 해당 와이어링 상태의, 디스플레이 모니터(500) 화면에 나타내는 그래픽 이미지를 디스플레이 모니터(500)로 송신하고(S309), 디스플레이 모니터(500)는 이를 화면에 디스플레이(S310) 하게 된다. 이와 같이 디스플레이 모니터(500) 화면에 나타난 대로 사용자(10)는 와이어링을 실시하면 된다. 도 4에서 디스플레이 모니터(500) 화면에 표시된 와이어링 상태는 이와 같은 'how to use' 커맨드에 따라 시스템(1000)이 보여주는 와이어링 형태일 수 있다. 또한 이와 함께, 시스템(1000)은 그러한 연결 과정을 음성 출력으로 사용자(10)에게 단계별로 설명해 줄 수 있다.As in the case described in FIG. 3 , if a signal is applied or a signal value is read in relation to pins connected to the command execution device 600 and the breadboard 700 , since the command execution device 600 must be controlled, the command execution device It is necessary to generate a command execution code to be transmitted to the 600 ( S308 ), but as in the case of the above 'How to use' command, a connection between the command execution device 600 and the breadboard 700 to the user 10 (wiring) If the steps are described, it is not necessary to generate the command execution code, and thus, the process of transmitting the command execution code to the command execution device 600 is also unnecessary. Only the command execution control device 400 transmits the graphic image displayed on the screen of the display monitor 500 of the corresponding wiring state to the display monitor 500 (S309), and the display monitor 500 displays it on the screen (S310). ) will do. As shown on the screen of the display monitor 500 as described above, the user 10 may perform wiring. The wiring state displayed on the screen of the display monitor 500 in FIG. 4 may be a wiring type shown by the system 1000 according to the 'how to use' command. In addition, the system 1000 may explain the connection process step-by-step to the user 10 through voice output.

와이어링의 마지막 단계는 전원을 제공하기 위한 토글 스위치(toggle switch)를 연결하는 것이다. 이전 단계에서와 같이 사용자(10)는 시스템(1000)에 스위치를 어떻게 연결할지(how to use)를 질문하여 작업을 수행할 수 있다.The final step in wiring is to connect the toggle switch to provide power. As in the previous step, the user 10 may perform the task by asking how to use the switch to the system 1000 .

이후, 시스템(1000)의 사용자 커맨드 서버(200)는 전술한 풍력센서의 연결 작업이 완료된 것으로 추론하고, 사용자(10)에게, "Would you like to test the anemometer first?" 라는 질문을 함으로써 사용자(10)가 완료된 보드가 제대로 동작하는지 체크해 볼 것을 제안할 수 있다. 사용자(10)가 "Yes"로 대답하고 또한 시스템(1000)에 풍력센서가 어떤 핀으로 연결되었는지를 말해줄 수 있다. 사용자 커맨드 서버(200)는 사용자(10)에게, 풍력센서로 바람을 불도록 하고, 풍력센서에 의해 감지된 값을 디스플레이 모니터(500)에 보여줄 수 있다. 이 과정은, 커맨드 실행장치(600)에서 풍력센서 감지값을 읽고, 이를 커맨드 실행 제어장치(400)가 전달받아, 이를 디스플레이 모니터(500)에 보냄으로써 이루어질 수 있다.Thereafter, the user command server 200 of the system 1000 infers that the above-described connection operation of the wind sensor is completed, and asks the user 10, "Would you like to test the anemometer first?" By asking the question, it can be suggested that the user 10 check whether the completed board operates properly. The user 10 answers "Yes" and can also tell the system 1000 which pin the wind sensor is connected to. The user command server 200 may cause the user 10 to blow wind with the wind sensor, and may show the value detected by the wind sensor on the display monitor 500 . This process may be accomplished by reading the wind sensor detection value from the command execution device 600 , the command execution control device 400 receiving it, and sending it to the display monitor 500 .

시스템(1000)은 또한 사용자(10)에게 디바이스가 동작하는지를 물어볼 수 있다. 만약 동작하지 않는다면, 시스템(1000)은 문제제거 조치(troubleshooting action)의 리스트를 제안할 수 있으며, 사용자(10)가 결과에 만족한다면 테스트를 중단하고 다음 작업으로 넘어갈 수 있다.System 1000 may also ask user 10 if the device is operating. If it does not work, the system 1000 may suggest a list of troubleshooting actions, and if the user 10 is satisfied with the result, the test may stop and move on to the next task.

한편, 시스템(1000)은 사용자(10)에게 정보를 모으고 회로의 어떠한 부품도 테스트하도록 허용할 수 있다. 시스템(1000)은 미리 정의된 부품들에 대한 리스트와, 조립 지침(assembly instruction)을 보유한다. 이는 커맨드 실행 제어장치(400)에 저장되어 있다. 그러나 사용자(10)는 자신의 고유한 추가 부품과 조립 지침(assembly instruction), 대화, 동작모드(입력/출력, 아날로그/디지털), 그리고 문제제거 방안(troubleshooting suggestions)을 정의할 수 있다. 시스템(1000)은 이러한 변화를 위해서 사용자로 하여금 새로운 프로그램 코드를 작성하도록 요구하지 않으며, 부품들의 데이터베이스를 읽고 업데이트하는 그래픽 인터페이스를 통해 형성이 가능하도록 한다.On the other hand, system 1000 may allow user 10 to gather information and test any component of the circuit. System 1000 maintains a list of predefined parts and assembly instructions. This is stored in the command execution control device 400 . However, the user 10 can define its own additional parts and assembly instructions, dialogs, operating modes (input/output, analog/digital), and troubleshooting suggestions. The system 1000 does not require a user to write a new program code for such a change, and enables the formation through a graphical interface that reads and updates a database of parts.

테스트는 사용자(10)가 테스트/체크 커맨드를 직접 말함으로써 개시될 수도 있고, 또는 시스템(1000)에 의해 현재의 문맥(context)에 따라 자발적으로 시작될 수도 있다. 예를 들어, 사용자(10)가 새로운 부품(component)에 대한 지침(instruction)을 질문한다면, 시스템(1000)은 사용자(10)에게 지금까지의 작업을 상기시키고 테스트를 제안한다. 시스템(1000)은 그런 후에 그 시험 중인 부품의 핀에 어떤 값을 쓰거나 읽기를 시도하고, 사용자(10)에게 그것이 작동하는지를 질문하며, 이로써 테스트가 이루어진 모듈의 구현상 문제가 없음을 확인하도록 하여 나머지 프로그램에 영향을 주지 않도록 한다.The test may be initiated by the user 10 directly speaking a test/check command, or may be initiated spontaneously by the system 1000 according to the current context. For example, if the user 10 asks for instructions for a new component, the system 1000 reminds the user 10 of the work done so far and suggests a test. The system 1000 then attempts to write or read any value to the pin of the part under test, and asks the user 10 if it works, thereby confirming that there are no implementation problems with the module being tested, so that the rest of the Do not affect the program.

4. 회로 프로토타입 완성4. Complete Circuit Prototype

회로의 프로토타입이 최종적으로 완성되면, 프로그래밍 로직은 시스템(1000)에서 동작중인 상태가 된다.When the prototype of the circuit is finally completed, the programming logic is put into operation in the system 1000 .

회로상에 구성된 램프가 앰비언트 라이트(ambient light)에 따라 세기(intensity)가 변화되면, 사용자(10)는 풍력센서로 바람을 부는 방식에 의해 램프를 끌 수 있다(switch off).When the intensity of the lamp configured on the circuit is changed according to ambient light, the user 10 may turn off the lamp by blowing wind with the wind sensor (switch off).

사용자(10)는 현재 시스템(1000), 즉, 커맨드 실행 제어장치(400)에서 동작중인 전체 프로그램을 하나의 실행코드(일 실시예로서 C/C++로 작성된) 파일로 커맨드 실행 제어장치(400)에 저장할 수 있다. 이후 사용자(10)는 그 코드 파일을 커맨드 실행장치(600)에 업로드할 수 있고, 이에 따라 그 커맨드 실행장치(600)와 연결된 브레드보드(700) 상의 램프 회로를 직접 사용할 수 있게 된다.The user 10 converts the entire program currently operating in the system 1000, that is, the command execution control device 400, into one executable code (written in C/C++ as an embodiment) file as a command execution control device 400 can be stored in Thereafter, the user 10 can upload the code file to the command execution device 600 , and thus can directly use the lamp circuit on the breadboard 700 connected to the command execution device 600 .

시스템(1000)은 사용자(10)에게, 결과 상호작용(resulting interaction)을 커맨드 실행장치(600)에서 실행되는 실행 코드 파일로 변환할 수 있는 옵션을 제공한다. 사용자는 직접 수동으로 그 실행코드를 커맨드 실행장치(600)에 업로드하거나, 또는 필요할 경우 기능 블럭을 추가하고, 코드의 부분을 카피/페이스트하고, 그것을 라이브러리에 추가함으로써 코드를 수정할 수 있다. 이러한 특징은 사용자(10)로 하여금 자동 생산되는 코드(auto-generated code)를 템플릿으로 재사용하거나 참조할 수 있도록 해준다.The system 1000 provides the user 10 with an option to convert the resulting interaction into an executable code file that is executed on the command execution device 600 . The user can manually upload the executable code to the command execution device 600, or modify the code by adding function blocks, copy/paste parts of the code, and add them to the library if necessary. This feature allows the user 10 to reuse or reference auto-generated code as a template.

도 9는 추가될 새로운 컴포넌트(component)의 동작을 맞춤형(customization)으로 정의하는 그래픽 인터페이스의 일 실시예를 도시한 도면이다.FIG. 9 is a diagram illustrating an embodiment of a graphic interface for defining an operation of a new component to be added as customization.

이와 같은 그래픽 인터페이스를 구동하는 앱은, 커맨드 실행 제어장치(400)에 설치되어 있을 수도 있고, 또는 디스플레이 모니터(500)와 연결된 별도의 PC(미도시) 등에 설치되어 있을 수 있다. 즉, 커맨드 실행 제어장치(400) 또는 별도의 PC에서 도 9와 같은 그래픽 인터페이스를 구동할 수 있다.The app for driving such a graphic interface may be installed in the command execution control device 400 , or may be installed in a separate PC (not shown) connected to the display monitor 500 . That is, the graphic interface as shown in FIG. 9 may be driven by the command execution control device 400 or a separate PC.

일 실시예로서 시스템(1000)은, 서로 다른 타입(입력/출력, 아날로그/디지털) 그리고 서로 다른 수의 핀 수 및 서로 다른 인터페이스를 가진 12개 부품을 지원할 수 있다. 예를 들어 LED, RGB LED, 홀 효과 센서(hall effect sensor), 틸트 센서(tilt sensor), 피에조 스피커(piezo speaker), 플렉스 센서(flex sensor), 풍력센서(anemometer), 온도 센서, 서보 모터, 푸쉬버튼, 전위차계(potentiometer), 또는 포토레지스터(photoresistor) 등이다.As an example, system 1000 may support 12 components of different types (input/output, analog/digital) and different numbers of pins and different interfaces. For example, LED, RGB LED, hall effect sensor, tilt sensor, piezo speaker, flex sensor, anemometer, temperature sensor, servo motor, A pushbutton, a potentiometer, or a photoresistor.

이러한 리스트(905)는 사용자(10)에 의해 맞춤형으로 구성(customized)될 수 있는데, 그래픽 인터페이스에 의해 새로운 부품(component)의 설정이 가능하다. 즉, 시스템(1000)은, 이를 위해 새로운 코드를 작성할 필요없이, 단지 도 9의 디스플레이 모니터(500)에 나타나는 그래픽 인터페이스를 이용하여 가능하도록 한다. 이러한 인터페이스에 의해 사용자는 이러한 새로운 부품의 설정 내용을 포함하는 정의(definition)가 저장될 파일(이하 '부품 파일'이라 한다)을 선택한다(901). 이 부품 파일에는 기존에 설정되어 있는 부품들(리스트 905에 표시된)의 설정사항들이 저장되어 있으며, 부품 파일은 커맨드 실행 제어장치(400)에 저장된다.The list 905 may be customized by the user 10 , and a new component may be set by a graphical interface. That is, the system 1000 does not need to write new code for this, just using the graphical interface that appears on the display monitor 500 of FIG. 9 makes this possible. Through this interface, the user selects a file (hereinafter referred to as a 'part file') in which a definition including the setting contents of the new part is to be stored (901). In this part file, settings of previously set parts (shown in list 905) are stored, and the part file is stored in the command execution control device 400 .

또한 도 9의 박스에 설정사항의 입력을 완료하고 저장 버튼(907)을 누르면, 역시 커맨드 실행 제어장치(400)의 부품 파일에 업데이트되어 저장되고 또한 이 파일은 클라우드 상의 사용자 커맨드 서버(200)에 업로드 된다.In addition, when the input of setting items in the box of FIG. 9 is completed and the save button 907 is pressed, the component file of the command execution control device 400 is also updated and saved, and this file is also stored in the user command server 200 on the cloud. are uploaded

또한 해당 부품 및 그 와이어링 세부 상태에 대한 이미지를 선택하는데(902), 그 이미지는 별도의 PC 등에 저장되어 있는 파일일 수 있으며, 도 9의 박스에 설정사항의 입력을 완료하고 저장 버튼(907)을 누르면, 선택된 이미지 파일 역시 커맨드 실행 제어장치(400)에 해당 부품과 매핑되어 저장된다.In addition, an image for the corresponding part and its wiring detailed state is selected (902), and the image may be a file stored in a separate PC, etc., completing input of settings in the box of FIG. ) is pressed, the selected image file is also mapped to the corresponding part in the command execution control device 400 and stored.

새로운 부품은 이름(name) 정의(903)에 의해 생성한다. 체크박스(입력/출력, 디지털/아날로그)(904)를 통한 동작 정의, 대화(dialogues) 정의(906)로써 정의가 완료되면, 해당 정의를 'ADD'하여 부품 리스트(905)에 올린 후, 'SAVE'함으로써 해당 부품의 설정 사항들이 커맨드 실행 제어장치(400)의 부품 파일에 저장되고, 해당 이미지 파일이 역시 커맨드 실행 제어장치(400)에 저장된다. 특히 전술한 바와 같이 이 부품 파일은 사용자 커맨드 서버(200)에 업로드되는데, 사용자 커맨드 서버(200)에서는, 부품 파일에 저장된 대화(dialogue)(906)에 따라 대화를 진행하게 된다.A new part is created by name definition 903 . When the definition is completed as the operation definition through the check box (input/output, digital/analog) 904 and the dialog definition 906, the definition is 'ADD' and uploaded to the parts list 905, and then ' By 'SAVE', the settings of the corresponding part are stored in the part file of the command execution control device 400 , and the corresponding image file is also stored in the command execution control device 400 . In particular, as described above, the part file is uploaded to the user command server 200 , where the dialog proceeds according to a dialogue 906 stored in the part file.

이러한 대화(dialogue)(906)에는, 사용자 커맨드 서버(200)가 사용자의 질문을 인식한 후 해당 부품에 대한 가이드를 제공할 경우의 답변 문장이 정의되어 있다. 이와 같은 답변 문장은, 특히 사용자(10)가 해당 부품에 대하여 'how to use' 커맨드에 의한 질문을 할 경우나, 또는 사용자(10)가 해당 부품에 대하여 'test' 커맨드를 한 경우, 그에 따른 디버깅(debugging) 과정을 사용자 커맨드 서버(200)가 가이드할 때 사용된다.In the dialogue 906 , an answer sentence when the user command server 200 provides a guide for the corresponding part after recognizing the user's question is defined. In particular, when the user 10 asks a question by the 'how to use' command for the part, or when the user 10 makes a 'test' command for the part, It is used when the user command server 200 guides a debugging process.

도 10은 본 발명의, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템을 통하여 형성될 수 있는 회로 프로토타입의 6가지 실시예를 도시한 도면이다.10 is a diagram illustrating six embodiments of a circuit prototype that can be formed through a physical computing system that performs control and programming of hardware through dialogue, of the present invention.

100: 음성 입출력장치
200: 사용자 커맨드(command) 출력서버
300: 커맨드 파일서버
400: 커맨드 실행 제어장치
500: 디스플레이 모니터
600: 커맨드 실행장치
700: 브레드보드(breadboard)
1000: 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템
100: voice input/output device
200: user command (command) output server
300: command file server
400: command execution control device
500: display monitor
600: command execution device
700: breadboard (breadboard)
1000: a physical computing system that performs hardware control and programming through dialogue

Claims (19)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 커맨드 실행 제어장치가 사용자의 음성에 의한 커맨드의 실행을 제어하는 방법으로서,
(a) 사용자 커맨드 서버에 주기적으로 액세스하거나, 또는 커맨드 파일 서버가 별도로 존재하는 경우는 커맨드 파일 서버에 주기적으로 액세스하여, 커맨드 파일의 업데이트에 의한 변화가 있는지 체크하는 단계;
(b) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오는 단계;
(c) 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계;
(d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및,
(d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계
를 포함하는, 커맨드 실행 제어장치의 사용자 커맨드 실행 제어방법.
A method for controlling the execution of a command by a user's voice by a command execution control device of a physical computing system that performs hardware control and programming through conversation, comprising:
(a) periodically accessing the user command server or, if the command file server exists separately, periodically accessing the command file server to check whether there is a change due to an update of the command file;
(b) when there is a change in the command file, importing new command data added to the command file;
(c) transmitting image data for displaying a status according to the execution of the command data to the display monitor;
(d1) providing a graphical interface for setting new parts according to a user's request; and,
(d2) According to the user's input of setting contents and clicking the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly saved, or the definition of the part is stored in an existing part file. Steps to be added and updated
A method for controlling execution of a user command of a command execution control device, comprising:
청구항 6에 있어서,
상기 단계(b)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에,
(b11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및,
(b12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계
를 더 포함하는 것을 특징으로 하는 커맨드 실행 제어장치의 사용자 커맨드 실행 제어방법.
7. The method of claim 6,
When the command of the command data newly added in step (b) is a command for generating a state change using a command execution device in a circuit implemented on a breadboard, after step (b),
(b11) converting the command data into command execution code in a format executed by the command execution device; and,
(b12) transmitting the command execution code to the command execution device
User command execution control method of the command execution control apparatus, characterized in that it further comprises.
청구항 6에 있어서,
상기 단계(b) 이후,
(b21) 상기 커맨드 데이터를 로그(log) 파일에 업데이트하여 저장하는 단계
를 더 포함하는 것을 특징으로 하는 커맨드 실행 제어장치의 사용자 커맨드 실행 제어방법.
7. The method of claim 6,
After step (b),
(b21) updating and storing the command data in a log file
User command execution control method of the command execution control apparatus, characterized in that it further comprises.
삭제delete 청구항 6에 있어서,
사용자의 요청 입력이 수신된 경우,
(e1) 상기 커맨드 실행 제어장치에서 동작중인 전체 프로그램을 하나의 실행코드 파일로 상기 커맨드 실행 제어장치에 저장하는 단계; 및,
(e2) 상기 저장된 실행 코드 파일을 커맨드 실행장치로 업로드하는 단계
를 더 포함하는 것을 특징으로 하는 커맨드 실행 제어장치의 사용자 커맨드 실행 제어방법.
7. The method of claim 6,
When a user's request input is received,
(e1) storing the entire program being operated in the command execution control device as a single executable code file in the command execution control device; and,
(e2) uploading the stored executable code file to a command execution device
User command execution control method of the command execution control apparatus, characterized in that it further comprises.
사용자의 음성에 의한 커맨드의 실행을 제어하기 위하여, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 커맨드 실행 제어장치에서 동작하는 컴퓨터 프로그램으로서,
비일시적 저장 매체에 저장되며, 프로세서에 의하여,
(a) 사용자 커맨드 서버에 주기적으로 액세스하거나, 또는 커맨드 파일 서버가 별도로 존재하는 경우는 커맨드 파일 서버에 주기적으로 액세스하여, 커맨드 파일의 업데이트에 의한 변화가 있는지 체크하는 단계;
(b) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오는 단계;
(c) 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계;
(d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및,
(d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계
가 실행되도록 하는 명령을 포함하는, 사용자의 음성에 의한 커맨드의 실행을 제어하기 위하여, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템의 커맨드 실행 제어장치에서 동작하는 컴퓨터 프로그램.
A computer program operating in a command execution control device of a physical computing system that performs hardware control and programming through conversation in order to control execution of commands by a user's voice, comprising:
It is stored in a non-transitory storage medium, and by the processor,
(a) periodically accessing the user command server or, if the command file server exists separately, periodically accessing the command file server to check whether there is a change due to an update of the command file;
(b) when there is a change in the command file, importing new command data added to the command file;
(c) transmitting image data for displaying a status according to the execution of the command data to the display monitor;
(d1) providing a graphical interface for setting new parts according to a user's request; and,
(d2) According to the user's input of setting contents and clicking the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly saved, or the definition of the part is stored in an existing part file. Steps to be added and updated
A computer program operating in a command execution control device of a physical computing system that performs hardware control and programming through conversation in order to control execution of a command by a user's voice, including a command to be executed.
청구항 11에 있어서,
상기 단계(b)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에,
(b11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및,
(b12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계
가 실행되도록 하는 명령을 더 포함하는 것을 특징으로 하는 비일시적 저장 매체에 저장된 컴퓨터 프로그램.
12. The method of claim 11,
When the command of the command data newly added in step (b) is a command for generating a state change using a command execution device in a circuit implemented on a breadboard, after step (b),
(b11) converting the command data into command execution code in a format executed by the command execution device; and,
(b12) transmitting the command execution code to the command execution device
A computer program stored in a non-transitory storage medium, characterized in that it further comprises instructions to be executed.
사용자의 음성에 의한 커맨드의 실행을 제어하기 위한 장치로서,
적어도 하나의 프로세서; 및
컴퓨터로 실행가능한 명령을 저장하는 적어도 하나의 메모리를 포함하되,
상기 적어도 하나의 메모리에 저장된 상기 컴퓨터로 실행가능한 명령은, 상기 적어도 하나의 프로세서에 의하여,
(a) 사용자 커맨드 서버에 주기적으로 액세스하거나, 또는 커맨드 파일 서버가 별도로 존재하는 경우는 커맨드 파일 서버에 주기적으로 액세스하여, 커맨드 파일의 업데이트에 의한 변화가 있는지 체크하는 단계;
(b) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오는 단계;
(c) 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계;
(d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및,
(d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계
가 실행되도록 하는, 사용자의 음성에 의한 커맨드의 실행을 제어하기 위한 장치.
An apparatus for controlling execution of a command by a user's voice, comprising:
at least one processor; and
at least one memory for storing computer-executable instructions;
The computer-executable instructions stored in the at least one memory are executed by the at least one processor,
(a) periodically accessing the user command server or, if the command file server exists separately, periodically accessing the command file server to check whether there is a change due to an update of the command file;
(b) when there is a change in the command file, importing new command data added to the command file;
(c) transmitting image data for displaying a status according to the execution of the command data to the display monitor;
(d1) providing a graphical interface for setting new parts according to a user's request; and,
(d2) According to the user's input of setting contents and clicking the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly saved, or the definition of the part is stored in an existing part file. Steps to be added and updated
An apparatus for controlling the execution of a command by a user's voice, which causes the command to be executed.
청구항 13에 있어서,
상기 단계(b)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에,
(b11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및,
(b12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계
가 더 실행되도록 하는 것을 특징으로 하는 사용자의 음성에 의한 커맨드의 실행을 제어하기 위한 장치.
14. The method of claim 13,
When the command of the command data newly added in step (b) is a command for generating a state change using a command execution device in a circuit implemented on a breadboard, after step (b),
(b11) converting the command data into command execution code in a format executed by the command execution device; and,
(b12) transmitting the command execution code to the command execution device
An apparatus for controlling the execution of a command by a user's voice, characterized in that it further executes.
대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템으로서,
음성 입출력장치로부터 사용자의 음성에 의한 커맨드를 텍스트로 변환한 커맨드를 수신하여, 상기 수신한 커맨드로부터 커맨드 데이터를 생성하는 사용자 커맨드 서버;
상기 커맨드 데이터의 커맨드가 포함된 커맨드 파일의 변화를 주기적으로 체크하여, 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오고, 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하며, 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하여, 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 커맨드 실행 제어장치; 및,
상기 커맨드 실행 제어장치로부터 수신한 이미지 데이터를 디스플레이하는 디스플레이 모니터
를 포함하는, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템.
A physical computing system that performs hardware control and programming through dialogue, comprising:
a user command server that receives a command converted from a user's voice command into text from a voice input/output device, and generates command data from the received command;
Changes in the command file including the command of the command data are periodically checked, and when there is a change in the command file, command data newly added to the command file is imported, and a status according to the execution of the command data is displayed. Transmitting image data to be displayed on the monitor to the display monitor, providing a graphic interface for setting new parts according to the user's request, including the setting contents of the parts according to the user's input of setting contents and clicking the save button a command execution control device in which a definition file (hereinafter referred to as a 'part file') is newly stored, or a definition of the part is added to an existing part file and updated and stored; and,
A display monitor for displaying image data received from the command execution control device
A physical computing system that performs control and programming of hardware through dialogue, including a.
청구항 15에 있어서,
상기 사용자 커맨드 서버가 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하여 저장하는 기능을 더 포함하거나; 또는
상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하여 저장하는 커맨드 파일서버를 더 포함하고,
상기 커맨드 실행 제어장치가 상기 커맨드 파일의 변화를 주기적으로 체크하는 방식은,
상기 사용자 커맨드 서버가 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하여 저장하는 기능을 포함하는 경우에는 상기 사용자 커맨드 서버의 커맨드 파일을 주기적으로 체크하고, 상기 커맨드 파일서버가 존재하는 경우에는 상기 커맨드 파일서버의 커맨드 파일을 주기적으로 체크하는 것
을 특징으로 하는 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템.
16. The method of claim 15,
The user command server further includes a function of generating or updating the command data as a command file and storing it; or
Further comprising a command file server for generating or updating the command data as a command file and storing,
The method in which the command execution control device periodically checks for changes in the command file,
When the user command server includes a function of generating or updating the command data as a command file and storing the command data, the command file of the user command server is periodically checked, and if the command file server exists, the command file server to periodically check the command file of
A physical computing system that performs hardware control and programming through dialogue, characterized in that
청구항 16에 있어서,
상기 커맨드 실행 제어장치는,
새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우,
상기 커맨드 데이터를 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하고, 변환된 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 기능
을 더 포함하는 것을 특징으로 하는 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템.
17. The method of claim 16,
The command execution control device,
When the command of the newly added command data is a command that generates a state change in a circuit implemented on a breadboard by using a command execution device,
A function of converting the command data into a command execution code in a format executed by the command execution device, and transmitting the converted command execution code to the command execution device
A physical computing system for performing hardware control and programming through conversation, characterized in that it further comprises a.
청구항 16의 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 시스템(이하 '시스템'이라 한다)이, 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 방법으로서,
(a) 음성 입출력장치로부터 사용자의 음성에 의한 커맨드를 텍스트로 변환한 커맨드를 수신하여, 상기 수신한 커맨드로부터 커맨드 데이터를 생성하는 단계;
(b) 상기 커맨드 데이터를 커맨드 파일로 생성 또는 업데이트하는 단계;
(c) 상기 커맨드 파일의 변화가 있는 경우, 상기 커맨드 파일에 새로 추가된 커맨드 데이터를 가져오고, 상기 커맨드 데이터의 실행에 따른 상태를 디스플레이 모니터에 디스플레이하기 위한 이미지 데이터를 상기 디스플레이 모니터로 송신하는 단계;
(d) 상기 디스플레이 모니터에서 수신한 이미지 데이터를 디스플레이하는 단계;
(d1) 사용자의 요청에 따라 새로운 부품 설정을 위한 그래픽 인터페이스를 제공하는 단계; 및,
(d2) 사용자의 설정 내용 입력 및 저장 버튼 클릭에 따라, 부품의 설정 내용을 포함하는 정의(definition) 파일(이하 '부품 파일'이라 한다)이 새로 저장되거나, 기존 부품 파일에 상기 부품의 정의가 추가되어 업데이트 저장되는 단계
를 포함하는 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 방법.
A method in which a physical computing system (hereinafter referred to as 'system') that performs hardware control and programming through dialogue of claim 16 performs hardware control and programming through dialogue,
(a) receiving a command converted from a user's voice command into text from a voice input/output device, and generating command data from the received command;
(b) generating or updating the command data as a command file;
(c) when there is a change in the command file, sending command data newly added to the command file, and transmitting image data for displaying a status according to the execution of the command data to the display monitor ;
(d) displaying the image data received on the display monitor;
(d1) providing a graphical interface for setting new parts according to a user's request; and,
(d2) According to the user's input of setting contents and clicking the save button, a definition file (hereinafter referred to as 'part file') including the setting contents of the part is newly saved, or the definition of the part is stored in an existing part file. Steps to be added and updated
A method of performing hardware control and programming through a dialogue comprising a.
청구항 18에 있어서,
상기 단계(c)에서 새로 추가된 커맨드 데이터의 커맨드가, 브레드보드 상에 구현된 회로에, 커맨드 실행장치를 이용하여 상태 변화를 발생시키는 커맨드인 경우, 상기 단계(b) 이후에,
(c11) 상기 커맨드 데이터를, 상기 커맨드 실행장치에서 실행되는 포맷의 커맨드 실행 코드로 변환하는 단계; 및,
(c12) 상기 커맨드 실행 코드를 상기 커맨드 실행장치로 송신하는 단계
를 더 포함하는 것을 특징으로 하는 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 방법.
19. The method of claim 18,
When the command of the command data newly added in step (c) is a command for generating a state change using a command execution device in a circuit implemented on a breadboard, after step (b),
(c11) converting the command data into command execution code in a format executed by the command execution device; and,
(c12) transmitting the command execution code to the command execution device
Method for performing control and programming of hardware through a conversation, characterized in that it further comprises.
KR1020200039137A 2020-03-31 2020-03-31 Method, computer program and system for controlling and programming hardware by using a conversational interface KR102437242B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200039137A KR102437242B1 (en) 2020-03-31 2020-03-31 Method, computer program and system for controlling and programming hardware by using a conversational interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200039137A KR102437242B1 (en) 2020-03-31 2020-03-31 Method, computer program and system for controlling and programming hardware by using a conversational interface

Publications (2)

Publication Number Publication Date
KR20210121808A KR20210121808A (en) 2021-10-08
KR102437242B1 true KR102437242B1 (en) 2022-08-30

Family

ID=78610271

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200039137A KR102437242B1 (en) 2020-03-31 2020-03-31 Method, computer program and system for controlling and programming hardware by using a conversational interface

Country Status (1)

Country Link
KR (1) KR102437242B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110040A1 (en) 2001-12-07 2003-06-12 Creative Logic Solutions Inc. System and method for dynamically changing software programs by voice commands

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101957277B1 (en) * 2017-02-14 2019-03-12 윤종식 System and method for coding with voice recognition
KR20190025261A (en) * 2017-09-01 2019-03-11 박운철 Conversion service system and its method in real-time automatic programming language based on natural language speech recognition

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110040A1 (en) 2001-12-07 2003-06-12 Creative Logic Solutions Inc. System and method for dynamically changing software programs by voice commands

Also Published As

Publication number Publication date
KR20210121808A (en) 2021-10-08

Similar Documents

Publication Publication Date Title
US10163365B2 (en) System and method for teaching programming of devices
US20090119104A1 (en) Switching Functionality To Control Real-Time Switching Of Modules Of A Dialog System
US20200409693A1 (en) File generation method, device and apparatus, and storage medium
KR20210016815A (en) Electronic device for managing a plurality of intelligent agents and method of operating thereof
KR20200052612A (en) Electronic apparatus for processing user utterance and controlling method thereof
JP2020530606A (en) User-configured and customized interactive dialog application
EP3608772B1 (en) Method for executing function based on voice and electronic device supporting the same
Kim et al. Heyteddy: Conversational test-driven development for physical computing
US20030110040A1 (en) System and method for dynamically changing software programs by voice commands
KR102437242B1 (en) Method, computer program and system for controlling and programming hardware by using a conversational interface
Aung et al. An implementation of Java programming learning assistant system platform using Node. js
CN111179926A (en) Method and device for generating aircraft control command and computer equipment
Sutherland et al. Robolang: A simple domain specific language to script robot interactions
CN109545035A (en) The graphical hardware programming compatible system of more interacting messages and method
CN116843795A (en) Image generation method and device, electronic equipment and storage medium
CN106415651B (en) Framework and method configured to facilitate configuration of devices supported by building management systems
CN116262347A (en) Robot control method and control system based on graphic dragging programming
KR20090110486A (en) method of robot control code generation and apparatus thereof
US20210319150A1 (en) Instruction authoring tool
CN112204656A (en) Efficient dialog configuration
KR20060120004A (en) A dialog control for dialog systems
JP2021002312A (en) Data generation method, data generation device, program, and storage medium
US20230116720A1 (en) Integrated Control System for Edge Devices
KR20020024828A (en) Language study method by interactive conversation on Internet
US7920681B2 (en) System, apparatus, and methods for creating alternate-mode applications

Legal Events

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