The last three weeks we have been working on the technical part of our installation. Therefore we started with dividing the task into separate subtasks that had to be developed during the design process. Those subtask should, in the end, all work together to simulate the behavior as designed by the interaction team. Special solutions had to be found for the problems we encountered, this meant a lot of reading, learning and prototyping.
We will now explain for each separate subtask what kind of problems we encountered, what kind of solution we found and how to continue.
For the motors we started with forming a list of requirements. We stated that the motor should have enough torque to cope with the tension in the elastic bands. The motor should also be able to spin free when no power is applied. At last the shaft of the motor should be strong enough to mount the spinning disk directly, this was done to reduce the amount of moving parts and therefore failure.
We started with a geared motor, this motor runs on 12V dc and spins at 32 rpm. The first prototype with this motor showed that it had sufficient torque. However, the gearbox prevents the disk from spinning freely when the motor is not powered. We therefore had to get rid of the gearbox and drive the disk directly.
Because the disks only have to spin 180 degrees maximum we figured that developing our own brushless motor would be a cost efficient alternative. The lack of accuracy should not be a problem since we only want rotate the disk from 0 to 180 degrees. This system would however require a lot more development and the assembly time would probably rise sky high.
We therefore decided to go for stepper motors. The problem with those motors is that they are way to accurate for our purpose and therefore expensive. This problem was overcome by the fact that we found 5 stepper motors at a surplus store.
The downside of those motors was that we knew nothing about them, even the world wide web could not provide us with the right information. This meant we had to figure out by our self how those motors work. After some testing we were able to conclude that the motors that we bought were so called “5 multiphase motors” (figure below). This means that all four phases have to be driven individually by a half H-bridge, resulting in a difficult driver compared to unidirectional stepper motors. On the upside, those motors deliver more torque from a given package size.
Currently we are waiting for the L298 H-bridges to arrive. We have been testing those on breadboards, and this seems to be working. However, mistakes are easily made on breadboard and therefore we want to make PCB’s for the motor driver before testing any further. This way we can add proper cooling and a current limiting system. The research for the current limiting system is currently still in development.
The pull sensors
For the pull sensors (the sensors that detect whether someone pulls a string) we experimented with using a joystick potentiometer that can measure in X and Y direction. This resulted in mechanical problems since the force for the elastic bands is relatively little and balancing the system was hard.
After some more testing we figured that moving a magnet inside a coil provokes a small output voltage. Attaching a small magnet to the elastic band would allow us to measure the movement of the magnet because of the stretched string. This system worked but the output voltage was no more than 5mV. This required an additional amplifier in order to read out the movements with the Arduino. The amplification was done by using a inverting operational amplifier that amplifies the signal 400 times. We discovered that this resulted in an extremely sensitive sensor that is able to detect even the smallest touch, perfect for our purpose.
For the pull sensors we will now have to come up with a design that is time efficient in terms of manufacturing and assembly.
The EL-wires control
To control all the EL-wires (16 per disk in total) we are using solid state relays with build in optocouplers. Those have been tested before and work perfectly.
Since the Arduino board does not provide us with enough output to individually control all the EL-wires we had to expand the amount of outputs. We did some tests using the 74HC595 shift register (http://www.arduino.cc/en/Tutorial/ShiftOut) and those seem to be doing their job. By placing 2 shift registers per disk we are able to control all 16 EL-wires.
The proximity sensors
For measuring the proximity of the users we will be using ultrasonic distance sensors, since we have worked with those before we do not expect any problems. We do however have to find about 6 of those sensors to cover the outside area.
An important part of the electronics is the connections. Since we want a system that is modular and easy to assemble we are going to make separate PCB’s for the different tasks. This way we can test and debug the different components and replace them if needed. A homemade Arduino shield will house three ribbon cable connectors, from there the EL-wires, motors and pull sensors will be connected.
The Arduino shield has still to be designed, this should not be too hard since this PCB will not contain any active parts.
For the final code we started with making a flowchart that translates the interaction in logical steps. This is used to develop a first setup of the code that can be used for the first prototype. The final code still needs a lot of development, this will be done when all the other building blocks come together.