KR101037901B1 - Robot system based on tangible programming bricks - Google Patents
Robot system based on tangible programming bricks Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63H—TOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
- A63H33/00—Other toys
- A63H33/04—Building blocks, strips, or similar building parts
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/1617—Cellular, reconfigurable manipulator, e.g. cebot
Abstract
Description
본 발명은 프로그래밍의 추상적인 개념인 순차, 반복, 조건, 매개변수, 함수 등을 물리적으로 조작이 가능한 블록의 형태로 구현하는 텐저블 프로그래밍 블록에 기반한 로봇 시스템에 관한 것이다.
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
상기 텐저블 프로그래밍 블록(100)은 전진, 후진, 좌회전, 우회전의 명령을 저장하는 명령어블록(101), 함수를 정의하는 함수정의블록(104), 정의된 함수를 호출하는 함수호출블록(105), 반복시작을 표시하는 반복시작블록(106), 및 반복종료를 표시하는 반복끝블록(107)을 포함한다.The
상기 명령어블록(101)은 상기 로봇(400)이 아무런 조건 없이 전진, 후진, 좌회전, 우회전을 수행하도록 명령하는 일반블록(102), 및 제1 내지 제3 스위치를 제어하여 조건을 설정하고 조건에 따라 행동을 명령하는 센서블록(103)을 포함한다.The
상기 일반블록(102)은 초록색으로 표시되고, 센서블록(103)은 파란색으로 표시된다. 상기 함수정의블록(104)과 함수호출블록(105)은 노란색으로 표시되고, 반복시작블록(106)과 반복끝블록(107)은 보라색으로 표시된다. 상기 바블록(200)은 남색으로 표시되고, 로봇블록(300)은 주황색으로 표시된다. 이렇게 각 블록의 색깔을 달리 정함으로써 블록의 구별을 보다 용이하게 할 수 있다.The
상기 텐저블 프로그래밍 블록(100)은 각 블록마다 고유의 명령을 저장하고 있으며, 이러한 명령은 블록 케이스의 상면에 간단한 도형이나 모양으로 도식화되어 사용자가 직관적으로 인식할 수 있도록 한다. 예를 들어, 상기 명령어블록(101) 케이스의 상면에는 화살표가 도식화되어 상기 로봇(400)이 움직이는 경로를 사용자가 직관적으로 인식할 수 있도록 한다.The
각각의 텐저블 프로그래밍 블록(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
상기 바블록(200)은 좌우 방향으로 연결된 상기 텐저블 프로그래밍 블록(100)의 명령을 조합하여 상기 로봇블록(300)으로 전달한다. 바람직하게는 상기 바블록(200)은 상기 텐저블 프로그래밍 블록(100)이 조합된 각 블록의 좌측에 연결된다. 각 행에 연결된 바블록(200)은 블록의 상방으로 형성된 연결단자(220)와 하방으로 형성된 소켓(221)을 상호 연결하여 결합된다. 이를 통하여 순차적으로 각 행의 바블록(200)에 연결된 텐저블 프로그래밍 블록(100)에 저장된 명령이 상기 로봇블록(300)으로 전달될 수 있다.The
상기 로봇블록(300)은 상기 텐저블 프로그래밍 블록(100)의 명령을 각 행마다 순차적으로 조합하여 상기 로봇(400)으로 전달한다. 즉, 상기 텐저블 프로그래밍 블록(100) 1행의 명령 조합, 2행의 명령 조합, 3행의 명령 조합의 순서로 명령을 조합하여 이를 중간코드로 변환한 뒤 이를 상기 로봇(400)으로 전송한다.The
상기 로봇(400)은 상기 로봇블록(300)과 연결되어 상기 로봇블록(300)으로부터 전송되는 명령의 조합에 따라 동작한다. 상기 로봇(400)의 양측면에는 바퀴가 형성되고 상기 바퀴는 스텝모터로 구동되어 상기 명령의 조합을 오차 없이 수행할 수 있다.The
예를 들어, 도 1과 같이 구성된 텐저블 프로그래밍 블록(100)은 우회전, 3회 전진, 좌회전, 전진, 제2 센서 좌회전, 제1 센서 전진, 우회전의 명령어 조합이다.For example, the
이를 실행시키는 경우 상기 로봇(400)은 먼저 우회전하고, 3블록 전진한 뒤, 좌회전을 수행한다. 좌회전한 후 1블록 전진한 다음 로봇(400)에 형성된 제2 적외선 센서(도 5의 420B 참조)가 검은 선을 인식할 때까지 좌회전한다. 마지막으로 로봇(400)에 형성된 제1 적외선 센서(도 5의 420A 참조)가 검은 선을 인식할 때까지 전진한 후, 우회전한다. 상기 1블록은 로봇(400)의 크기를 고려하여 약 15cm 정도의 길이로 미리 설정될 수 있다.In this case, the
상기 센서 좌회전블록과 센서 전진블록과 같은 센서블록(103)에 관하여는 아래 도 2를 참조하여 보다 상세히 설명한다.
The
도 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
상기 텐저블 프로그래밍 블록(100)은 낮은 연령의 학생들도 조립하거나 다룰 수 있도록, 가로, 세로 4cm, 높이 2cm 정도의 다루기 쉬운 크기로 형성될 수 있다. 앞서 살펴본 바와 같이 블록은 좌측의 소켓(111)과 우측의 연결단자(100)가 서로 삽입되어 연결될 수 있으며, 상부의 확장단자(112)와 하부의 확장소켓(미도시)이 서로 삽입되어 연결될 수 있다. 이처럼 블록은 수평뿐만 아니라 수직 방향으로도 연결될 수 있다.The
또한, 상기 텐저블 프로그래밍 블록(100)에는 전원, 에러를 확인할 수 있도록 작동램프(130)가 형성된다. 또한 도 1에 도시된 바와 같이 외부 케이스에는 화살표로 전진, 우회전, 좌회전, 후진을 표시하여 어린 학생들도 로봇 명령어를 직관적으로 인식할 수 있도록 한다.In addition, the
한편, 상기 텐저블 프로그래밍 블록(100)은 하나의 PCB로 형성될 수 있으며 PCB의 하면에 형성되는 MCU(140), 4개의 UART 포트(150) 등이 PCB 상에 구현될 수 있다. Meanwhile, the
상기 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
한편, 상기 텐저블 프로그래밍 블록(100)은 센서블록(103)일 수 있다. 상기 센서블록(103)에는 앞, 좌, 우에 제1 내지 제3 스위치(120A, 120B, 120C)가 형성된다. 각각의 스위치는 매칭 되는 상기 로봇(400)에 형성되는 제1 내지 제3 적외선 센서(420A, 420B, 420C)를 제어한다. 상기 제1 내지 제3 스위치 중 하나 이상을 작동시키면 각 스위치의 주변에 형성된 제1 내지 제3 센서램프(121A, 121B, 121C)가 점등되어 스위치(120)의 작동 상태를 표시한다.The
상기 로봇(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
상기 제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
도 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
상기 연결단자(220)는 다른 바블록(200)이나 로봇블록(300)의 소켓과 연결되어 상기 텐저블 프로그래밍 블록(100)의 조합을 통하여 도출되는 명령을 상기 로봇블록(300)으로 전달하는 경로를 제공한다. 한편 제1 소켓(221A)은 횡으로 배열된 상기 텐저블 프로그래밍 블록(100)의 연결단자(110)와 연결되어 텐저블 프로그래밍 블록으로부터 명령을 수신한다. 나머지 제2 소켓(221B)은 하위 행의 첫단에 형성되는 바블록(200)의 연결단자(220)와 상호 연결되어 하위 행을 구성하는 상기 텐저블 프로그래밍 블록(100)으로부터 명령을 수신한다. 최하행을 형성하는 바블록(200)의 경우 상기 제2 소켓(221B)에는 아무런 블록이 연결되지 않는다. 이와 같이 상기 바블록(200)은 세 방향으로 블록을 이어나갈 수 있어 행을 바꾸어 주는 기능을 수행함으로써 명령어가 한 줄로 길어질 경우 있을 수 있는 공간적 제약을 감소시킨다.
The
도 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
상기 로봇블록(300)은 상단의 전송스위치(320)가 작동될 경우 상기 로봇블록(300)에 연결되어 있는 상기 텐저블 프로그래밍 블록(100)들을 순서대로 배열하여 저장하며, 로봇의 펌웨어를 통해 저장된 명령을 로봇을 움직이는 명령어인 중간코드로 변환하여 로봇에 전송한다.
The
도 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
보다 상세히, 상기 로봇과 연결된 텐저블 프로그래밍 블록(100) 중 센서블록(103)이 포함되어 있고 상기 센서블록(103)의 제1 내지 제3 스위치(120A, 120B, 120C) 중 어느 하나 이상의 스위치를 작동시켜 제1 내지 제3 적외선 센서(420A, 420B, 420C)를 작동시키는 경우 상기 적외선 센서(420)는 상기 로봇(400)이 이동하는 과정에서 검정 선에 닿았는지 여부를 판별하게 된다. 상기 적외선 센서(420)가 검은 선을 인식할 경우 상기 블록에 저장되어 있는 명령을 수행하게 된다.
In more detail, the
도 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
도 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
이를 일반화하면 상기 로봇블록(300)은 왼쪽에 연결되어 있는 바블록(200)을 모두 확인한 후 가장 위에 연결된 바블록(200)으로부터 아래 연결된 바블록(200) 순서로 순차적으로 데이터를 수신한다. 각 바블록(200)은 횡으로 연결된 텐저블 프로그래밍 블록(100) 중 가장 오른쪽에 위치한 블록으로부터 왼쪽에 연결된 블록의 순서로 데이터를 수신 받아 종합한다. 이러한 방법으로 첫 행부터 마지막 행까지 연결된 바블록(200)은 데이터를 종합하여 상기 로봇블록(300)으로 전송한다. 상기 로봇블록(300)은 상기 수신한 데이터를 저장하여 로봇(400)을 움직일 수 있는 중간코드로 변환한다. 변환된 중간코드는 상기 로봇(400)으로 전송된다. 상기 로봇(400)은 로봇블록(300)으로부터 전송받은 중간코드를 해석하여 적외선 센서(420)와 스태핑 모터를 동작시킨다.In general, the
아래 표 1은 상기 로봇블록(300)이 상기 로봇(400)으로 전송하는 중간코드를 예시한 표이다.Table 1 below is a table illustrating an intermediate code transmitted by the
위 표 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
상기 센서번호는 제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
예를 들어, 도 8에서 명령어블록(101)은 전진, 우회전, 좌회전을 수행하는 블록으로 구성되어 있다. 따라서 상기 명령어 조합을 실행시킬 경우 로봇(400)은 한 블록 전진한 후 우회전하고 다시 좌회전하게 된다. 각 명령어블록(101)에 저장된 명령어를 블록의 케이스에 화살표로 표현함으로써 사용자가 블록에 저장되어 있는 명령을 직관적으로 이해할 수 있도록 한다. 한편, 블록의 좌, 우로 다른 블록을 연결하여 명령어 조합을 확장할 수 있다. 횡 방향으로 확장이 어려울 경우 그 다음 라인에 이어서 블록을 조립하여 순차적인 명령을 수행하도록 할 수 있음은 앞서 살펴본 바와 같다.
For example, in FIG. 8, the
도 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
반복의 횟수는 아래 블록의 확장단자(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
반복시작블록(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
도 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
도 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
도 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
본 발명의 텐저블 프로그래밍 블록(100)에 있어서 조건 설정은 상기 로봇(400)의 앞, 좌, 우에 형성된 제1 내지 제3의 적외선 센서(420A, 420B, 420C)의 작동여부를 결정하는 것이다. 상기 제1 내지 제3 적외선 센서(420A, 420B, 420C) 중 하나 이상의 센서가 작동하도록 조건을 설정한 경우 작동하는 센서가 검은 선을 인식하는 경우 블록의 케이스에 표시된 명령을 실행한다. 사용자가 센서블록(103)에서 아무런 스위치도 작동시키지 않는 경우에는 작동램프(130)에 빨간색 에러 불이 들어오고 명령어를 전송하지 않는다. 사용자는 주어진 문제를 해결하기 위해서 세 개의 스위치(120)를 사용하여 여러 가지 조합의 센서블록(103)을 형성할 수 있다.In the
센서블록(103)의 종류에는 센서 전진블록, 센서 후진블록, 센서 우회전블록, 센서 좌회전블록이 있다. 센서블록(103)은 스위치(120)로 작동시킨 적외선 센서(420)가 검은 선을 인식할 때까지 전진, 우회전, 좌회전, 후진 등의 명령을 수행하도록 한다. 이처럼 본 발명의 텐저블 프로그래밍 블록(100)은 조건을 추상적으로 설정하는 것이 아니라 스위치를 작동시켜 텐저블 인터페이스의 형태로 설정할 수 있도록 한다.
Types of the
도 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
예를 들어 로봇(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
도 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
도 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
도 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
함수를 정의하여 호출하는 방법을 살펴보면, 첫 행에 함수정의블록(104)을 배치하고, 상기 함수정의블록(104)에 복수의 명령어블록(101)을 연결하여 함수를 정의한다. 이처럼 첫 행의 함수정의블록(104)에는 함수를 구성하는 명령어블록(101)이 다양하게 정의될 수 있다. 첫 행에서 정의된 함수는 각 블록들 사이 개재되어 있는 함수호출블록(105)을 통하여 프로시져 호출(Procedure-calling) 방식으로 사용될 수 있다.Looking at a method of defining and calling a function, the
이처럼 명령어블록(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
도 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
도 18에서 상기 함수정의블록(104)은 제1 센서 전진블록과 우회전블록을 함수로 정의하고 있다. 따라서 상기 함수호출블록(105)이 다른 텐저블 프로그래밍 블록(100)들 사이에 개재되어 있는 경우 상기 함수호출블록(105)은 제1 적외선 센서(420A)가 검은 선을 인식할 때까지 전진한 후 우회전하는 명령을 저장한 하나의 블록으로 취급받을 수 있다. 예시된 명령의 조합을 살펴보면, 먼저 좌회전을 하고, 함수호출블록(105)이 개재되어 있으므로, 함수로 정의된 바와 같이 제1 센서가 검은 선을 인식할 때까지 전진한 후 우회전을 실행한다. 그 후 1블록 전진하고, 상기 제1 센서가 검은 선을 인식할 때까지 좌회전을 실행한 후 다시 1블록 전진하게 된다.
In FIG. 18, the
도 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
즉, 상기 로봇블록(300)의 전송스위치(320)를 작동시키면 함수정의블록(104)은 함수정의블록(104)과 연결된 블록들을 A와 a 사이에 저장한다. 명령어블록(101)을 조합하여 프로그래밍을 할 때 함수호출블록(105)이 사용되면 상기 함수호출블록(105)은 함수정의블록(104)의 배열에서 A를 찾아 a까지의 블록들을 호출하여 차례로 실행한다.
That is, when the
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:
112: expansion terminal 120: switch
121:
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 내지 제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.
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)
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)
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 |
-
2011
- 2011-03-21 KR KR1020110024691A patent/KR101037901B1/en not_active IP Right Cessation
Patent Citations (2)
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)
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)
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 |