1.2 The Crickets from the MIT Media Laboratory, BostonCrickets are a result of nearly a decade of work on hand-held children’s computers done at the Epistemology and Learning Group at the MIT Media Laboratory. They are designed for a variety of educational uses, including robotics projects and data-taking applications.
The Cricket modules are not available as commercial products, and the designers at the MIT Media Lab indicate that at this stage they "do not plan to release the Cricket system to the public" (see [b]) . Therefore, Crickets are employed exclusively in Computer Clubhouses affiliated to the Computer Clubhouse Network. They are designed as ‘open’ modules, i.e., there is no housing built around the electronic devices on the printed circuit board.
Provided with a battery holder and standard 0.1 inch pin connectors for sensors and motors, the Crickets are not restricted for the use with a special hardware system but can be employed in many different environments. The only limitation in terms of compatibility is their technical specifications as discussed in the following section.
The processor is driven by a 4MHz oscillator and is connected to an external memory chip. This memory is a serial EEPROM, which holds both the user program code and the collected data, if there is any. Although being rather slow, this allows the program to permanently reside on the Cricket, even if the battery is removed for a long time. As soon as the power returns, the Cricket is ready to re-run the program.
Aside from a 5V voltage regulator for the processor’s and memory’s supply as well as two switches, all other elements on the circuit board contribute to the input/output ports. These include an infrared duplex communication port, a piezo buzzer, two sensor inputs, and two motor outputs.
The sensor inputs detect resistance values. This is done by applying a voltage of 5V to the connected sensor and measuring the resulting current. The two motor outputs are capable of driving 150mA motors, and offer the functionality of forward–stop–reverse.
A user interface called "Cricket Logo" runs on a PC (either IBM-compatible or Apple Macintosh). This includes a compiler that translates Logo source code into a byte code language. The byte code in turn is transferred into the Cricket’s memory via the infrared communications port.
Then, this byte code is interpreted by a runtime interpreter, which is the second part of the programming software. It runs on the Cricket’s PIC processor and is written in PIC assembly language.
The user, however, does not need to take notice of these facts. It is sufficient to type in the desired program in the Cricket Logo user interface, connect a so-called Interface Cricket to the PC’s serial connector, and start the data transfer. The Cricket begins to execute the program as soon as its start/stop button is pressed.
As described above, a quite complicated procedure is performed during this process of programming, even though it seems as if the Logo code was just transferred to the Cricket and executed.
On the screen, the large white area to the right is where you type in the Logo program source code (procedures). In the ‘Model’ area in the upper left corner, ‘Cricket’ has to be checked. The other options are used for different microcontroller modules ("Programmable Bricks") that were also developed at the MIT Media Lab. The Cricket design has actually been derived from the Programmable Bricks.
When the ‘Download’ button is pressed, the program is transferred to the Cricket via the infrared communication port. Data received from the Cricket is displayed in the small box next do the ‘Download’ button.
While one procedure ("main program") of those written in the area to the right is called by pressing the Cricket’s ‘Start/Stop’ button, the user can also execute single logo commands directly on the Cricket. This is helpful for testing or for just playing with the Logo commands. Such step-by-step commands are entered in the lower-left box on the Cricket Logo screen.
Although Cricket Logo is a fairly simple programming language (see 3.2.3), it is quite hard for kids to get started with it. Especially the need to carefully insert blank characters next to certain operators often causes failure and frustration. For this reason, "Logo Blocks" and "GrafLogo" have been designed. These graphical user interfaces offer visual elements to create a Logo program.
"Logo Blocks" was developed at the MIT Media Lab. It runs on Power Macintosh computers and uses appealing puzzle-style elements which are connected to each other in order to visualize a program structure. Once the program stack is completed, "Logo Blocks" translates the graphical elements into Cricket Logo source code, which can then be transferred to the Cricket as if was written using the Logo language.
"GrafLogo" was created as a thesis work at the CCE and uses a slightly different method: It is oriented at the ISO standard for flow diagrams and still keeps the interface easy and intuitive enough to be used by kids. Since the CCE is equipped with IBM-compatible PCs, "GrafLogo" is designed for Windows 95. Besides, it is written in German in order to enable also the younger kids at the CCE to understand it.
There is no need for typing anything when you create a Cricket application using "GrafLogo". All commands and settings can be selected with the mouse, and in context-sensitive menus only those selections of values and operators are shown which are allowed and make sense at a given time. This significantly helps kids to create their own Cricket programs.
The resulting Logo code, however, can still be inspected. Showing the close relationship between graphical symbols and the Logo language, the code can even be changed before being transferred to the Cricket’s memory.