For our physical computing final project, Aileen and I decided to team up and work together on creating a boxing training tool. The goal was to place appropriate sensors inside a boxing mitt such that it could calculate and send specific data about the hits to a computer for a user to refer to after a training session. Additionally, we wanted the entire system to be wireless for maximum effectivity and usability as a legitimate training tool.
To begin with, we researched boxing tools and spoke with both people who train and trainers. The user research revealed that the most important metric or feedback that users wanted to received was the type of hit and the number of good hits completed during a specific training period. This guided us in the direction of creating two key design features - the ability to distinguish between the different types of boxing hits, and a hit counter.
There are three distinct types of hits in boxing — jab, hook, and uppercut — and each hit is divided into a category for the left and right hands. The type of hit is differentiated by the position that the mitt is held; for a jab the mitts are held straight forwards and perpendicular to the ground, for a hook the mitts are turned inward to face one another, and for an uppercut the mitts are held facing down. In terms of appropriate sensors, we determined that an accelerometer and potentially a gyroscope would allow for us to determine the relative position of the mitts based on the x, y, and z axes and write if statements in our code to determine what kind of hit was thrown. In order to determine accuracy, we decided to use a medium sized FSR sensor that we would place at the mitt’s “sweet spot” where an ideal hit would make contact with the glove. To provide some sort of calculation for the “intensity” of the hit, we figured that we’d use the tilt of the mitt at the point of contact to see how hard the user had hit it.
After choosing our sensors, we began the process of data collection to figure out the values we needed to write into the code to provide useful and conclusive results. This involved connecting our sensors to an Arduino and writing simple code that allowed us to view the output of the sensors on the serial monitor. First, we wanted to create the distinctions between the three types of hits. We realized quickly that it was fairly simple to distinguish an uppercut from either a hook or jab, as there were sharp changes to the y axis of the accelerometer when the mitt was facing forward versus facing the ground.
Separating a jab from a hook, however, proved to be much more difficult. We did notice that there were slight changes in the x and z axes when switching from a jab to a hook, but the changes were not significant enough to tell the difference accurately. We also had to factor in human behavior via user testing at this point. When the mitts were turned in a very mechanical manner we could study and find consistencies in the changes in the axes, but we quickly realized that users do not behave so mechanically and we could not rely on an actual person using the tool in such a robotic manner. At this point we tried using an accelerometer with a gyroscope for added input that could be used to determine the angle of the mitts, but this also proved to be unsuccessful. The readings that the gyroscope provided were all relative rather than absolute, where the output reading was completely dependent on the position of the mitts when the reading began. This made it extremely difficult to determine the position and angle to categorize hit types, let alone write code that factored in the angle. After many hours of studying data and trying to make distinctions, we decided to leave the tool at separating jabs from uppercuts for this iteration.
As far as fabrication goes, we decided to place our sensors and Arduino in an actual boxing mitt, for a variety of reasons. Firstly, in prototyping an actual tool for boxers, we wanted the tool to be as usable and legitimate as possible, and found that using a real mitt would accomplish this feat best. Additionally, because the tool has a very specific use case, we wanted users to be familiar with the tool and easily understand how they’re supposed to interact with it, which is much easier to achieve when using an actual mitt. We wired all of our sensors, the Arduino, and the battery to a perf-board that we stored in a pocket at the back of the mitt. The FSR sensor was place under the lining at the front of the glove to make it as inconspicuous as possible.