« Back to the BoiteABots main page (in French)
Welcome to you! Feel free to contact Severin ( severin.lemaignan@planete-sciences.org ) for any questions related to the BotsInBox project.
Robots are fashionable. They are everywhere in plants, for space exploration or in one of this numerous amateur robotics contest happening all over the world. In 1961 was officially born the first industrial robot. A couple of decades later, we were playing with Aibo, the robot-dog from Sony, and the first humanoid robots are about to leave the labs to invade our homes. And if robots are actually starting the invasion, we’d better start now to widely teach how they work, how to build them, how to control them.
However, the answer to the question “where does robotics begin?" is still blur. By the non-profit organization Planète Sciences, we consider a robot is an autonomous system able to manage the three essential functions that follow: to sense the environment, to evaluate possible actions, and eventually interact with the environment and its own state (Fig. 1).
[Schema format OpenOffice, à traduire]
We use this simple definition as a starting point to explore how each one of these functions may be implemented, and with what technology (mechanics, electronics or computer-based, depending of the context). And the BotsInBox aims to provide the basic bricks: sensors to perceive (switches, photo resistors, thermo resistors, linear or rotary potentiometers, infra-red telemeters…), actuators to physically interact (mostly CC motors and servomotors) as well as several electronic interfaces integrated in a graphical programming environment named SqueakBot which allows to easily develop intelligence for the robot.
The kit comes along with an booklet targeted to children as well as science communicators and teachers. Amongst other things, it offers a set of activity sheets which progressively lead children through the basics of robotics.
The whole content of the box is distributed under a free license (or, for certain parts, a free license with a non-commercial restriction). We decided to open the access to the tools this way (which is at first sight not obvious for a small non-profit organization whose incomes rely mostly on its technical know-how) because of the educative and evolutive nature of the content. It seemed very important to us that every user, at its level, should be able to freely customize the tools and bring its own ideas to the kit. Also the main role of the organization is to broadcast at the largest extend the scientific culture: a free license was the most obvious choice to match this objective.
Let’s have a glimpse on the backgrounds of robotics and education.
Planete Sciences organizes numerous robotics workshops for and with youth, from 8 to 18. Robotics is envisionned as a scientific and entertaining activity with several educational targets:
When a workshop is held, a lot of things happen at the understanding level of the youths, which are not always expressed; While the youth can tell he understood what a computer program or a motor is, it is much more difficult to evaluate his unconscious learnings like
However, implementation of robots with youth still raises technical issues. A couple of years back, robot building, along with associated high costs, required high technical knowledge in electronics: servo-ing, stabilizing a power source, implementing a control logic or communication functionalities, all of these used to require advanced skills. However, the recent and rapid development of powerful and low-cost micro-controller chips (typically 7 Euros for a PIC micro-controller able to perform, amongst others, USB 2.0 communication) has changed in depth the amateur practice of robotics, narrowing most of required electronic skills to the assembly of high-level and programmable components. This transformation transfers to programming most of the traditionally electronic-related difficulties. This push us towards questioning what tools can be efficiently introduced to teach and learn about programming, and to better understand the choice of tool we did, some historical context is required.
Hence, in the late sixties, the widely accepted so-called behaviorist theories (learners are being taught behavior and knowledge they have to accept as it) are more and more questioned inside the educative community, especially thanks the recent progresses of the psychology of development. Following people like Baldwin or Piaget, the way knowledge is built is being reconsidered, and the idea that knowledge relies also on individual construction gains attention. Thus, Piaget sets the bases of his theory on the idea that knowledge is built from a re-conceptualisation process based on past experiences. This theory is to be called constructivism with Jerome Bruner.
Finding inspiration in Piaget’s work as well as in their own experiences in artificial intelligence, people like Papert or Minsky will quickly wonder what place could the computer find in this constructivist process: the time was gone where we could offer pre-programmed learning contents to children. Kids had to become actors in their own knowledge build up, and knowledge is not seen anymore as the sum of single elementary bricks, but as the added value emerging from the aggregation of multiple concepts.
This vision had to be materialized on a computer, so did Papert and Minsky in 1972 with the creation of the Logo language. More than a simple language, Logo is close to a complete programming environment, composed of a graphical view where the user can dynamically interact with an object (the turtle) and a text view: the program editor itself. The principle is to bring kids a wide open space, easy to access, to freely express their ideas and to explore their consequences.
Logo has strongly influenced the programming and education science researchers community: it dedicates the word “microworld” to describe environments based on kid’s experimentation and autonomy, actually implementing Papert’s vision (from Mindstorms, 1980): In many schools today, the phrase “computer-aided instruction” means making the computer teach the child. One might say the computer is being used to program the child. In my vision, the child programs the computer and in doing so, both acquires a sense of mastery over a piece of the most modern and powerful technology and establishes an intimate contact with some of the deepest ideas from science, from mathematics, and from the art of intellectual model building.
Squeak, the ground of our Squeakbot platform, directly inherits from these works, and could be summarized as a modern version of Logo, a modern “microworld”. Squeak originated from a team composed of members such as Dan Ingalls or Alan Kay (designer of Dynabook, ancestor of the MIT‘s XO or $100-laptop). From the beginning, Squeak has been though as an open programming environment (and a free software as well) for youth. Its first version has been released end of 1996, and it has been choosen, very recently, as one of the main part embedded in the $100-laptop.
One of the key feature of Squeak is what we call the EToys (Fig. 2). EToys are graphical objects that children can freely create. They become then the basic bricks which can be programmed.
Many more examples of EToys are available around the Web, and especially on the Squeak’s communities wikis. Examples of games, artistic animations, physics or mathematics simulation, biologic models modeling can be found there.
Squeak is available for any platform (Linux, Unix, Windows, Mac) and can be used as an autonomous application or as a plugin for a web browser; this allows to access projects/scenarios from a web server.
Squeak can be a very interesting tool to introduce the objet-oriented and event-oriented programming paradigm. Following the constructivism idea from Papert, the next step is to move from the programming world to real life.
For that purpose, the robotics section from Planete Sciences has developed, over the past 15 years, a set of electronic modules. The SMEC (Super Module Electronique de Commande) and ASPIC (Analogique Servo PIC) are the main modules (interfaces) available, with new ones currently under development. SMEC, the oldest on, is used to control up to 2 motors (on/off) and connect 4 sensors (on/off). ASPIC, available since 2005, can control 4 servo-motors and to collect 4 analog values (from 0 to 5 V, or a resistor value).
Let’s review these interfaces in details and how they are integrated to a project.
SMEC was first released in 1995, as an evolution of MEC. It makes use of I2C bus to control DC motors. It is based on a PCF, a I2C chip providing 8 digital input/output. PCF controls two relays which provide power to the motors. SMEC can control 2 motors in each way and provide several digital inputs.
As a single byte can control SMEC, it is simple to use. As for example, to send the SMEC at the address 64 a code RED WAY, the sequence is: a, 64, c,1.
The motor connected on the motor output would then start turning.
It’s as easy to read data: a, 64, c, 0 gets the byte on the same SMEC and it can be interpreted thanks to the table 2
Squeakbot manages the read/write formats so that kids don’t need to worry about the I2C protocol to send commands to SMEC: all the inputs/outputs are handled as EToys bricks (Fig. 4).
ASPIC (Fig. 5) is an electronic module dedicated to control 4 servo-motors and perform data acquisition on 4 analog ports (a voltage or a resistance value). The board’s architecture is based on a PIC 18F2550. This cheap microcontroller released in 2005 features I2C bus, USB 1.1 slave, 48 MHz, 32K flash RAM, 2K RAM.
A small multitask operating system (PICOS) runs on the PIC and allows to handle the various functions of the module as independent processes (threads): I2C and USB links, control of servos, analog data acquisition, management of the expansion board equipped with LCD panel and a keyboard, and management of the autonomous modes.
For an easier use, the module can work as a standard USB device, removing the need of a special I2C adaptor to use it.
Among the specifications of ASPIC, robustness was a matter as it had to be hadled by kids who could get mistaken in plugging it. Therefore power supply input is protected against wring polarity, the whole module is protected against over-currents with fuses (as for example when several servos are blocked simultaneously), analog inputs can stand voltage instead of resistance.
Let’s review shortly a typical application prepared with the BotsInBox toolkit: a system which triggers a digital camera whenever an object comes close enough to the camera. This is of course not an innovative project, however it depicts what kind of project can be setup within a couple of hours (though, in this case, with a group of adults under training).
The objective of the project had to be achieved by only using the material available in the BotsInBox toolkit. A servo-motor would be perfect to act as a trigger while an infrared telemeter would allow detecting objects to be captured.
Around the digital camera we designed a mechanism to adapt the servo-motor above the trigger button (Fig. 6). The servo motor is connected to the ASPIC module.
Telemeter is rather simple to use. It is an active sensor: it requires a current and delivers a voltage in relation with the value measured. The sensor is connected to an analog input of ASPIC.
Within Squeak, we developed a very simple script to test the value on the telemeter and from the moment a given threshold is crossed, the servo-motor is activated for 10ms to trigger the camera.
However, we observed that the response from the telemeter is not linear. Therefore we developed a calibration sequence: the user is invited to place a sheet of paper at a given range. Values are displayed on a graph by Squeak: this represent the calibration plot, that can be compared with the datasheet of the sensor.
These plots, displayed with Squeak, allow children to get familiar with the notion of calibration. In a second step, we have used the plot to retrieve the distance corresponding to a given value (interpolation). We achieved this by programming an EToys plotter, which moves from a plot to another alike on a track. It moves up to the vertical position given by the telemeter: the horizontal position is the distance of the object, in centimeters.
Only using one ASPIC module, a servo-motor, an infrared telemeter and Squeak, we have set-up an exciting robotics workshop to introduce not so simple mathematics and physics notions (concept of plotting, of calibration…)
We have presented a small robotics system: the automatic digital camera. Many more projects can be imagined; here is a short list of projects recently developed with the BotsInBox toolkit:
The BotsInBox project actually started in 2005 and would not exist without the involvement of a lot of volunteers from Planete Sciences, the involvement from University of Caen and the support from the Ile de France Region and recently from INRIA: they are warmly thanked. Special thanks to Claire Vigears, Oswald Sauvage and Aline Meuris and a large number of students from the computer science section from IUT of University of Caen, who took part to the software developments.
We’d like to acknowledge as well Christophe Scicluna for the English version of this paper.
Would you be interested by the BotsInBox project, to get involved in the development or to brainstorm possible usage with children, please feel free to contact severin.lemaignan@planete-sicences.org. The BotsInBox toolkit is distributed through Planete Sciences; technical and pedagogy oriented training are also proposed by Planete Sciences.
Discussion