After watching the problem statement video and speaking directly with Kate Mannle, we were intrigued by this problem and the technical challenges it poses. Both members of our team are from software backgrounds with no hardware experience, so building an effective prototype for this situation was a new and exciting problem for us.
We settled on our solution for two reasons
- We did not want a technically complex project due to hardware costs and availability in certain parts of the world
- We needed to use tools, such as mobile phones, that we are familiar with in order to overcome our lack of hardware experience. The solution we have presented here is simple, cost effective, and easily expanded upon for other mobile devices or tools.
How it Works
- Download and install the Fish Ruler app to a supported mobile device.
- Place the mobile device into the Fish Ruler mount and load the app.
- (optional) The application has support for an external button to control recording. If desired, connect the button.
- (optional) Use the name field to give a label to the measurement recording.
- Place the fish to be measured on a flat surface.
- Click start in the app or press the button to begin a measurement.
- Pull the ruler out of the Fish Ruler mount to the length of the fish.
- Click stop in the app or press the button to finish the measurement.
- Data for the measurement will be uploaded to the server.
- Repeat steps 5-9 for all fish.
The main challenge we faced was how to effectively read a measurement from a tool external to the iPhone. We had considered using more 'hi-tech' solutions than the tape measure, but this presented two problems:
- There are no devices on the market that can easily export measurement data to a device.
- Existing hardware solutions are expensive.
Once we settled on using a tape measure we had to decide how the iPhone camera would know the distance we were measuring. Our first attempt was to color-code the tape measure based on distance so we could read a color and know the length; however, this was a very difficult solution to actually implement. Due to changing lighting conditions, it is nearly impossible to accurately read a color from the camera.
After that failure, we decided on using black only, since it was much easier to 'see' programmatically. To overcome the use of only one color, we made a pattern that could be easily read from the app. The app uses a pattern of black bars to essentially 'count' the length of a fish.
Accomplishments that I'm proud of
We're proud of making our first hardware hack! Our prototype was made from inexpensive materials but functions well and measures very accurately and quickly.
What I learned
We learned a few things:
- From a software standpoint, we learned that it can be very difficult to accurately read colors from an image, even though it is easy to get pixel data from an image.
- From a hardware standpoint, we learned that for this particular problem statement, the challenge lies more in the situation of the fishermen than in the actual technical problem of measurement. There are a variety of tools available today that could solve this problem, like laser measures, but they are so cost prohibitive that the real challenge is in finding a creative, low tech solution that could be constructed at a reasonable cost with more readily available materials.