Bellow you can see the gestures been captured with our system built in Processing. This part of the UI is for recording the movement the user want's to try and match. The user can also set the threshold for what a good serve is in this part of the UI to give themselves a range for what is good enough.
We used an arduino UNO, with two gyros and an acceleromator attached to it. We then attached the hardware directly to the racket. This was a prototype version, a further developed version would obviously not have the hardware directly attached to the racket. Because our main goal was simply to get a working prototype.
Bellow you can see the physical design of our racket and a user testing out the final prototype.
The program we used to process the data, visualize the data and make the UI was Processing. My main role on the team was UI design. For the UI we are gathered data from OSC which was transmitted by the Arduino. The OSC data being sent is GyroX, GyroY, Gyroz, AccelX, AcelY and the “ideal threshold” which is a variable which the user can set in the gesture recording interface. The combination of the Gyros and the Accels gave us 3 “gesture values” which store all directional info. So each gesture value correlates with a different type of movement.
Bellow you can see the movements being tracked via the UI made in Processing, which shows the user in a simple way how close they are to a "good tennis serve". The slider represents how accurate each movement type is, with green being more accurate and red being less. Each slider correlates with a different type of movement, and when a user moves the racket in different ways they will see how the accuracy of that gesture is reflected in the UI. The user can also set the "threshold" the yellow line, for what movement is close enough to the ideal serve, and they can set the threshold to be easier or harder.