top of page
Mengru Zheng LOGO.png

​Moving Light

Real time interaction between body movement and light

Moving  Light banner.png

Overview

Watch this video from another platform:

Tencent Video-.png
vimeo.png

​Introduction

This is the final project of my elective, Make Things Interactive. The scope of this elective is about how to create physically interactive objects and environments with Java in Arduino. In addition, before this elective I also learnt Processing by myself, which implement the same coding language as Arduino, so I combined both coding tools as my challenge in this project.

Concept

This project aims to achieve real time interaction between participant and an interior space with kinetic light as well as reflective light.

 

Data inputs are from human’s body movement, while data outputs are transited into colour change of handheld installation and interactive graphic projected on the wall.

Overview

Inspiration

Inspiration Experience 1.jpg
Inspiration Experience 2.jpg
Teamlab2.jpg
Teamlab3.jpg
Teamlab1.jpg

Experience

Most of my artistic inspirations derived from my life. Magic of light always attracts me with my photography hobby. I also have impressive experience that interactive light could enlighten personal and social activities. Therefore I decided to research kinetic interactive light in depth in this project.

TeamLab

TeamLab is a famous Japanese company installing a lot of exhibition, which shows that interactive light, object & screen could create enjoyable experience and commercial value. Considering lighting colour could be integrated both on screen and physical object, I think this is the opportunity that I can utilise different tools together with similar code.

Inspiration

Ideation

Ideation.jpg

Through an initial technical research, I can translate body movement into XYZ value with IMU (Inertial Measurement Unit) sensor or accelerometer sensor. Once I mapped out the basic logic, two challenges appealed in terms of my original coding level:

1. There are only one serial port for data communication between Arduino and Processing. How can I split multiple values from one serial port?

2. How can I achieve wireless communication when a person is dancing?

Ideation

Experimentation

split values.png
split values2.png
wireless online4.png
wireless online3.png
wireless online2.png
wireless online1.png
Bluetooth-.jpg

Splitting Values

At the start of experimentation, I must wait for the sensor package delivery, but I still started to test how to split multiple values from Arduino to Processing with low-cost sensors as back-up plan, namely 2 LDR (light dependent resistors) and one potentiometer sensor. Fortunately I succeeded after I compared several resources from online forum.

Wireless Communication

via Online Server

In this stage I did several different experiments via online platform named Adafruit.io.

 

I used Huzzah as the mainboard because it is embedded with ESP8266 Wi-Fi module. In terms of digital input/out, it was easy to use online server to control led. However, when I tried to collect data from analog sensor into online server per second, it succeeded for a while, but the data limit reached quickly. Moreover, when I tried to send XYZ data from IMU sensor, the data amount became larger, and it added much more complexity in my Arduino code.

 

This experiment reveals that Wi-Fi protocol is only suitable for state machine with small amount of data communication. Real-time wireless interaction requires a large amount of data communication, therefore I need to consider local data communication but not via global online server in next stage.

Wireless Communication

via Bluetooth

In this step I tested two Bluetooth modules. XC4382 BLE Bluetooth Module is embedded with BLE (Bluetooth Low Energy), which couldn’t directly create a COM for serial communication, because the protocol of BLE is different from normal Bluetooth module.

 

In comparison, Bluetooth Module (HC-05) could directly create a COM after paired, and communicate with Arduino Serial Port as both master and slave configuration. Finally I succeed to achieve real-time wireless communication with this module.

 

As a bonus research, Bluetooth Module (HC-06) could only be used as slave configuration. In my project I used Arduino Nano to send data and control the computer, so it is not compulsory here.

Experimentation

Outcome

The final prototype achieved that participant could hold a lighting stick, and dance in an interior space. The data from participant’s body movement integrates colors of lighting stick and projected graphic. XY values are also translated as a brush in the projected screen to achieve real-time interaction, with a algorithm called particle system.

Logic Diagram.jpg

Circuit Diagram

Circuit Diagram.png
prototype.jpg

Component List

Arduino Nano    x1

1kOhm Resistor    x3

HC-05 Bluetooth module    x1

NeoPixel LED Ring    x1

BNO055 IMU Fusion Breakout    x1

Prototype

The materials of the final prototype are MDF and polypropylene. After a size calculation in Rhino, the materials could be digital fabricated with laser cut. Then I can bend the MDF in wooden kerf pattern. Also, a matt polypropylene is the best choice for light diffusion. Finally it was well assembled for the successful feasibility test.

Outcome

Stay Connected

mengru.zheng@hotmail.com

Tel (AU): +61 466 896 469

Tel (CN): +86 18817366164

  • LinkedIn
  • Instagram
  • Facebook
  • YouTube

Scan the QR code to add me on WeChat

WechatIMG13570.jpg

Copyright © 2020-2022 Mengru Zheng. All rights reserved.

bottom of page