Interactive Sculpture

There are stories about half-humans and half-robots all over the place, but all the mermaid stories are about half-fish and half-human. I decided to sketch a combination of these three creatures. The question was raised about the ability of a cyborg to live under water, but I believe with proper insulation it would not be an issue.

Following the design of the sketch, I have built a prototype of the sculpture using simple low-cost components to show the feasibility of the design. The mermaid body was created from several layers of cardboard and the switch frame was built from thick electric wire. The LEDs simply light up on the box and a piezo single-tone speaker is used to simulate the melody. The prototype used a servo motor with a “fork”to push the swing back and forth; a single distance sensor is used to set the speed and angle of the motion, LED brightness, and the speaker tone.

In the final model, I will laser cut such a cyber mermaid out of translucent blue or transparent plexiglass. The additional pieces of the sculpture will still be a swing that the mermaid will sit on and a base which will house Arduino and other electronic components. The mermaid would be hollow inside to decrease the weight of the sculpture. It will be equipped with LEDs to illuminate the curves of the mermaid. In addition, the sculpture will incorporate a series of distance and motion sensors which will trigger movement of the swing, change the speed of the swing, color and brightness of LEDs, and the volume of a captivating melody. The closer one gets, the faster the swing goes and the louder the music plays. The swing movement would be controlled by electromagnets instead of servos to reduce the noise and improve the aesthetics.


  1. Frame.
    The swing is built from 14 and 16 gauge wire for flexibility and reliability. The first model used plain string wire to hand the swing, but it was thrown around a lot due to the torque from the servo; at the end, the wire got ripped out completely. The fixed-frame wire swing works much better; the “fork” that the servo uses to push the swing is made from similar wire too.
  2. LEDs.
    The prototype is using a simple set of 4 low-power LEDs; the quantity is dictated by how many available PWM (Pulse Width Modulation) digital/analog outputs the Arduino has. PWM output pins allow to light the LEDs at variable brightness, so they are best for this application.In the real model, these lights would be powerful enough to light up the dimmed room; however, the power requirements will need a dedicated lights controller.
  3. Speaker.
    A simple piezo speaker is used to produce a single continuous tone that varies depending on the distance; another PWM output is used for that.The advantage as compared to a melody is that the signal can be output while Arduino is performing other operations (such as servo movement).In the future model, a dedicated sound controller with the ability to play complex melodies (16 bit, preferrably) and control volume will be used.
  4. Distance Sensor.
    A simple ultrasonic sensor is used to measure the distance to an approaching object. During prototype tests, it became apparent that this particular sensor model is not very accurate at detecting non-reflective objects at non-direct angles; furthermore, the detection range is limited to about 8-10 feet. The future model will likely deploy a number of such sensors along with some movement sensors to ensure better detection and higher operational ranges.
  5. Pololu Servo Controller.
    The Pololu controller is used due to several imporant benefits. First, it allows to set the servos to variable speeds. Second, it helps to smooth out the movement and avoid sudden swings that could damage the installation. Third, it can complete servo movements while the Arduino is performing other operations. The main deficiency is the absense of feedback; one has to rely on static timers to determine when the servo completes its movement. Furthermore, the speed and angle controls are not extremely accurate; certain roughness still occurs at the end of the movement at higher speeds. In the actual model, a dedicated Arduino-based controller will likely be used.
  6. Servo Motor.
    The motor is small and powerful, but relatively noisy and somewhat inaccurate. While the Pololu controller compensates for some deficiencies, the movement is still sometimes rough. Various code-level limitations were implemented to prevent damage to the overall construction. The servo uses a fairly long arm to move the “fork” that pushes the swing; the length and flexibility of that arm negatively affect the vibration level as well. Another important deficiency of this basic servo is the lack of feedback.
  7. Power.
    The initial idea was to power the Arduino and the servo from the same external power supply, but use different outputs. The servo is successfully powered from the +5V output, but Arduino was having stability issues when fed from +12V 1.2A output to its Vin pin. Due to the time constraints, I did not attempt to solder a power connector to feed into the extrenal power input; this is something that would need to be taken care of in the future model. For the time being, Arduino is powered separately through the USB power input.

Click on “Show” to view the full code.
Show ▼

Assembled test drive
Test drive of assembled ultrasonic distance sensor, servo and interface box with four LEDs

Assembled test drive take 2
Second test drive of assembled ultrasonic distance sensor, servo and interface box with four LEDs

Distance sensor
Test drive of an ultrasonic distance sensor

Distance sensor and servo
Test drive of an ultrasonic distance sensor and a servo

Distance sensor, servo and interface
Test drive of an ultrasonic distance sensor, servo and interface box with four LEDs

X-acto knife cut
Video log of me cutting out a prototype mermaid out of cardboard

Gluing
Video log of me gluing the cardboard pieces of mermaid prototype