Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
1 RoboEduc: A Software for Teaching Robotics to Technological Excluded Children Using LEGO Prototypes Dennis Barrios-Aranibar∗ , Viviane Gurgel∗ , Marcela Santos∗ , Gianna R. Araújo∗ , Válber C. Roza∗ , Rafaella A. Nascimento∗ , Alzira F. Silva∗ , Akynara R. S. Silva† and Luiz M. G. Gonçalves∗ ∗ Department of Computing Engineering and Automation Federal University of Rio Grande do Norte Lagoa Nova 59.072-970 - Natal - RN - Brazil Email:{dennis,vivi,marcela,gianna,valber,rafaella,arizla,lmarcos}@dca.ufrn.br † Department of Education Federal University of Rio Grande do Norte Lagoa Nova 59.072-970 - Natal - RN - Brazil Email: kakayzinha@gmail.com Abstract— In this work, we describe our project for developing an educational software to be used in the implementation of a new paradigm of digital inclusion. The proposed software allows people with no previous knowledge in robotics to control and program LEGO prototypes. It is a new kind of educational software for robotics, mainly pointed to teach basic computer skills and basic robotics concepts to children at elementary school. In contrast, projects involving digital inclusion are strongly pointed to the use of computers and internet. Robots have a greater potential to be accepted by people in comparison with computers then it could be added in digital inclusion projects in a simple fashion. Thus, software for teaching to control, program and use these robots is necessary. Software for programming LEGO robots is not easy to understand and use. Then, the proposed software represents a good option for teaching robotics when working with children and people not familiarized with technology. We show experimental results in which digitally excluded children accept in a natural way technologies involving computers and robots by using the proposed software. Index Terms— Digital Inclusion, Educational Software, Robot Programming, LEGO Robot, Educational Robotics I. I NTRODUCTION When talking about inclusion, people refer to diminish the quantity of excluded ones. Excluded are conceptualized as those who are unable to fully participate in the wider social and economical spheres due to a variety of social issues, including unemployment, lack of literacy, disability, etc. [1]. Digital and technological excluded are people that have no access to technologies, especially information technologies. With the increasing social and economic importance of information technology, it is important to make projects that diminishes the digital and technological exclusion and that accelerate the introduction of the digital culture process, showing to people others ways to interact with the world. In addition, several projects in digital inclusion aim to give people a minimum 1-4244-0537-8/06/$20.00 C2006 IEEE of digital culture so that government and companies programs can be executed in a more simplified way, as for example, social programs control through cards, obtaining consults, security founding (as FGTS) balance verification, automated teller machines (ATMs), consults, etc. Yet, the digital inclusion problem can be treated using other forms like the use of digital TV for new interaction of people with technology. [2]. There is a wide concern to diminishes the digital exclusion in the world [1], [3], [4], [5], [6], [7], [8], [9]. Projects involving digital inclusion are strongly pointed to ”using computers and internet”. It has been made with the introduction of computers in lecture rooms, mobile stations (buss with computers and networking resources) in the peripheries of cities, and access points to internet in key places (stations, shopping and supermarkets). These kind of projects are very important to accelerate the introduction of the digital culture process, showing to people others ways to interact with the world. The digital exclusion map in Brazil, presented by the Getulio Vargas Foundation in 2003 [10], shows only information about the percentage of use of computers and internet in Brazil. In these terms, it shows that the most excluded people are concentrated in the peripheries of the cities. Also it shows that children from first to fourth grades are more digitally excluded than children from fifth to eighth grades and the last are more excluded than children of middle education. Besides, the children without computers have less performance in mathematics in comparison with those that have one or more computers. We conjecture that this situation is seemed in other developing countries. When thinking about using robots to accomplish goals of digital inclusion, it is important that the used form reflects the goals of digital inclusion, because when teaching robotics, learners are learning basic skills in computing too. It is concluded that when teaching robotics, learners are becoming capable of interacting with information technologies 1 193 2 and digital technology in general. In this sense, because digital inclusion aims to make people capable of interacting with information technologies and digital technology, it was proposed to implement digital inclusion using robots. Moreover, as robots are not simple devices, it is necessary to simplify this context. LEGO Mindstorm kits are simple to manipulate and are didactic. Thus, they become a good option for teaching robotics to excluded people. In this sense, we propose to implement digital inclusion using LEGO Mindstorm robotics kits. LEGO Mindstorm are considered didactic because, involves the question of ”playful” because we are working with children; the fact of ”playing” turns it into a significant tool in the knowledge acquisition process. In this sense, children will have the possibility of create their own ”toy”, thus exploiting their imagination, creativity and capacity for doing team work. Another important question is the fact of the ”mistake”. When children are constructing robots, if they make a mistake, putting a part that doesn’t fit into the robot, they will not see this mistake as a discourage for learning, as is reasonable to occur in a traditional classroom. In robotics workshops the ”mistake” is different, this is a challenge, an stimulus, so that the children develop their activities in the best possible way, the learning process becomes thus challenging, productive and significant. As shown in the digital exclusion map in Brazil [10], children from first to fourth grades are the most digitally excluded, and the most excluded people is concentrated in peripheries of the cities. For these reasons, our project of digital inclusion works with schools of the peripheries of the cities and especially with children from first to fourth grades. We have chosen the Ascendino de Almeida municipal school (in Natal, Rio Grande do Norte, Brazil) to be the first school in this project. We work with children from third to fourth grades and from 4 different classes. We start working with them using LEGO Mindstorm robots. For accomplishing goals in this project we use several tools like LEGO Mindstorm kits, computers with programs for robots that make simple tasks autonomously and our software for teaching robotics to people with no previous knowledge in computing and robotics. This educational software is called RoboEduc and it allows programming and remote control of LEGO prototypes. In this paper we describe the development of the main tool used in this project - our educational software: “RoboEduc”. It is provided with a “friendly” user interface that allows laypersons interact with computers and robots in a fashion way. The implementation of this software will bring several benefits in the robotics field, because it allows that laypersons learn robotics in an easy and interactive way. Furthermore, when used with digital excluded, because its interactive user interfaces, it can be used to teach basic concepts of computing. After users familiarize with these concepts the program allows him to learn concepts of programming. There are several tools (free and commercial) for programming robots. All of them are intended for people with a great knowledge in computing and with at least basic concepts in robotics. For example, when talking about programming languages for LEGO Mindstorms[11], the brickOS [12] and the NQC [13] languages are based in the C programming language and are not easy for laypersons. The same occurs with the lejOS [14] programming language based in java programming language. The simplest available commercially is the Robolab that comes with LEGO Mindstorm kits and uses the LabVIEW graphical programming language, but it requires some knowledge and understand of the functionalities of the robot. By our experience with children we notice that this concepts are not easy to them, then they require a new level of abstraction that brings them a way to understand functionalities of robots and parts of them like motors, sensors, etc. and of course a new level of abstraction for programming concepts. There exist several projects for developing environments for teaching robotics like the environment for programming mobile robots through internet proposed by Sergio Salazar et. al.[15], the Yampa Functional Reactive Programming Language based on Haskell for programming mobile robots proposed by Paul Hudak et. al.[16] and others but all of them requires some knowledge in robotics, physics or the specific language used by authors. The software proposed in this paper includes a methodology to make the learning of basic concepts of programming and robotics easiest. The methodology includes repetitive and incremental steps of controlling and programming robots. First, learners have to control the prototype by using a simple user interface, then, when they are familiarized with functionalities of the prototype, the use the same buttons for programming the robot (e.g. “turn left” button or “open gripper” button). Software will also allow saving behavior of the robot when controlled by students, they can repeat it and also translate to a set of instructions in the basic programming level. Also the program will allow translation of instructions between levels, thus, user can translate the program made in the basic level (level where instructions are passed to robot throw buttons representing it functionalities) to the intermediate level (level where instructions are graphical representations of elements in the robot like motors, sensors, etc.). In this paper, we will show the importance of using this program to implement digital inclusion using robots. Also we will explain the software project using UML diagrams. The tools used in the implementation are C++ programming language, QT library, BrickOS operating system and C/C++ based Language and OpenGL library. Finally we will explain how the software was used in the municipal school Ascendino de Almeida in Natal-RN and the experiments realized in the related school. II. M ETHODOLOGY FOR TEACHING ROBOTICS TO DIGITAL EXCLUDED We previously explain the importance of the digital inclusion in our society and why the robotics becomes easier the learning. Authors bring a more detailed explanation in [2]. The software proposed in this paper includes a methodology for teaching robotics to laypersons (figure 1). This methodology includes 7 steps: Control the prototype, repeat prototype behavior, translate prototype behavior in a 194 3 analyze the time and distance they need for each command. The goal of this step is to learn some mathematical, physic and other inter-disciplinar concepts and to prepare students for the next step. The next step is to translate prototype behavior in a basic program; the goal of this step is to show students how the commands given to robots represent a program. Although they will understand the interface for programming robots because when programming they have to set values of time or distance (e.g. values that was measured by them before). After students understand the user interface for making basic programs, they will program robots. For programming robots they will use the same buttons used for controlling them. The only difference is that they have to specify the time or distance each functionality has to be active (depending on the kind of robot). When instructors conclude that students dominate the current level of programming robots, they can translate prototype program to the next programming level to understand the correspondence between both levels and how the new level works. After that they can change to next programming level and program the prototype in current level. This process will be repeated until students finish with all levels in the RoboEduc Software. III. “ROBO E DUC ”: T HE S OFTWARE P ROJECT Fig. 1. Methodology for Teaching Robotics to Laypersons basic program, program the prototype in basic level, translate prototype program to the next programming level, change to next programming level and program the prototype in current level. Initially students construct a prototype helped by instructors. Then they control it using buttons that reflect functionalities of the prototype. For example if the robot has two wheels controlled by one motor and a gripper controlled by another one, the functionalities of the robot are only four: Move backward, move forward, open gripper and close gripper. Then the user interface for controlling this kind of robot will show only four buttons representing these functionalities. If the same prototype has one motor controlling each wheel, then it will have two more functionalities: Turn left and turn right. Students can control robots using the mouse, the keyboard, joystick and voice. Students will control robots until understand basic concepts about the computer peripherals (e.g. mouse, keyboard and others) and the operating system (e.g. windows components and buttons functionalities). For this purpose, a set of tasks for each model of robot will be supplied. When instructors consider that basic concepts about computing and robotics (e.g. what is a robot and what it can do) are fixed then they can continue with the next step of the methodology: Repeat prototype behavior. The purpose of this step is to fix concepts like time and distance for a robot accomplish some tasks. Thus students are going to repeat the behavior they give to the robot by controlling it and will After knowing how this software will influence in the project of digital inclusion using robots proposed by the authors [2] and how it has to be used (section II). It is important to understand how it works. For this purpose we are going to use the use-case and the class diagrams of the Unified Modeling Language (UML)[17]. The main goal of developing this educational software is to promote the learning of robotics and basic computing skills in a simple and didactic way. Because in this project we use the software with children, this learning becomes funny. It occurs because robots are like toys for children. Moreover, the software assists in the knowledge of diverse models of LEGO robots, teaching how to construct them. For this purpose, the software has a database of LEGO prototypes with different levels of difficulty. In UML exists several diagrams, but, the main used diagram is the Use-Case diagram, responsible to define and to describe functional requirements of the system. Another diagram very used is the Class diagram, that consists in classes and relations. We will use these two diagrams for describing the proposed educational software. The use-case diagram (Figure 2) is separated in two parts, each one representing functionalities of the software for an entity: the use-cases of the user of the software and the usecases of the robot prototype. The user of the system (professor or student) has three cases for which he can use the system: Select prototype, program it and control it. User has several kinds of robots prototypes to choose. Prototypes have a different complexity levels, thus, user can choose a basic, intermediate or difficult prototype. When selecting a prototype, the system shows a description of 3 195 4 Fig. 3. Fig. 2. Use-Case Diagram for RoboEduc Educational Software it and instructions of how to construct it. Also each prototype has to have associated a set of tasks for students do. When user programs a prototype he has to choose the programming level he want. Interface for making programs will depend of the programming level the user choose, for example in the basic programming level the interface will be a set of buttons representing functionalities of the robot with drag and drop technology for user choose each one, drag it to the position in the list of instructions representing the program and then drop it. In the most difficult level of programming, interface will contain several options of a classical compiler and also an interface for writing the program, because programs in this level will use a C/C++ like language. Also, when programming a prototype, system has to allow compile and send it to the robot in order to execute it. User can control a robot prototype (send commands to robot to be executed) and save these commands (teach the robot). Also user can execute previous saved groups of commands (basic programs). When executing previous saved basic programs, systems has to allow send it to the robot to be executed. Commands in this use-case are related to functionalities of the robot. For example if the robot has two wheels controlled by one motor and a gripper controlled by another one, the commands to control the robot are only four: Move backward, move forward, open gripper and close gripper. Class Diagram for RoboEduc Educational Software Another entity related to our system is the robot prototype constructed with LEGO technology. Robot can receive a program created with our software and also execute it. When user is controlling the robot, it is going to receive the program for controlling it and using this program will receive commands from users and execute it. System can be described using 5 classes, relations between them are shown in figure 3. The five classes that compose the system are: two representing entities from real world (“User” and “Robot”) and three representing elements in the program (“Command”, “Program” and “Prototype”). User class represents the user in the real world. The user can interact with the software in different ways. He can choose a command when programming the robot; he also can send the command directly to the robot in control mode. User can choose a prototype too, he choose it for programming or controlling. Finally, user can make a program, also compile it and of course send it to the robot prototype. Robot class represents the physic robot prototype constructed by the user or his professor. The robot prototype can execute a command when it is in control mode. Also, the robot can receive and execute a program when system is in programming mode. Robot receives and executes also the program for receiving commands from computer when system is in control mode. Physic robot is also represented by a prototype in the system. Prototype class represents the robot prototype representation in the software. Thus, the prototype represents the robot. A prototype can be chosen by a user for programming it or controlling its associated real robot. A prototype has a program associated with them. Because program depends strictly in functionalities of the robot, we said that a program belongs to the prototype. Also the prototype qualifies the commands, a command doesn’t belong to a prototype but it can be qualified as good to be used on the prototype. Program class represents a program made by a user. A program has several ways of being made, depending on the level of programming chosen by the user. A program can be 1 196 5 made and compiled by a user; also it can be send to the robot to be executed. A program belongs to a prototype because instructions are strictly related to physic characteristics of the robot represented by this prototype. A program is also received and executed by a robot. A program has a set of commands ordered in a specific way. Finally, the command class represents a command that can be chosen for the user for controlling or programming a robot. A command can be chosen by a user for being a part of a program; also it can be send to the robot when system is in control mode. A command is qualified by a prototype as good for be used with it or not. The command can be executed by the robot too. Finally it can belong to a certain program. IV. S OFTWARE I MPLEMENTATION In the current work, we use LEGO prototypes. Basically, LEGO kits computing part consists of an embedded “small” computer (the RCX) with some capabilities [11]: • Processor Hitachi, 8 bits word, able to perform instructions and other operations (RISC); • 32 Kb RAM memory, in which can be loaded the operating system (usually called firmware) and user programs. • Communication unit consisting of a infra-red port, which can be used to transmit and receive data from a host PC or from/to another RCX. • Six input/output ports, being three for connecting sensors and another three for connecting motors. The RCX is able to send currents as desired in the user program to the motors and to read a current level mapping it to a digital (discrete) value. Sensors as light, touch, rotation (encoder), temperature, and pressure are available in the market. By using this prototyping platform it is relatively easy to build a robot with resources that are enough to make someone understand what a robot is [18]. For the software implementations we construct a graphical environment (user interfaces), using the graphical development software “QT Designer”[19] and also we developed the background implementation using the “C”/“C++” language. Some objects of this software had been developed using the library used to develop applications of graphical computing OpenGL. We also use BrickOS to implement functions related to LEGO prototypes. BrickOS is an alternative operating system for the Lego Mindstorms RCX Controller. It also provides a C/C++ development environment for RCX programs [12]. The software intends to attend the children at elementary school to become easier learning of robotics and basic computing concepts. Thus, the software is being developed with a friendly interface to become better the children understanding of it. Figure 4 shows the main screen of the software. This screen has the functionalities described in the use-case select prototype. In this screen, the children choose a robot prototype model, in agreement with a robot construct previously. For constructions of prototypes children need to be helped by an instructor. Thus, when the selection is done, the children can Fig. 4. Main Screen of the software RoboEduc Fig. 5. Remote Control Screen of the software RoboEduc go to the program screen or to the control screen. Screen for chosen functionality of the software will contain only the qualified commands for the robot model previously selected, in accordance with what its physic configuration allows. The programming screen is related to program use-case. It has a picture that illustrates the prototype chosen and five different programming levels. Each level has only the qualified functions for the model selected and the commands change in accordance with the difficulty level to be used for programming. In the four basic programming levels, this screen has frames that will be filled when the commands will be selected (drag and drop technology or by using text input). In the most 5 197 6 advanced programming level the user use like c/c++ commands for programming the robot. Also, in most basic levels, before send the program the system will compile the program in a transparent way for the user. In the most advanced programming level will appear more buttons to compile and debug the program. The control screen (Figure 5) is related to control use case of the system. It has all the qualified commands for the prototype and works as a remote control. When the user chooses a command the robot receives the information and executes this command. The control can be made through of a keyboard, a mouse, a joystick, a text command or a voice command. Thus, each button in this window has an associated key in the keyboard, an associated movement in the joystick and of course a word in text and voice mode. When controlling the prototype, users can also save this commands and the system will construct a program automatically. V. E XPERIMENTAL R ESULTS The main goal of this project is to help digitally excluded children to acquire technological knowledge in a natural way. Also we want to explore the multi-disciplinary characteristic of robotics to develop logical reasoning, to increase knowledge about mathematic and physics, to increase their concentration, to work in team, to obey rules and to open new perspectives in relation of their future professional lives. As said before, practical experiments in this project are being done in the Ascendino de Almeida municipal school (in Natal, Rio Grande do Norte, Brazil) with children from third to fourth grades. There were chosen 24 children, 12 from third grade and 12 from fourth grade. The group is formed by 12 boys and 12 girls. Instructors involved in this project initially teach students how to use LEGO Mindstorms kits and how to construct robot prototypes with it. After that, they teach to operate robot prototypes by using the software described in this article. In this sense, project was divided in two stages. In the first stage, instructors use robots prototypes built by them, explain the basis of LEGO Mindstorms Kits and teach children to control it using the proposed software. In this stage also instructors will explain computing and robotics necessary concepts. Finally, students will construct their own prototypes helped by instructors and will control them. The second stage of the project is reserved basically to program prototypes and to create more complex robot prototypes. Also, we promote the small competitions between the children. Since April/2006 were realized little workshops at “Ascendino de Almeida” municipal school (cited previously). This project has about twenty four children divided in four groups to facilitate the learning. Each group has a monitor to supervise the children. Every day of experiments, we give the idea to mount a little robot prototype. When the group mounts it, the children have freedom to do what they want. They like to “play” with robots because they are like toys for them. As exposed by authors in [2], professors think that projects like this are very important in digital inclusion because it has more advantages than projects where the problem is treated Fig. 6. Children use RoboEduc for controlling a little robot prototype only by teaching computing. They point that there exist a great expectation about results of this project. Also was observed that professors are not familiar to his technologies and it is important to extend it to them, in someway. In the other hand, children show be very interested in working whit robots and we did not observe boredom in them. It was observed that instructors (graduate students of Computer Engineering and Computer Science) have students attention all the time. This result is important to observe because professors says that children have problem of concentration. Figure 6 shows a task of controlling a robot with two wheels and a gripper. This task was accomplished using the software proposed in this paper. In the experiment, students construct a robot with two motors and with a gripper. We promote a competition, which task was to get the five cups located in stars that were outside of the biggest hexagon and put them on their respective place in the lesser hexagon (center of the arena). Children control the robot through RoboEduc software (version 1.0). The commands available were: Move backward, move forward, turn left, turn right, open gripper and close gripper. Each child was responsible for one cup and since when the control started until put the cup in the respective place, the time was being written on blackboard. When all children had finished, we add 6 198 7 the time of each group. The team that had the lesser time was the winner. Instructors observe a great acceptance of this kind of experiments in children. After six months working with them, it was observed a great increasing in their basic knowledge about computing and robotics. Also was observed more capacity of working in rules and obey rules. VI. C ONCLUSIONS AND F UTURE W ORKS Although robots have been widely applied in education, the goals in those applications are not, in general, for digital inclusion. Generally they are applied in private schools or in schools with outstanding students. Then we can conjecture that the current work is pioneer in this area of digital inclusion in Brazil, mainly, with a municipal school and with really excluded children. The RoboEduc software has several advantages in relation with others existing software. The children need to mount the robot and, then, can control it using a computer. Subjects about robotics and computing can be presented to students at the same time. We program a friendly interface and a new model to store the “learned behaviors” for robot, different from that existing nowadays. This interface facilitates the learning of basic concepts about programming and robotics, because traditional softwares are based on high level programming languages. As methodological contribution, we are proposing another way to implement digital inclusion, by using robots added to computers. Answers obtained in interviews validate the idea that robots have a greater potential to be accepted by people in comparison with computers only, and they are a good option for implementing projects of digital inclusion. In this new methodology the children are able to program the robots effectively. We observe a great approval from the children to this software. We perceive that they are really learning basic concepts of robotics and computing in a natural way. We conjecture that LEGO Mindstorms are the best option when working with robots and children, because the use of bricks makes easy to build the mechanical part of a robot, even in the first lessons children have done that. Robots are still like toys, of course a sophisticated toy, for them and it makes children be more receptive when instructors explain. This fact helps children to improve their logic reasoning and their concentration. Finally, it is important to note that robots will help children not only in terms of digital inclusion, but also in mathematics, physics, and artistic concepts. In the future, database of robot prototypes in the RoboEduc has to be increased and also an interface for professor increase their own prototypes has to be provided. Also it is important to increase the number of possible tasks available for each robot to help instructors. As perspectives, the next stages of the project are going to be executed and we plan to extend the project also to other schools. An idea is to use trained children as instructors for the other children. Also we are developing technology for producing artistic performances (plays) where children and robots will interact in the same scene. Another future goal in this project is to implement teleoperation techniques, thus, this software will be used through internet. ACKNOWLEDGMENT The authors would like to thank the CNPq/Brazil (Conselho Nacional de Desenvolvimento Cientı́fico e Tecnológico - Brazil) for supporting this project. R EFERENCES [1] D. Fitch, “Digital inclusion, social exclusion and retailing: an analysis of data from the 1999 scottish household survey,” in Technology and Society, 2002. (ISTAS’02). 2002 International Symposium on, Raleigh, North Carolina, USA, 6 2002, pp. 309– 313. [2] D. Barrios-Aranibar, V. Gurgel, A. Burlamaqui, L. M. G. Gonçalvez, M. Santos, G. R. Araújo, V. C. Roza, and R. A. Nascimento, “Technological inclusion using robots,” in Anais do II ENRI - Encontro Nacional de Robótica Inteligente. Campo Grande, MS, Brazil: XXVI Congresso da Sociedade Brasileira de Computação - SBC2006, 07 2006. [3] J. Meer, “Getting on the net: the struggle for digital inclusion of the navajo,” Technology and Society Magazine, IEEE, vol. 22, no. 1, pp. 53–58, Spring 2003. [4] K. R. Wilson, J. S. Wallin, and C. Reiser, “Social stratification and the digital divide,” Social Science Computer Review, vol. 21, no. 2, pp. 133–143, 2003. [5] N. Selwyn, “Reconsidering political and popular understandings of the digital divide,” New Media Society, vol. 6, pp. 341–362, 2004. [6] S. Willis and B. Tranter, “Beyond the ’digital divide’: Internet diffusion and inequality in australia,” Journal of Sociology, vol. 42, no. 1, pp. 43–59, 2006. [7] A. M. da Silva Filho, “Os três pilares da inclusão digital,” Revista Espaço Acadêmico, vol. 3, no. 24, 5 2003. [8] R. M. Porcaro. (2006, 01) Tecnologias de comunicação e informação: polı́ticas e estratégias de inclusão digital no brasil. IPEA: Instituto de Pesquiça e Econômica Aplicada. Brazil. Last Access in 02/05/2006. [Online]. Available: http://www.ipea.gov.br/ [9] E. Rondelli. (2003, 07) Quatro passos para a inclusão digital. SETE PONTOS - para concretizar a sociedade do conhecimento, vol. 01, no. 05. Brazil. Last Access in 30/04/2006. [Online]. Available: http://www.comunicacao.pro.br/setepontos/ [10] R. Bagio. (2003, 04) Mapa da exlusão digital. Getulio Vargas Foundation. Brazil. Last Access in 20/04/2006. [Online]. Available: http://www2.fgv.br/ibre/cps/mapa exclusao/apresentacao/apresentacao.htm [11] “Lego mindstorms,” http://mindstorms.lego.com, 2006, last Access in 26/07/2006. [12] “Brickos operating system and c/c++ development environment for the lego mindstorms rcx controller,” http://brickos.sourceforge.net/, 2006, last Access in 26/07/2006. [13] “Not quite c language with a c-like syntax for the lego mindstorms rcx controller,” http://bricxcc.sourceforge.net/nqc/, 2006, last Access in 26/07/2006. [14] “Lejos, java for the rcx,” http://lejos.sourceforge.net/index.html, 2006, last Access in 26/07/2006. [15] S. R. G. Salazar, L. F. Rodrigues, and E. do Valle Simões, “Ambiente de programação de robôs móveis via internet,” in Anais do II ENRI Encontro Nacional de Robótica Inteligente. Campo Grande, MS, Brazil: XXVI Congresso da Sociedade Brasileira de Computação - SBC2006, 07 2006. [16] P. Hudak, A. Courtney, H. Nilsson, and J. Peterson, “Arrows, robots, and functional reactive programming,” in Summer School on Advanced Functional Programming 2002,Oxford University, ser. Lecture Notes in Computer Science, vol. 2638. Springer-Verlag, 2003, pp. 159–187. [17] “Unified Modeling Language,” http://www306.ibm.com/software/rational/uml/, last Access in 26/07/2006. [18] V. A. Antunes, “Descobrindo o potencial não explorado da tecnologia lego,” Department of Computing Engineering and Automation - Federal University of Rio Grande do Norte, Natal - RN - Brazil, Graduation Monography, 2003. [19] “Qt cross-platform c++ development,” http://www.trolltech.com/products/qt/, last Access in 26/07/2006. 199