HIGH FIVE GLOVE | 2020 | ATLANTA
The high five Glove has been something I've been working on for around 2 years, crazy to me. It is stable, currently using a TOF class one laser sensor to detect the hand, a momentary switch to lock and unlock the laser sensing to limit false detections. It uses an esp32 to transmit high five detection as well as some text info to Twitch.tv. Part of the tv head I wear is also on twitch detecting the gloves transmission and alters animations. A Python script running on a pi also receives the data via Twitch and sends it to the database attached to this website. Pulling the data can be done with a HTTP Get Request.
Hackaday has awarded this project with the HCI award and some financing to help the project. First off, thank you Hackaday!!!!! To reinvest some of the money into the project, explore more HC interactions, and to enhance the Atltvhead experience I am building a high five sensor.
Most of the communication goes one way, chat types -> the tv changes. But I want to give some IRL people control in chat (at least emoji spam). Allow for some physical action to have a digital presence, just as chat's digital presence impacts the physical screen.
Must be a separate wearable device
Battery must last longer than Atltvhead's
Must be able to offload as much of the tvhead's chatbot code as possible
Must interact with Twitch (wifi) separate from the tvhead head
1 week prototype
Creates a separate mode to for all existing commands
Creates a party atmosphere in the chatroom
Code offloads all features not directly related to running the Tv screen
A large part of my design decisions were based around my 1 week constraint. I wanted as close to a functional prototype glove done in time for this weeks stream. So here are the materials I had on hand when deciding what to do:
Prusa Mk3 3D printer (PETG)
Steel Thread (conductive)
TOF Laser distance sensor
Luckily the Esp32 has some capacitive sensing pins and features. It even has the ability to have a capacitive touch interrupts (oh boi).
For the Esp32, I took the conductive thread, wrapped it around pin 14, soldered the pin closed, superglued the thread, and cut it (I decided not to use the velostat). I rushed a rough CAD housing for the esp32 with some features to hang onto the wristband (files are located in the file section of this project). Lastly, I took the other end of the conductive thread and sewed it into the biking glove. At the end it all ended up looking like this:
What Impacts Atltvhead?
When a high five is detected, I triggered the power puff girls style animation to play with whatever color settings for the heart are currently present (something I do not normally allow). The animation ended with a sparkle effect being applied for about a minute. Also the chat gets flooded with twitch emotes! yay! party!
What is next?!
As of today, I tested it live during a stream. I'll have a highlight video out later this week. There are a good amount of hickups with this design though. How capacitivity changed throughout the stream. I tested it while I was wearing the glove, and even while I was wearing atltvhead to account for the added capacity. However I got sweaty, and sweaty people conduct differently. This caused multiple misfires and endlessly looped the ppg animation.
I plan to get in some conductive fabric and make a soft button to replace the capacitve switch. I know I know, I could code a constant calibration section to the capacitive touch. If it triggers 10 times in less than a certain amount of time, back off the sensitivity and try again. Actually I probably will code this until I can make the soft button.
/// NEW VERSION
The high five portion of the Tvglove is working! Check out the recap from this weeks stream, many high fives to featured there.
The functionality that I want to get out of the glove is to have a physical action effect the chat. Right now, the chat controls the tv screen, but a high five can alter what/how chat can manipulate it for a period of time. Think of it as party mode. As I am working on the code for that, below is my code for the capacitive sensors in the glove.
Capacitance changes, basically on the time. I code in a dry environment, but get sweaty in an already humid Atlanta. It is also a wearble, meaning my own capacitance can trigger the sensor. The capacitance of the glove must react, becoming more or less sensitive. ESP32 allows for variable control the sensitive, in this case called threshold. The lower the threshold, the more less sensitive the sensor. My thought to decrease sensitive is based on the idea of a high number of false triggers occur in very quick session. The function gotTouch1 is an interrupt function, only taking place when the sensor fires. I kept a count of the number of times the sensor is triggered and the time between triggers. As the number of triggers get higher and the time decrease, decrease sensitive. On the opposite end, if nothing happens for a minute, increase the sensitivity. I should end up with some oscillation around a working threshold. A real high five takes place between these short triggers, and a minute (where I will readjust sensitivity).
It is nice, because the sensors are constantly calibrating, allowing it to be reliable as I walk indoors to outdoors, and take the glove on and off.
I also decided to rebuild the tvglove. A problem of the old sensor is that the area for capacitance was too large, so I made smaller patches of sensors. 3 on the palm and one on the knuckles,
I used Silver conductive fabric, allowing for some tricky, but totally doable soldering!!
I stitched all the sensor pads in with regular thread, and sewed some of the cabling as well. This helps with repeated bending of the solder joint.
I soldered the wires to pins T6 and T0 for now of the esp32. The code up above and the new sensor pads did the trick!
/// VERSION 3
I tried a soft button approach with sponge and silver fabric. It worked, but lead to a lot of false positives
/// Version 4
I finally Switch to a TOF laser distance sensor and added a moment switch to control when the switch would be active. I could switch out the switch with an accelerometer to unlock the sensor only during high accelerations, but i'll save that for v5 haha.