DELTA

Members:
Einar Røgnvaldsson - Frodi HammerAlireza Derakhshan

AM36
Robots and Dynamic Agents Interfaces Design

Home
Members
Project 1
Project 2
Video's
Manual
Links

Project 2: The Dancing Pad.

 Introduction

The Delta team was chosen to work on two projects that were merged together.

They were:

-         Project 8.
In the Body Games project, we are developing new possibilities for interaction on future playgrounds. One of the technologies that we envision is the addition of many small processing devices on the playground. Each device should include sensory system, processing, actuation, and radio communication. We have some examples called Smart-Its. This project will make such Smart-Its, and investigate how 4-5 such Smart-Its can function and communicate together as a multi agent system.

-         Project 10.
Imagine making a brick that you can step on. Sensors should be put into the brick to measure the force on different parts of the brick. The sensors could be the so-called strain gauge. These sensors should the be placed in the brick. The project group should make appropriate measuring circuits, program a microcontroller and show the result in a funny way.

At first sight some hardware issues had to be solved referring to the dancing pad. However, with this new concept there are many unknown variables we had to consider e.g. is it doable to make the dancing pad in such a way that we could measure the pressure or do we just have to measure if someone is on it or not? If pressure estimations were made, how good would they bee? In addition, could it be possible to detect the position of the pressure? The three members of the team had different skills in hardware and software development and design. Frodi and Alireza had some insight in hardware, but there main force was in the software. On the contrarily Einar had much experience in hardware and had insight in software. Because of the group composition Frodi and Alireza started to assemble and work with the Smart-Its whereas Einar began designing the hardware for the physical dancing pad.

With the scope of the workspace and areas settled, we moved towards the main application of the system. The project were designed to be a part of the body games project that is under development at the MIP institute of University of Southern Denmark in the Adaptronics group. Therefore, the application was meant to be part of a technologically newly developed playground for children. Where the Smart-Its could be used to make the information transfer network.

Our project was to focus on one of these games that could be developed for this technologically playground, namely the dancing pad. An overall sketch of the system is found in the below figure.

 

Figure 1. Shows the overall sketch of the system to be designed.

Hardware

The Pad

One of the main task of project 2, was to integrate some sensors into a dacing pad (a rubber-link gaget, see figure 2). It was already decided, that the sensors should be strain gauges. These strain gauges has to be attached to something, and we came up with the idea of integrating a aluminium cross into the dancing pad. To do this, we had to use a circular saw (and protective spectacles). The result came out quite nice – the arrows on the image below shows where the aluminium cross is lowered into the dancing pad.

Figure 2. Shows the rubber pad to be used in the project.

Transducer

In order to convert force into electrical signal, strain gauge was used in this project. In order to use the strain gauge on the rubber dancing pad, a metal cross was assembled to fit the pad as shown on figure 3.

Figure 3. Shows a simple 3 D drawing of the rubber clods and the metal cross.

 

Two strain gauges were mounted on each arm of the cross and connected to a Wheatstone bridge in a so called half bridge connection in order to get the largest signal out of the transducer (A short tutorial on strain sensors can be found here). A variable potentiometer was incorporated in the opposite arm of the bridge for calibration purpose.

A special strain gauge amplifier with temperature compensation, 2 wire connections and a relative high gain was bought from RS-Components since they manufactur it. Connection schematic for the amplifier can be seen on figure 4. The part list can be found in the strain gauge application notes.

Figure 4. Shows the strain gauge amplifier used in the project.

This amplifier is very expensive but since the project period is relative short and the equipments are to be designed for out door use with wide temperature fluctuations, it was decided to use them in this prototype at the time being.

A possible alternative could be to use two operational amplifiers, AD620 and AD705 as shown on figure 5.

Figure 5 Shows an alternative to the strain gauge amplifier.

The amplifier was set to operate on ± 5V. This voltage is sufficient to get good readings from the strain gauge and since the input to the Smart-it’s is at TTL niveu (0-5V) it is no risk in burning the Smart-It’s.

The power supply is 2 x 5V switch mode power supplies, connected together. A better solution could be to use LM7905 and LM340-5, as can be seen in there’s application notes, and one 12-18 V power supply.

Mounting

Figure 6. Shows how the transducer and the amplifier circuits have been integrated into the rubber pad.

A hole was made into the pad and the transducer was mounted in as shown on figure 6. and fixed, through each arm and the middle, to the rubber pad.

Figure 7. Shows the 3 parts of each branch of the transducer.

 

On figure 7. can the most important part of each sensor unit be seen. The strain gauge amplifier can be seen as the red box at the center of the image. The strain gauge can be seen inside of the circle nr 2. Inside of the circle nr 3 is the variable resistor in the Wheatstone bridge that is used to caliber the bridge. Inside of circle nr 1 is the variable resistor, used to set the offset of the amplifier.

Generalt on the transducer

It can be said about the strain gauge that they are very accurate. But theirs biggest problem is the need for excitation and how little they change, causing a need for very high amplification. This is not a preferable characteristic for this project. The dancing pad is designed for an out door use and should use as little sensitive electronic as possible. In this perspective a piezoelectric material as a sensor is more suitable solution. Another possibility is to use fiber optic sensor as they are very sensitive and can easily be integrated into the pad in such a way that force acting any ware on the pad can be measured.

If using piezo resistive material, the Tactile sensor with a FSR is a relative cheap solution with a high gain.

The Drums

As a sound generator, a Cyber Drum from Potex, was bought at the local toy store and connected to one of the Smart-Its. The drum, shown at figure 8, consists of more than one drum that each uses a Piezo electric sensor that gets activated by a sound and responds by sending approximately 1V pulse into the sound generator. By sending digital pulse into the sound generator, a sound can be produced as if the drums are hit.

Figure 8. Shows the Cyber Drum used in the project.

An add-on board was made, containing a voltage divider, to convert the 5V pulse to 1V pulse.

 

Smart-its

The hardware part of the Smart-Its, was not that comprehensive. The biggest challenge was to integrate some sort of hardware that could support the programming interface, namely the ICD 2 MPLAB® from Microchip; mainly for the convenience of other users that had experience in the ICD 2 MPLAB® and therefore knew the environment. The Smart-It itself did not support it in its natural form. However, we managed to integrate the programming interface by modifying the hardware on the Smart-Its. Simply we change the 9-way socket (CON1) with a 11-way socket where the 10th pin is cut. The 11th pin is then connected with a wire directly to pin 1 on the PIC16F876 processor (MCLR/Vpp/THV).

More over we wanted to keep the system in the sense of “plug and play”, where we had several custom made “add-on boards” that were connected to different external devices/hardware. During the project, we made four such add-on boards: the add-on board for the ICD 2 interface, the add-on board for interfacing the dancing pad such that measurements could be made, and finally the add-on board for interfacing the Smart-Its to the drums such that we could give some output on the input actions.

 

Dance'n Drive

When we already are able to control sound (the drums) via the dancing pad, it should also be possible to control mechanic ex. some motors. Therefore we constructed a LEGO MindStorm vehicle and interfaced a Smart-It as sensors to the RCX and two LEGO motors to some crawler tracks. Because we are able to output TTL signals with the Smart-It, we use two sensors to control the two motors, that is high for forward and low for backward. And an additional sensor to tell if the motors are on or off.

We should now be able to when stepping onto the dancing pad to control the two LEGO motors and making the vehicle move forwards, backwards, left or right.

 

Application

The main idea of the application is that the user should be able to add Smart-Its one by one to the system (ex. the playground), and the Smart-Its, perhaps containing primitive behaviours, are able to identify them self and register other Smart-Its. This gives the user the ability to manipulate or extend the system on his or hers behalf.  

In our application (described in the introduction) every gadget, dancing pad, drums etc., is considered an agent and has the ability to communicate with other agents. We use the Smart-Its for agents and attach one to each gadget. The software (behaviour) of each agent is described below.

 

Dancing pad

The Smart-It attached to the dancing pad has to read the values corresponding to where the user is dancing (standing). The Smart-It then broadcasts the signal, and other agents listening for this can use it, in our example the drums and the Dance n’ Drive vehicle. Hence, the dancing pad actually is a sensor.

Initialize core

Read initial values from analog input (used for calibration)

while(true)

     read value from A0..A3

     calculate change using difference from calibration measure

          if calculated value is greater than a THRESHOLD value

              send signal to listeners

         wait (to avoid flooding of communication)                         

 

Drums

The Smart-It attached to the drums has the simple quest, to listen for other agents in the system willing to play on the drums. There for, according to the request, the Smart-It plays the specified drum. Hence, the drums are actuators in the system.

Initialize core

while(true)

     check for received frame

     if received data is HI_HATS, CRASH_CYMBAL, RIDE CYMBAL, BASS_DRUM,               SNARE_DRUM, SMALL_TOM, MEDIUM_TOM or FLOOR_TOM

         play the requested drum

 

Accelerometer

The Smart-It containing the accelerometer is registering how the user is shaking it. This information is the broadcasted, and other agents in the system listening to this are notified. The accelerometer is a sensor in the system.

Initialize core

while(true)

     if accelerations detected

          send request to play HI_HATS, CRASH_CYMBAL, RIDE CYMBAL or BASS_DRUM

 

 

Dance n’ Drive

Finally, a Smart-It is attached to the Dance n’ Drive LEGO MindStorm vehicle. The user is then able to control the vehicle by using the dancing pad. Hence, the Dance n’ Drive vehicle is a actuator in the system.

Initialize core

while(true)

     if frame received

         move whether forwards, backward, left or right

     else halt vehicle

 

For the Dance n’ Drive vehicle we also need some program running on the RCX to control the motors. Again as in project 1 we implemented this using lejOS (www.lejos.org). The pseudo code for the program is as following:

Initialize motors

Initialize sensors

while(true)

     if users is dancing on the dancing pad

         move forward, left, right or backward according to the position of           the dancing on the dancing pad

 

When trying to create a Multi-Agent-System using the Smart-Its, we investigated the possibility to implement the standard Agent Communication Language (ACL) protocol. But currently available implementations of the ACL protocol are made in JAVA (see www.fipa.org), and we would need to implement an Java Virtual Machine (JVM) in the Smart-Its. A JVM designed for embedded microcontrollers is simpleRTJ which can be downloaded for free at www.rtjcom.com. But simpleRTJ need for a minimum 64K memory, which the EEPROM interfaced to the Smart-Its support. But this leaves us only with the 8K flash memory built-in the PIC16F876 processor  for programs. This is not enough for a complex program including the ACL protocol. Therefore we didn’t have the possibility to use a standard communication protocol with the Smart-Its, and had to make our own special-purpose protocol.

Instead of using the Smart-Its, it would be nice with a more up-to-date microcontroller supporting Java, ex. Sun’s Java 2 Micro Edition. Hereby we would obtain the possibility to implement standards according to agents giving by FIPA, also in the future. Examples could be microcontrollers containing aJile Systems aJ-100 processor which is a Sun certified silicon JVM (www.ajile.com). Another example could be dct’s lightfoot (www.dctl.com) which uses a FPGA processor and gives us the ability to use up to 32MB RAM and the same kind of sensor and communication as the Smart-It.

 

Conclusion

All the goals of the project have been reached. The sensors have been integrated into the rubber pad and a Smart-It kit can read values from the sensors at the change of force on the pad. The drum has been interfaced with a Smart-It kit and can be played on by the kit. The Dance n’ Drive Lego Mindstorm car is interfaced and controlled by a Smart-It kit. A kind of a multi agent system is set up, with the dancing pad kit sending out information and the Drum and the Dance n’ Drive kits receiving and acting accordingly.

 

Perspective

At the beginning of the project, the group was set to design and assemble the hardware before getting further into the aspect of the application. After designing the transducer and the electronic the components needed to be ordered. This process took over a week and the group actually lost one day because of the component shortage.

It has been decided from the start that the sensors to be used should be strain gauge. It is though obvious that strain gauge are far to accurate and expensive to use in such an application. The group recommends that the choice of sensors will be looked further into.

The Smart-Its were at first sight excellent for the job. The are small, easy to interface and have the ability to communicate with each other. But when we started using the Smart-Its for the application, they came in short. Basically the Smart-Its are based on old hardware and poor design. The processor itself only contains 8K of RAM and an additional 64K EEPROM circuit gives the user a total of 72K RAM. This isn’t much if the user wishes to use state of the art programming tools, like Java (smallest available VM is currently 64K), which is widely used in the MAS community as implementation tool. Therefore the user has to port a custom made version of ex. an ACL protocol and updating according to new research. This causes a lot of bookkeeping.

Further the interface to the processor is poorly designed, as a direct access to the MCLR pin isn’t available, making programming the Smart-It difficult (a hack was made, making the use of the ICD2 usable). Further more there is no access direct access to Port C of the processor which means that the counter, or in that case the PWM generator, isn’t available for an custom made add-on board.

The overall perspective for the Smart-Its are that they can be useable if you can settle with the technology they offer, however if the need is to research new technologies and use the Smart-It as a tool for that purpose, it can be rather limited if indeed impossible. 

It should however be noticed that the Smart-It concept in general is excellent, but the physical models and versions are not living up to the ideology of the concept.

 

 

To the top

 

Online Support Material

bullet Strain Sensors
bulletSmart-It
bullet www.smart-it.org

Schematics

bulletDancing Pad add-on board
bulletICD2 add-on board
bulletDrums add-on board
bulletDance n' Drive add-on board

 

Software Files

bulletImages and Video's
bullet The Dancing Pad
bulletThe Drum
bullet The Dance'n Drive Car
bullet The Shake'n Dance
bulletSmart-It
 
bulletSoftware
bullet The Software in a .zip format

 

 

Home | Members | Project 1 | Project 2 | Video's | Manual | Links

For problems or questions regarding this web contact einar@mip.sdu.dk.
Last updated: 08/14/03.