Tuesday, March 31, 2015

We'll Get There!

Good news: I powered up a Bluefruit EZ-Key HID from adafruit and it connected to my MacBook Pro on the first try! We're gonna go with it. It has some extra functionality we don't really need, but it's very user friendly and only draws about 25mA. We'll eventually use the TX and RX pins to send information.

The bad news? There isn't really any yet, but we're learning things about things we didn't even know we didn't know. We attempted to write some mbed code in the compiler to start pulling data from the IMU and came to realize we actually don't have a clue where to start. We downloaded code from the adafruit website, but it was all configured for Arduino. -queue facepalm- Not knowing how to "convert" Arduino code to mbed, we consulted our dear friend Aadu. He enlightened us about I2C and the beautiful inner workings of our mbed. All we have to do is rewrite the Arduino code using functions in the I2C library we downloaded. Easy right? We'll see.

"Quick and Dirty"

Today we really started to jump into working with our mbed and IMU to start developing, in Dr. Mangharam's words: our "quick and dirty" prototype. We've collected a number of useful parts from Detkin storage already. We're using a 9-DOF IMU (inertial measurement unit) by Adafruit with an L3DG20H gyroscope for measuring hand pitch and orientation and an LSM303DLHC accelerometer/compass to measure hand acceleration. We're working on one of the LPC1768 M3 mbeds given to us in lab. Aadu also found us a couple potential bluetooth chips we can start testing with. We got a 3V LiOn batter from Dr. Mangharam to use, but we're going to need to get another to supply at least 4.5V of input power to the mbed.


Two potential bluetooth chips and a potential LiOn battery given to us by Dr. Mangharam

We attached the mbed and IMU to one of my own, personal, swimming hand paddles. The result looks pretty sketchy, but at this point in our design process, looks are far less important than functionality.

Take One: mbed and 9-DOF Adafruit IMU on hand paddle

Fun fact: the key to the Detkin office with all the extra supplies got locked inside, so we can't ask for any extra parts tonight. Tonight, we're going to focus on writing more code so that we blow everyone away on Friday. Stay tuned!


Thursday, March 26, 2015

Project Proposal

ESE 350 Project Proposal

  1. Project Title: Smart Paddles

  1. Team: Meta Knight
    1. Laura Kingsley, Software Lead
    2. Catherine Yee, Hardware Lead
    3. TA Mentor: Aadu

  1. Motivation:
There are hundreds of thousands of competitive swimmers in the United States alone. For years, innovative coaches have been eager to use swimming equipment to improve the performance of their athletes including resistance bands, drag chutes, tempo trackers and more. Despite the high demand for performance tech for swimmers, no one has ever built a device that can measure the isolated force and acceleration of a swimmer’s arm stroke. With this kind of device, the collected data could be analyzed to identify weak points in a swimmer’s arm stroke to improve performance in the water.

  1. Goal:
Our finished product will be a wearable hand paddle that swimmers can use to measure the position, acceleration, and applied pressure of their arm strokes. It will be able to capture these measurements and wirelessly transmit the information to a computer for analysis.Our system will be waterproof, lightweight, and hydrodynamic.

  1. Methodology:
Our first steps are to do research on potential components and perform preliminary land tests with an IMU. We will record the data collected by the on-chip sensors for circular, stroke-like motion and observe patterns that we can use to analyze collected data. We will also order additional pressure sensors, waterproofing materials, and all other materials.
    The next step is to develop hardware, software and mechanical designs. The hardware design will incorporate all necessary power supply solutions, sensors, wireless communication, and waterproofing. More on-land testing will be done to ensure data collection is still accurate in this stage. Software development will include writing algorithms for stroke pattern recognition using MATLAB, interfacing with the sensors, programing modes of operations, and wireless communication. Preliminary SolidWorks designs will be made to construct the physical paddle.
    Finally, we will bring the hardware, software, and physical paddle together to create our waterproof prototype. At this stage, we will be doing most of our in-water testing in the pool at Pottruck with a variety of different swimmers to test our software and determine how to qualitatively present the data in a way that makes sense for users.

  1. Project Components:
Hardware: We will be using ARM mbed M0 cortex microcontroller for ADC functionality and ability to interface with wireless communication chips. We need a microcontroller that is small, lightweight, and low power. We don’t need the functionality of a more sophisticated microprocessor because our application doesn’t involve image or audio capture. An IMU will be used to collect position and acceleration information. Additional pressure sensors will measure exerted force. Switches, buttons, and LED’s will be placed on the paddle so that swimmers can control the different operation modes.
Software: Using MATLAB, the transmitted data will be processed to graphically display the generated position, acceleration, and force curves as a function of time. Extensive in-water testing will allow us to match the signals to different stages in a swimmer’s stroke. Distance per stroke calculations will be displayed as an indication of efficiency.
Mechanical: The physical paddle will be 3D printed to maximize hydrodynamics and provide more waterproofing for the enclosed circuitry. Latex surgical tubing will allow swimmers to secure the paddle to their hands. All hardware components will be waterproofed with CorrosionX or Silicon sealant to prevent shorting. A second “dummy” paddle will be built that is symmetrical to the Smart Paddle, but doesn’t contain the hardware so that swimming is more natural.

  1. Testing and Evaluation:
We will evaluate our project by the way we accomplish our milestones. First, we want to see that our paddle does what we intended it to do and that our hardware is functioning - paddle responds to button presses, captures data, transmits data to computer, is waterproof. The next area of evaluation is software - we want to see that the data is meaningful, can be displayed in a way that gives relevant information to swimmer, the software disregards meaningless data, the graphical interface is user friendly, and derives swimmer metrics. Water tests will include data captured from the paddle, the manually captured time it took the swimmer to get across the pool, and underwater video for us to improve data analysis.
  1. Deliverables:
Baseline 1: Waterproof hand paddle that can measure position, acceleration, and force in the water in capture mode.
Baseline 2: Ability to transmit data wirelessly to computer in send mode.
Baseline 3: Graphical display of collected data on computer with some data/signal processing to make data more qualitative and understandable for users.

Reach Goals - Extra Credit:
Wireless charging: We want our paddle to be cordless and lightweight. We will need a power supply solution that isn’t too bulky or heavy. Wireless charging would be an elegant solution to this problem, but would definitely require more advanced hardware design and much more research in an area that is somewhat unrelated to our project.
A Second Smart Paddle: We think we’ll have our hands full by just constructing one Smart Paddle, but adding a second unit would allow swimmers to identify differences between the two sides of their stroke.

  1. Overall Timeline:
3/22 - 3/25: Research components and waterproofing methods, complete proposal and abstract, start preliminary IMU land testing, order components materials, make webpage
3/26-3/29: Start working with MATLAB to develop graphical data display and stroke analysis, begin designing hardware for wireless communication and power, begin SolidWorks paddle design
3/30-4/2: More land testing and programming, hardware waterproofing, preliminary water tests (bucket) for pressure sensor
4/3-4/6: Construct waterproof paddle and prepare for water testing, make second dummy paddle
4/7-4/10: Start water testing with Catherine, ensure functionality of capture and send modes
4/11-4/14: Water testing with other swimmers, including data capture, manual time, and video, keep developing MATLAB code
4/15-4/18: More water testing and programming to ensure accuracy in data analysis, start filming for final demo video, consider attempting reach goals
4/19-4/22: Debugging, start compiling final demo video
              4/23-4/24: More debugging and finishing touches

Project Abstract

Catherine Yee and Laura Kingsley
Project Abstract - Smart Paddles


For our final project, we will be making a pair of smart hand paddles that swimmers can use to measure their stroke efficiency in the water. The paddles will then be able to transmit the captured stroke information to a computer via bluetooth. Each paddle will contain an ARM MBED because we want something small, light and low power. Each will also include an adafruit IMU that contains a gyroscope, accelerometer, and barometric pressure sensor, a chip to enable wireless communication, and possibly an additional pressure sensor depending on the accuracy of the barometric pressure sensor in the IMU. Because wireless signals are not easily transmitted through water, the paddles will store the information in capture mode until the information can be transferred wirelessly to a computer on land. Our goal is to make the paddles as hydrodynamic, light-weight, and as low power as possible.  

We will start the project by running tests with the IMU on land to determine how the accelerometer and gyroscope respond to circular, stroke-like motion and determine whether the pressure sensor will be accurate enough for our needs. Next, we will construct a circuit (probably with high pass filtering) and program all of the operation modes and wireless transmission. Once that is complete, we will build a waterproof circuit using a combination of silicon sealant and CorrosionX waterproofing spray that can be tested in the water to ensure meaningful measurements are being collected and transmitted. Finally, we will 3D print a custom hand paddle to encase our hardware and test the final product with many different swimmers. To save everyone a trip to Pottruck, our final demo will include a video of us using the Smart Paddles at the pool and a demonstration of how the collected data can be used as a tool to improve swimming technique.

Getting Started

Hi everyone!

Catherine and Laura here. This is our first blog/blog post ever! We're getting very excited about our ESE 350 final project: Smart Paddles. From here on out, we will be posting all of our steps and progress so you can see us progress on our journey.

So far we have solidified our idea and drafted our abstract and proposal. Yesterday, we chatted with Dr. Mangharam about power supply options for our paddles. Today, we are ordering parts and trying to finish up Elevator before we can really dive in.

So far we have ordered:

1, 3oz bottle of 100% Silicon Sealant (for waterproofing)
1, 6oz aerosol can of CorrosionX (for waterproofing) and
1, 3ft package of 1/4 inch latex surgical tubing (for physical paddle)

Our project abstract and proposal will be posted soon.

In short, we will be making "Smart Paddles" that will measure the orientation, acceleration, and applied force of a swimmer's arm stroke and will send that information wirelessly to a computer that can analyze the data to improve performance. We are very excited to start moving forward. Stay tuned!

Catherine and Laura