KR101037901B1 - Robot system based on tangible programming bricks - Google Patents

Robot system based on tangible programming bricks Download PDF

Info

Publication number
KR101037901B1
KR101037901B1 KR1020110024691A KR20110024691A KR101037901B1 KR 101037901 B1 KR101037901 B1 KR 101037901B1 KR 1020110024691 A KR1020110024691 A KR 1020110024691A KR 20110024691 A KR20110024691 A KR 20110024691A KR 101037901 B1 KR101037901 B1 KR 101037901B1
Authority
KR
South Korea
Prior art keywords
block
robot
programming
command
sensor
Prior art date
Application number
KR1020110024691A
Other languages
Korean (ko)
Inventor
권대용
Original Assignee
권대용
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 권대용 filed Critical 권대용
Priority to KR1020110024691A priority Critical patent/KR101037901B1/en
Application granted granted Critical
Publication of KR101037901B1 publication Critical patent/KR101037901B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/1617Cellular, reconfigurable manipulator, e.g. cebot

Abstract

PURPOSE: A robot system based on a tangible programming block is provided to enable the formation of sequence, repeat, condition, parameter, and function into a physically operable block. CONSTITUTION: A robot system based on a tangible programming block comprises a tangible programming block, a bar block(200), a robot block(300), and a robot(400). The multiple tangible programming blocks are assembled and constitute a command. The tangible programming block constitute multiple rows through a bar block. The robot block receives command constituted by the tangible programming block through the bar block. The robot block mixes and transmits commands. The robot receives the command consisting of the combination of the tangible programming block. The command saved in the tangible programming block is schematized on the upper side of the block case into a figure or a shape. The robot block combines the commands of the tangible programming block for each line in order, and then the robot block transmits codes to the robot.

Description

텐저블 프로그래밍 블록에 기반한 로봇 시스템{Robot System based on Tangible Programming Bricks}Robot System based on Tangible Programming Bricks}

본 발명은 프로그래밍의 추상적인 개념인 순차, 반복, 조건, 매개변수, 함수 등을 물리적으로 조작이 가능한 블록의 형태로 구현하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템에 관한 것이다.
The present invention relates to a robot system based on a tentable programming block that implements an abstract concept of programming, such as sequence, iteration, condition, parameter, function, and the like, in the form of physically manipulated blocks.

최근 사용자가 물리적인 객체를 이용하여 환경과 상호작용하는 텐저블 인터페이스(Tangible User Interface)가 주목받고 있다. 상기 텐저블 인터페이스는 예술, 게임, 의료 등의 다양한 분야에서 연구되고 있다.Recently, a tangible user interface in which a user interacts with an environment using a physical object has been attracting attention. The tunable interface has been studied in various fields such as art, games, and medicine.

텐저블 인터페이스는 사용자가 신체를 사용하여 문제를 해결하는 과정 속에서 즉각적으로 그 결과를 확인하여 볼 수 있다는 장점이 있다. 따라서 사용자가 문제를 보다 구체적이고 현실성 있게 경험하고 해결할 수 있어 특히 교육분야에서 큰 효과를 얻을 수 있을 것으로 기대된다. 예를 들어, 화학교육에서 그래픽 태그를 조작하면 분자구조를 3D로 확인할 수 있고, 음악교육에서 소리파레트(sound palette) 위에 공을 움직이는 조작을 통해 직접 노래를 만들고 음계를 바꾸어 보는 다양한 음악 활동을 할 수 있다.Tensile interface has the advantage that the user can immediately see the results in the process of solving the problem using the body. Therefore, it is expected that the user can experience and solve the problem more concretely and realistically, so that the user can obtain a great effect especially in the field of education. For example, if you manipulate graphic tags in chemistry education, you can check the molecular structure in 3D. In music education, you can create various songs by changing the scale by moving the ball on the sound palette. Can be.

특히 텐저블 인터페이스를 적용함으로써 무엇보다도 그 효과가 기대되는 분야가 바로 교육을 위한 텐저블 프로그래밍 언어이다. 텐저블 프로그래밍 언어는 텍스트 기반, 또는 그래픽 기반의 언어와 비슷하다. 하지만 컴퓨터 화면상에서 그래픽이나 단어를 사용하는 것이 아니라, 프로그래밍의 요소나 명령, 구조 등을 추상화시킨 물리적인 객체를 사용하여 프로그래밍을 하는데 그 특징이 있다. 즉, 텐저블 프로그래밍 언어는 순차, 반복, 조건, 매개변수, 함수 등의 추상적인 개념을 눈에 보이거나 쉽게 조작할 수 있는 물리적인 형태로 구현하는 것에 특징이 있다. 사용자는 텐저블 프로그래밍 언어가 물리적으로 구현된 객체를 조작하여 순차, 반복, 조건, 매개변수, 함수 등의 추상적인 개념을 보다 쉽게 이해할 수 있게 된다. 따라서 초등학교 수준의 학생도 텐저블 프로그래밍 언어를 이용하여 어렵게만 인식되던 컴퓨터 프로그래밍에 쉽게 접근할 수 있게 된다.In particular, the most promising field is the tunable programming language for education. Tensile programming languages are similar to text-based or graphic-based languages. However, it does not use graphics or words on the computer screen, but uses a physical object that abstracts programming elements, instructions, and structures. In other words, the tunable programming language is characterized by implementing abstract concepts such as sequential, iterative, conditions, parameters, and functions in a physical form that can be easily seen or manipulated. Users can easily understand abstract concepts such as sequential, iterative, conditions, parameters, and functions by manipulating objects that physically implement tangible programming languages. As a result, elementary school students can easily access computer programming, which was only perceived as difficult, using a tunable programming language.

그러나 종래 이루어진 대부분의 텐저블 프로그래밍 관련 발명은 프로그래밍 언어의 도구적 사용 관점에 집중하여, 프로그래밍 도구를 편리하게 조작할 수 있도록 하는 것에 그 목적을 두고 있다. 종래 발명은 프로그래밍에서 추상적으로 표현되는 순차, 반복, 조건, 매개변수, 함수와 같은 개념들을 설계 관점에서부터 고려하고 있지 않다. 또한 프로그래밍의 조작 방식은 물리적인 텐저블 인터페이스로 바뀌었으나 프로그래밍에 대한 추상적인 개념은 조작을 할 수 있는 형태로 구체화되지 못하여 여전히 사용자는 프로그래밍에 대하여 어려움을 느끼고 있다.However, most of the inventions related to the present invention tend to focus on the tool usage of the programming language, and to make the programming tool convenient to operate. The prior art does not consider concepts such as sequential, iterative, conditions, parameters, and functions expressed abstractly in programming from a design standpoint. In addition, the operation method of programming has been changed to a physical tangible interface, but the abstract concept of programming is not embodied in the form that it can operate, and users still have difficulty in programming.

따라서, 프로그래밍 학습 측면에서 보면 프로그래밍의 추상적인 개념을 표현하고 프로그래밍 요소를 구체적인 형태로 조작할 수 있는 텐저블 인터페이스를 구현하는 발명에 대한 요구가 증대되고 있는 실정이다.
Therefore, in terms of programming learning, there is an increasing demand for an invention that implements a tangible interface capable of expressing abstract concepts of programming and manipulating programming elements in a specific form.

본 발명은 프로그래밍의 추상적인 개념인 순차, 반복, 조건, 매개변수, 함수 등을 물리적으로 조작할 수 있는 블록의 형태로 구현하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템을 제공하는 것을 목적으로 한다.
An object of the present invention is to provide a robot system based on a tensable programming block that implements an abstract concept of programming such as sequential, iterative, conditional, parameters, functions, and the like in the form of blocks that can be physically manipulated.

상기 목적을 달성하기 위한 본 발명은, 복수로 조합되어 명령을 구성하는 텐저블 프로그래밍 블록; 각행을 구성하는 상기 텐저블 프로그래밍 블록의 일측과 연결되어 상기 텐저블 프로그래밍 블록이 복수의 행을 구성하도록 하는 바블록; 상기 텐저블 프로그래밍 블록으로 구성되는 명령을 상기 바블록을 통하여 수신하고 이를 조합하여 전달하는 로봇블록; 및 상기 로봇블록으로부터 상기 텐저블 프로그래밍 블록의 조합으로 구성되는 명령을 전달받아 수행하는 로봇을 포함하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템을 제공한다.The present invention for achieving the above object is a tangible programming block that is combined to form a plurality of instructions; A bar block connected to one side of the tentable programming block constituting each row so that the tentable programming block constitutes a plurality of rows; A robot block for receiving a command consisting of the tunable programming block through the bar block and combining the same; And a robot configured to receive and execute a command composed of a combination of the tunable programming blocks from the robot block.

바람직하게는, 상기 텐저블 프로그래밍 블록은 전진, 후진, 좌회전, 우회전의 명령을 저장하는 명령어블록, 함수를 정의하는 함수정의블록, 정의된 함수를 호출하는 함수호출블록, 반복시작을 표시하는 반복시작블록, 및 반복종료를 표시하는 반복끝블록을 포함하는 것을 특징으로 한다.Preferably, the tunable programming block is an instruction block for storing instructions of forward, backward, left turn, and right turn, a function definition block defining a function, a function call block calling a defined function, and an iteration start indicating an iteration start. And a repeating end block indicating the end of the repetition.

또한, 상기 텐저블 프로그래밍 블록은 각 블록마다 고유의 명령을 저장하고, 저장된 명령은 각 블록의 케이스의 상면에 도형이나 모양으로 도식화되는 것을 특징으로 한다.In addition, the tentable programming block stores a unique instruction for each block, and the stored instruction is illustrated in a figure or a shape on an upper surface of a case of each block.

또한, 상기 텐저블 프로그래밍 블록은 좌측에 형성되는 소켓과 우측에 형성되는 연결단자를 결합하여 횡방향으로 연장되고, 상부에 형성되는 확장단자와 하부에 형성되는 확장소켓을 결합하여 복수의 블록을 적층할 수 있는 것을 특징으로 한다.In addition, the tentable programming block extends in a lateral direction by combining a socket formed on the left side and a connection terminal formed on the right side, and stacks a plurality of blocks by combining an extension terminal formed on the upper side and an extension socket formed on the lower side. It can be characterized by.

또한, 상기 로봇블록은 상기 텐저블 프로그래밍 블록의 명령을 각 행마다 순차적으로 조합한 후 이를 중간코드로 변환하여 상기 로봇으로 전송하는 것을 특징으로 한다.In addition, the robot block is characterized in that by sequentially combining the instructions of the tentable programming block for each row and converts it to an intermediate code to transmit to the robot.

또한, 상기 로봇은 양측면에 형성되어 스텝모터로 구동되는 두 바퀴, 앞, 좌, 우에 검은 선을 인식하는 제1 내지 제3 적외선 센서, 및 상기 로봇과 상기 로봇에 연결된 블록의 구동전력을 공급하는 직류전원을 포함하는 것을 특징으로 한다.In addition, the robot is formed on both sides of the two wheels driven by the step motor, the first to third infrared sensors for detecting the black line on the front, left and right, and supplying the driving power of the robot and the block connected to the robot It is characterized by including a direct current power source.

더욱 바람직하게는, 상기 명령어블록은 상기 로봇에 조건 없이 전진, 후진, 좌회전, 우회전을 명령하는 일반블록, 및 제1 내지 제3 스위치를 제어하여 조건을 설정할 수 있는 센서블록을 포함하는 것을 특징으로 한다.More preferably, the command block includes a general block for commanding forward, backward, left turn, and right turn without a condition to the robot, and a sensor block for setting conditions by controlling first to third switches. do.

또한, 상기 함수정의블록은 상기 로봇블록과 연결되는 첫 행에 배치되고, 복수의 상기 명령어블록과 연결되어 함수를 정의하고, 상기 함수호출블록은 상기 명령어블록 사이에 개재되어 프로시져 호출(Procedure-calling) 방식으로 상기 함수정의블록에 정의된 함수를 호출하여 사용하는 것을 특징으로 한다.In addition, the function definition block is disposed on the first row connected to the robot block, is connected to a plurality of the instruction block to define a function, the function call block is interposed between the instruction block (Procedure-calling) The method defined in the function definition block is called and used.

더더욱 바람직하게는, 상기 센서블록은 앞, 좌, 우에 제1 내지 제3 스위치가 형성되고, 상기 스위치를 조작하여 상기 로봇에 형성된 제1 내지 제3 적외선 센서를 제어하는 것을 특징으로 한다.
Still more preferably, the sensor block is characterized in that the first to third switches are formed in front, left and right, and control the first to third infrared sensors formed on the robot by operating the switch.

본 발명은 프로그래밍의 추상적인 개념인 순차, 반복, 조건, 매개변수, 함수 등을 물리적으로 조작할 수 있는 블록의 형태로 구현하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템을 제공한다.The present invention provides a robot system based on a tentable programming block that implements an abstract concept of programming, such as a sequence, an iteration, a condition, a parameter, a function, and the like in the form of a block that can be physically manipulated.

본 발명의 텐저블 프로그래밍 블록을 이용하여 로봇을 제어하는 문제를 풀어봄으로써 프로그래밍 개념을 보다 쉽게 이해하고, 사고력을 향상시킬 수 있다.
By solving the problem of controlling the robot by using the tunable programming block of the present invention, it is possible to understand the programming concept more easily and improve the thinking ability.

도 1은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록에 기반한 로봇 시스템을 도시한 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록을 도시한 도면이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 바블록을 도시한 도면이다.
도 4는 본 발명의 바람직한 일 실시예에 따른 로봇블록을 도시한 도면이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 로봇을 도시한 도면이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록에 기반한 로봇 시스템의 통신 프로토콜을 도시한 플로우차트이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 순차를 설명하기 위한 도면이다.
도 8은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 순차를 예시한 도면이다.
도 9는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 반복을 설명하기 위한 도면이다.
도 10은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 반복을 예시한 도면이다.
도 11은 도 10에 도시된 텐저블 프로그래밍 블록의 반복 프로토콜을 도시한 플로우차트이다.
도 12는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 조건을 설명하기 위한 도면이다.
도 13은 블록의 스위치를 1개 사용해서 조건을 설정한 모습을 도시한 도면이다.
도 14는 블록의 스위치를 2개 사용해서 조건을 설정한 모습을 도시한 도면이다.
도 15는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 매개변수를 설명하기 위한 도면이다.
도 16은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 매개변수를 예시한 도면이다.
도 17은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 함수를 설명하기 위한 도면이다.
도 18은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 함수를 예시한 도면이다.
도 19는 도 18에 도시된 텐저블 프로그래밍 블록의 함수 프로토콜을 도시한 플로우차트이다.
1 is a diagram illustrating a robot system based on a tunable programming block according to an exemplary embodiment of the present invention.
2 illustrates a tunable programming block according to an exemplary embodiment of the present invention.
3 is a diagram illustrating a bar block according to an exemplary embodiment of the present invention.
Figure 4 is a view showing a robot block according to an embodiment of the present invention.
5 is a view showing a robot according to an embodiment of the present invention.
6 is a flowchart illustrating a communication protocol of a robot system based on a tunable programming block according to an embodiment of the present invention.
FIG. 7 is a diagram for describing a sequence of a tunable programming block according to an exemplary embodiment of the present invention.
8 is a diagram illustrating a sequence of a tunable programming block according to an exemplary embodiment of the present invention.
9 is a diagram for describing repetition of a tunable programming block according to an exemplary embodiment of the present invention.
10 is a diagram illustrating repetition of a tunable programming block according to an embodiment of the present invention.
FIG. 11 is a flowchart illustrating an iterative protocol of the tunable programming block shown in FIG. 10.
12 is a view for explaining a condition of a tentable programming block according to an exemplary embodiment of the present invention.
Fig. 13 is a diagram showing a condition in which a condition is set using one switch of the block.
Fig. 14 is a view showing a condition in which two switches of a block are set.
FIG. 15 is a diagram for explaining parameters of a tunable programming block according to an exemplary embodiment of the present invention.
16 is a diagram illustrating parameters of a tunable programming block according to an exemplary embodiment of the present invention.
17 is a view for explaining a function of a tunable programming block according to an embodiment of the present invention.
18 illustrates a function of a tunable programming block in accordance with one preferred embodiment of the present invention.
FIG. 19 is a flowchart illustrating a functional protocol of the tunable programming block shown in FIG. 18.

도 1은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록에 기반한 로봇 시스템을 도시한 도면이다.1 is a diagram illustrating a robot system based on a tunable programming block according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명은 복수의 조합으로 명령을 구성하는 텐저블 프로그래밍 블록(100), 상기 텐저블 프로그래밍 블록(100)의 좌측에 연결되어 상기 텐저블 프로그래밍 블록(100)을 행을 바꾸어 연결하기 위한 바블록(200), 상기 바블록(200)과 연결되어 상기 텐저블 프로그래밍 블록(100)으로 조합되는 명령을 조합하여 전달하는 로봇블록(300), 및 상기 로봇블록(300)과 연결되어 상기 텐저블 프로그래밍 블록(100)의 조합으로 구성되는 명령을 전달받아 수행하는 로봇(400)을 포함한다.Referring to FIG. 1, the present invention may be connected to a left side of the tentable programming block 100 and a tentable programming block 100 that constitute an instruction in a plurality of combinations. Bar block 200 for connecting, the robot block 300 is connected to the bar block 200 and combined to transfer the combined command to the tunable programming block 100, and the robot block 300 is connected And a robot 400 that receives and executes a command composed of a combination of the tentable programming blocks 100.

상기 텐저블 프로그래밍 블록(100)은 전진, 후진, 좌회전, 우회전의 명령을 저장하는 명령어블록(101), 함수를 정의하는 함수정의블록(104), 정의된 함수를 호출하는 함수호출블록(105), 반복시작을 표시하는 반복시작블록(106), 및 반복종료를 표시하는 반복끝블록(107)을 포함한다.The tentable programming block 100 includes an instruction block 101 for storing a forward, backward, left turn, and right turn instruction, a function definition block 104 for defining a function, and a function call block 105 for calling a defined function. A repeat start block 106 indicating a repeat start, and a repeat end block 107 indicating a repeat end.

상기 명령어블록(101)은 상기 로봇(400)이 아무런 조건 없이 전진, 후진, 좌회전, 우회전을 수행하도록 명령하는 일반블록(102), 및 제1 내지 제3 스위치를 제어하여 조건을 설정하고 조건에 따라 행동을 명령하는 센서블록(103)을 포함한다.The command block 101 controls the general block 102 to command the robot 400 to perform forward, backward, left turn, and right turn without any condition, and sets the conditions by controlling the first to third switches. And a sensor block 103 for instructing an action accordingly.

상기 일반블록(102)은 초록색으로 표시되고, 센서블록(103)은 파란색으로 표시된다. 상기 함수정의블록(104)과 함수호출블록(105)은 노란색으로 표시되고, 반복시작블록(106)과 반복끝블록(107)은 보라색으로 표시된다. 상기 바블록(200)은 남색으로 표시되고, 로봇블록(300)은 주황색으로 표시된다. 이렇게 각 블록의 색깔을 달리 정함으로써 블록의 구별을 보다 용이하게 할 수 있다.The general block 102 is displayed in green, and the sensor block 103 is displayed in blue. The function definition block 104 and the function call block 105 are displayed in yellow, and the repeat start block 106 and the repeat end block 107 are displayed in purple. The bar block 200 is displayed in indigo blue, and the robot block 300 is displayed in orange. By differently setting the color of each block, it is easier to distinguish the blocks.

상기 텐저블 프로그래밍 블록(100)은 각 블록마다 고유의 명령을 저장하고 있으며, 이러한 명령은 블록 케이스의 상면에 간단한 도형이나 모양으로 도식화되어 사용자가 직관적으로 인식할 수 있도록 한다. 예를 들어, 상기 명령어블록(101) 케이스의 상면에는 화살표가 도식화되어 상기 로봇(400)이 움직이는 경로를 사용자가 직관적으로 인식할 수 있도록 한다.The tentable programming block 100 stores unique instructions for each block, and these instructions are illustrated in a simple figure or shape on the upper surface of the block case so that the user can intuitively recognize the instructions. For example, an arrow is plotted on the upper surface of the case of the command block 101 so that the user can intuitively recognize the path in which the robot 400 moves.

각각의 텐저블 프로그래밍 블록(100)은 좌우 방향 또는 상하 방향으로 조합되어 일정한 명령을 생성한다. 좌우 방향에 배치된 상기 텐저블 프로그래밍 블록(100)은 블록의 좌측에 형성된 연결단자(110)와 우측에 형성된 소켓(111)이 상호 결합되어 연결된다. 상하 방향에 배치된 상기 텐저블 프로그래밍 블록(100)은 각 블록이 조합된 행의 가장 좌측에 연결된 바블록(200)의 상하 방향으로 형성된 연결단자(220)와 소켓(221)의 결합에 의하여 연결된다. 또한, 동일한 명령을 수회 수행하는 경우에 텐저블 프로그래밍 블록(100)의 상부에 형성된 확장단자(112)에 블록의 하부에 형성된 확장소켓(미도시)을 결합시켜 적층할 수 있다. 이와 같이 동일한 명령을 저장하고 있는 복수의 텐저블 프로그래밍 블록(100)을 결합시켜 적층함으로써 동일한 명령이 수회 수행되도록 할 수 있다.Each of the tensable programming blocks 100 is combined in a left and right direction or an up and down direction to generate a constant command. The tentable programming block 100 disposed in the left and right directions is connected to each other by a connection terminal 110 formed at the left side of the block and a socket 111 formed at the right side thereof. The tentable programming block 100 arranged in the up and down direction is connected by coupling the connection terminal 220 formed in the up and down direction of the bar block 200 connected to the leftmost side of the row where each block is combined with the socket 221. do. In addition, when the same instruction is executed several times, the expansion socket 112 formed at the upper portion of the tentable programming block 100 may be coupled to the expansion socket (not shown) formed at the lower portion of the block. As such, the same instruction may be executed several times by combining and stacking a plurality of tensable programming blocks 100 that store the same instruction.

상기 바블록(200)은 좌우 방향으로 연결된 상기 텐저블 프로그래밍 블록(100)의 명령을 조합하여 상기 로봇블록(300)으로 전달한다. 바람직하게는 상기 바블록(200)은 상기 텐저블 프로그래밍 블록(100)이 조합된 각 블록의 좌측에 연결된다. 각 행에 연결된 바블록(200)은 블록의 상방으로 형성된 연결단자(220)와 하방으로 형성된 소켓(221)을 상호 연결하여 결합된다. 이를 통하여 순차적으로 각 행의 바블록(200)에 연결된 텐저블 프로그래밍 블록(100)에 저장된 명령이 상기 로봇블록(300)으로 전달될 수 있다.The bar block 200 combines the commands of the tentable programming block 100 connected in the left and right directions and transmits the commands to the robot block 300. Preferably, the bar block 200 is connected to the left side of each block in which the tentable programming block 100 is combined. The bar blocks 200 connected to each row are connected to each other by connecting the connection terminal 220 formed upward of the block and the socket 221 formed downward. Through this, the commands stored in the tunable programming block 100 connected to the bar blocks 200 in each row may be sequentially transmitted to the robot block 300.

상기 로봇블록(300)은 상기 텐저블 프로그래밍 블록(100)의 명령을 각 행마다 순차적으로 조합하여 상기 로봇(400)으로 전달한다. 즉, 상기 텐저블 프로그래밍 블록(100) 1행의 명령 조합, 2행의 명령 조합, 3행의 명령 조합의 순서로 명령을 조합하여 이를 중간코드로 변환한 뒤 이를 상기 로봇(400)으로 전송한다.The robot block 300 sequentially transmits the instructions of the tunable programming block 100 to each of the rows to the robot 400. That is, the instructions are combined in the order of the command combination of one line, the command combination of two lines, and the command combination of three lines of the tentable programming block 100, and then converted into an intermediate code and transmitted to the robot 400. .

상기 로봇(400)은 상기 로봇블록(300)과 연결되어 상기 로봇블록(300)으로부터 전송되는 명령의 조합에 따라 동작한다. 상기 로봇(400)의 양측면에는 바퀴가 형성되고 상기 바퀴는 스텝모터로 구동되어 상기 명령의 조합을 오차 없이 수행할 수 있다.The robot 400 is connected to the robot block 300 and operates according to a combination of commands transmitted from the robot block 300. Wheels are formed on both sides of the robot 400 and the wheels are driven by a step motor to perform a combination of the commands without error.

예를 들어, 도 1과 같이 구성된 텐저블 프로그래밍 블록(100)은 우회전, 3회 전진, 좌회전, 전진, 제2 센서 좌회전, 제1 센서 전진, 우회전의 명령어 조합이다.For example, the tentable programming block 100 configured as shown in FIG. 1 is a command combination of a right turn, three forwards, a left turn, a forward, a second sensor left turn, a first sensor forward, and a right turn.

이를 실행시키는 경우 상기 로봇(400)은 먼저 우회전하고, 3블록 전진한 뒤, 좌회전을 수행한다. 좌회전한 후 1블록 전진한 다음 로봇(400)에 형성된 제2 적외선 센서(도 5의 420B 참조)가 검은 선을 인식할 때까지 좌회전한다. 마지막으로 로봇(400)에 형성된 제1 적외선 센서(도 5의 420A 참조)가 검은 선을 인식할 때까지 전진한 후, 우회전한다. 상기 1블록은 로봇(400)의 크기를 고려하여 약 15cm 정도의 길이로 미리 설정될 수 있다.In this case, the robot 400 first turns right, moves three blocks forward, and then performs a left turn. After turning left one block forward, the second infrared sensor (see 420B of FIG. 5) formed in the robot 400 rotates left until a black line is recognized. Finally, the first infrared sensor (see 420A of FIG. 5) formed in the robot 400 advances until it recognizes a black line, and then turns right. The one block may be preset to a length of about 15 cm in consideration of the size of the robot 400.

상기 센서 좌회전블록과 센서 전진블록과 같은 센서블록(103)에 관하여는 아래 도 2를 참조하여 보다 상세히 설명한다.
The sensor block 103 such as the sensor left turn block and the sensor forward block will be described in more detail with reference to FIG. 2 below.

도 2는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록을 도시한 도면이다.2 illustrates a tunable programming block according to an exemplary embodiment of the present invention.

도 2를 참조하면, 텐저블 프로그래밍 블록(100)은 왼쪽에서 오른쪽으로 순차적으로 연결될 수 있다. 좌우측에 위치한 블록을 상호 연결하기 위하여 상기 블록의 좌측에는 연결단자(110)가 우측에는 소켓(111)이 형성될 수 있다. 상기 연결단자(110)와 소켓(111)을 서로 끼워 좌우측에 위치한 블록이 상호 연결될 수 있다. 로봇에 명령을 입력하기 위하여 연결된 텐저블 프로그래밍 블록의 길이가 과도하게 늘어나는 것을 방지하기 위하여 사용자는 가로방향으로 일정 수의 텐저블 프로그래밍 블록(100)을 배치하고, 이어서 다음 행에 텐저블 프로그래밍 블록(100)을 배치함으로써 블록의 배치 공간을 보다 효율적으로 사용할 수 있다.Referring to FIG. 2, the tentable programming block 100 may be sequentially connected from left to right. In order to interconnect the blocks located on the left and right sides, a connection terminal 110 may be formed on the left side of the block and a socket 111 on the right side. Blocks located on the left and right sides may be connected to each other by sandwiching the connection terminal 110 and the socket 111. In order to prevent the length of the connected tensable programming blocks from being excessively extended in order to input a command to the robot, the user places a predetermined number of tensable programming blocks 100 in the horizontal direction, and then in the next row, the tensable programming blocks ( By arranging 100), an arrangement space of blocks can be used more efficiently.

상기 텐저블 프로그래밍 블록(100)은 낮은 연령의 학생들도 조립하거나 다룰 수 있도록, 가로, 세로 4cm, 높이 2cm 정도의 다루기 쉬운 크기로 형성될 수 있다. 앞서 살펴본 바와 같이 블록은 좌측의 소켓(111)과 우측의 연결단자(100)가 서로 삽입되어 연결될 수 있으며, 상부의 확장단자(112)와 하부의 확장소켓(미도시)이 서로 삽입되어 연결될 수 있다. 이처럼 블록은 수평뿐만 아니라 수직 방향으로도 연결될 수 있다.The tentable programming block 100 may be formed in a manageable size of about 4cm in width and 2cm in height so that even low-age students can be assembled or handled. As described above, the block may be connected to each other by inserting the socket 111 on the left side and the connection terminal 100 on the right side, and the expansion terminal 112 on the upper side and the expansion socket (not shown) on the lower side may be connected to each other. have. As such, the blocks can be connected not only horizontally but also vertically.

또한, 상기 텐저블 프로그래밍 블록(100)에는 전원, 에러를 확인할 수 있도록 작동램프(130)가 형성된다. 또한 도 1에 도시된 바와 같이 외부 케이스에는 화살표로 전진, 우회전, 좌회전, 후진을 표시하여 어린 학생들도 로봇 명령어를 직관적으로 인식할 수 있도록 한다.In addition, the tunable programming block 100 is provided with an operation lamp 130 so as to check the power supply and the error. In addition, as shown in FIG. 1, the outer case displays forward, right turn, left turn, and backward with an arrow so that young students can intuitively recognize the robot command.

한편, 상기 텐저블 프로그래밍 블록(100)은 하나의 PCB로 형성될 수 있으며 PCB의 하면에 형성되는 MCU(140), 4개의 UART 포트(150) 등이 PCB 상에 구현될 수 있다. Meanwhile, the tentable programming block 100 may be formed of one PCB, and the MCU 140, four UART ports 150, and the like formed on the bottom surface of the PCB may be implemented on the PCB.

상기 MCU로는 Atiny2313이 사용될 수 있으며, MCU로 사용되는 상기 Atiny2313는 고유한 로봇 명령어를 내장하고 있다. 상기 MCU는 C언어를 사용하여 다른 블록과의 통신, 스위치, 센서램프, 및 작동램프를 제어한다. 보다 상세히, 상기 MCU는 좌, 우, 상, 하에 형성된 4개의 UART포트를 제어하여 다른 블록과 데이터를 송수신할 수 있으며, 스위치를 통한 입력을 감지하여 센서램프의 출력을 제어할 수 있다.Atiny2313 may be used as the MCU, and the Atiny2313 used as the MCU has a unique robot command. The MCU uses the C language to control communication with other blocks, switches, sensor lamps, and operation lamps. In more detail, the MCU can control the four UART ports formed at the left, right, up, and down to transmit and receive data with other blocks, and control the output of the sensor lamp by sensing an input through a switch.

UART 통신은 좌, 우, 상, 하에 결합된 블록들과 통신하기 위해서 양방향(Rx, Tx) 소프트웨어 UART로 4포트를 형성한다. 4포트는 연결단자(110), 소켓(111), 확장단자(112), 확장소켓(미도시)과 각 연결된다. 상기 4포트의 각 포트에는 전원 2핀, 양방향 UART 통신을 위한 2핀을 포함한 총 4핀이 사용된다. 각 블록은 상기 UART 포트를 통하여 로봇과 통신을 수행하고, 로봇에 내장된 12V의 직류전원으로부터 전원을 공급받아 동작한다.UART communication forms four ports with bidirectional (Rx, Tx) software UARTs to communicate with blocks that are combined left, right, top, and bottom. Four ports are connected to the connection terminal 110, the socket 111, expansion terminal 112, expansion socket (not shown), respectively. Each of the four ports uses a total of four pins, including two pins for power and two pins for bidirectional UART communication. Each block communicates with the robot through the UART port and operates by receiving power from a DC power supply of 12V embedded in the robot.

한편, 상기 텐저블 프로그래밍 블록(100)은 센서블록(103)일 수 있다. 상기 센서블록(103)에는 앞, 좌, 우에 제1 내지 제3 스위치(120A, 120B, 120C)가 형성된다. 각각의 스위치는 매칭 되는 상기 로봇(400)에 형성되는 제1 내지 제3 적외선 센서(420A, 420B, 420C)를 제어한다. 상기 제1 내지 제3 스위치 중 하나 이상을 작동시키면 각 스위치의 주변에 형성된 제1 내지 제3 센서램프(121A, 121B, 121C)가 점등되어 스위치(120)의 작동 상태를 표시한다.The tentable programming block 100 may be a sensor block 103. The first and third switches 120A, 120B, and 120C are formed at the front, left, and right sides of the sensor block 103. Each switch controls the first to third infrared sensors 420A, 420B, and 420C formed on the matching robot 400. When one or more of the first to third switches are operated, the first to third sensor lamps 121A, 121B, and 121C formed around the switches are turned on to indicate an operation state of the switch 120.

상기 로봇(400)의 앞, 좌, 우에 형성된 세 개의 적외선 센서(420A, 420B, 420C)는 상기 로봇(400)이 진행하는 도중 검은 선을 감지하고, 상기 적외선 센서(420)가 검은 선을 감지하는 경우 상기 텐저블 프로그래밍 블록(100)에 저장된 명령을 실행하도록 프로그램될 수 있다. 사용자는 상기 제1 내지 제3 스위치(120A, 120B, 120C)를 조작하여 상기 제1 내지 제3 적외선 센서(420A, 420B, 420C) 중 작동시키고자 하는 적외선 센서를 하나 이상 선택할 수 있다. 일반블록(102)은 1블록 전진, 1블록 후진, 90도 회전만을 명령할 수 있으나, 센서블록(103)을 사용하면 여러 블록 전진이나 후진, 40도, 50도 회전 등과 같이 로봇(400)에 다양한 움직임을 명령할 수 있다.Three infrared sensors 420A, 420B, and 420C formed in front, left, and right of the robot 400 detect black lines while the robot 400 is in progress, and the infrared sensor 420 detects black lines. In this case, it may be programmed to execute an instruction stored in the tentable programming block 100. A user may select one or more infrared sensors to operate among the first to third infrared sensors 420A, 420B, and 420C by manipulating the first to third switches 120A, 120B, and 120C. The general block 102 may command only one block forward, one block backward, and 90 degree rotation. However, when the sensor block 103 is used, the general block 102 may be moved to the robot 400 such as several blocks forward or backward, 40 degree, 50 degree rotation, and the like. Command various movements.

상기 제1 내지 제3 스위치(120A, 120B, 120C)와 제1 내지 제3 센서램프(121A, 121B, 121C)는 상기 센서블록(103)의 PCB 상의 앞, 좌, 우에 각각 형성되어 상기 스위치 및 센서램프가 상기 로봇(400)의 제1 내지 제3 적외선 센서(420A, 420B, 420C) 중 어떤 적외선 센서를 제어하는지 직관적으로 인식할 수 있도록 한다. 만약 사용자가 상기 센서블록(103)을 명령어 조합에 사용하면서도 제1 내지 제3 스위치(120A, 120B, 120C) 중 어느 하나를 작동시키지 않을 경우 상기 센서블록(103)의 하단부에 형성된 작동램프(130)에 에러 표시가 점등된다.
The first to third switches 120A, 120B and 120C and the first to third sensor lamps 121A, 121B and 121C are respectively formed on the front, left and right sides of the PCB of the sensor block 103 so that the switches and The sensor lamp can intuitively recognize which infrared sensor of the first to third infrared sensors 420A, 420B, and 420C of the robot 400 controls. If the user does not operate any of the first to third switches (120A, 120B, 120C) while using the sensor block 103 in the command combination, the operation lamp 130 formed on the lower end of the sensor block 103 ) Is displayed.

도 3은 본 발명의 바람직한 일 실시예에 따른 바블록을 도시한 도면이다.3 is a diagram illustrating a bar block according to an exemplary embodiment of the present invention.

도 3을 참조하면, 본 발명의 바블록(200)은 육면체의 외관을 형성하고, 상기 본체 내부에는 전원, 에러를 표시하는 작동램프(210)가 형성되며, 케이스의 좌측으로 돌출된 연결단자(220)가 형성된다. 또한, 케이스의 상측과 우측으로 돌출된 제1 내지 제2 소켓(221A, 221B)이 형성된다.Referring to FIG. 3, the bar block 200 of the present invention forms an exterior of a cube, and an operation lamp 210 indicating power and an error is formed inside the main body, and a connection terminal protruding to the left side of the case ( 220 is formed. In addition, first to second sockets 221A and 221B protruding from the upper side and the right side of the case are formed.

상기 연결단자(220)는 다른 바블록(200)이나 로봇블록(300)의 소켓과 연결되어 상기 텐저블 프로그래밍 블록(100)의 조합을 통하여 도출되는 명령을 상기 로봇블록(300)으로 전달하는 경로를 제공한다. 한편 제1 소켓(221A)은 횡으로 배열된 상기 텐저블 프로그래밍 블록(100)의 연결단자(110)와 연결되어 텐저블 프로그래밍 블록으로부터 명령을 수신한다. 나머지 제2 소켓(221B)은 하위 행의 첫단에 형성되는 바블록(200)의 연결단자(220)와 상호 연결되어 하위 행을 구성하는 상기 텐저블 프로그래밍 블록(100)으로부터 명령을 수신한다. 최하행을 형성하는 바블록(200)의 경우 상기 제2 소켓(221B)에는 아무런 블록이 연결되지 않는다. 이와 같이 상기 바블록(200)은 세 방향으로 블록을 이어나갈 수 있어 행을 바꾸어 주는 기능을 수행함으로써 명령어가 한 줄로 길어질 경우 있을 수 있는 공간적 제약을 감소시킨다.
The connection terminal 220 is connected to the socket of the other bar block 200 or the robot block 300 to transfer a command derived through the combination of the tentable programming block 100 to the robot block 300. To provide. Meanwhile, the first socket 221A is connected to the connection terminal 110 of the tentable programming block 100 arranged laterally to receive a command from the tentable programming block. The other second socket 221B is connected to the connection terminal 220 of the bar block 200 formed at the first end of the lower row, and receives a command from the tunable programming block 100 constituting the lower row. In the case of the bar block 200 forming the lowest row, no block is connected to the second socket 221B. As described above, the bar block 200 can continue blocks in three directions, thereby changing rows, thereby reducing the space constraint that may occur when an instruction is lengthened by one line.

도 4는 본 발명의 바람직한 일 실시예에 따른 로봇블록을 도시한 도면이다.Figure 4 is a view showing a robot block according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 로봇블록(300)은 전원, 에러를 표시하는 작동램프(310), 상기 텐저블 프로그래밍 블록(100)의 조합으로 이루어지는 명령을 수신하여 이를 상기 로봇(400)으로 전달하기 위한 제어신호를 생성하는 전송스위치(320), 상기 전송스위치(320)의 작동상태를 외부로 출력하는 전송램프(330), 양방향으로 돌출되어 상기 바블록(200)과 연결되는 제1 소켓(340A) 및 로봇(400)과 연결되는 제2 소켓(340B)을 포함한다. Referring to FIG. 4, the robot block 300 of the present invention receives a command consisting of a combination of an operation lamp 310 for displaying power and an error and the tentable programming block 100, and sends the command to the robot 400. Transmission switch 320 for generating a control signal for transmission, the transmission lamp 330 for outputting the operating state of the transmission switch 320 to the outside, protruding in both directions, the first socket connected to the bar block 200 340A and a second socket 340B connected to the robot 400.

상기 로봇블록(300)은 상단의 전송스위치(320)가 작동될 경우 상기 로봇블록(300)에 연결되어 있는 상기 텐저블 프로그래밍 블록(100)들을 순서대로 배열하여 저장하며, 로봇의 펌웨어를 통해 저장된 명령을 로봇을 움직이는 명령어인 중간코드로 변환하여 로봇에 전송한다.
The robot block 300 arranges and stores the tentable programming blocks 100 connected to the robot block 300 in order when the transfer switch 320 at the top is operated, and is stored through firmware of the robot. The command is converted into an intermediate code, which is a moving command, and transmitted to the robot.

도 5는 본 발명의 바람직한 일 실시예에 따른 로봇을 도시한 도면이다.5 is a view showing a robot according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 로봇(400)은 상기 로봇블록(300)과 유선으로 연결되어 상기 로봇블록(300)으로부터 전달되는 명령어 조합을 수행한다. 상기 로봇(400)은 라인트레이서와 유사한 형태로서 두 개의 바퀴(410)를 스태핑(steping) 모터를 사용하여 구동함으로써 정확한 거리와 각도를 이동할 수 있다. 상기 로봇(400)의 앞, 좌, 우 세 곳에는 제1 내지 제3 적외선 센서(420A, 420B, 420C)가 형성된다. 상기 적외선 센서(420)는 이동하는 과정에서 상기 로봇(400)이 검은 선에 닿았는지 여부를 판별한다. 상기 로봇에는 12V의 직류전원(미도시)이 내장되어 있으며, 상기 직류전원은 로봇(400)의 구동전력뿐만 아니라 연결된 블록이 동작하는데 필요한 전원을 공급한다.Referring to FIG. 5, the robot 400 of the present invention is connected to the robot block 300 by wire and performs a command combination transmitted from the robot block 300. The robot 400 is similar in shape to a line tracer, and drives two wheels 410 by using a stepping motor to move an accurate distance and angle. First, third, and third infrared sensors 420A, 420B, and 420C are formed at the front, left, and right of the robot 400. The infrared sensor 420 determines whether the robot 400 has touched a black line while moving. The robot has a built-in 12V DC power supply (not shown), the DC power supply not only the driving power of the robot 400 but also the power required to operate the connected block.

보다 상세히, 상기 로봇과 연결된 텐저블 프로그래밍 블록(100) 중 센서블록(103)이 포함되어 있고 상기 센서블록(103)의 제1 내지 제3 스위치(120A, 120B, 120C) 중 어느 하나 이상의 스위치를 작동시켜 제1 내지 제3 적외선 센서(420A, 420B, 420C)를 작동시키는 경우 상기 적외선 센서(420)는 상기 로봇(400)이 이동하는 과정에서 검정 선에 닿았는지 여부를 판별하게 된다. 상기 적외선 센서(420)가 검은 선을 인식할 경우 상기 블록에 저장되어 있는 명령을 수행하게 된다.
In more detail, the sensor block 103 is included in the tunable programming block 100 connected to the robot, and any one or more of the first to third switches 120A, 120B, and 120C of the sensor block 103 are included. When operating the first to third infrared sensors 420A, 420B, and 420C, the infrared sensor 420 determines whether the black line touches the black line while the robot 400 moves. When the infrared sensor 420 recognizes the black line, the infrared sensor 420 performs a command stored in the block.

도 6은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록에 기반한 로봇 시스템의 통신 프로토콜을 도시한 플로우차트이다.6 is a flowchart illustrating a communication protocol of a robot system based on a tunable programming block according to an embodiment of the present invention.

상기 로봇블록(300)의 전송스위치(320)가 작동하면 상기 로봇블록(300)은 연결된 바블록(200)으로부터 첫 행에 연결되어 있는 텐저블 프로그래밍 블록(100)의 명령을 수신한다. 이를 보다 구체적으로 살펴보면 아래와 같다.When the transfer switch 320 of the robot block 300 is operated, the robot block 300 receives a command of the tunable programming block 100 connected to the first row from the connected bar block 200. Looking at this in more detail as follows.

도 6은 전진블록과 제1 적외선 센서(402A)가 작동하는 전진블록이 연결된 경우에 있어서 로봇의 통신 프로토콜을 예시한 플로우차트이다.FIG. 6 is a flowchart illustrating a communication protocol of the robot when the forward block and the forward block on which the first infrared sensor 402A operates are connected.

본 실시예를 기초로 로봇(400)이 명령을 수신하는 단계를 차례로 살펴보면 다음과 같다. 먼저, 상기 전송스위치(320)가 작동하면 로봇블록(300)은 첫 행의 바블록(200)으로 실행명령(takecommand)을 전송한다(S100). 상기 로봇블록(300)과 바블록(200)이 연결되어 있으면 상기 로봇블록(300)은 상기 바블록(200)으로부터 대기명령(waitcommand)을 수신 받는다(S110). 상기 바블록(200)은 제1 소켓(221A)에 연결된 전진블록으로 실행명령을 전송한다(S120). 실행명령을 수신한 전진블록은 상기 바블록(200)으로 대기명령을 전송한다(S130). 상기 전진블록은 제1 센서 전진블록으로 실행명령을 전송한다(S140). 상기 제1 센서 전진블록은 상기 전진블록으로 대기명령을 전송한다(S150). 그 후 상기 제1 센서 전진블록은 자신의 블록에 저장된 명령인 로봇(400)의 제1 적외선 센서(420A)가 검은 선을 인식할 때까지 전진하라는 명령의 데이터를 상기 전진블록으로 전송한다(S160). 이때의 데이터는 (1,f)라고 표현되며, 1은 작동하는 센서의 번호를 f는 전진(Forward)의 약자를 의미한다. 데이터의 전송이 완료되면 상기 제1 센서 전진블록은 상기 전진블록으로 종료명령(endcommand)을 전송한다(S170). 상기 제1 센서 전진블록으로부터 종료명령을 수신한 상기 전진블록은 수신한 데이터에 자신의 블록에 저장된 명령을 더하여 이를 상기 바블록(200)으로 전송한다(S180). 이때의 데이터는 (F, 1, f)로 표현되며, F는 전진명령을, 1과 f는 앞서 살펴본 바와 같이 제1 적외선 센서(420A)가 검은 선을 인식할 때까지 전진하라는 명령을 의미한다. 데이터의 전송이 완료되면 상기 전진블록은 상기 바블록(200)으로 종료명령을 전송한다(S190). 상기 전진블록으로부터 종료명령을 수신한 상기 바블록(200)은 상기 전진블록으로부터 수신한 데이터를 상기 로봇블록(300)으로 전송한다(S200). 데이터의 전송이 완료되면 상기 바블록(200)은 상기 로봇블록(300)으로 종료명령을 전송한다(S210).Looking at the step in which the robot 400 receives a command based on the present embodiment in order as follows. First, when the transfer switch 320 is operated, the robot block 300 transmits a take command to the bar block 200 of the first row (S100). When the robot block 300 and the bar block 200 are connected, the robot block 300 receives a wait command from the bar block 200 (S110). The bar block 200 transmits an execution command to a forward block connected to the first socket 221A (S120). The forward block receiving the execution command transmits a standby command to the bar block 200 (S130). The forward block transmits an execution command to the first sensor forward block (S140). The first sensor forward block transmits a standby command to the forward block (S150). Thereafter, the first sensor forward block transmits data of a command to move forward until the first infrared sensor 420A of the robot 400, which is a command stored in its block, recognizes a black line (S160). ). The data at this time is expressed as (1, f), where 1 is the abbreviation of Forward for the number of sensors to be operated. When the transmission of the data is completed, the first sensor forward block transmits an end command to the forward block (S170). The forward block receiving the end command from the first sensor forward block adds a command stored in its block to the received data and transmits the command to the bar block 200 (S180). The data at this time is represented by (F, 1, f), F means a forward command, 1 and f means a command to move forward until the first infrared sensor 420A recognizes a black line as described above. . When data transmission is completed, the forward block transmits an end command to the bar block 200 (S190). The bar block 200 receiving the end command from the forward block transmits the data received from the forward block to the robot block 300 (S200). When the data transmission is completed, the bar block 200 transmits an end command to the robot block 300 (S210).

이를 일반화하면 상기 로봇블록(300)은 왼쪽에 연결되어 있는 바블록(200)을 모두 확인한 후 가장 위에 연결된 바블록(200)으로부터 아래 연결된 바블록(200) 순서로 순차적으로 데이터를 수신한다. 각 바블록(200)은 횡으로 연결된 텐저블 프로그래밍 블록(100) 중 가장 오른쪽에 위치한 블록으로부터 왼쪽에 연결된 블록의 순서로 데이터를 수신 받아 종합한다. 이러한 방법으로 첫 행부터 마지막 행까지 연결된 바블록(200)은 데이터를 종합하여 상기 로봇블록(300)으로 전송한다. 상기 로봇블록(300)은 상기 수신한 데이터를 저장하여 로봇(400)을 움직일 수 있는 중간코드로 변환한다. 변환된 중간코드는 상기 로봇(400)으로 전송된다. 상기 로봇(400)은 로봇블록(300)으로부터 전송받은 중간코드를 해석하여 적외선 센서(420)와 스태핑 모터를 동작시킨다.In general, the robot block 300 checks all of the bar blocks 200 connected to the left side, and sequentially receives data from the bar blocks 200 connected to the top in the order of the bar blocks 200 connected to the bottom. Each bar block 200 receives and aggregates data in the order of blocks connected to the left from the rightmost block among the laterally programmable tenable programming blocks 100. In this manner, the bar blocks 200 connected from the first row to the last row aggregate the data and transmit the combined data to the robot block 300. The robot block 300 stores the received data and converts the robot data into an intermediate code capable of moving the robot 400. The converted intermediate code is transmitted to the robot 400. The robot 400 analyzes the intermediate code received from the robot block 300 to operate the infrared sensor 420 and the stepping motor.

아래 표 1은 상기 로봇블록(300)이 상기 로봇(400)으로 전송하는 중간코드를 예시한 표이다.Table 1 below is a table illustrating an intermediate code transmitted by the robot block 300 to the robot 400.

블록block 블록데이터Block data 중간코드Intermediate code 전진Advance FF 9696 1One 00 201201 후진apse BB 9696 00 00 201201 좌회전turn left LL 9696 33 00 185185 우회전turn right RR 9696 44 00 185185 센서전진Sensor advance 센서번호, fSensor number, f 센서번호Sensor number 9797 1One 1One 9797 1One 00 센서후진Reverse sensor 센서번호, bSensor number, b 센서번호Sensor number 9797 00 1One 9797 00 00 센서좌회전Sensor left turn 센서번호, lSensor number, l 센서번호Sensor number 9797 22 1One 9797 22 00 센서우회전Right turn of sensor 센서번호, rSensor number, r 센서번호Sensor number 9797 33 1One 9797 33 00

위 표 1을 참조하면, 예를 들어 전진블록의 데이터인 F는 전진(Forward)의 약자로 로봇블록(300)에서 96, 1, 0, 201이란 중간코드로 변환되어 로봇으로 전송된다. 이외에 후진블록의 데이터인 B는 후진(Backward)의 약자로 로봇블록(300)에서 96, 0, 0, 201이란 중간코드로 변환되어 로봇(400)으로 전송된다. 좌회전블록의 데이터인 L은 좌회전(Lefe Turn)의 약자로 로봇블록(300)에서 96, 3, 0, 185란 중간코드로 변환되어 로봇(400)으로 전송된다. 우회전블록의 데이터인 R은 우회전(Right Turn)의 약자로 로봇블록(300)에서 96, 4, 0, 185란 중간코드로 변환되어 로봇(400)으로 전송된다. 센서전진블록의 데이터인 '센서번호, f'는 작동하는 센서번호와 전진(forward)의 약자를 의미하며 전진블록과의 구별을 위하여 소문자인 f를 사용한다. 센서전진은 상기 로봇블록(300)에서 센서번호, 97, 1, 1, 97, 1, 0이란 중간코드로 변환되어 로봇(400)으로 전송된다. 센서후진블록의 데이터인 '센서번호, b'는 작동하는 센서번호와 후진(backward)의 약자를 의미하며 후진블록과의 구별을 위하여 소문자인 b를 사용한다. 센서후진은 상기 로봇블록(300)에서 센서번호, 97, 0, 1, 97, 0, 0이란 중간코드로 변환되어 로봇(400)으로 전송된다. 센서좌회전블록의 데이터인 '센서번호, l'은 작동하는 센서번호와 좌회전(left turn)의 약자를 의미하며 좌회전블록과의 구별을 위하여 소문자인 l을 사용한다. 센서좌회전은 상기 로봇블록(300)에서 센서번호, 97, 2, 1, 97, 2, 0이란 중간코드로 변환되어 로봇(400)으로 전송된다. 센서우회전블록의 데이터인 '센서번호, r'은 작동하는 센서번호와 우회전(right turn)의 약자를 의미하며 우회전블록과의 구별을 위하여 소문자인 r을 사용한다. 센서우회전은 상기 로봇블록(300)에서 센서번호, 97, 3, 1, 97, 3, 0이란 중간코드로 변환되어 로봇(400)으로 전송된다.Referring to Table 1 above, for example, the F data of the forward block is an abbreviation of forward and is converted into intermediate codes 96, 1, 0, and 201 in the robot block 300 and transmitted to the robot. In addition, B, which is the data of the backward block, stands for backward (Backward) and is converted into an intermediate code of 96, 0, 0, 201 in the robot block 300 and transmitted to the robot 400. L, which is the data of the left turn block, is an abbreviation of left turn (Lefe Turn), and is converted into an intermediate code of 96, 3, 0, and 185 in the robot block 300 and transmitted to the robot 400. R, which is the data of the right turn block, is an abbreviation of right turn, and is converted into an intermediate code of 96, 4, 0, and 185 in the robot block 300 and transmitted to the robot 400. 'Sensor number, f', the data of the sensor forward block, stands for the operating sensor number and the forward (abbreviation), and the letter f is used to distinguish it from the forward block. Sensor advance is converted into the intermediate code of the sensor number, 97, 1, 1, 97, 1, 0 in the robot block 300 is transmitted to the robot 400. 'Sensor No., b', which is the data of the sensor backward block, means the working sensor number and the abbreviation of backward, and the letter b is used to distinguish it from the backward block. The sensor reverse is converted into the intermediate code of the sensor number, 97, 0, 1, 97, 0, 0 in the robot block 300 is transmitted to the robot 400. 'Sensor Number, l', which is the data of sensor left turn block, stands for sensor number and left turn, and it uses small letter l to distinguish it from left turn block. Sensor left turn is converted to the intermediate code of the sensor number, 97, 2, 1, 97, 2, 0 in the robot block 300 is transmitted to the robot 400. 'Sensor No., r', which is the data of sensor right turn block, stands for the operating sensor number and the right turn, and it uses lower case r to distinguish it from the right turn block. Sensor right turn is converted into the intermediate code of the sensor number, 97, 3, 1, 97, 3, 0 in the robot block 300 is transmitted to the robot 400.

상기 센서번호는 제1 센서가 작동할 경우에는 1, 제2 센서가 작동할 경우에는 2, 제3 센서가 작동할 경우에는 3, 제1 및 제2 센서가 작동할 경우에는 4, 제1 및 제3 센서가 작동할 경우에는 5, 제2 및 제3 센서가 작동할 경우에는 6, 제1, 제2 및 제3 센서가 작동할 경우에는 7로 표시될 수 있다.
The sensor number is 1 when the first sensor is operating, 2 when the second sensor is operating, 3 when the third sensor is operating, 4, first and 2 when the first and second sensors are operating. 5 when the third sensor is in operation, 6 when the second and third sensors are in operation, and 7 when the first, second, and third sensors are in operation.

한편, 텐저블 인터페이스는 프로그래밍에서 추상적으로 표현되는 순차(Sequence), 반복(Repeat), 조건(Condition), 변수(Variable), 매개변수(Parameter)와 같은 개념들을 구체적이고 직관적으로 인식할 수 있도록 설계된다. 프로그래밍에서 순차, 반복, 조건, 변수 등은 필수불가결한 요소이기는 하나 추상적인 개념으로 인하여 그 이해가 용이하지 않다. 그러나 본 발명의 텐저블 프로그래밍 블록에 기반한 로봇 시스템은 순차적이거나 반복적이고 조건에 의해 나눠지는 추상적인 개념을 물리적이고 쉽게 조작할 수 있는 형태로 제작되어 이를 제어하는 데 있어 추상적이거나 체계적인 사고과정은 요구되지 않는다. 따라서 사고력이 낮은 초등학생들조차도 본 발명의 블록을 이용하여 문제를 분석하고 해결하기 위한 알고리듬의 설계와 표현이 가능하다.On the other hand, the tentable interface is designed to recognize concepts such as sequence, repeat, condition, variable, and parameter that are abstractly expressed in programming. do. In programming, sequential, iterative, conditional, and variable are indispensable, but they are not easy to understand because of their abstract concepts. However, the robot system based on the tentable programming block of the present invention is manufactured in a form that can physically and easily manipulate abstract concepts that are sequential, repetitive, and conditional, so that an abstract or systematic thinking process is not required to control them. Do not. Therefore, even elementary school students with low thinking ability can design and express algorithms for analyzing and solving problems using the blocks of the present invention.

이하, 도면을 참조하여 순차(Sequence), 반복(Repeat), 조건(Condition), 변수(Variable), 매개변수(Parameter)에 대하여 차례로 설명하도록 하겠다.
Hereinafter, a sequence, a repeat, a condition, a variable, and a parameter will be described in order with reference to the drawings.

도 7은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 순차를 설명하기 위한 도면이다.FIG. 7 is a diagram for describing a sequence of a tunable programming block according to an exemplary embodiment of the present invention.

순차는 명령어블록(101)들을 순서대로 연결하여 순차적으로 명령어가 실행되는 순서를 말한다. 프로그래밍에서 작성된 코드의 절차적인 수행을 의미하고 순서도에서 흐름에 의한 순차적인 진행을 의미한다.Sequence refers to an order in which instructions are sequentially executed by connecting the instruction blocks 101 in order. It means the procedural execution of the code written in programming and the sequential progress by the flow in the flowchart.

도 7을 참조하면, 텐저블 프로그래밍 블록은 글을 쓰거나 읽는 순서와 같이 왼쪽에서 오른쪽으로 블록을 연결한다. 명령어가 많아져 블록이 길어질 수 있는 점을 고려하여 줄 바꿈을 하여 아랫줄로 확장할 수도 있다. 왼쪽에서 오른쪽으로, 윗줄에서 아랫줄로 글을 읽는 순서로 명령어가 순차적으로 실행되어 사용자가 실행되는 순서를 눈으로 쉽게 확인할 수 있다.
Referring to FIG. 7, the tentable programming block connects blocks from left to right in the order of writing or reading. You can also expand to the bottom line by breaking the line, taking into account the large number of instructions that can lengthen blocks. Commands are executed in order from the left to the right and the top to the bottom of the line, so you can easily see the order in which the users are executed.

도 8은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 순차를 예시한 도면이다.8 is a diagram illustrating a sequence of a tunable programming block according to an exemplary embodiment of the present invention.

도 8을 참조하면, 본 발명의 텐저블 프로그래밍 블록(100)은 연결단자(110)와 소켓(111)의 결합으로 명령어 조합을 형성하며, 왼쪽에서 오른쪽 방향으로 기록된 명령을 순차로 수행하게 된다.Referring to FIG. 8, the tentable programming block 100 of the present invention forms a command combination by combining the connection terminal 110 and the socket 111, and sequentially executes commands recorded in a left to right direction. .

예를 들어, 도 8에서 명령어블록(101)은 전진, 우회전, 좌회전을 수행하는 블록으로 구성되어 있다. 따라서 상기 명령어 조합을 실행시킬 경우 로봇(400)은 한 블록 전진한 후 우회전하고 다시 좌회전하게 된다. 각 명령어블록(101)에 저장된 명령어를 블록의 케이스에 화살표로 표현함으로써 사용자가 블록에 저장되어 있는 명령을 직관적으로 이해할 수 있도록 한다. 한편, 블록의 좌, 우로 다른 블록을 연결하여 명령어 조합을 확장할 수 있다. 횡 방향으로 확장이 어려울 경우 그 다음 라인에 이어서 블록을 조립하여 순차적인 명령을 수행하도록 할 수 있음은 앞서 살펴본 바와 같다.
For example, in FIG. 8, the command block 101 is composed of blocks that perform forward, right and left turns. Therefore, when the command combination is executed, the robot 400 rotates right after one block and rotates again. By expressing an instruction stored in each instruction block 101 as an arrow in a case of the block, a user can intuitively understand the instructions stored in the block. Meanwhile, a command combination can be extended by connecting other blocks to the left and right of the block. As described above, when it is difficult to expand in the lateral direction, the block may be assembled next to the next line to perform sequential commands.

도 9는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 반복을 설명하기 위한 도면이다.9 is a diagram for describing repetition of a tunable programming block according to an exemplary embodiment of the present invention.

도 9를 참조하면, 반복되는 패턴의 명령어블록(101)을 반복시작블록(106)과 반복끝블록(107) 사이에 넣고, 원하는 횟수만큼 반복을 수행한다.Referring to FIG. 9, an instruction block 101 of a repeating pattern is inserted between the repeat start block 106 and the repeat end block 107, and repeating is performed as many times as desired.

반복의 횟수는 아래 블록의 확장단자(112)에 블록의 확장소켓(미도시)을 끼워 반복시작블록(106)의 상부에 반복하고자 하는 횟수에 상응하는 수의 반복시작블록(106)을 적층함으로써 표현된다. 반복시작블록(106)을 쌓아 반복하고자 하는 횟수를 표현할 수 있기 때문에 쌓기를 통해 물리적인 환경에서 개수의 개념이나 비례의 개념을 이해할 수 있다. 이는 숫자에 대한 개념을 수로 표현하는 것이 아니라 눈에 보이고 구체적인 조작이 가능한 물리적인 형태로 표현한 것으로 사고력이 떨어지는 학생들조차도 반복의 의미를 직관적으로 이해할 수 있다.The number of repetitions is by stacking the number of repetition start blocks 106 corresponding to the number of repetitions to be repeated on the upper part of the repetition start block 106 by inserting an extension socket (not shown) of the block to the extension terminal 112 of the lower block. Is expressed. Since it is possible to express the number of times to repeat the repeat start block 106 by stacking it is possible to understand the concept of the number or the concept of proportion in the physical environment. This is not a numerical concept of numbers but a physical form that can be seen and concretely manipulated. Even students with low thinking can intuitively understand the meaning of repetition.

반복시작블록(106)은 우측의 블록을 탐색하기 이전에 먼저 적층되어 있는 반복시작블록(106)을 탐색하여 반복의 횟수를 파악한다. 그 다음 우측의 블록들을 탐색하여 반복시작블록(106)과 반복끝블록(107) 사이의 명령어블록(101)을 반복시작블록(106)이 적층된 횟수만큼 실행한다.
The repetition start block 106 searches for the repetition start block 106 stacked before the search for the block on the right to determine the number of repetitions. Then, the blocks on the right side are searched to execute the instruction block 101 between the repeat start block 106 and the repeat end block 107 as many times as the repeat start block 106 is stacked.

도 10은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 반복을 예시한 도면이다.10 is a diagram illustrating repetition of a tunable programming block according to an embodiment of the present invention.

도 10을 참조하면, 반복시작블록(106)이 1개 적층되어 있고, 반복시작블록(106)과 반복끝블록(107) 사이에 제1 센서 좌회전블록과 전진블록이 개재되어 있다. 따라서 본 발명의 텐저블 프로그래밍 블록(100)은 좌회전과 전진을 1회 반복하게 된다. 다만 좌회전의 경우 제1 센서램프(121A)가 켜져 있으므로 상기 로봇(400)에 형성된 제1 적외선 센서(420A)가 검은 선을 인식할 때까지 좌회전 한 후, 한 블록 전진하게 된다.
Referring to FIG. 10, one repeating start block 106 is stacked and a first sensor left turn block and a forward block are interposed between the repeat start block 106 and the repeat end block 107. Therefore, the tentable programming block 100 of the present invention repeats the left turn and the forward one time. However, in the case of the left turn, since the first sensor lamp 121A is turned on, the first infrared sensor 420A formed on the robot 400 rotates left until it recognizes a black line, and then moves forward one block.

도 11은 도 10에 도시된 텐저블 프로그래밍 블록의 반복 프로토콜을 도시한 플로우차트이다.FIG. 11 is a flowchart illustrating an iterative protocol of the tunable programming block shown in FIG. 10.

도 11을 참조하면, 로봇블록(300)의 전송스위치(320)가 작동하면, 상기 로봇블록(300)은 반복시작블록(106)으로 실행명령(takecommand)을 전송한다(S300). 상기 로봇블록(300)과 반복시작블록(106)이 연결되어 있으면 상기 로봇블록(300)은 상기 반복시작블록(106)으로부터 대기명령(waitcommand)을 수신 받는다(S310). 상기 반복시작블록(106)은 연결된 제1 센서 좌회전블록으로 실행명령을 전송한다(S320). 실행명령을 수신한 제1 센서 좌회전블록은 상기 반복시작블록(106)으로 대기명령을 전송한다(S330). 상기 제1 센서 좌회전블록은 전진블록으로 실행명령을 전송한다(S340). 상기 전진블록은 상기 제1 센서 좌회전블록으로 대기명령을 전송한다(S350). 상기 전진블록은 반복끝블록(107)으로 실행명령을 전송한다(S360). 실행명령을 수신한 상기 반복끝블록(107)은 상기 전진블록으로 대기명령을 전송한다(S370). 그 후 상기 반복끝블록(107)은 자신의 블록에 저장된 명령인 반복 끝 명령의 데이터를 상기 전진블록으로 전송한다(S380). 이때의 데이터는 (r)이라고 표현되며, r는 반복 끝(repeat end)의 약자를 의미한다. 데이터의 전송이 완료되면 상기 반복끝블록(107)은 상기 전진블록으로 종료명령(endcommand)을 전송한다(S390). 상기 반복끝블록(107)으로부터 종료명령을 수신한 상기 전진블록은 수신한 데이터에 자신의 블록에 저장된 명령을 더하여 이를 상기 제1 센서 좌회전블록으로 전송한다(S400). 이때의 데이터는 (F, r)로 표현되며, F는 전진명령을, r은 앞서 살펴본 바와 같이 반복 끝 명령을 의미한다. 데이터의 전송이 완료되면 상기 전진블록은 상기 제1 센서 좌회전블록으로 종료명령을 전송한다(S410). 상기 전진블록으로부터 종료명령을 수신한 상기 제1 센서 좌회전블록은 자신의 블록에 저장된 명령인 로봇(400)의 제1 적외선 센서(420A)가 검은 선을 인식할 때까지 좌회전하라는 명령의 데이터를 상기 반복시작블록(106)으로 전송한다(S420). 이때의 데이터는 (1, l, F, r)이라고 표현되며, 1은 작동하는 센서의 번호를 l은 좌회전의 약자를 의미한다. 데이터의 전송이 완료되면 상기 제1 센서 좌회전블록은 상기 반복시작블록(106)으로 종료명령을 전송한다(S430). 상기 제1 센서 좌회전블록으로부터 종료명령을 수신한 상기 반복시작블록(106)은 수신한 데이터에 자신의 블록에 저장된 명령을 더하여 이를 상기 로봇블록(300)으로 전송한다(S440). 이때의 데이터는 (R, 1, l, F, r)로 표현되며, R은 반복 시작 명령(Repeat start) 명령의 약자로 반복끝블록(107)과의 구별을 위하여 대문자로 표현된다. 데이터의 전송이 완료되면 상기 반복시작블록(106)은 상기 로봇블록(300)으로 종료명령을 전송한다(S450).
Referring to FIG. 11, when the transfer switch 320 of the robot block 300 operates, the robot block 300 transmits a take command to the repeat start block 106 (S300). When the robot block 300 and the repeat start block 106 are connected, the robot block 300 receives a wait command from the repeat start block 106 (S310). The repeat start block 106 transmits an execution command to the connected first sensor left turn block (S320). The first sensor left turn block receiving the execution command transmits a standby command to the repeat start block 106 (S330). The first sensor left turn block transmits an execution command to the forward block (S340). The forward block transmits a standby command to the first sensor left turn block (S350). The forward block transmits an execution command to the repeat end block 107 (S360). The repetition end block 107 receiving the execution command transmits a wait command to the forward block (S370). Thereafter, the repeating end block 107 transmits the data of the repeating end command, which is a command stored in its block, to the forward block (S380). The data at this time is expressed as (r), where r stands for repeat end. When the transmission of data is completed, the repetition end block 107 transmits an end command to the forward block (S390). The forward block receiving the end command from the repetition end block 107 adds the command stored in its block to the received data and transmits it to the first sensor left turn block (S400). The data at this time is represented by (F, r), where F is the forward command, r is the repeat end command as described above. When the transmission of data is completed, the forward block transmits an end command to the first sensor left turn block (S410). The first sensor left turn block receiving the end command from the forward block receives the data of the command to turn left until the first infrared sensor 420A of the robot 400, which is a command stored in its block, recognizes a black line. The repetition start block 106 is transmitted (S420). The data at this time is expressed as (1, l, F, r), where 1 is the number of sensors to operate and l is the abbreviation for left turn. When the transmission of data is completed, the first sensor left turn block transmits an end command to the repeat start block 106 (S430). The repeat start block 106 that receives the end command from the first sensor left turn block adds the command stored in its block to the received data and transmits it to the robot block 300 (S440). The data at this time is represented by (R, 1, 1, F, r), and R is an abbreviation of the repeat start command and is represented in capital letters to distinguish it from the repeat end block 107. When the transmission of data is completed, the repeat start block 106 transmits an end command to the robot block 300 (S450).

도 12는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 조건을 설명하기 위한 도면이다.12 is a view for explaining a condition of a tentable programming block according to an exemplary embodiment of the present invention.

도 12를 참조하면, 센서블록(103)에는 제1 내지 제3 스위치(120A, 120B, 120C)가 형성되고, 상기 제1 내지 제3 스위치(120A, 120B, 120C)의 주변에는 제1 내지 제3 센서램프(121A, 121B, 121C)가 형성된다. 상기 제1 내지 제3 스위치(120A, 120B, 120C)를 중 하나 이상을 온(ON)시키는 경우 상기 온 시킨 스위치에 대응하는 센서램프가 점등되어 스위치의 작동상태를 표시한다. 상기 제1 내지 제3 스위치(120A, 120B, 120C)와 제1 내지 제3 센서램프(121A, 121B, 121C)는 센서블록(103)의 앞, 좌, 우에 각각 형성되어 각 스위치와 센서램프가 로봇의 앞, 좌, 우에 형성된 제1 내지 제3 적외선 센서(420A, 420B, 420C)를 제어함을 직관적으로 알 수 있게 한다.Referring to FIG. 12, first to third switches 120A, 120B and 120C are formed in the sensor block 103, and the first to third switches are disposed around the first to third switches 120A, 120B and 120C. 3 sensor lamps 121A, 121B, 121C are formed. When one or more of the first to third switches 120A, 120B, and 120C are turned on, a sensor lamp corresponding to the turned on switch is turned on to indicate an operation state of the switch. The first to third switches 120A, 120B, and 120C and the first to third sensor lamps 121A, 121B, and 121C are formed at the front, left, and right sides of the sensor block 103, respectively. Intuitively controlling the first to third infrared sensors 420A, 420B, and 420C formed at the front, left, and right sides of the robot.

본 발명의 텐저블 프로그래밍 블록(100)에 있어서 조건 설정은 상기 로봇(400)의 앞, 좌, 우에 형성된 제1 내지 제3의 적외선 센서(420A, 420B, 420C)의 작동여부를 결정하는 것이다. 상기 제1 내지 제3 적외선 센서(420A, 420B, 420C) 중 하나 이상의 센서가 작동하도록 조건을 설정한 경우 작동하는 센서가 검은 선을 인식하는 경우 블록의 케이스에 표시된 명령을 실행한다. 사용자가 센서블록(103)에서 아무런 스위치도 작동시키지 않는 경우에는 작동램프(130)에 빨간색 에러 불이 들어오고 명령어를 전송하지 않는다. 사용자는 주어진 문제를 해결하기 위해서 세 개의 스위치(120)를 사용하여 여러 가지 조합의 센서블록(103)을 형성할 수 있다.In the tentable programming block 100 of the present invention, condition setting is to determine whether the first to third infrared sensors 420A, 420B, and 420C formed in front, left, and right of the robot 400 are operated. When a condition is set to operate one or more of the first to third infrared sensors 420A, 420B, and 420C, when the sensor to recognize the black line executes the command displayed on the case of the block. When the user does not operate any switch in the sensor block 103, the operation lamp 130 lights red and does not transmit a command. The user can form various combinations of sensor blocks 103 using three switches 120 to solve a given problem.

센서블록(103)의 종류에는 센서 전진블록, 센서 후진블록, 센서 우회전블록, 센서 좌회전블록이 있다. 센서블록(103)은 스위치(120)로 작동시킨 적외선 센서(420)가 검은 선을 인식할 때까지 전진, 우회전, 좌회전, 후진 등의 명령을 수행하도록 한다. 이처럼 본 발명의 텐저블 프로그래밍 블록(100)은 조건을 추상적으로 설정하는 것이 아니라 스위치를 작동시켜 텐저블 인터페이스의 형태로 설정할 수 있도록 한다.
Types of the sensor block 103 include a sensor forward block, a sensor backward block, a sensor right turn block, and a sensor left turn block. The sensor block 103 performs commands such as forward, right turn, left turn, and reverse until the infrared sensor 420 operated by the switch 120 recognizes a black line. As described above, the tunable programming block 100 of the present invention does not set the condition abstractly, but operates the switch to set the tangible interface.

도 13은 블록의 스위치를 1개 사용해서 조건을 설정한 모습을 도시한 도면이다.Fig. 13 is a diagram showing a condition in which a condition is set using one switch of the block.

도 13을 참조하면, 첫번째 제1 센서 우회전블록은 제1 스위치(120A)를 작동시켜 로봇(400)의 제1 적외선 센서(420A)가 정면에 검은 선을 인식할 때까지 로봇(400)이 제자리에서 우회전을 실시하도록 한다. 두번째 제2 센서 우회전블록은 제2 스위치(120B)가 작동하여 로봇(400)의 제2 적외선 센서(420B)가 좌측의 검은 선을 인식할 때까지 로봇(400)이 제자리에서 우회전을 실시하도록 한다. 세번째 제3 센서 우회전블록은 제3 스위치(120C)가 작동하여 로봇(400)의 제3 적외선 센서(420C)가 우측에 검은 선을 인식할 때까지 로봇(400)이 제자리에서 우회전을 실시하도록 한다.Referring to FIG. 13, the first first sensor right turn block operates the first switch 120A so that the robot 400 is in place until the first infrared sensor 420A of the robot 400 recognizes a black line in front. Make a right at. The second second sensor right turn block causes the robot 400 to turn right in place until the second switch 120B operates to recognize the black line on the left side of the second infrared sensor 420B. . The third third sensor right turn block causes the robot 400 to make a right turn in place until the third switch 120C operates to recognize the black line on the right of the third infrared sensor 420C. .

예를 들어 로봇(400)의 정면이 북쪽을 향해 있고 동쪽에 검은 선이 남북 방향으로 그려져 있다고 가정할 때, 첫번째 블록에 의하여 로봇(400)은 제1 센서(420A)가 검은 선을 인식할 때까지 우회전한다. 결과적으로, 로봇(400)이 오른쪽으로 90도 회전하여 로봇(400)의 정면이 동쪽을 향하게 될 때까지 우회전한다. 다음 두번째 블록에 의하여 로봇(400)은 제2 센서(420B)가 검은 선을 인식할 때까지 우회전한다. 결과적으로, 로봇(400)이 오른쪽으로 90도 회전하여 로봇(400)의 정면이 남쪽을 향하게 될 때까지 우회전한다. 다음 세번째 블록에 의하여 로봇(400)은 제3 센서(420C)가 검은 선을 인식할 때까지 우회전한다. 결과적으로, 로봇(400)이 오른쪽으로 180도 회전하여 로봇(400)의 정면이 북쪽을 향하게 될 때까지 우회전한다. 따라서 이 세블록을 상기의 조건에서 실행시키는 경우 로봇(400)은 제자리에서 360도 회전하게 된다.
For example, assuming that the front of the robot 400 faces north and a black line on the east is drawn in the north-south direction, when the first sensor 420A recognizes the black line by the first block, the robot 400 recognizes the black line. Turn right until As a result, the robot 400 rotates 90 degrees to the right and rotates right until the front side of the robot 400 faces east. By the next second block, the robot 400 rotates right until the second sensor 420B recognizes the black line. As a result, the robot 400 rotates right by 90 degrees to the right until the front of the robot 400 faces south. By the third block, the robot 400 rotates right until the third sensor 420C recognizes the black line. As a result, the robot 400 rotates 180 degrees to the right and rotates right until the front of the robot 400 faces north. Therefore, when the three blocks are executed under the above conditions, the robot 400 rotates 360 degrees in place.

도 14는 블록의 스위치를 2개 사용해서 조건을 설정한 모습을 도시한 도면이다.Fig. 14 is a view showing a condition in which two switches of a block are set.

도 14를 참조하면, 첫번째 제1 및 제2 센서 우회전블록은 제1 및 제2 스위치(120A, 120B)가 작동하여 로봇(400)의 제1 및 제2 적외선 센서(420A, 420B)가 동시에 검은 선을 인식할 때까지 로봇(400)이 제자리에서 우회전을 실시하도록 한다. 두번째 제2 및 제3 센서 우회전블록은 제2 및 제3 스위치(120B, 120C)가 작동하여 로봇(400)의 제2 및 제3 적외선 센서(420B, 420C)가 동시에 검은 선을 인식할 때까지 로봇(400)이 제자리에서 우회전을 실시하도록 한다. 세번째 제1 및 제3 센서 우회전블록은 제1 및 제3 스위치(120A, 120C)가 작동하여 로봇(400)의 제1 및 제3 적외선 센서(420A, 420C)가 동시에 검은 선을 인식할 때까지 로봇(400)이 제자리에서 우회전을 실시하도록 한다.
Referring to FIG. 14, the first and second sensor right turn blocks operate the first and second switches 120A and 120B so that the first and second infrared sensors 420A and 420B of the robot 400 are simultaneously black. The robot 400 makes a right turn in place until the line is recognized. The second second and third sensor right turn blocks are operated until the second and third infrared rays sensors 420B and 420C of the robot 400 recognize the black line at the same time by operating the second and third switches 120B and 120C. The robot 400 makes a right turn in place. The third first and third sensor right turn blocks are operated until the first and third infrared rays sensors 420A and 420C of the robot 400 simultaneously recognize the black lines by operating the first and third switches 120A and 120C. The robot 400 makes a right turn in place.

도 15는 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 매개변수를 설명하기 위한 도면이다.FIG. 15 is a diagram for explaining parameters of a tunable programming block according to an exemplary embodiment of the present invention.

도 15를 참조하면, 동일한 명령을 4회 반복하여 실행할 경우 4개의 블록을 상방향으로 적층하여 블록에 저장된 명령이 4회 실행될 수 있도록 할 수 있으며, 이는 4개의 블록을 횡방향으로 연결한 것과 동일한 효과가 있다. 즉, 동일한 명령을 저장하고 있는 텐저블 프로그래밍 블록(100)을 반복하여 실행하는 경우 상기 텐저블 프로그래밍 블록(100)을 횡방향으로 연결하지 않고, 상방으로 적층하여 표현할 수 있다. 보다 상세히, 상기 텐저블 프로그래밍 블록(100)의 확장단자(112)에 확장소켓을 끼워 블록을 적층할 수 있다. 이처럼 추상적인 개념인 매개변수를 사용된 블록의 개수를 통해 구체적인 형태로 구현할 수 있으므로 매개변수의 직관적인 조작이 가능하다.
Referring to FIG. 15, when the same instruction is executed four times, four blocks may be stacked upward so that the instructions stored in the block may be executed four times, which is the same as connecting four blocks laterally. It works. That is, when repeatedly executing the tentable programming block 100 that stores the same instruction, the tentable programming block 100 may be stacked and expressed upward without connecting in the lateral direction. In more detail, blocks may be stacked by inserting extension sockets into the extension terminals 112 of the tentable programming block 100. This abstract concept of parameters can be implemented in a specific form through the number of blocks used, allowing intuitive manipulation of parameters.

도 16은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 매개변수를 예시한 도면이다.16 is a diagram illustrating parameters of a tunable programming block according to an exemplary embodiment of the present invention.

도 16을 참조하면, 전진블록을 3회 쌓아 총 3블록을 전진하는 명령을 구현할 수 있다. 이처럼 쌓기를 통해 물리적인 환경에서 개수의 개념이나 비례의 개념을 이해할 수 있다. 따라서 사용자는 매개변수와 같이 추상적인 개념을 물리적으로 이해하고 조작할 수 있다.
Referring to FIG. 16, an instruction to advance a total of three blocks by stacking three forward blocks may be implemented. This stacking allows us to understand the concept of number or proportion in the physical environment. This allows the user to physically understand and manipulate abstract concepts such as parameters.

도 17은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 함수를 설명하기 위한 도면이다.17 is a view for explaining a function of a tunable programming block according to an embodiment of the present invention.

도 17을 참조하면, 함수블록은 함수정의블록(104)과 함수호출블록(105)으로 구분될 수 있다. 상기 함수정의블록(104)에는 연결단자와 제1 및 제2 소켓이 형성된다. 상기 연결단자는 로봇블록(300)의 소켓에 연결되고, 제1 소켓은 명령어블록(101)의 연결단자에 연결된다. 또한 제2 소켓은 바블록(200)의 연결단자에 연결된다. 상기 함수호출블록(105)에는 하나의 연결단자와 하나의 소켓이 형성된다. 상기 함수호출블록(105)은 명령어블록(101) 사이에 개재되어 좌우에 배치된 명령어블록(101)과 상기 연결단자 및 소켓을 통하여 연결된다.Referring to FIG. 17, a function block may be divided into a function definition block 104 and a function call block 105. The function definition block 104 is formed with a connection terminal and the first and second sockets. The connection terminal is connected to the socket of the robot block 300, the first socket is connected to the connection terminal of the command block 101. In addition, the second socket is connected to the connection terminal of the bar block 200. The function call block 105 is formed with one connection terminal and one socket. The function call block 105 is interposed between the command block 101 and is connected to the command block 101 disposed on the left and right sides through the connection terminal and the socket.

함수를 정의하여 호출하는 방법을 살펴보면, 첫 행에 함수정의블록(104)을 배치하고, 상기 함수정의블록(104)에 복수의 명령어블록(101)을 연결하여 함수를 정의한다. 이처럼 첫 행의 함수정의블록(104)에는 함수를 구성하는 명령어블록(101)이 다양하게 정의될 수 있다. 첫 행에서 정의된 함수는 각 블록들 사이 개재되어 있는 함수호출블록(105)을 통하여 프로시져 호출(Procedure-calling) 방식으로 사용될 수 있다.Looking at a method of defining and calling a function, the function definition block 104 is placed on the first line, and a plurality of instruction blocks 101 are connected to the function definition block 104 to define a function. As such, the instruction block 101 constituting the function may be variously defined in the function definition block 104 of the first line. The function defined in the first line may be used in a procedure-calling manner through the function call block 105 interposed between the blocks.

이처럼 명령어블록(101)들을 조합하여 함수를 정의함으로써 사용자 스스로가 특정한 명령을 수행하는 블록 함수를 제작할 수 있다. 이를 통하여 사용자는 프로그래밍에서 필수적인 함수에 대한 개념을 직관적인 형태로 이해할 수 있게 된다. 또한 명령어블록(101)들이 순차적으로 진행하면서 함수호출블록(105)을 만나게 되면 정의된 함수를 호출하는 프로시져 호출 기능에 대하여도 직관적으로 이해할 수 있게 된다.
As such, by defining a function by combining the command blocks 101, a user can manufacture a block function that performs a specific command. This allows the user to understand the concept of functions essential for programming in an intuitive form. In addition, when the instruction blocks 101 sequentially meet the function call block 105, the procedure call function for calling a defined function can be intuitively understood.

도 18은 본 발명의 바람직한 일 실시예에 따른 텐저블 프로그래밍 블록의 함수를 예시한 도면이다.18 illustrates a function of a tunable programming block in accordance with one preferred embodiment of the present invention.

도 18을 참조하면, 가장 첫 행에 함수정의블록(104)을 사용하여 함수를 정의하고, 함수를 사용하고자 하는 곳에 함수호출블록(105)을 배치하여 정의된 함수를 호출하여 사용할 수 있다.Referring to FIG. 18, a function definition block 104 may be used to define a function in a first row, and a function call block 105 may be placed where a function is to be used to call and define a function.

도 18에서 상기 함수정의블록(104)은 제1 센서 전진블록과 우회전블록을 함수로 정의하고 있다. 따라서 상기 함수호출블록(105)이 다른 텐저블 프로그래밍 블록(100)들 사이에 개재되어 있는 경우 상기 함수호출블록(105)은 제1 적외선 센서(420A)가 검은 선을 인식할 때까지 전진한 후 우회전하는 명령을 저장한 하나의 블록으로 취급받을 수 있다. 예시된 명령의 조합을 살펴보면, 먼저 좌회전을 하고, 함수호출블록(105)이 개재되어 있으므로, 함수로 정의된 바와 같이 제1 센서가 검은 선을 인식할 때까지 전진한 후 우회전을 실행한다. 그 후 1블록 전진하고, 상기 제1 센서가 검은 선을 인식할 때까지 좌회전을 실행한 후 다시 1블록 전진하게 된다.
In FIG. 18, the function definition block 104 defines a first sensor forward block and a right turn block as a function. Therefore, when the function call block 105 is interposed between the other tunable programming blocks 100, the function call block 105 advances until the first infrared sensor 420A recognizes a black line. It can be treated as a block that stores a command to turn right. Looking at the combination of the illustrated command, the left turn first, and since the function call block 105 is interposed, the first sensor advances until it recognizes the black line as defined by the function and then executes the right turn. After that, one block is advanced, and the first sensor performs a left turn until the first sensor recognizes a black line, and then moves forward one block again.

도 19는 도 18에 도시된 텐저블 프로그래밍 블록의 함수 프로토콜을 도시한 플로우차트이다.FIG. 19 is a flowchart illustrating a functional protocol of the tunable programming block shown in FIG. 18.

도 19를 참조하면, 상기 전송스위치(320)가 작동하면 로봇블록(300)은 첫 행의 함수정의블록(104)으로 실행명령(takecommand)을 전송한다(S500). 상기 로봇블록(300)과 함수정의블록(104)이 연결되어 있으면 상기 로봇블록(300)은 상기 함수정의블록(104)으로부터 대기명령(waitcommand)을 수신 받는다(S510). 상기 함수정의블록(104)은 연결된 제1 센서 전진블록으로 실행명령을 전송한다(S520). 실행명령을 수신한 제1 센서 전진블록은 상기 함수정의블록(104)으로 대기명령을 전송한다(S530). 상기 제1 센서 전진블록은 우회전블록으로 실행명령을 전송한다(S540). 상기 우회전블록은 상기 제1 센서 전진블록으로 대기명령을 전송한다(S550). 그 후 상기 우회전블록은 자신의 블록에 저장된 우회전 명령의 데이터를 상기 제1 센서 전진블록으로 전송한다(S560). 이때의 데이터는 (R)이라고 표현되며, R은 우회전(Right Turn)의 약자를 의미한다. 데이터의 전송이 완료되면 상기 우회전블록은 상기 제1 센서 전진블록으로 종료명령(endcommand)을 전송한다(S570). 상기 우회전블록으로부터 종료명령을 수신한 상기 제1 센서 전진블록은 수신한 데이터에 자신의 블록에 저장된 명령을 더하여 이를 상기 함수정의블록(104)으로 전송한다(S580). 이때의 데이터는 (1, f, R)로 표현되며, 1은 작동하는 센서의 번호를 f는 전진(Forward)의 약자를 의미한다. R은 앞서 살펴본 바와 같이 우회전을 의미한다. 데이터의 전송이 완료되면 상기 제1 센서 전진블록은 상기 함수정의블록(104)으로 종료명령을 전송한다(S590). 상기 제1 센서 전진블록으로부터 종료명령을 수신한 상기 함수정의블록(104)은 상기 제1 센서 전진블록으로부터 수신한 데이터에 자신의 블록에 저장된 명령을 더하여 상기 로봇블록(300)으로 전송한다(S600). 이때의 데이터는 (A, 1, f, R, a)로 표현되며, A는 함수의 시작을, 1은 작동하는 센서의 번호를, f는 전진을, R은 우회전을, a는 함수의 끝을 각각 의미한다. 데이터의 전송이 완료되면, 상기 함수정의블록(104)는 상기 로봇블록(300)으로 종료명령을 전송한다(S610).Referring to FIG. 19, when the transfer switch 320 operates, the robot block 300 transmits a take command to the function definition block 104 of the first row (S500). If the robot block 300 and the function definition block 104 is connected, the robot block 300 receives a wait command from the function definition block 104 (S510). The function definition block 104 transmits an execution command to the connected first sensor forward block (S520). The first sensor forward block receiving the execution command transmits a wait command to the function definition block 104 (S530). The first sensor forward block transmits an execution command to the right turn block (S540). The right turn block transmits a standby command to the first sensor forward block (S550). Thereafter, the right turn block transmits the data of the right turn command stored in its block to the first sensor forward block (S560). The data at this time is expressed as (R), where R stands for right turn. When the transmission of data is completed, the right turn block transmits an end command to the first sensor forward block (S570). The first sensor forward block receiving the end command from the right turn block adds the command stored in its block to the received data and transmits the command to the function definition block 104 (S580). The data at this time is expressed as (1, f, R), where 1 is the abbreviation of forward for f. R means right turn, as discussed earlier. When the transmission of the data is completed, the first sensor forward block transmits an end command to the function definition block 104 (S590). The function definition block 104 receiving the end command from the first sensor forward block adds the command stored in its block to the data received from the first sensor forward block and transmits it to the robot block 300 (S600). ). The data at this time is expressed as (A, 1, f, R, a), where A is the start of the function, 1 is the number of the sensor in operation, f is forward, R is right, and a is the end of the function. Means each. When the transmission of data is completed, the function definition block 104 transmits an end command to the robot block 300 (S610).

즉, 상기 로봇블록(300)의 전송스위치(320)를 작동시키면 함수정의블록(104)은 함수정의블록(104)과 연결된 블록들을 A와 a 사이에 저장한다. 명령어블록(101)을 조합하여 프로그래밍을 할 때 함수호출블록(105)이 사용되면 상기 함수호출블록(105)은 함수정의블록(104)의 배열에서 A를 찾아 a까지의 블록들을 호출하여 차례로 실행한다.
That is, when the transfer switch 320 of the robot block 300 is operated, the function definition block 104 stores the blocks connected to the function definition block 104 between A and a. If the function call block 105 is used when programming by combining the instruction block 101, the function call block 105 executes in turn by calling blocks up to a by finding A in the array of the function definition block 104. do.

100 : 텐저블 프로그래밍 블록 101 : 명령어블록
102 : 일반블록 103 : 센서블록
104 : 함수정의블록 105 : 함수호출블록
106 : 반복시작블록 107 : 반복끝블록
110, 220 : 연결단자 111, 221, 340 : 소켓
112 : 확장단자 120 : 스위치
121 : 센서램프 130, 210, 310 : 작동램프
140 : MCU 150 : UART 포트
200 : 바블록 300 : 로봇블록
320 : 전송스위치 330 : 전송램프
400 : 로봇 410 : 바퀴
420 : 적외선 센서
100: tentable programming block 101: instruction block
102: general block 103: sensor block
104: function definition block 105: function call block
106: repeat start block 107: repeat end block
110, 220: Terminal 111, 221, 340: Socket
112: expansion terminal 120: switch
121: sensor lamp 130, 210, 310: operation lamp
140: MCU 150: UART port
200: bar block 300: robot block
320: transmission switch 330: transmission lamp
400: robot 410: wheels
420: Infrared Sensor

Claims (9)

전진, 후진, 좌회전, 우회전의 명령 중 어느 하나를 저장하는 명령어블록, 함수를 정의하는 함수정의블록, 정의된 함수를 호출하는 함수호출블록, 반복시작을 표시하는 반복시작블록, 및 반복종료를 표시하는 반복끝블록을 포함하며, 복수로 조합되어 명령을 구성하는 텐저블 프로그래밍 블록;
각행을 구성하는 상기 텐저블 프로그래밍 블록의 일측과 연결되어 상기 텐저블 프로그래밍 블록이 복수의 행을 구성하도록 하는 바블록;
상기 텐저블 프로그래밍 블록으로 구성되는 명령을 상기 바블록을 통하여 수신하고 이를 조합하여 전달하는 로봇블록; 및
양측면에 형성되어 스텝모터로 구동되는 두 바퀴와, 각각 앞, 좌, 우에 검은 선을 인식하는 제1 내지 제3 적외선 센서, 및 구동전력을 공급하는 직류전원을 포함하며, 상기 로봇블록으로부터 상기 텐저블 프로그래밍 블록의 조합으로 구성되는 명령을 전달받아 수행하는 로봇을 포함하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템에 있어서,
상기 텐저블 프로그래밍 블록은 각 블록마다 고유의 명령을 저장하고, 저장된 명령은 각 블록의 케이스의 상면에 도형이나 모양으로 도식화되며, 일측에 형성되는 소켓과 타측에 형성되는 연결단자를 결합하여 횡방향으로 연장되고, 상부에 형성되는 확장단자와 하부에 형성되는 확장소켓을 결합하여 복수의 블록을 적층할 수 있으며,
상기 로봇블록은 상기 텐저블 프로그래밍 블록의 명령을 각 행마다 순차적으로 조합한 후 이를 중간코드로 변환하여 상기 로봇으로 전송하는 것을 특징으로 하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템.
Instruction block that stores any one of forward, backward, left turn and right turn instructions, a function definition block defining a function, a function call block calling a defined function, a repeat start block indicating the start of a repeat, and a repeat end A tentable programming block comprising a repeating end block, the plurality of combinations constituting a command;
A bar block connected to one side of the tentable programming block constituting each row so that the tentable programming block constitutes a plurality of rows;
A robot block for receiving a command consisting of the tunable programming block through the bar block and combining the same; And
Two wheels formed on both sides and driven by a step motor, first to third infrared sensors for recognizing black lines at the front, left, and right sides, and a DC power supply for supplying driving power, respectively, In the robot system based on a tentable programming block including a robot that receives and executes a command composed of a combination of jumble programming blocks,
The tentable programming block stores a unique instruction for each block, and the stored instruction is illustrated in a figure or a shape on the upper surface of a case of each block, and is coupled to a socket formed on one side and a connection terminal formed on the other side in a lateral direction. Extends, and a plurality of blocks may be stacked by combining an expansion terminal formed at an upper portion and an expansion socket formed at a lower portion thereof;
The robot block is a robot system based on the tentable programming block, characterized in that by sequentially combining the instructions of the tentable programming block for each row, converts it into an intermediate code and transmits it to the robot.
제 1항에 있어서,
상기 명령어블록은 상기 로봇에 조건 없이 전진, 후진, 좌회전, 우회전 중 어느 하나를 명령하는 일반블록, 및 각각 앞, 좌, 우에 제1 내지 제3 스위치가 형성되고, 상기 스위치를 조작하여 상기 로봇에 형성된 각각 제1 내지 제3 적외선 센서를 제어하는 센서블록을 포함하고,
상기 함수정의블록은 상기 로봇블록과 연결되는 첫 행에 배치되고, 복수의 상기 명령어블록과 연결되어 함수를 정의하고,
상기 함수호출블록은 상기 명령어블록 사이에 개재되어 프로시져 호출(Procedure-calling) 방식으로 상기 함수정의블록에 정의된 함수를 호출하여 사용하는 것을 특징으로 하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템.
The method of claim 1,
The command block is a general block for commanding any one of the forward, backward, left turn, and right turn without condition to the robot, and first to third switches are formed at the front, left, and right, respectively, and the robot is operated by operating the switch. A sensor block for controlling each of the first to third infrared sensors formed,
The function definition block is disposed in the first row connected to the robot block, is connected to a plurality of the command block to define a function,
The function call block is interposed between the instruction block and the robot system based on the tentable programming block, characterized in that for calling the function defined in the function definition block in a procedure-calling (Procedure-calling) method.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020110024691A 2011-03-21 2011-03-21 Robot system based on tangible programming bricks KR101037901B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110024691A KR101037901B1 (en) 2011-03-21 2011-03-21 Robot system based on tangible programming bricks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110024691A KR101037901B1 (en) 2011-03-21 2011-03-21 Robot system based on tangible programming bricks

Publications (1)

Publication Number Publication Date
KR101037901B1 true KR101037901B1 (en) 2011-05-30

Family

ID=44366783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110024691A KR101037901B1 (en) 2011-03-21 2011-03-21 Robot system based on tangible programming bricks

Country Status (1)

Country Link
KR (1) KR101037901B1 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101483017B1 (en) * 2014-06-26 2015-01-16 주식회사 헬로긱스 Connectable apparatus for self programable blocks
WO2016155660A1 (en) * 2015-04-02 2016-10-06 苏州乐派特机器人有限公司 Physical programming instruction module and programming method and application thereof in robot field
CN106095438A (en) * 2016-06-12 2016-11-09 苏州乐派特机器人有限公司 Picture mosaic and image capture analysis is utilized to carry out method and the application thereof of material objectization programming
CN106139614A (en) * 2016-07-22 2016-11-23 苏州乐派特机器人有限公司 A kind of method for gaming utilizing material objectization programming operation to carry out
EP3142094A4 (en) * 2014-05-07 2017-04-26 Jin Wook Kim Algorithm teaching apparatus using blocks
CN107424102A (en) * 2017-07-26 2017-12-01 海南职业技术学院 Computer studies has pictureization Teaching Software System
KR101825183B1 (en) * 2016-02-16 2018-02-02 전주대학교 산학협력단 Functionality maze device using radio communications
KR101836351B1 (en) * 2016-05-25 2018-03-09 주식회사 프레도 Control system for robot using the smart block toy
CN108898918A (en) * 2018-08-24 2018-11-27 杭州高低科技有限公司 It is easily programmed the programming education control object device of education
KR101923557B1 (en) * 2017-07-10 2018-11-29 주식회사 바른앱 Robot control system using block toys
CN109118880A (en) * 2018-08-24 2019-01-01 杭州高低科技有限公司 Robot learning and cooperative system based on bluetooth mesh
KR101966914B1 (en) * 2017-12-04 2019-04-08 주식회사 로시 Toy robot control system for coding education
KR102097379B1 (en) * 2020-01-15 2020-04-06 (주)피앤씨 Digital kit system
CN111192503A (en) * 2018-11-15 2020-05-22 株式会社麦卢思 Block type wireless coding command input device and method
CN111515948A (en) * 2020-04-16 2020-08-11 杭州大嘴鸟信息技术有限公司 Control method and control system of programming robot
KR20210016931A (en) * 2019-08-06 2021-02-17 김영호 Method and system for learning coding using light emitting diode blocks
KR20210030161A (en) 2019-09-09 2021-03-17 김찬균 Electronic Control Module for Coding Training
KR20230032723A (en) * 2021-08-31 2023-03-07 강혜민 Apparatus for coding study and learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7316567B2 (en) 2003-08-01 2008-01-08 Jennifer Chia-Jen Hsieh Physical programming toy
KR20100125767A (en) * 2009-05-21 2010-12-01 김진완 Drive apparatus of line tracer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7316567B2 (en) 2003-08-01 2008-01-08 Jennifer Chia-Jen Hsieh Physical programming toy
KR20100125767A (en) * 2009-05-21 2010-12-01 김진완 Drive apparatus of line tracer

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Ilja Jetsu, Tangible User Interfaces and Programming, University of Joensuu, Department of Computer Science and Statistics, Master's Thesis, February 1, 2008
Michael S. Horn and Robert J. K. Jacob. Designing tangible programming languages for classroom use. TEI '07. February 2007, pp.159-162.

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3142094A4 (en) * 2014-05-07 2017-04-26 Jin Wook Kim Algorithm teaching apparatus using blocks
US10229613B2 (en) 2014-05-07 2019-03-12 Jin Wook Kim Algorithm teaching apparatus using blocks
WO2015199355A1 (en) * 2014-06-26 2015-12-30 주식회사 헬로긱스 Programmable connection type block device
KR101483017B1 (en) * 2014-06-26 2015-01-16 주식회사 헬로긱스 Connectable apparatus for self programable blocks
WO2016155660A1 (en) * 2015-04-02 2016-10-06 苏州乐派特机器人有限公司 Physical programming instruction module and programming method and application thereof in robot field
KR101825183B1 (en) * 2016-02-16 2018-02-02 전주대학교 산학협력단 Functionality maze device using radio communications
KR101836351B1 (en) * 2016-05-25 2018-03-09 주식회사 프레도 Control system for robot using the smart block toy
CN106095438A (en) * 2016-06-12 2016-11-09 苏州乐派特机器人有限公司 Picture mosaic and image capture analysis is utilized to carry out method and the application thereof of material objectization programming
CN106139614A (en) * 2016-07-22 2016-11-23 苏州乐派特机器人有限公司 A kind of method for gaming utilizing material objectization programming operation to carry out
WO2019013375A1 (en) * 2017-07-10 2019-01-17 주식회사 바른앱 Robot control system employing block toy
KR101923557B1 (en) * 2017-07-10 2018-11-29 주식회사 바른앱 Robot control system using block toys
CN107424102A (en) * 2017-07-26 2017-12-01 海南职业技术学院 Computer studies has pictureization Teaching Software System
KR101966914B1 (en) * 2017-12-04 2019-04-08 주식회사 로시 Toy robot control system for coding education
CN109118880A (en) * 2018-08-24 2019-01-01 杭州高低科技有限公司 Robot learning and cooperative system based on bluetooth mesh
CN108898918A (en) * 2018-08-24 2018-11-27 杭州高低科技有限公司 It is easily programmed the programming education control object device of education
CN108898918B (en) * 2018-08-24 2023-10-27 杭州高低科技有限公司 Programming education control object device easy for programming education
CN109118880B (en) * 2018-08-24 2021-07-02 杭州高低科技有限公司 Robot learning and cooperation system based on Bluetooth mesh
KR102186719B1 (en) * 2018-11-15 2020-12-08 주식회사 마르시스 Block type apparatus for wirelessly inputting coding command and method using thereof
KR20200057138A (en) * 2018-11-15 2020-05-26 주식회사 마르시스 Block type apparatus for wirelessly inputting coding command and method using thereof
CN111192503A (en) * 2018-11-15 2020-05-22 株式会社麦卢思 Block type wireless coding command input device and method
KR20210016931A (en) * 2019-08-06 2021-02-17 김영호 Method and system for learning coding using light emitting diode blocks
KR102229422B1 (en) 2019-08-06 2021-03-17 김영호 Method and system for learning coding using light emitting diode blocks
KR20210030161A (en) 2019-09-09 2021-03-17 김찬균 Electronic Control Module for Coding Training
KR102097379B1 (en) * 2020-01-15 2020-04-06 (주)피앤씨 Digital kit system
CN111515948A (en) * 2020-04-16 2020-08-11 杭州大嘴鸟信息技术有限公司 Control method and control system of programming robot
CN111515948B (en) * 2020-04-16 2021-02-26 杭州大嘴鸟信息技术有限公司 Control method and control system of programming robot
KR20230032723A (en) * 2021-08-31 2023-03-07 강혜민 Apparatus for coding study and learning
KR20230143974A (en) * 2021-08-31 2023-10-13 강혜민 Apparatus for coding study and learning

Similar Documents

Publication Publication Date Title
KR101037901B1 (en) Robot system based on tangible programming bricks
US10228914B2 (en) Apparatus and method of providing a coding education service using a block
KR101284910B1 (en) Programming block assembly, robot system operated by program using the same, and programming method thereof
KR20120136900A (en) Apparatus and method for inputting braille in device with touch screen
KR20170053185A (en) Motion control system for block kits using motion cards, and thereof method
CN109416891A (en) The encoding block of not plug-in
KR200480780Y1 (en) A sensor robot for student
US10585649B2 (en) Electronic block kit system for scratch programming
EP3743182B1 (en) Toy construction system with robotics control unit
KR101676676B1 (en) Robot programing kit using card key and board having resistor and magnet and method thereof
KR101551462B1 (en) Modular learning block
KR20220041579A (en) Augmented reality-based educational programming language authoring system using block smart toys
KR20140121735A (en) Qwerty Type Little Keyboard Which Can Do Quick Input
KR20140115023A (en) Little Keyboard Which Can Do Quick Input
CN210515845U (en) Programming building block based on resistance coding
WO2012108076A1 (en) Display device and display method
KR20070012265A (en) Character input device and method using directional key
KR101923557B1 (en) Robot control system using block toys
KR20220006347A (en) Block coding apparatus
KR102595525B1 (en) Method for running user-written program using icons
KR100777968B1 (en) Mobile device including multifunctional keyboard
CN113380108A (en) Education service providing device and method using digital building blocks
KR20230010979A (en) A Smart-block Capable of Supplying Power and Recognizing Position and Control System thereof
CN203812250U (en) Bar code scanning device with control keys
CN111013165B (en) Chinese character learning system based on intelligent building blocks

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140325

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150519

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160425

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170510

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee