KR100426035B1 - 마이크로로봇 제어프로그램 교육 시스템 - Google Patents

마이크로로봇 제어프로그램 교육 시스템 Download PDF

Info

Publication number
KR100426035B1
KR100426035B1 KR10-2001-0046524A KR20010046524A KR100426035B1 KR 100426035 B1 KR100426035 B1 KR 100426035B1 KR 20010046524 A KR20010046524 A KR 20010046524A KR 100426035 B1 KR100426035 B1 KR 100426035B1
Authority
KR
South Korea
Prior art keywords
program
microrobot
event
code
control
Prior art date
Application number
KR10-2001-0046524A
Other languages
English (en)
Other versions
KR20030012488A (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 KR10-2001-0046524A priority Critical patent/KR100426035B1/ko
Priority to PCT/KR2001/001591 priority patent/WO2003012636A1/en
Publication of KR20030012488A publication Critical patent/KR20030012488A/ko
Application granted granted Critical
Publication of KR100426035B1 publication Critical patent/KR100426035B1/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 마이크로로봇 제어프로그램 교육 시스템에 관한 것이다.
본 발명에 의한 마이크로로봇 제어프로그램 교육 시스템은 객체화된 다수의 마이크로로봇 제어 프로그램을 제공하고, 상기 객체 프로그램들을 핸들링할 수 있도록 사용자에게 그래픽 프로그래밍 수단 및 텍스트 프로그래밍 수단을 제공하며, 그래픽 프로그래밍 수단 및 텍스트 프로그래밍 수단에 의하여 생성된 마이크로로봇 제어 프로그램을 중간코드화하여 다운로드하도록 프로그램된 컴퓨터; 및 컴퓨터로부터 생성된 마이크로로봇 제어 프로그램 코드를 전송받아 인코딩하고, 인코딩된 신호 및 센서에서 변환된 신호를 연산처리하여 구동하는 마이크로로봇을 포함한다.
본 발명에 의하면, 전자공학 관련 지식이 없는 자라도 그래픽 환경의 제작툴을 사용하여 마이크로로봇 제어프로그램을 작성할 수 있고, 그래픽 모듈로 제작된 제어프로그램을 프로그래밍 언어로 치환하여 비교함으로써 텍스트 기반의 컴퓨터 언어를 학습할 수 있다. 또한, 제작된 마이크로로봇 제어프로그램을 마이크로로봇으로 다운로드하여 동작시킴으로써 프로그램의 기능을 확인할 수 있고, 프로그램된 마이크로로봇에 부속자재를 장착함으로써 마이크로로봇을 다양하게 작동하는 교육 기자재로 활용할 수 있는 효과가 있다.

Description

마이크로로봇 제어프로그램 교육 시스템{Training system for microrobot control program}
본 발명은 마이크로로봇 제어프로그램 교육 시스템에 관한 것으로, 보다 상세하게는 프로그램 학습자에게 그래픽 환경 및 텍스트 환경으로 프로그램 제작툴을 제공하여 마이크로로봇 제어프로그램을 제작하도록 하고, 이를 마이크로로봇으로 다운로드하여 제어하도록 함으로써 컴퓨터 프로그래밍을 학습시키는 마이크로로봇 제어프로그램 교육 시스템에 관한 것이다.
최근, 전자공학기술의 대중화 추세에 힘입어 마이크로로봇에 대한 일반인들의 관심이 확대되고 있다. 대표적인 예로서, 마이크로마우스 경진대회, 라인트레이서 경진대회, 로봇축구대회 등을 들 수 있는데, 기존에는 대회참가자가 주로 소수의 전자공학관련 전공자들로 한정되었던 반면 현재는 마이크로로봇에 관심이 많은 일반인들도 많이 참가하고 있다.
가령, 마이크로마우스 대회는 쥐모양의 소형 주행로봇이 미로의 시작지점부터 종착지점까지 주행하는데 소요된 시간을 다투어 로봇의 성능을 비교하는 대회로서 로봇의 속력, 미로를 찾는 능력(프로그램의 처리능력) 및 자립도(기계적 안전성) 등을 고려하게 된다.
이러한 마이크로로봇의 기능을 좌우하는 핵심적인 부분은 프로세서에서 처리되는 제어 프로그램으로서, 제어 프로그램의 종류에 따라 로봇의 다양한 작동이 유발되고 로봇의 동일한 동작을 의도한 것이라도 프로그램의 효율성에 따라 그 작동에 있어서 차이를 가진다.
현재, 마이크로로봇은 제작키트 형태로 일반인들에게 제공되는데, 그 종류는 다양하다. 예를 들면, 로봇으로 하여금 일정 기능만을 수행하도록 하는 제어 프로그램을 내장한 칩을 제공하는 제작키트의 경우, 마이크로로봇 제작자는 인쇄회로기판에 전자소자와 전자부품등을 납땜하고 기자재를 조립하면 되므로 세부적인 전자공학 관련 지식이 없어도 제작을 마칠 수 있다.
반면, 마이크로로봇 제어 프로그램이 제작자에 의하여 변경가능하도록 하고 이에 관련한 전자부품의 설치에 유동성을 부여한 제작키트의 경우, 마이크로로봇 제작자는 상당한 전자공학 관련 지식을 습득하고 있어야 한다. 따라서, 이러한 기존의 마이크로로봇 제작키트들은 키트 제작자에게 제한된 교육기능을 제공할 수 밖에 없다.
전술한 바와 같이, 마이크로로봇의 핵심적인 부분은 제어 프로그램으로서 제작키트를 구입한 자에게 제어 프로그램에 대한 학습기능까지 제공할 수 있다면, 키트 제작자가 마이크로로봇을 구성하는 각 부의 기능을 이해하는데 많은 도움을 줄 수 있고, 또한 완성된 마이크로로봇을 다양하게 동작시킴으로써 키트 제작자에게 프로그램의 학습에 더욱 많은 흥미를 느끼게 할 것이다.
이에, 전자공학 관련지식이 없는 자라도 용이하게 마이크로로봇 제어 프로그램을 작성하고 작성된 프로그램을 마이크로로봇에 적용하여 동작시킴으로써 결과를 확인할 수 있는 마이크로로봇 제어 프로그램의 교육수단이 요구되고 있다.
본 발명은 상기한 바와 같은 요구에 부응하기 위하여 안출된 것으로서, 전자공학 관련 지식이 없는 자라도 마이크로로봇 제어 프로그램을 제작할 수 있도록 그래픽 환경과 텍스트 환경으로 호환되는 프로그램 제작툴, 제작된 프로그램을 마이크로로봇에 다운로드하는 수단 및 프로그램을 다운로드받아 목적된 기능을 수행하는 마이크로로봇으로 구성된 마이크로로봇 제어프로그램 교육 시스템을 제공하는 것을 그 목적으로 한다.
도 1은 본 발명에 의한 마이크로로봇 제어프로그램 교육 시스템의 연결형태를 개략적으로 도시한 블록도이다.
도 2는 본 발명에 의한 마이크로로봇이 동작하는 모습을 예시한 것이다.
도 3은 본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어의 구성을 개략적으로 도시한 블록도이다.
도 4a는 본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어가 사용자에게 제공하는 프로그래밍 툴을 예시한 화면이다.
도 4b는 본 발명에 의한 객체화된 제어프로그램을 그래픽 프로그래밍 수단에 의하여 편집하는 경우의 프로그래밍 툴을 예시한 화면이다.
도 4c는 본 발명에 의한 객체화된 제어프로그램을 텍스트 프로그래밍 수단에 의하여 편집하는 경우의 프로그래밍 툴을 예시한 화면이다.
도 5a는 본 발명에 의한 객체 프로그램 제공부가 그래픽 인터페이스로 제공하는 커맨드 프로그램들의 아이콘바를 예시한 화면이다.
도 5b는 본 발명에 의한 커맨드 프로그램의 아이콘이 클릭되었을 때 그래픽 편집을 위하여 제공되는 입력단형태의 커맨드 프로그램을 예시한 것이다.
도 6a는 본 발명에 의한 객체 프로그램 제공부가 그래픽 인터페이스로 제공하는 이벤트 프로그램들의 아이콘바를 예시한 화면이다.
도 6b는 본 발명에 의한 이벤트 프로그램의 아이콘이 클릭되었을 때 그래픽 편집을 위하여 제공되는 블록형태의 이벤트 프로그램을 예시한 것이다.
도 7a는 본 발명에 의한 객체 프로그램 제공부가 그래픽 인터페이스로 제공하는 스택 프로그램들의 아이콘바를 예시한 화면이다.
도 7b는 본 발명에 의한 스택 프로그램의 아이콘이 클릭되었을 때 그래픽 편집을 위하여 제공되는 블록형태의 스택 프로그램을 예시한 것이다.
도 8은 본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어를 구비한 컴퓨터가 마이크로로봇으로 마이크로로봇 제어 프로그램 코드를 전송하기 위하여 사용하는 중간코드 전송 프로토콜의 데이터열을 예시한 것이다.
도 9는 본 발명에 의한 마이크로로봇의 내부구성을 개략적으로 도시한 블록도이다.
도 10은 본 발명에 의한 마이크로로봇 제어프로그램 교육 방법에 있어서, 마이크로로봇 제어프로그램 교육 소프트웨어를 통하여 프로그래밍을 학습하는 방법을 도시한 흐름도이다.
도 11은 본 발명에 의한 마이크로로봇 제어프로그램 교육 방법에 있어서, 마이크로로봇을 작동하는 방법을 도시한 흐름도이다.
〈도면의 주요 부분에 대한 부호의 설명〉
100: 마이크로로봇 제어프로그램 교육 소프트웨어
110: 객체 프로그램 제공부 112: 커맨드 프로그램
114: 이벤트 프로그램 116: 스택 프로그램
120: 프로그램 사용자인터페이스 122: 그래픽 프로그래밍 수단
122a: 그래픽파일 생성 프로그램 124: 프로그래밍 인터페이스 변환수단
126: 텍스트 프로그래밍 수단 126a: 코드 생성 프로그램
130: 중간코드 변경부 140: 다운로드부
400: 데이터 송수신장치
상기의 목적을 달성하기 위하여, 본 발명에 의한 마이크로로봇 제어프로그램 교육 시스템은 순서열 구조에 따라 수행되는 다수의 마이크로로봇 작동 명령어 집합을 객체화한 커맨드 프로그램, 다수의 이벤트 함수를 설정하고 이벤트가 발생하면 해당 이벤트 함수를 호출하여 병렬 구조로 실행하는 객체화된 이벤트 프로그램 및 다수의 프로그램 구문구조를 객체화한 스택 프로그램을 포함하여 구성되는 객체 프로그램 제공부; 객체화된 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을표현하는 그래픽파일 생성 프로그램을 구비하고, 객체 프로그램들 중 어느 하나의 객체 프로그램을 사용자로부터 선택받아 그래픽파일 생성 프로그램을 통하여 그래픽 처리되도록 하며, 그래픽 처리된 객체 프로그램을 사용자가 그래픽상에서 조합하여 핸들링할 수 있도록 하는 그래픽 프로그래밍 수단, 객체화된 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을 표현하는 코드 생성 프로그램을 구비하고, 객체 프로그램들 중 어느 하나의 객체 프로그램을 사용자에 의하여 선택받아 코드 생성 프로그램을 통하여 코드처리되도록 하며, 코드처리된 객체 프로그램을 사용자가 텍스트기반에서 편집할 수 있도록 하는 텍스트 프로그래밍 수단 및 그래픽 프로그래밍 수단 혹은 텍스트 프로그래밍 수단을 통하여 생성된 마이크로로봇 제어프로그램을 그래픽 처리 또는 코드 처리하여 상호 변환하는 프로그래밍 인터페이스 변환수단으로 구성되는 프로그램 사용자인터페이스; 프로그램 사용자 인터페이스를 통하여 생성된 마이크로로봇 제어프로그램을 컴파일하는 중간코드 변경부; 및 중간코드 변경부에서 컴파일된 마이크로로봇 제어프로그램을 마이크로로봇으로 다운로드하는 다운로드부를 기능시키기 위한 마이크로로봇 제어프로그램 교육 소프트웨어를 기록한 컴퓨터로 읽을 수 있는 저장매체를 구비한 컴퓨터와, 컴퓨터로부터 생성된 마이크로로봇 제어 프로그램 코드를 전송받아 인코딩하고, 인코딩된 신호 및 센서에서 변환된 신호를 연산처리하여 구동하는 마이크로로봇을 포함한다.
이하에서 첨부된 도면을 참조하여 본 발명에 의한 마이크로로봇 제어프로그램 교육 시스템을 상세히 설명한다.
도 1은 본 발명에 의한 마이크로로봇 제어프로그램 교육 시스템의 연결형태를 개략적으로 도시한 블록도이다.
도 1에 의하면, 본 발명에 의한 마이크로로봇 제어프로그램 교육 시스템은 마이크로로봇 제어프로그램 교육 소프트웨어(100) 및 데이터 송수신장치(400)를 구비한 컴퓨터(200)와 컴퓨터(200)로부터 마이크로로봇 제어 프로그램 코드를 전송받아 인코딩하고, 인코딩된 신호 및 센서에서 변환된 신호를 연산처리하여 구동하는 마이크로로봇(300)으로 구성된다.
특히, 마이크로로봇 제어프로그램 교육 소프트웨어(100)는 객체화된 다수의 마이크로로봇 제어프로그램을 제공하고, 객체화된 프로그램들을 핸들링할 수 있도록 사용자에게 그래픽 프로그래밍 수단(122) 및 텍스트 프로그래밍 수단(126)을 제공한다. 사용자가 그래픽 프로그래밍 수단(122) 및 텍스트 프로그래밍 수단(126)을 이용하여 새로운 기능을 수행하는 마이크로로봇 제어 프로그램을 편집생성하면 마이크로로봇 제어프로그램 교육 소프트웨어(100)는 생성된 프로그램을 중간코드화하여 마이크로로봇(300)으로 다운로드한다.
도 2는 본 발명에 의한 마이크로로봇(300)이 동작하는 모습을 예시한 것이다.
도 2에 예시된 바와 같이, 사용자가 객체화된 프로그램들을 편집하여 마이크로로봇 제어프로그램을 생성함에 따라 마이크로로봇(300)은 펜을 장착하여 그림을 그리고, 음악을 재생하며, LED(Light Emitted Diode) 다이오라마를 펼칠 수 있다. 이는 마이크로로봇(300)이 시퀀스 구조를 가진 프로그램을 수행한 것이며, 또한 병렬 구조의 프로그램을 수행함으로써 마이크로로봇(300)은 장애물을 피하면서 주행을 하고, 소리와 빛에 반응하며 동작할 수도 있다. 즉, 사용자는 객체화된 프로그램을 조합함으로써 마이크로로봇(300)을 다양하게 동작시킬 수 있는 것이다.
본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어(100)는 프로그램밍 초보 학습자도 객체 프로그램을 쉽게 편집하고 마이크로로봇(300)을 다양하게 동작시킬 수 있는 프로그래밍 툴을 제공한다.
이하에서, 도 3을 참조하여 개략적으로 전술한 마이크로로봇 제어프로그램 교육 시스템을 구성별로 보다 상세히 설명한다.
도 3은 본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어(100)의 구성을 개략적으로 도시한 블록도이다.
도 3에 의하면, 마이크로로봇 제어프로그램 교육 소프트웨어(100)는 객체 프로그램 제공부(110), 프로그램 사용자인터페이스(120), 중간코드 변경부(130) 및 다운로드부(140)로 구성되는데, 객체 프로그램 제공부(110)는 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 구비하고, 프로그램 사용자인터페이스(120)는 그래픽파일 생성 프로그램(122a)을 구비한 그래픽 프로그래밍 수단(122), 코드 생성 프로그램(126a)을 구비한 텍스트 프로그래밍 수단(126) 및 프로그래밍 인터페이스 변환수단(124)으로 구성된다.
객체 프로그램 제공부(110)는 객체화한 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 프로그램 사용자인터페이스(120)로 제공한다.
여기서, 객체화한 프로그램이란, 프로그램 설계에 있어서 논리 구현상 유도된 특정 기능을 수행하는 최소코드단위들을 의미한다. 이 코드단위들은 다른 객체지향 프로그래밍에 삽입되어 재사용될 수 있고, 자료 숨김 특성을 가지므로 높은 시스템 보안을 제공하며, 재사용됨에 있어 데이터 충돌을 회피하는 안정성을 가진다.
객체는 일반화된 객체 클래스로 만들어지고 보다 일반화된 클래스가 정의됨으로써, 각 객체가 모델을 공유하고 코드상에서 클래스 정의를 재사용할 수 있게 한다. 객체 프로그램은 클래스에 자체 메쏘드나 프로시저 그리고 데이터변수를 가지고 있어서 객체 프로그래밍을 가능하게 한다.
커맨드 프로그램(112)은 순서열 구조에 따라 수행되는 다수의 마이크로로봇 작동 명령어 집합을 객체화한 것이다. 커맨드 프로그램(112)은 모터 구동제어, 스피커(비프음 혹은 사운드의 출력) 출력제어, LED 출력제어, 카운터 설정제어 및 타이머 설정제어 중에서 어느 하나 이상의 마이크로로봇 작동제어를 지시하는 명령어 집합을 정의한다. 따라서, 사용자는 모터를 작동시키기 위해서 하나 이상의 커맨드 프로그램(112)을 사용하여야 한다.
이벤트 프로그램(114)은 다수의 이벤트 함수를 설정하고 이벤트가 발생하면 해당 이벤트 함수를 호출하여 병렬 구조로 실행하도록 객체화된 프로그램이다. 이벤트 프로그램(114)은 마이크로로봇(300)에 설치된 스위치 버튼신호, 센서 신호, 카운터 신호, 타이머 신호 및 마이크로로봇 제어프로그램의 최초 실행에 따른 다수의 이벤트 중에서 어느 하나 이상의 이벤트가 발생하면 해당 이벤트 함수를 호출하여 병렬 구조로 실행한다. 따라서, 이벤트 프로그램(114)은 하나 이상의 커맨드 프로그램(112)과 연계되어야 한다.
이벤트가 발생하는 경우로는 다음과 같은 예가 있을 것이다.
첫째, 센서에 의하여 이벤트가 발생하는 경우가 있으며, 마이크로로봇(300)에 장착되는 센서로는 적외선 근접센서, 온도센서 및 조도센서 등이 있다. 적외선 근접센서는 원주형의 고주파 발진형으로서 와전류 발진회로 원리를 응용하여 설계되고 증폭기 및 동작LED를 내장하고 있다. 근접센서에 의하여 장애물을 감지한 경우, 온도센서에 의하여 사용자가 입력한 수치에 해당하는 특정 온도를 감지한 경우 및 특정 빛의 밝기를 감지한 경우에 각 센서의 감지신호에 의하여 이벤트가 발생한다. 마이크로로봇(300)으로 전송된 이벤트 프로그램(114)은 이벤트가 발생하면 사용자가 연결하여 놓은 커맨드 프로그램(112)을 실행시키고, 마이크로로봇(300)은 빛을 좇아 구동한다든지, 라인트레이스한다든지, 일정 온도를 포착하면 LED를 켠다든지 등의 동작을 수행한다.
둘째, 스위치에 의하여 이벤트가 발생하는 경우가 있다. 스위치는 사용자 임의로 마이크로로봇(300)에게 특정기능을 수행시킬 수 있는 사용자 버튼으로 볼수 있는 것으로서, 마이크로로봇(300)의 기능을 리셋시키는 리셋버튼과 구동을 명령하는 스타트 버튼이 있을 수 있고, 전술한 커맨드 명령이 스위치 이벤트 프로그램(114)과 조합되는 방식에 따라 사용자가 버튼을 누르면 마이크로로봇(300)의 다양한 동작을 반복하여 연출할 수 있다.
셋째, 카운터와 마이크로로봇(300)의 프로세서에 내장된 타이머에 의하여 이벤트가 발생하는 경우를 들 수 있다. 이 경우에 마이크로로봇(300)은 전술한 커맨드 프로그램(112)들의 조합에 따라 동작하다가 사용자가 설정한 시간이 경과하거나 일정 횟수가 카운트되면 다른 동작을 수행한다. 가령, 주행을 시작한 지 5분이 경과하면 비프음을 세 번 울리고 동작을 잠시 멈춘 후 다시 주행을 이어가도록 마이크로로봇(300)을 프로그램시킬 수 있다. 이 경우에는 후술할 스택 프로그램(116)과 연계하여야 할 것이다.
스택 프로그램(116)은 다수의 프로그램 구문구조를 객체화한 프로그램이다. 스택 프로그램(116)으로는 Do구문, Do∼While구문, While구문, 루프(반복)구문, If Then Else구문, If End구문 등이 있다.
사용자가 전술한 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 후술할 프로그램 사용자인터페이스(120)(그래픽 프로그래밍 수단(122) 및 텍스트 프로그래밍 수단(126))을 통하여 핸들링함에 있어서, 프로그래밍 문법구조에 따라 배열될 수 있도록 각 객체화된 프로그램들은 프로그램코드 배열정보를 내장하고 있다.
프로그램 사용자인터페이스(120)는 그래픽 프로그래밍 수단(122), 텍스트 프로그래밍 수단(126) 및 프로그래밍 인터페이스 변환수단(124)으로 구성되고, 그 외의 프로그램 구성요소(가령, 윈도우, 프레임, 메뉴, 툴바, 상태바 등) 클래스와 메시지처리, 키보드와 마우스 입력 등을 위한 라이브러리 클래스도 포함하고 있다.
그래픽 프로그래밍 수단(122)은 전술한 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)(이하에서, '객체 프로그램'이라 지칭되기도 한다)을 표현하는 그래픽파일 생성 프로그램(122a)을 구비하고 있으며, 프로그램 사용자인터페이스(120)는 객체 프로그램들을 프로그래밍 툴의 툴바에 그래픽으로 표현하여 사용자로 하여금 선택하도록 한다. 그랙픽 프로그래밍 수단은 사용자로부터 하나 이상의 객체 프로그램을 선택받아 전술한 그래픽파일 생성 프로그램(122a)을 통하여 그래픽 처리되도록 하고, 그래픽 처리된 객체 프로그램을 사용자가 그래픽상에서 조합하여 핸들링할 수 있도록 한다.
도 4a는 본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어(100)가 사용자에게 제공하는 프로그래밍 툴을 예시한 화면이다.
도 4a에 의하면, 화면의 좌단에는 객체 프로그램들을 선택할 수 있도록 아이콘이 표시된 툴바(45a)가 있고, 상단에는 파일관리자 메뉴(41a), 프로그래밍 인터페이스 변환수단(124) 메뉴(42a), 중간코드 변경부(130) 메뉴(43a)등이 표시된 메뉴바가 있다. 그리고, 화면의 중앙에는 객체 프로그램을 표시하는 그래픽 블록의 편집영역이 위치하고, 메뉴바와 편집영역의 사이에는 도움말 표시영역(44a)이 있다. 화면의 우측하단에 위치한 아이콘(48a)은 착오선택한 블록을 취소하는 아이콘이다(가령, 사용자가 블록을 마우스로 드래그하여 취소 아이콘에 맞추어 클릭하면,블록은 휴지통에 버려지게 된다).
커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)은 그래픽파일 생성 프로그램(122a)에 의하여 그래픽파일로 표현되는데, 이는 요철을 형성한 블록형태(46a, 47a)를 가지는 것이 바람직하다.
그래픽파일로 표현된 객체 프로그램들은 프로그램 코드 배열 정보에 따라 블록조합되고, 사용자가 프로그래밍 문법구조에 적합하지 않은 블록 조합을 의도하는 경우에는 상기 프로그램 코드 배열 정보에 따라 블록조합이 형성되지 않는다. 또한, 그래픽 프로그래밍 수단(122)은 사용자가 그래픽파일로 표현된 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 핸들링함에 있어서, 마이크로로봇(300)의 동작을 제어하는 다수의 선택정보를 입력할 수 있도록 그래픽 입력단(46a)을 구비하고 있다.
즉, 사용자가 마우스로 툴바(45a) 중의 어느 하나의 아이콘을 클릭하면 그래픽 입력단(46a)이 디스플레이된다. 사용자가 선택정보(마우스로 선택항을 지정하거나 수치정보를 입력할 수 있다)를 입력하면 입력단은 블록(47a)으로 전환된다. 사용자는 블록(47a)을 마우스로 드래그하여 블록을 조합한다. 이 때, 전술한 바와 같이 코드 배열 정보가 맞지 않으면 블록(47a)들은 서로 결착고정되지 못하고 편집영역에 머무르게 된다.
도 4b는 본 발명에 의한 객체화된 제어프로그램을 그래픽 프로그래밍 수단(122)에 의하여 편집하는 경우의 프로그래밍 툴을 예시한 화면이다.
도 4b에 의하면, 프로그래밍 툴의 편집영역에는 다수의 블록들(41b, 42b,43b, 44b)이 조합되어 있는데, 메인프로그램(41b) 하단으로 계층을 이루며 작은 블록(42b)들이 조합되어 있다. 이들 블록(42b)은 커맨드 프로그램(112)을 표시하는 그래픽파일이다. 그 우측으로 구성된 블록조합(43b, 44b)은 이벤트 프로그램(114)(43b에 해당)과 스택 프로그램(116)(44b에 해당)으로 구성되어 있다. 여기서, 이벤트 프로그램(114)은 스위치 블록(43b)으로서 1번 스위치만이 이벤트를 발생시키도록 설정되어 있고, 스택 프로그램(116)은 For구문 블록(44b)이다. 이들 밑으로 커맨드 프로그램(112) 블록이 형성되어 있다.
텍스트 프로그래밍 수단(126)은 객체화된 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 표현하는 코드 생성 프로그램(126a)을 구비하고 있으며, 전술한 바와 같이 프로그램 사용자인터페이스(120)가 프로그래밍 툴의 툴바에 그래픽으로 표현한 객체 프로그램들 중에서 하나 이상의 객체 프로그램을 사용자에 의하여 선택받는다. 텍스트 프로그래밍 수단(126)은 전술한 코드 생성 프로그램(126a)을 통하여 선택받은 객체 프로그램을 코드처리되도록 하고, 코드처리된 객체 프로그램을 사용자가 텍스트기반에서 편집할 수 있도록 편집기를 제공한다.
전술한 코드 생성 프로그램(126a)을 포함한 사용자 인터페이스 프로그램들은 OCX(OLE custom control)를 통하여 구현될 수 있을 것이다. OCX란 하나의 객체 연결 및 포함(OLE) 맞춤형 컨트롤로, 마이크로소프트 윈도우에서 수행되는 응용프로그램에서 사용되기 위해 만들어질 수 있는 특수목적 프로그램이다. 또한, OCX는 ActiveX control이라 부르기도 하는데, OLE는 문자, 그림, 소리, 동영상 등 여러가지 종류의 정보 양식을 가지고 있는 복합 문서를 지원하기 위해 설계되었으며, OCX나 ActiveX control은 보통 DLL 형태로 구현된다.
도 4c는 본 발명에 의한 객체화된 제어프로그램을 텍스트 프로그래밍 수단(126)에 의하여 편집하는 경우의 프로그래밍 툴을 예시한 화면이다.
텍스트 프로그래밍 수단(126)은 코드 생성 프로그램(126a)을 통하여 코드처리된 상기 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)의 프로그래밍 언어상의 코드 스타일을 설정하는 기능을 구비하고 있다. 예를 들어 예시한 편집기 화면에 표시된 코드들은 베이직 언어의 함수폼을 취한 것이다. 코드 처리된 상기 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)은 베이직 언어 및 C언어를 포함하는 기존의 프로그래밍 언어와 호환되어 사용될 수 있도록 객체 프로그램된 것으로서 예시된 경우에는 베이직 함수의 폼으로 전환되어 기존의 다른 베이직 언어와 호환될 수 있는 것이다.
또한, 텍스트 프로그래밍 수단(126)은 코드처리된 객체 프로그램들을 텍스트 기반에서 편집함에 있어서 코드열을 정렬하는 기능, 코드열을 표시하여 검출(북마크)하는 기능 및 착오 표기된 코드를 디버깅하는 기능(가령, 사용자가 편집기에'RUNMOTOR(x)'란 코드함수를 'MOTORRUN(x)'라 기재하였을 경우, 이를 전술한 객체 프로그램 제공부(110)의 객체 프로그램들과 비교하여 해당하는 함수를 검출하고 자동으로 표기를 수정하는 기능) 등의 응용된 기능들을 제공할 수 있다.
도 5a는 본 발명에 의한 객체 프로그램 제공부(110)가 그래픽 인터페이스로 제공하는 커맨드 프로그램(112)들의 아이콘바를 예시한 화면이다.
도 5a에 도시된 아이콘바의 아이콘들은 전술한 커맨드 프로그램(112)들의 기능별 종류를 나타내는 것으로서, 이들이 나타내는 코드를 살펴보면 'OnPort(x)'(모터 또는 LED에 사용되는 포트를 개방, 즉 모터를 구동하며 토큰은 0x10)(5.1), 'OnPortFor(x)'(포트를 시간을 의미하는 두 번째 파라미터 동안 개방, 즉 모터를 일정시간 동안 구동하며 토큰은 0x11)(5.2), 'OffPort(x)'(포트를 폐쇄, 토큰은 0x12)(5.3), 'SetPower(x)'(포트의 파워설정, 토큰은 0x13)(5.4), 'SetDirection(x)'(포트의 방향을 설정하는 것으로서, CW(시계방향), CCW(반시계방향)으로 바퀴의 방향을 역전시키면 마이크로로봇은 제자리에서 회전한다)(5.5), 'ReverseDirection(x)'(양바퀴의 회전 속도를 조절함으로써 마이크로로봇(300)의 주행방향을 결정)(5.6), 'Wait(x)'(정해진 시간동안 대기, 가령 1/10sec단위)(5.7), 'Beep(x)'(설정 횟수만큼 비프음 출력)(5.8), 'Sound(x)'(해당주파수의 음을 두 번째 파라미터의 시간동안 출력)(5.9), 'SetCounter(x)'(포트의 카운터 설정)(5.10), 'ResetCounter(x)'(포트의 카운터를 0으로 설정)(5.11), 'SetTimer(x)'(타이머값을 전달된 파라미터로 설정)(5.12), 'ResetTimer(x)'(타이머값을 0으로 설정)(5.13), 'UpPen(x)'(펜을 지면에서 올림, 모터 포트를 제어)(5.14), 'DownPen(x)'(펜을 지면에 마찰시킴)(5.15)가 있다.
도 5b는 본 발명에 의한 커맨드 프로그램(112)의 아이콘이 클릭되었을 때 그래픽 편집을 위하여 제공되는 입력단형태의 커맨드 프로그램(112)을 예시한 것이다.
입력단은 모터구동을 위한 블록을 예시한 것으로서, 입력되는 선택정보로는양 바퀴를 회전시키는 모터(5.16, 5.17)의 구동 여부, 구동시간(5.18), 선택정보가 입력된 후 입력단의 조합형 블록으로의 환원 여부(5.19), 입력단의 취소(5.20) 등이 있다.
도 6a는 본 발명에 의한 객체 프로그램 제공부(110)가 그래픽 인터페이스로 제공하는 이벤트 프로그램(114)들의 아이콘바를 예시한 화면이다.
도 6a에 도시된 아이콘바의 아이콘들은 전술한 이벤트 프로그램(114)들의 기능별 종류를 나타내는 것으로서, 이들이 나타내는 코드를 살펴보면 'MaroMain(x)'(프로그램 시작에 의한 이벤트, 코드는 0xFF0001)(6.1), 'OnSwitch(x)'(스위치 입력 On에 의한 이벤트, 코드는 0xFF0002)(6.2), 'OffSwitch(x)'(스위치 입력 Off에 의한 이벤트)(6.3), 'OnTemp(x)'(온도센서의 값이 설정된 파라미터의 1~2사이일 때의 이벤트)(6.4), 'OnLight(x)'(조도센서의 값이 설정된 파라미터의 1~2사이일 때의 이벤트)(6.5), 'OnNear(x)'(근접센서1 또는 근접센서2의 값이 설정된 파라미터의 2~3사이일 때의 이벤트)(6.6), 'OnCounter(x)'(카운터A, B 또는 C의 값이 설정된 파라미터의 2~3사이일 때의 이벤트)(6.7), 'OnTimer(x)'(타이머값이 설정된 파라미터와 동일할 때의 이벤트)(6.8)가 있다.
도 6b는 본 발명에 의한 이벤트 프로그램(114)의 아이콘이 클릭되었을 때 그래픽 편집을 위하여 제공되는 블록형태의 이벤트 프로그램(114)을 예시한 것이다.
도 7a는 본 발명에 의한 객체 프로그램 제공부(110)가 그래픽 인터페이스로 제공하는 스택 프로그램(116)들의 아이콘바를 예시한 화면이다.
도 7b는 본 발명에 의한 스택 프로그램(116)의 아이콘이 클릭되었을 때 그래픽 편집을 위하여 제공되는 블록형태의 스택 프로그램(116)을 예시한 것이다.
도 7b에 의하면, 스택 프로그램(116) 블록의 내부에는 마우스로 클릭가능한 아이콘들(7.1)이 있는데, 이들은 전술한 이벤트 프로그램(114)(메인 프로그램은 제외)을 연결하기 위한 것이다.
프로그래밍 인터페이스 변환수단(124)은 그래픽 프로그래밍 수단(122) 혹은 텍스트 프로그래밍 수단(126)을 통하여 생성된 마이크로로봇 제어프로그램을 그래픽 처리 또는 코드 처리하여 상호 변환한다.
상기 프로그램 사용자인터페이스(120)는 사용자가 코드처리되거나 그래픽처리된 상기 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 편집함에 있어서, 마우스 인터페이스를 제공하고 객체 프로그램의 표현 영역에 마우스의 커서가 위치하면 해당 객체 프로그램의 기능에 대한 도움말을 제공한다.
중간코드 변경부(130)는 전술한 프로그램 사용자 인터페이스를 통하여 생성된 마이크로로봇 제어프로그램을 컴파일한다.
다운로드부(140)는 중간코드 변경부(130)에서 컴파일된 마이크로로봇 제어프로그램을 마이크로로봇(300)으로 다운로드한다. 다운로드부(140)가 마이크로로봇 제어프로그램을 다운로드하기 위해서는 컴퓨터(200)와 마이크로로봇(300)은 데이터 송수신장치(400)를 구비해야한다. 데이터 송수신장치(400)로는 직렬포트 및 RS-232 송수신장치(UART: Universal Asynchronous Receiver/Transmitter, 범용 비동기화 송수신기), 혹은 적외선 포트 및 적외선 송수신(IRDA: Infrared Data Association; 적외선을 이용한 근거리 무선통신 시스템, 프린터, 시리얼 장치등의 표준 프로토콜)장치가 사용될 수 있을 것이다.
도 8은 본 발명에 의한 마이크로로봇 제어프로그램 교육 소프트웨어(100)를 구비한 컴퓨터(200)가 마이크로로봇(300)으로 마이크로로봇 제어프로그램을 전송하기위하여 사용하는 중간코드 전송 프로토콜의 데이터열을 예시한 것이다.
도 8에 의하면, 전송 데이터열의 각 목적 코드는 이벤트 코드 3바이트, 파라미터 4바이트, 커맨드 코드 1바이트, 파라미터 4바이트로 구성되는데, 스택 컨트롤 코드가 전달되면 목적 코드는 가변적으로 유보된다. 즉, 스택 컨트롤 코드(0xFF 0x01)가 수신되면 이벤트 코드의 삽입을 검사하여 삽입이 되어야 하는 경우 이벤트 코드와 파라미터를 전송받은 후에 커맨드 코드를 수신한다. 스택 컨트롤 코드의 종료 코드로 사용되는 0xFF가 수신될때까지 스택에 포함되는 커맨드 코드를 수신한다. 초기의 커맨드 코드와 파라미터는 이벤트 코드가 나타날때까지 연속으로 전송(80)되고 종료코드(0xFF 0x00 0x00)가 수신되면 종료한다.
이하에서, 도 9를 참조하여 본 발명에 의한 마이크로로봇(300)의 내부구성을 상세히 설명한다.
도 9는 본 발명에 의한 마이크로로봇(300)의 내부구성을 개략적으로 도시한 블록도이다.
도 9에 의하면, 본 발명에 의한 마이크로로봇(300)은 프로세서(305), 메모리부(310), 수신부(315), 인코더(320), 센서부(325), 스위치부(330), 구동부(335), 스피커부(340), LED부(345), 전원부(350) 및 펜고정부(355)를 포함하여 구성된다.
전원부(350)는 크게 배터리 및 컨버터로 구성되는데, 그 외에 다수의 모터,바퀴, 구동칩, 고속 다이오드 및 커넥터로 구성된다.
센서부(325)는 디코더, 전력증폭칩, 오피앰프 및 수광측과 발광측의 적외선 근접센서(325a), 조도센서(325c) 및 온도센서(325b)를 구비한다. 적외선 근접센서(325a)는 장애물을 감지하는 센서로서 마이크로로봇(300)에 장착되어 전방을 향하게 조정되면 마이크로로봇(300)이 장애물을 회피하여 주행하도록 하고, 저면을 향하여 조정되면 검은색 라인을 추적하여 주행하는 라인 트레이서로 동작하도록 한다.
조도센서(325c)는 수십에서 수천룩스(lux)에 해당하는 단계별 감지 기능을 가지며 전술한 프로그래밍 수단을 통하여 사용자가 입력한 조도 범위의 빛을 감지하면 이벤트를 발생시키고 마이크로로봇(300)은 이벤트 프로그램(114)에 이어지는 커맨드 프로그램(112)을 수행하여 작동한다.
온도센서(325b)로는 일반적으로 비접촉식 IR온도센서(Infrared pyrometer)가 사용된다. IR 온도센서는 물체에서 방사되는 적외선을 검지하여 직접 접촉하지 않아도 물체표면의 온도를 감지할 수 있으므로 사용자가 전술한 프로그래밍 수단을 통하여 검지하고자 하는 일정범위의 온도를 입력하면 IR 온도센서를 장착한 마이크로로봇(300)은 접근 불가능 지역 등 위험개소의 온도를 비접촉식으로 계측하고 이상발열 현상을 감시하도록 응용될 수 있다(가령, 이상온도에 의한 이벤트가 발생하면 마이크로로봇(300)은 스피커를 통하여 비프음을 발생하도록 프로그램될 수 있다).
수신부(315)는 직렬 포트 및 RS-232를 이용하여 컴퓨터(200)로부터 마이크로로봇 제어 프로그램 코드를 전송받는다. 수신부(315)는 전술한 바와 같이 적외선 수신장치를 이용할 수도 있다.
인코더(320)는 수신부(315)에서 수신한 마이크로로봇 제어프로그램을 디지털 데이터로 인코딩한다.
메모리부(310)는 인코더(320)에서 처리된 마이크로로봇 제어프로그램 데이터를 저장하고, 프로세서(305)의 연산 처리 과정에서 생성되는 임시 데이터를 저장한다. 메모리로는 전원이 차단될 경우 전송된 동작 데이터를 저장할 수 있어야 하므로 슬립(sleep)기능이 있는 메모리, 혹은 비휘발성 램(NVRAM: Nonvolatile Random Access Memory)을 사용하도록 한다. NVRAM은 백업 배터리가 달린 SRAM(Static Random Access Memory)을 제공하거나, EEPROM(Electrically Erasable Programmable Read-Only Memory)에 데이터를 저장하였다가 복원하는 방법으로 구현될 수 있다.
프로세서(305)는 메모리부(310)에 저장된 마이크로로봇 제어프로그램을 연산처리하여 마이크로로봇(300)의 동작을 제어한다.
프로세서(305)는 프로그램 사용자인터페이스(120)를 통하여 편집되고 수신부(315)로 전송된 하나 이상의 이벤트 프로그램(114)을 연산처리하고 전술한 조도센서(325c), 온도센서(325b), 근접센서(325a)의 감지신호와 타이머 신호, 카운터 신호 및 스위치 신호에 따른 이벤트를 인식하여 마이크로로봇(300)을 동작시킨다. 이 때의 마이크로로봇(300)은 전술한 커맨드 프로그램(112)들의 기능에 따라 다양하게 동작할 수 있다.
스위치부(330)는 프로세서(305)로 하여금 마이크로로봇(300)의 특정 동작을제어하도록 특정 마이크로로봇 제어프로그램을 호출한다. 일례로 스타트 버튼을 들 수 있는데, 스타트 버튼을 누르면 마이크로로봇(300)은 일정시간을 대기한 후(사용자에게는 마이크로로봇(300)에게 동작명령을 지시한 후, 얼마간의 마이크로로봇(300) 셋팅 시간이 필요한 경우가 있다) 제어프로그램을 실행시켜 동작한다. 스타트 버튼의 기능은 전술한 스위치 이벤트 프로그램(114), 웨이트(Wait) 커맨드 프로그램(112) 등을 통하여 구현될 수 있다.
스피커부(340)는 프로세서(305)의 제어신호에 따라 일정 신호음 혹은 사운드를 송출하는데, 다수개로 구현될 수 있다.
LED부(345)는 프로세서(305)의 제어신호에 따라 동작하는 하나 이상의 LED, LED구동칩을 구비한다.
또한, 마이크로로봇(300)은 펜고정부(355)를 가지는데, 펜고정부(355)는 솔레노이드에 연결되어 상하로 이동되고 펜을 장착할 수 있는 지지대를 포함한다. 따라서, 사용자는 펜을 지지대에 장착하고, 솔레노이드를 제어하여 지지대를 상하로 이동시키는 커맨드 프로그램(112)을 비롯한 주행 관련 커맨드 프로그램(112)을 마이크로로봇(300)으로 다운로드함으로써 마이크로로봇(300)은 그림을 그리거나 글자를 쓸 수 있다.
이하에서 첨부된 도면을 참조하여 본 발명에 의한 방법을 상세히 설명한다.
도 10은 본 발명에 의한 마이크로로봇 제어프로그램 교육 방법에 있어서, 마이크로로봇 제어프로그램 교육 소프트웨어(100)를 통하여 프로그래밍을 학습하는 방법을 도시한 흐름도이다.
도 11은 본 발명에 의한 마이크로로봇 제어프로그램 교육 방법에 있어서, 마이크로로봇(300)을 작동하는 방법을 도시한 흐름도이다.
우선, 프로그램 사용자인터페이스(120)는 그래픽 프로그래밍 수단(122) 및 텍스트 프로그래밍 수단(126) 중에서 어느 하나의 프로그래밍 수단을 사용자로부터 선택받고(S110), 그래픽 프로그래밍 수단(122) 또는 텍스트 프로그래밍 수단(126)을 사용자에게 제공한다(S115, S120).
사용자가 편집명령을 전송하면 그래픽 프로그래밍 수단(122) 또는 텍스트 프로그래밍 수단(126)은 각 커맨드 프로그램(112), 이벤트 프로그램(114) 및 스택 프로그램(116)을 편집하여 마이크로로봇 제어프로그램을 생성한다(S125). 이 때, 전술한 바와 같이 프로그램 사용자인터페이스(120)는 사용자에게 프로그램 편집상의 도움말을 제공하고 에러 표시 기능 및 디버깅 기능을 수행한다.
다음으로, 중간코드 변경부(130)는 생성된 마이크로로봇 제어프로그램을 컴파일하여(S130) 중간코드(중간코드는 바이트 코드 뿐만 아니라 완전히 컴파일이 수행된 기계어 코드를 포함하는 의미이다)를 생성한다(S140).
컴파일 시 에러가 발생하면(S135), 프로그래밍 수단을 통하여 제어프로그램을 재편집하게 되는데, 이러한 경우는 주로 그래픽 프로그래밍 수단(122)보다 응용범위가 넓은 텍스트 프로그래밍 수단(126)(가령, 기존의 다른 프로그래밍 언어와 호환되어 편집된다)을 통하여 프로그래밍하는 경우에 발생하게 된다.
다운로드부(140)와 마이크로로봇(300)이 동기화되고(S145), 다운로드부(140)는 마이크로로봇 제어 프로그램 코드를 마이크로로봇(300)으로 전송한다(S150). 이때, 전송오류가 발생하면(S155) 다운로드부(140)는 다시 마이크로로봇(300)과의 동기화를 거쳐 프로그램을 재전송한다.
한편, 사용자는 마이크로로봇 제어프로그램 교육 소프트웨서를 통하여 프로그램을 제작하고, 프로그램이 수행되는 과정을 확인하기 위하여 마이크로로봇(300)을 동작시킨다. 마이크로로봇(300)의 동작과정은 다음과 같다.
처음으로, 마이크로로봇(300)은 다운로드부(140)와 동기화되어 프로그램의 수신요청을 받아(S210), 마이크로로봇 제어 프로그램 코드를 전송받는다(S220). 이 때, 전술한 바와 같이 전송 오류가 발생하면(S230) 마이크로로봇(300)은 제어프로그램을 재전송받는다.
상기와 같이 새로운 제어 프로그램 코드를 전송받거나 기존의 제어 프로그램 코드를 메모리에 저장하고 있는 마이크로로봇(300)은 동작 시작 스위치(혹은 프로그램 실행 스위치)가 사용자에 의해 연결됨으로써(즉, 사용자로부터 제어 프로그램의 실행요청이 있으면)(S240), 마이크로로봇 제어프로그램을 실행시킨다(S250).
일련의 제어프로그램이 수행되는 과정에서 이벤트가 발생하면 프로세서(305)는 이벤트 함수를 처리한 후(S270), 계속해서 제어프로그램을 실행시킨다.
최종적으로, 사용자로부터 제어프로그램의 종료 요청이 있거나(종료 스위치가 작동되는 경우)(S280) 더 이상 이벤트가 발생하지 않은 채 일련의 프로그램이 자동 종료되면(S290), 마이크로로봇(300)은 제어프로그램을 종료하고 초기화한다. 이와 같이 사용자는 자신의 프로그래밍 결과를 직접 확인함으로써, 프로그래밍 학습을 진전시킬 수 있다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 본 발명의 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명에 따른 마이크로로봇 제어프로그램 교육 시스템 및 그 방법에 의하면, 전자공학 관련 지식이 없는 자라도 그래픽 환경의 제작툴을 사용하여 마이크로로봇 제어프로그램을 작성할 수 있고, 그래픽 모듈로 제작된 제어프로그램을 프로그래밍 언어로 치환하여 비교함으로써 텍스트 기반의 컴퓨터 언어를 학습할 수 있다.
또한, 본 발명에 의하면, 제작된 마이크로로봇 제어프로그램을 마이크로로봇으로 다운로드하여 동작시킴으로써 프로그램의 기능을 확인할 수 있고, 프로그램된 마이크로로봇에 부속자재를 장착함으로써 마이크로로봇을 다양하게 작동하는 교육 기자재로 활용할 수 있는 효과가 있다.

Claims (23)

  1. 삭제
  2. 마이크로로봇 제어프로그램 교육 시스템에 있어서,
    객체화된 다수의 마이크로로봇 제어 프로그램을 제공하고, 상기 객체 프로그램들을 핸들링할 수 있도록 사용자에게 그래픽 프로그래밍 수단 및 텍스트 프로그래밍 수단을 제공하며, 상기 그래픽 프로그래밍 수단 및 텍스트 프로그래밍 수단에 의하여 생성된 마이크로로봇 제어 프로그램을 중간코드화하여 다운로드하도록 프로그램된 컴퓨터; 및
    상기 컴퓨터로부터 상기 생성된 마이크로로봇 제어 프로그램 코드를 전송받아 인코딩하고, 상기 인코딩된 신호 및 센서에서 변환된 신호를 연산처리하여 구동하는 마이크로로봇을 포함하여 구성되고,
    상기 컴퓨터는
    순서열 구조에 따라 수행되는 다수의 마이크로로봇 작동 명령어 집합을 객체화한 커맨드 프로그램, 다수의 이벤트 함수를 설정하고 이벤트가 발생하면 해당 이벤트 함수를 호출하여 병렬 구조로 실행하는 객체화된 이벤트 프로그램 및 다수의 프로그램 구문구조를 객체화한 스택 프로그램을 포함하여 구성되는 객체 프로그램 제공부;
    상기 객체화된 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을 표현하는 그래픽파일 생성 프로그램을 구비하고, 상기 객체 프로그램들 중 하나 이상의 객체 프로그램을 사용자로부터 선택받아 상기 그래픽파일 생성 프로그램을 통하여 그래픽 처리되도록 하며, 상기 그래픽 처리된 객체 프로그램을 상기 사용자가 그래픽상에서 조합하여 핸들링할 수 있도록 하는 그래픽 프로그래밍 수단; 상기 객체화된 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을 표현하는 코드 생성 프로그램을 구비하고, 상기 객체 프로그램들 중 어느 하나의 객체 프로그램을 사용자에 의하여 선택받아 상기 코드 생성 프로그램을 통하여 코드처리되도록 하며, 상기 코드처리된 객체 프로그램을 상기 사용자가 텍스트기반에서 편집할 수 있도록 하는 텍스트 프로그래밍 수단; 및 상기 그래픽 프로그래밍 수단 혹은 텍스트 프로그래밍 수단을 통하여 생성된 마이크로로봇 제어프로그램을 그래픽 처리 또는 코드 처리하여 상호 변환하는 프로그래밍 인터페이스 변환수단으로 구성되는 프로그램 사용자인터페이스;
    상기 프로그램 사용자 인터페이스를 통하여 생성된 마이크로로봇 제어프로그램을 컴파일하는 중간코드 변경부; 및
    상기 중간코드 변경부에서 컴파일된 마이크로로봇 제어프로그램을 상기 마이크로로봇으로 다운로드하는 다운로드부;를 기능시키기 위한 마이크로로봇 제어프로그램 교육 소프트웨어를 기록한 컴퓨터로 읽을 수 있는 저장매체를 구비한 것을 특징으로 하는 마이크로로봇 제어프로그램 교육 시스템.
  3. 제2항에 있어서, 상기 객체 프로그램 제공부는
    사용자가 상기 그래픽 프로그래밍 수단 및 텍스트 프로그래밍 수단을 통하여 객체 프로그램들을 핸들링함에 있어서 프로그래밍 문법구조에 따라 객체 프로그램들이 배열될 수 있도록, 프로그램 코드 배열 정보를 내장한 상기 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을 제공하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  4. 제3항에 있어서,
    상기 그래픽파일 생성 프로그램에 의하여 그래픽파일로 표현된 상기 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램은 요철을 형성한 블록형태를 가진것으로서 상기 프로그램 코드 배열 정보에 따라 블록조합되고, 사용자가 프로그래밍 문법구조에 적합하지 않은 블록 조합을 의도하는 경우에는 상기 프로그램 코드 배열 정보에 따라 블록조합이 형성되지 않는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  5. 제4항에 있어서, 상기 그래픽 프로그래밍 수단은
    사용자가 상기 그래픽파일로 표현된 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을 핸들링함에 있어서, 마이크로로봇의 동작을 제어하는 다수의 선택정보를 입력할 수 있도록 그래픽 입력단을 구비하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  6. 제2항에 있어서, 상기 텍스트 프로그래밍 수단은
    상기 코드 생성 프로그램을 통하여 코드처리된 상기 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램의 프로그래밍 언어상의 코드 스타일을 설정하는 기능, 상기 코드처리된 객체 프로그램들을 텍스트 기반에서 편집함에 있어서 코드열을 정렬하는 기능, 코드열을 표시하여 검출하는 기능 및 착오 표기된 코드를 디버깅하는 기능 중에서 어느 하나 이상의 기능을 사용자에게 제공하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  7. 제6항에 있어서,
    상기 코드 생성 프로그램을 통하여 코드처리된 상기 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램은 베이직 언어 및 C언어를 포함하는 기존의 프로그래밍 언어와 호환되어 사용될 수 있도록 프로그램된 것을 특징으로 하는 마이크로로봇 교육 시스템.
  8. 제2항에 있어서, 상기 프로그램 사용자인터페이스는
    상기 사용자가 코드처리되거나 그래픽처리된 상기 커맨드 프로그램, 이벤트 프로그램 및 스택 프로그램을 편집함에 있어서, 마우스 인터페이스를 제공하고 상기 객체 프로그램의 표현 영역에 마우스의 커서가 위치하면 해당 객체 프로그램의 기능에 대한 도움말을 제공하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  9. 제2항에 있어서, 상기 커맨드 프로그램은
    모터 구동제어, 스피커 출력제어, LED 출력제어, 카운터 설정제어 및 타이머 설정제어 중에서 어느 하나 이상의 마이크로로봇 작동제어를 지시하는 명령어 집합을 객체화한 프로그램인 것을 특징으로 하는 마이크로로봇 교육 시스템.
  10. 제2항에 있어서, 상기 이벤트 프로그램은
    마이크로로봇에 설치된 스위치 버튼신호, 센서 신호, 카운터 신호, 타이머 신호 및 마이크로로봇 제어프로그램의 최초 실행에 따른 다수의 이벤트 중에서 어느 하나 이상의 이벤트가 발생하면 해당 이벤트 함수를 호출하여 병렬 구조로 실행하는 객체화된 프로그램인 것을 특징으로 하는 마이크로로봇 교육 시스템.
  11. 제2항에 있어서, 상기 마이크로로봇은
    다수의 모터, 솔레노이드, 바퀴, 구동칩, 고속 다이오드 및 커넥터로 구성되는 구동부; 배터리 및 컨버터로 구성되는 전원부; 디코더, 전력증폭칩, 오피앰프 및 수광측과 발광측의 적외선 근접센서로 구성되는 센서부; 직렬 포트 및 RS-232를 이용하여 상기 컴퓨터로부터 마이크로로봇 제어 프로그램 코드를 전송받는 수신부; 상기 수신부에서 수신한 마이크로로봇 제어프로그램을 디지털 데이터로 인코딩하는 인코더; 상기 인코더에서 처리된 마이크로로봇 제어프로그램 데이터를 저장하는 메모리부; 상기 메모리부에 저장된 마이크로로봇 제어프로그램을 연산처리하여 마이크로로봇의 동작을 제어하는 프로세서; 및 상기 프로세서로 하여금 마이크로로봇의특정 동작을 제어하도록 특정 마이크로로봇 제어프로그램을 호출하는 스위치부를 포함하여 구성되는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  12. 제11항에 있어서,
    상기 센서부는 조도센서를 구비하고, 상기 프로세서는 상기 프로그램 사용자인터페이스를 통하여 사용자가 편집하고 상기 수신부로 전송한 하나 이상의 이벤트 프로그램을 연산처리하고 상기 조도센서의 감지신호에 따른 이벤트를 인식하여 상기 구동부를 제어하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  13. 제11항에 있어서,
    상기 센서부는 온도센서를 구비하고, 상기 프로세서는 상기 프로그램 사용자인터페이스를 통하여 사용자가 편집하고 상기 수신부로 전송한 하나 이상의 이벤트 프로그램을 연산처리하고 상기 온도센서의 감지신호에 따른 이벤트를 인식하여 상기 구동부를 제어하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  14. 제11항에 있어서,
    상기 프로세서는 타이머를 내장하고, 상기 프로그램 사용자인터페이스를 통하여 사용자가 편집하고 상기 수신부로 전송한 하나 이상의 이벤트 프로그램을 연산처리하며, 상기 타이머의 동작에 따른 이벤트를 인식하여 상기 구동부를 제어하는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제11항에 있어서,
    상기 마이크로로봇은 상기 솔레노이드에 연결되어 상하로 이동되고 펜을 장착할 수 있는 지지대를 더 구비하고,
    상기 커맨드 프로그램은 상기 솔레노이드를 제어하여 지지대를 상하로 이동시키는 연산을 상기 프로세서로 하여금 수행하도록 하는 커맨드 프로그램임을 특징으로 하는 마이크로로봇 교육 시스템.
  20. 제11항에 있어서,
    상기 수신부는 적외선 포트 및 적외선 송수신 장치를 통하여 상기 컴퓨터로부터 마이크로로봇 제어 프로그램 코드를 전송받는 것을 특징으로 하는 마이크로로봇 교육 시스템.
  21. 삭제
  22. 삭제
  23. 삭제
KR10-2001-0046524A 2001-08-01 2001-08-01 마이크로로봇 제어프로그램 교육 시스템 KR100426035B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0046524A KR100426035B1 (ko) 2001-08-01 2001-08-01 마이크로로봇 제어프로그램 교육 시스템
PCT/KR2001/001591 WO2003012636A1 (en) 2001-08-01 2001-09-24 Apparatus and method for composing microrobot controle program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0046524A KR100426035B1 (ko) 2001-08-01 2001-08-01 마이크로로봇 제어프로그램 교육 시스템

Publications (2)

Publication Number Publication Date
KR20030012488A KR20030012488A (ko) 2003-02-12
KR100426035B1 true KR100426035B1 (ko) 2004-04-03

Family

ID=19712771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0046524A KR100426035B1 (ko) 2001-08-01 2001-08-01 마이크로로봇 제어프로그램 교육 시스템

Country Status (2)

Country Link
KR (1) KR100426035B1 (ko)
WO (1) WO2003012636A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101458707B1 (ko) * 2013-05-30 2014-11-05 한전케이피에스 주식회사 자동화 로봇의 기구장치용 제어 시스템 및 그 방법
KR20170126573A (ko) * 2016-05-10 2017-11-20 주식회사 디투리소스 가시광통신 방식의 교육용 마이크로로봇 시스템 플랫폼
KR20190069036A (ko) * 2017-12-11 2019-06-19 김진욱 알고리즘 생성 방법
KR20190069035A (ko) * 2017-12-11 2019-06-19 김진욱 알고리즘 생성 장치
WO2019117590A1 (ko) * 2017-12-11 2019-06-20 김진욱 알고리즘 생성 방법 및 장치
KR20190107450A (ko) 2018-03-12 2019-09-20 주식회사 아이알브레인 로봇 주행제어 알고리즘 학습 시스템

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344076A (ja) 2005-06-09 2006-12-21 Nec Electronics Corp プログラム生成装置、プログラム生成方法及びプログラム
CN100361074C (zh) * 2005-08-18 2008-01-09 上海交通大学 可视化三维图形控制编程方法
ES2685250T3 (es) * 2006-05-11 2018-10-08 Abb Schweiz Ag Sincronización de un programa gráfico y un programa de robot
KR101658795B1 (ko) * 2010-05-04 2016-09-23 (주)로보티즈 중간언어 생성기를 포함한 로봇 프로그래밍 툴과 그 중간 언어 코드를 수행할 수 있는 버츄얼 머신을 기반으로 하는 로봇 프로그래밍 방법
CN103472834B (zh) * 2013-09-16 2017-03-22 苏州工业园区职业技术学院 基于双核两轮微电脑鼠超快速冲刺控制器
CN103529836A (zh) * 2013-09-26 2014-01-22 苏州工业园区职业技术学院 基于双核两轮高速微电脑鼠及其对角线冲刺伺服系统
CN103529845A (zh) * 2013-10-18 2014-01-22 苏州工业园区职业技术学院 基于arm9四轮快速微电脑鼠连转冲刺伺服系统
CN103869816A (zh) * 2014-04-01 2014-06-18 吉林大学 基于stm32控制的双直流电机电脑鼠系统
KR101546927B1 (ko) 2014-05-07 2015-08-25 김진욱 블록을 이용한 알고리즘 교육 장치
KR102519698B1 (ko) * 2017-09-29 2023-04-07 (주)한화 로봇 제어 장치의 코딩 방법 및 프로그램과 로봇 제어 장치
KR102114917B1 (ko) * 2018-09-20 2020-05-25 이진식 주행 로봇을 이용한 코딩 교육 제공 시스템
KR102236076B1 (ko) * 2018-10-12 2021-04-05 온동네피엠씨 주식회사 레시피 제작도구 시스템과 방법 및 그 컴퓨터 프로그램
KR102198824B1 (ko) * 2018-11-08 2021-01-05 정희용 피지컬 소프트웨어 코딩 교육 교재 실행 장치
KR102039296B1 (ko) * 2019-04-17 2019-10-31 박덕수 프로그래밍 교육 시스템 및 방법
CN111258568B (zh) * 2019-11-14 2023-07-04 高新兴创联科技有限公司 图形化编辑铁路运行数据方法
JP7453505B2 (ja) * 2019-12-26 2024-03-21 キヤノンマーケティングジャパン株式会社 情報処理システム、その制御方法及びプログラム
KR102089787B1 (ko) * 2020-02-02 2020-03-16 최명기 기술교육시스템
KR200495682Y1 (ko) * 2020-12-07 2022-07-25 주식회사 토이트론 문양 그리기가 가능한 코딩 교육장치
JP2023080596A (ja) * 2021-11-30 2023-06-09 セイコーエプソン株式会社 プログラム作成装置およびプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10116185A (ja) * 1996-08-21 1998-05-06 Internatl Business Mach Corp <Ibm> リソース・ファイル・ビルダ・ツール及びコンピュータ可読コード
KR19980058670A (ko) * 1996-12-30 1998-10-07 이대원 엔.씨. 프로그램의 시뮬레이션 장치 및 그 방법
JPH11175132A (ja) * 1997-12-15 1999-07-02 Omron Corp ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
KR200213268Y1 (ko) * 2000-09-01 2001-02-15 조승환 무선조정기용 컴퓨터 제어장치
KR20010011272A (ko) * 1999-07-27 2001-02-15 윤종용 객체 기반 로봇 프로그래밍 시스템 및 방법
KR200228405Y1 (ko) * 2000-11-24 2001-06-15 정기철 평면구조의 교육용 마이크로 로봇 시스템 트레이닝 키트
KR20020061186A (ko) * 2001-01-15 2002-07-24 주식회사 보스텍 로봇 제어, 설계 및 활용을 위한 학습시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05131383A (ja) * 1991-09-17 1993-05-28 Hitachi Metals Ltd マイクロロボツト
JP3131871B2 (ja) * 1991-11-05 2001-02-05 セイコーエプソン株式会社 マイクロロボット
US5596255A (en) * 1993-06-07 1997-01-21 Seiko Epson Corporation Method of and apparatus for guiding microrobot

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10116185A (ja) * 1996-08-21 1998-05-06 Internatl Business Mach Corp <Ibm> リソース・ファイル・ビルダ・ツール及びコンピュータ可読コード
KR19980058670A (ko) * 1996-12-30 1998-10-07 이대원 엔.씨. 프로그램의 시뮬레이션 장치 및 그 방법
JPH11175132A (ja) * 1997-12-15 1999-07-02 Omron Corp ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
KR20010011272A (ko) * 1999-07-27 2001-02-15 윤종용 객체 기반 로봇 프로그래밍 시스템 및 방법
KR200213268Y1 (ko) * 2000-09-01 2001-02-15 조승환 무선조정기용 컴퓨터 제어장치
KR200228405Y1 (ko) * 2000-11-24 2001-06-15 정기철 평면구조의 교육용 마이크로 로봇 시스템 트레이닝 키트
KR20020061186A (ko) * 2001-01-15 2002-07-24 주식회사 보스텍 로봇 제어, 설계 및 활용을 위한 학습시스템

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101458707B1 (ko) * 2013-05-30 2014-11-05 한전케이피에스 주식회사 자동화 로봇의 기구장치용 제어 시스템 및 그 방법
KR20170126573A (ko) * 2016-05-10 2017-11-20 주식회사 디투리소스 가시광통신 방식의 교육용 마이크로로봇 시스템 플랫폼
KR101906781B1 (ko) * 2016-05-10 2018-10-15 주식회사 디투리소스 가시광통신 방식의 교육용 마이크로로봇 시스템 플랫폼
KR20190069036A (ko) * 2017-12-11 2019-06-19 김진욱 알고리즘 생성 방법
KR20190069035A (ko) * 2017-12-11 2019-06-19 김진욱 알고리즘 생성 장치
WO2019117590A1 (ko) * 2017-12-11 2019-06-20 김진욱 알고리즘 생성 방법 및 장치
KR102107284B1 (ko) * 2017-12-11 2020-05-07 김진욱 알고리즘 생성 방법
KR102107283B1 (ko) * 2017-12-11 2020-05-28 김진욱 알고리즘 생성 장치
KR20190107450A (ko) 2018-03-12 2019-09-20 주식회사 아이알브레인 로봇 주행제어 알고리즘 학습 시스템

Also Published As

Publication number Publication date
WO2003012636A1 (en) 2003-02-13
KR20030012488A (ko) 2003-02-12

Similar Documents

Publication Publication Date Title
KR100426035B1 (ko) 마이크로로봇 제어프로그램 교육 시스템
KR100625134B1 (ko) 마이크로 프로세서 제어 완구 조립 요소 및 완구 조립 세트
KR100669297B1 (ko) 원격 제어 완구
US6902461B1 (en) Microprocessor controlled toy building element with visual programming
US7113833B1 (en) Selection and control of motion data
Baum Extreme MINDSTORMS: an advanced guide to LEGO MINDSTORMS
US20130019019A1 (en) Cloud servicing system configured for servicing smart phone or touch pad circuit applications and consumer programmable articles
CN107678743B (zh) 一种用于机器人智能编程的方法
US9459838B2 (en) Path driven programming method and programming tool
ATE406655T1 (de) Navigationssystem für elektronische konsumgüter und verfahren dazu
KR20200086834A (ko) 프로그램 가능한 모듈 어셈블리 및 그에 대한 실행 코드 저작 시스템
US20180319460A1 (en) Manual control device for a bicycle, bicycle electronic system comprising it and configuration methods thereof, as well as bicycle derailleur
US20040043816A1 (en) Method and system for transferring data to an electronic toy or other electronic device
JP2004026083A5 (ko)
US10136242B2 (en) Cloud computing system configured for a consumer to program a smart phone and touch pad
JPH09179669A (ja) インタフェース回路及びそれを用いた情報処理装置
KR102107283B1 (ko) 알고리즘 생성 장치
JPH0678382A (ja) リモートコントローラのコード作成装置
KR102203829B1 (ko) 코딩용 카드를 이용하여 코딩로봇의 제어를 위한 알고리즘을 생성하는 코딩보드장치 및 방법
JPH06105377A (ja) 遠隔制御システム
WO2019117590A1 (ko) 알고리즘 생성 방법 및 장치
KR19990002630A (ko) 유니버셜 리모콘
Scholz A 3,000-Foot Look at NXT Programming Environments
JPH06245285A (ja) リモコン送信機
JP2003163979A (ja) リモコン制御機能を備えた装置

Legal Events

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

Payment date: 20130325

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140324

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160422

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170324

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee