I built a model hand scanner, which, from our storyboard, the guests use to try to gain access to the next room. The housing is made from sheets of acrylic and the finger pads of aluminum rods. An Arduino microcontroller senses touch and activates LEDs.
I started by building a very basic voltage divider circuit. I have 5volts going directly into an Arduino analog input pin. The Arduino constantly reads the analog voltage coming in to this pin. In parallel to the Arduino is a broken path to ground. This path is completed by the User's hand. When a hand is placed on the scanner, the 5volts stops going to the Arduino and instead to the aluminum finger pad, through the finger to the palm pad, then to ground. When this happens, the Arduino senses a drop in voltage (less than 5v). When the voltage drops below a certain threshold, I assume a finger is completing the circuit and power some LEDs near that finger.
I cut aluminum rods for the conductive pads, then placed these along with the electronics inside an acrylic box which I lasercut.
I learned the following lessons building this model.
1. Use brighter LEDs
I used generic LEDs from my lab to quickly test the circuit. Then in the model, I grouped rings of these LEDs around the 5 finger pads. They proved to be too dim when viewed through the white acrylic face plate. Each LED is also very distinct, whereas I was imagining more of a solid ring circling each finger. Moving forward, I'll be working with stronger and smaller LEDs, which can be grouped closer together and provide a stronger visual experience.
2. Voltage divider drawbacks
While the voltage divider method is incredibly easy to implement, I've identified three main drawbacks. The first is the guest must physically complete the circuit, requiring direct contact with the conductive surface. As a result the aluminum pads are exposed through the front white plate, breaking the clean, solid-surface aesthetic used throughout the rest of the room.
Another issue is the reliability of the voltage divider. The voltage drop sensed by the Arduino can vary based on finger length and shape, temperature, and how sweaty or wet their hands may be, making it difficult to find a reliable threshold voltage. As it is now, the hand scanner may not activate for all guests or reliably for the same guest.
Finally, because the sensor works by completing a circuit, the fingertips only light up if the palm is also being pressed. While not a major problem, I think it'd be cool to sense single finger touches.
3. Voltage divider solutions
After some research, I've learned about another touch sensing method for the Arduino that solves all these problems. A certain type of capacitive sensing can sense touch through a nonconductive surface. It measures changes in capacitance near a conductive surface, as opposed to reading when a circuit is closed. This allows me to create a solid front plate (solid white with no aluminum circles). The hand scanner could then match the room aesthetic and add to the initial reveal experience as guests enter a completely featureless room. We can then use a couple of techniques to reveal the hand scanner to the guests, such as a visual symbol placed nearby or, after a few seconds, lightly power the LEDs for a glowing effect. This method is also capable of higher resolution readings, giving a clear difference between touched and untouched, and can sense individual fingers.