Hexant
A matrix of Hexagons That Reads Human Gesture
Hexant consists of 19 mirror-like stainless steel hexagons that can respond to a viewer's gesture and reflect their image dynamically.
It neutralizes the coldness of the material and brings life to the hexagons. Hexant is trying to bridge the gap between human and technology.
Work at 造物 | 2016 My Role: Interaction Designer, Project Lead Teammates: Tony Zhu - Hardware Engineer Skills: Interaction Design, 3D Modeling, Prototyping
Background
Hexant is customized for our client, "造物" (Creation of Creature), a brand that combines parametric design with modern lifestyle.
As part of its debut at ADM (Asian Design Management Forum), Hexant is supposed to carry the DNA of the brand, help publicize it,
and help draw attention to its newly launched “hexagon” series.
To those aims, brand retrospection comes first. Once we find the lineage of the brand, the left is to embody that in the right form.
Happily, we did a good job. The installation not only fit in perfectly with the overall brand display, but also stood out among them.
Media coverage, customer feedback, as well as the boost in the brand's number of followers in social media attested.
Interactive Details
1. If no gesture input is detected by the Leap Motion, Hexant remains static for the majority of time.
2. But once every 3 minutes, the hexagon pieces will dance spontaneously as choreographed for about 15 seconds.
3. When gesture input is detected, Hexant will follow the movement of your hand and wave accordingly. It's his way of saying hello to you.
Technical Solution
(1) Servo motor is used because it allows for precise control of angular position, velocity and acceleration,
which enables the programmed "waving" of our hexagonal mirrors.
(2) LDX-218 servo motor is chosen for its metal gear that raises its reliability at high loads ( as much as 15kg).
(3) Leap Motion helps grasp the viewer's gesture (in this case "swipe left" and "swipe right") and send the message to Arduino.
(4) In order to control 19 servo motors, we need extra PWM pins ——— on an Arduino Uno, PWM output is only possible on digital I/O pins 3, 5, 6, 9, 10 and 11 ——— that's why two 16-way PWM servo driver boards are here.
Each PWM servo driver is able to drive up to 16 servos over I2C, therefore we used the cascading method to connect another PWM servo driver .
Actually, multiple drivers (up to 62) can be chained to control still more servos.
Making Process
First step was to build models in Rhino. In addition to getting more direct impression of its look,
simulation with 3D models helped us foresee potential problems we might encounter in practice.
Once viability is proven, we had to determine the number and size of the pieces and the spaces between them.
That depends on the venue, the cost, and the expected visual effect. A 3D model of the exhibition was built for gauging the overall effect.
We pondered upon what was the best material to make those hexagonal pieces out of for the best aesthetics.
Mirrors were discarded because they are too heavy for the servo motors to drive, plus, it is hard to attach mirrors to the servos.
Finally 0.3mm-thick nickel-plated SUS304 stainless steel sheets were chosen, being super light (140g/per), strong, and fit for welding and drilling.
Another challenge was to lay out the pieces in a hexagonal matrix exactly as planned and keep it that way despite the motor movements.
That was crucial since the pieces may bump into each other when rotating if not equally spaced.
As for servo motors, the key to their longevity is (1) trying to avoid limit positions (2) do not let them work nonstop.
So we programmed the rotation range to be -15 to 15 degree, and made the 15-second-long rest session once every 3 minutes.
Besides, we coded in Processing to prevent Leap Motion from forwarding data to Arduino once servo motors had reached their limit positions.
On-Site Assemble & Test
Eventually, 5 equally-spaced metal bars, with servo motors and hexagon pieces on them, were installed onto the wall.
During the field test, we found that Arduino Uno might not be capable enough to deal with all the array data sent from Leap Motion.
Especially when you move your hand back and forth frequently or when several hands are involved, Uno buffer will easily get clogged up,
and Hexant might get stuck as well. The solution is to replace Arduino Uno with Mega, or even Titan when necessary.