The first three iterations incorporated tangible objects into programs that affect the physical domain. The third iteration also confirmed that a user could construct a sign using natural materials.
My objectives with the fourth iteration were to investigate what a tangible program environment could look like in which the program results where manifested in the digital domain and to determine if recycled materials can be used to construct program elements. To this end, I designed and implemented the Dialando programming environment in which the user applies five identical objects to code the movements of an on-screen character Figure 6-26 (c).
The name Dialando was derived from the words “dial and do” that also hint at how the programming environment is applied: The user constructs a program by “dialling” five actions and then the screen character “does” the actions.
The user interface is based on the orientation of five disks on top of five programming trays (Figure 6-26d). The pattern sequence of these disks represents the sequence of actions that the character will execute. An object on a tray represents one program instruction.
6.5.1 System design
The Dialando language consists of four signs and these are Forward, Back, Right, and Left. A sign is encoded by the direction in which the object points and the language syntax is comprised of the four directions in which an object can point (Figure 6-26a). I call these directions North, South, East, and West, respectively with North being the direction pointing away from the user. An object pointing North encodes a forward motion and this sign is called Forward. Conversely, a South pointing object represents a backward motion and the associated sign is called Backward. For an East-pointing object the resultant sign represents a 90 degree turn to the right and I call this sign Right. A similar convention holds when the object points to the West and I call this sign Left. The interpretation of the Forward and Backward signs results in the character covering a fixed linear distance on the computer screen. The Right and Left signs cause the character to rotate through 90 degrees.
Each programming surface can detect a sign and transmit this information to a program executing on an Arduino (Banzi 2009). The Arduino circuit in turn relays this information to a program executing on a computer and written using the Processing (Reas & Fry 2010) language. A second program, executing on the same computer and written in the Scratch (Resnick, Maloney, Monroy-Hernández, Rusk, Eastmond, Brennan, Millner, Rosenbaum, Silver, Silverman & Kafai 2009) language, generates the on-screen character avatar in response to instructions received from the Processing
program. Figure 6-26b illustrates the flow of information from the tile, to the Arduino, to the Processing and Scratch programs, and finally the effect it has on the displayed image.
(a) (b) (c)
(d) Figure 6-26 System components
(Smith 2010a)
The user programs a series of actions by placing (Figure 6-27a) signs onto the programming surfaces.
Figure 6-27b illustrates an example of a program constructed with the aid of the Dialando programming environment. This figure captures the correlation that exists between the five program objects and the five on-screen actions. In this figure, objects A through E are interpreted at times t1
through t5 while the character executes movements that correspond to the sign being interpreted.
(a) (b)
Figure 6-27 The fourth iteration artefact in use and a program example in execution
(Smith 2010a)
6.5.2 Tangibles design
Each tangible object holds two magnets that are sandwiched between recycled compact disks (CDs).
A short length of salvaged electric cable was inserted between the disks on the circumference to add mechanical strength to this assembly and to improve the object’s aesthetic properties. A large printed arrow finishes the design.
Evaluation of the first three iterations identified that the user had difficulty in aligning the tangible object to the sensing surface. I addressed this by adding magnets in the centre of both the programming trays and the program objects to help align the two. Using this mechanism, the user rotates the object by hand to select a sign while the magnets keep the object and the tray properly aligned.
6.5.3 Discussion
Even though I did not evaluate this iteration with the help of children I observed adults and children when they interacted with the artefact at a conference presentation (Figure 6-27a). The new knowledge I gained is therefore the result of my experience in designing and implementing the artefact and my observations of persons using the artefact. I concluded that it is possible to control aspects of the digital domain by combining a tangible program, Arduino-based hardware, the Processing programming language, and the Scratch programming language. Figure 6-28 reflects my conclusion within the block labelled New Knowledge.
Suggestion
Development Incomplete
-knowledge base New knowledge Publications
It is possible to influence the digital world by using information derived from the physical world.
Design Knowledge
It is possible to control aspects of the digital domain by combining a tangible program, Arduino-based hardware, the Processing programming language, and the Scratch programming language.
New Knowledge
Figure 6-28 The knowledge that informed the fourth iteration and the results
As far as the objects are concerned, I confirmed that previously discarded everyday objects could be repurposed as tangible program elements. Finally, the simplicity of transporting this system across continents (as I had to do on one occasion) and setting it up at a conference for demonstration was an improvement over the same operation applied to the first iteration. This improvement can be ascribed to two factors. First, the results of tangible program execution can be observed without the addition of a physical toy that has to be transported. Second, the interface between the tangible program and the output device does not include custom-made electronic circuitry that can be damaged during transportation. These two observations prompted me to implement only digital outputs in my fifth iteration.