From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Student Projects

Showing results for 
Search instead for 
Did you mean: 

UCLA HKN Interactive Water and Light Display 2013

Contact Information

University: University of California - Los Angeles

Team Members (with year of graduation): Stefan Jorgensen (2013), Adam Rao (2014),  Jeremy Haugen (2014), Rowan Fakhro (2015), Michael Chan (2015), Jaiyi Lu (2015), Albert Cheng (2015), William Seto (2015), George Li (2015)

Faculty Advisers: Professor Alan Willson, Professor William Goodin

Email Address:

Submission Language: English

Project Information

Title: Interactive Water and Light Display


With the lack of engaging exposure to electrical engineering and computer science, children seldom develop an interest in those disciplines. This interactive water and light display presents a method through which to demonstrate the potential of these areas of study in a stimulating and appealing manner. In this way, children may be inspired to pursue study in electrical engineering or computer science.



NI LabVIEW 2012

Kinesthesia Toolkit

Kinect SDK

Arduino IDE


Arduino Pro Mini Microcontroller

16-Channel PWM Multiplexer (PCA9685)

8 Motor Drivers (STM L298N)

16 BlinkM MaxM RGB LED Modules

16 DC Water Pumps

The Challenge

The challenge is to create a visually aesthetic and physically engaging display using the Kinect, LED modules, and water pumps, and further to simultaneously interface these components with Labview and the microcontroller, taking into consideration the variability and limitations in the performance of each specific component.

The Solution

1. Introduction

In order to inspire children's interest in electrical engineering and computer science, we designed and implemented an interactive fountain which can be controlled through physical motion using the Microsoft Kinect to sense arm motions and Labview to transform those motions into fountain and water activation. The fountain's LEDs illuminate the water, providing a more aesthetic experience. Our project applies Microsoft Kinect SDK as well as some elements of the Kinesthesia LabView toolkit, which was developed by students at University of Leeds for medical rehabilitation and surgery training. Labview was used for a visually pleasing style of coding, which is more interesting for children to view than traditional programming languages.

2. Usage

In order to control the fountain, the user must stand 5-10 feet in front of the Kinect sensor. When the Kinect begins tracking the user, an image of their skeleton will appear on right side of the Labview interface. After the user is tracked by the Kinect, they can use their arms to control the water pumps. By raising an arm, the user will increase the height of the water shooting out of the pumps on that arm's side. The higher they raise their arm, the higher the height of the water will be. By bringing their arm across their chest, pumps will turn on in a diagonal motion. If the user brings their hand toward their shoulder, only the pumps at the front of the fountain will turn on. The user can control the fountain with both arms simultaneously. If a user wants to stop controlling the fountain, they can simply walk out of view of the Kinect sensor.

3. Technical Overview

3.1 Kinect

The Kinect is a human-computer interaction device which has the ability to track body movements through a depth sensing IR camera. The device returns the three dimensional coordinates of 20 different joints in the body. The coordinates of the wrists, elbows, shoulders, and spine are used to control the pumps of the fountain.

3.2 Labview

Labview is used as the main process between the Kinect and the microcontroller. It analyzes the data from the Kinect, determines how high to set each pump, and sends the information to the microcontroller.

3.3 Microcontroller

An Arduino pro mini microcontroller handles the low level hardware control.  All of the lights and motor controllers are controlled via an I2C connection.  The microcontroller runs at a loop rate of approximately 100 Hz, which is well above human perception.  The microcontroller is also capable of rudimentary audio sampling and processing for music visualization.

3.4 Fountain Hardware

The fountain enclosure is made from clear laser cut acrylic so that the electronics are easily seen, which enhances the educational benefit and is in line with the emphasis on outreach to children.  Sixteen light modules are arranged in a 4x4 grid next to the fountain spouts inside of a waterproof electronics box.  The DC water pumps are underneath the electronics box and are driven by dual-channel motor controllers.  The amplitude of the water is directly related to the input voltage of the pump, which is controlled using PWM generated by a 16-channel PWM multiplexor chip.  The PWM mux is serial controlled over I2C.

4. Technical Description

4.1 Labview

In order to read the data from the Kinect into Labview, we use a library called Kinesthesia, developed by students from the University of Leeds. It initializes the Kinect, reads the skeletal data, calculates the angle between joints, and closes the connection to the Kinect.

4.1.1 FountainMain

This Labview module is the main part of our software. It reads the Kinect data, processes the data, and tells the microcontroller which fountain pumps to turn on, and how high to set them. It also displays a picture of the skeleton, created by the Kinesthesia library and displays a simulator on the screen of what the fountain is doing.

4.1.2 ConvertRange

This module takes an old range, an old value, and a new range, and returns a new value within the new range which has the same proportion as the old value within the old range. This is used to convert anatomical angle to an angle that is easily usable in the fountain. For example, a person can only bring their arm across their chest to an angle of about 40 degrees, but the angle of the line of active fountains should be zero degrees. This allows the person to control all the pumps easily.

4.1.3 ObtainJointAngles

This obtains all the joint angles we need. For each arm, these include the angle of the elbow, the angle between the shoulders and the arm, and the angle between the spine and the arm. The angle of the elbow determines how many of the far pumps should be turned on. The angle between the shoulders and the arm determines which pumps should be on in a diagonal direction. The angle between the spine and the arm determines the height of the water on that arm's side.

4.1.4 ShortestDistPointLine

This module determines the shortest distance between a point and a line. The line is input in y-intercept form. In order to determine which pumps turn on, we create a line, then check if each pump is close to that line. If it is close we turn it on.

4.2 Microcontroller

The Arduino Pro Mini uses an ATMega328p processor and the Arduino IDE.  The MCU is responsible for translating the high-level pump height commands into low-level PWM duty cycle commands which are sent to the PWM mux via I2C. 

4.3 Water Pumps

The DC water pumps are controlled with the motor drivers using the information passed through the PWM mux from the microcontroller.

4.4 Enclosure

The enclosure is made from laser cut acrylic and has two main components - the outer basin and the inner electronics enclosure.  The basin is a 12-sided container which holds the water and has high walls in order to contain the splashing.  The electronics enclosure is a clear rectangular box which contains all of the motor drivers, LEDs and the PWM mux.  The enclosure sits on top of the water pumps and has sixteen holes for the fountain spouts to pass through.

4.5 LEDs

The LEDs are BlinkM MaxM RGB modules which have their own ATtiny microcontroller on them.  This allows the main controller to upload short scripts for the lights to play until the next time update.  It also enables simple I2C control of the RGB models versus lower level control of transistors and drivers.

Future Work

The project is currently in Beta Edition, with the final step being the addition of audio processing such that movement of the body will be able to distort the music being played on the computer, and that music will be able to control the fountain's LEDs.