“Stretch Controller” is a wearable controller that interfaces with Unity. It takes the form of a glove and has two stretch sensors that work as the inputs for the project. The inputs are used alongside other modifiers in the Unity Engine. In this way the users can interact with the project by flexing and relaxing their fingers. I chose to use a stretch sensor for the inputs because I thought it would be interesting to take a simple concept and play around with it to make something interesting and functional. Additionally, I chose to create a wearable controller because I like creating video games and feel that creating my own version of a controller would allow new and interesting design conventions and affordances that are different with an ordinary controller. While I do enjoy the tactility of ordinary controllers and the physical feedback they provide with buttons, I feel that a wearable controller can offer more immersion when playing a game. This project serves more of as exploration of alternative controllers rather than a replacement for ordinary ones.
The main interactions of the piece is the stretch sensors. They are placed along the pinky and index fingers. This is so that when the fingers bend/ ball up the sensor would be stretched and change the input value. The value is then run through a C# script on Unity so that it is remapped to be more suitable for interactions. The stretch sensor controls the rotation of a cube. The screen also displays the maximum and minimum values (important for calibration), the mapped value, as well as the raw value. (The full range of the stretch sensor is 0-1024, it doesn’t go through the full range and must be calibrated to be more suitable. The cube rotation also only has a range of 360.)
The other interaction is holding down the on-board button (pin 4). While the button is held down, the minimum and maximum values will be recalibrated.
Video1(Shows the glove and hand flexing): https://drive.google.com/file/d/1WSHZCvftgVV4atS4N2ZegyDyHGLOKVX0/view?usp=sharing
Video2(Shows the computer inputs in the computer screen):https://drive.google.com/file/d/1v6HMORIKVE0vf1LTWKLBslA4rtk5ZEKm/view?usp=sharing
-Adafruit Circuitplayground Classic
-Conductive Rubber (Stretch Sensor) 350ohm per inch in relax (From Creatron)
-Black Spandex (From Kings Textiles)
-1k Ohm Resistor * 2
Here is the link to the code on github
The repository features 4 files: 2 Unity files and 2 Arduino Files.
-The Unity files respectively remap the input for the pinky and index. They also use the remapped data to change the x (pinky) and y (index) rotation values of a cube.
-The Arduino file titled “Final_Test” was a test I used at the beginning of the process to make sure all the analog inputs are correct
-The Arduino file titled “Uduino_Final” is the example code from the uduino library so that the Arduino (Circuit Playground Classic in my case) and Unity can interface with each other. The code is only altered in the beginning to allow the circuit playground to be read.
#include <Adafruit_CircuitPlayground.h> is the only addition to this. The rest of the code is by Marc Teyssier.
The project was inspired by the Nintendo Power Glove and its predecessors, the VPL DataGlove, and Z-Glove made by Thomas Zimmerman.
The Z-Glove inspired me because of the Optical flex Sensor. I really like how it uses optical flex sensors which uses a basic physics concept that light travels in a straight line to create a sensor to detect how much the finger bends. Similarly, I wanted to use a simple concept of stretching and flexing for my own glove-based controller.
The electronics were rather difficult to construct and wire up. Most of the issues comes from the conductive thread. Because of how stiff it is it tended to come undone quite often. From there was often the risk of the thread coming into contact with everything the rest of the circuit. This was especially a problem at the end of the circuit, when connecting everything to the circuit playground. To fix this, I put the loose ends down and placed a small piece of conductive fabric on top of it. This is because the fabric has a heat activated adhesive on it.
Besides that, the circuit features two voltage dividers with the stretch sensor assigned on each of them.
Process Video: https://drive.google.com/file/d/1WaJUJ78CmuAfbBZdRBp_SrrjEqhqX_it/view?usp=sharing
Challenges and Successes
Overall, I really liked how tidy the wiring is for the project. I’m also really glad that it does work and that the fabric isn’t pulled b the conductive rubber. I also learnt from testing that adding another strip of the conductive rubber would average out the values a little bit. I’m really glad that I was able to interface the circuit playground with unity. This knowledge will serve me very well in the future.
There were a lot of challenges for the project. Though I wanted it to be modular with 3d printed pieces, I could not get them printed in time so I sewed the whole thing onto the glove. The circuit playground also tended to overheat so I’m a bit wary about keeping it plugged in for too long. The playground also seems to be able to read the analog inputs one at a time, so that will be a difficult challenge to overcome in the future. Another challenge was that everything came off a lot, as mentioned earlier with the wires often coming undone.
There is a whole lot I want to improve on with the project, I probably want to use a different material/ make a bigger glove as the spandex is very tight, while this is good in detecting the stretch, it makes taking the glove off rather hard, especially when taken into account how fragile it is and how the components can easily come off it. I also really want to focus on making it modular. Most of all I really want to make a better game to interface with the glove. This works well as a demo but there are so man other thing I want to make with it.