User:Patrick Thor/ENES 100/Project 2(Smart Shoe)

Write problem/project Goal
The goal of this project is to create a "smart shoe" device that meets the following requirements:


 * Accurately measure height of the wearer's jump
 * Displays this information on an external console
 * Can be detached and reattached to any article

My First Task
My first task is to create the team page, meet with my group and discuss our goals, and conduct research for our project. I also hope to start to work on the software as well as learn from arduino tutorials.

Summary of actual work over first weekend
I created the team page and discussed the goals for the next four weeks with my team. I found some tutorials that are listed on our team page that I suggested the other group members use to become more fluent in arduino to make this project flow more smoothly. I also incorporated the proper physics equation and finished the code to measure the height of a jump. Than I made the circuit to test that it worked.

Week1 Narrative
(October 15th, 2012)
 * I discussed and met with the group our goals for the four weeks. The goals I suggested and we agreed on can be seen at the top of this page. I began researching the history of this project but did not find much; only the article I found a few weeks back that reverse engineers the physics behind the original hyperdunk. Found HERE


 * After discussing the lack of research with my group I suggested to the group that we should all become more fluent in Arduino due to the amount of software required with this project. The tutorials I used are found in the Tutorial list on our team page.

(October 17th, 2012)
 * Today I worked on the code for measuring the height of a jump. With some input from my team, I came up with this:




 * This code will take a reading from the accelerometer, time it, take this time and input it into an equation where the output will be a height in meters and display it on the serial monitor.


 * I then built a circuit to verify the code worked, pictures of this can be seen in the thumbnails. The code works but will need to be calibrated.

My Second Task
The next step for me is to work on calibrating and fine tuning the code we have, and then figure out a way to attach and fabricate the arduino to a shoe. Also need to start thinking about other ways to display the height besides the serial monitor on the computer.

Summary of actual work over second weekend
This week I primarily focused on preliminary testing and calibrating of our Arduino code as well as researching and brainstorming ways to fabricate the device so that it could fit onto a shoe. I also researched and ordered parts from sparkfun to help create a wireless Arduino.

Week2 Narrative
(October 22, 2012)


 * After our group presentations I wanted to research ways we could enclose the Arduino and components into a single unit. I found various cases and enclosures but most were extremely large and just were not the right fit for our main purpose. The group will most likely end up just making our own housing to fit what we need and not more. I also looked at methods to transmit data wirelessly with the Arduino. My initial research focused around bluetooth as it is accepted by most computers and smartphones making it very compatible regardless of where you may be. However I found the restriction with bluetooth was cost. It cost nearly $50 for one bluetooth component, and for our group this is simply not feasible. I then focused my attention on finding a cheaper wireless route. I found a 434 MHz transmitter and receiver we could use to transmit the small bytes of data we would be capturing. The only drawback with this is you must use 2 Arduinos, but this may not be a drawback as this allows us to actually run two programs at once and have twice the processing power.

The wireless receiver and transmitter can be found here and here.

(October 24, 2012)


 * Today I focused on doing preliminary tests to check the accuracy of our design and code. To do this I attached the Arduino/circuit to a shoe with duct tape, placed a point of reference, in this case a ruler, next to their leg and had them jump with various intensities. While the subject was jumping, I was logging the data set from the computer and then cross referencing it with the actual height of the jumps. The code turned out to be quite accurate, the only thing I had to modify was the sensitivity of the accelerometer. I want it to be at a point where the movement of striding (walking/running) will not register on the accelerometer, but a small jump will. At some point I hope acquire to a camera and a more accurate point of reference, and tape the subject jumping wearing the prototype, and display the jump side by side with the data on the computer. To formally document this test.


 * After testing I ordered the Arduino parts that we needed to wirelessly transmit data between two Arduinos. I also began looking at the library and methods to utilize these components, as well as the best way to set them up. I have not currently decided yet whether we will transmit to the Arduino and use the serial monitor to display data or whether we will use an lcd attached to the receiving Arduino to display the data. I will create a decision matrix at some point to help decide this.

(October 26, 2012)


 * I was curious as to different ways that the user could input selection and select how they would want the height to be measured (ie. feet/meters. etc) so I did some research on this. I found that if we used the computer to display data it was possible to create a GUI with various height options where the user could input their choice of measurement and then the Arduino would display the selected.

My Third task
My hope is I will receive the wireless components this week so I can start adding them into our code. Otherwise I will continue to brainstorm ideas for attaching it to the shoe and hopefully produce a decision matrix and some prototypes.

Summary of actual work over third weekend
With many distractions and diversions, it was hard to get all I wanted to accomplish done this week. I was able to start on adding the proper code for the transmitter/receiver link and was successfully able to produce a working final prototype of the design.



Week3 Narrative
(October 31, 2012)


 * After a long weekend of deterrence and missed opportunities due to power outage and lack of class, today proved to be an important one. After presentations I discussed with the team what our options would be for this week, since we currently have not gotten the parts we need in yet.


 * As decided earlier in this project cycle, a case is too bulky and not practical for the purpose of this project. I initially wanted to produce our own case, but after thinking about it decided it would be better to not use a case whatsoever; mostly in the interest of reducing bulk and weight. However the design factor that is being used for this project requires the Arduino to slide smoothly between the laces and tongue of a shoe, and the solders on the Arduino board impeded this movement by catching onto the fabric. To remedy this I used some thin, black styrofoam pieces that smoothed the bottom of the Arduino without adding much bulk.


 * Once this was done, I found a copper T-bracket that I was able to hammer out to produce the "clip" that I needed to attach the Arduino to a shoe. Using the pre-cut holes in the Arduino board I was able to attach the bracket to the bottom of the board with 2 screws and nuts.


 * I also replaced the loose breadboard that was being used with a proto-shield that secured the accelerometer and wiring better.

(November 3, 2012)


 * Since I am still waiting on the parts I ordered to come in, and since we lost a lot of time earlier this week I took it upon myself to try and do as much coding I could before the parts came. I was able to locate the necessary code library, example structures, and user tutorials on the Sparkfun website, which is where I bought the components. I was able to piece some of this code together, but am not sure if it works yet due to lack of proper components.



My Fourth task
For the final week of the project, I hope to finally get the RF link components we need, as well as the 9v Battery pack, allowing me to finish the code for good. After that, I hope to create an in depth test to run the smart shoe through the paces. I will than compile this data into a video and submit it as the final, working test.

I do have once concern, that I will have to remedy and look into within this final week. Currently the code is structured such that the vertical axis "Z" is used to measure the height. As such, optimal results are produced when the Z-axis is leveled. The way it is setup currently, the Arduino and accelerometer are about 10 degrees off of the optimal 180. This is something that will have to be tweaked either in the software this coming week as there is no ideal way to fabricate it such that it is level.

Summary of actual work over fourth weekend

 * The parts I had ordered arrived much later than I had anticipated, so much of this final week was spent documenting and trying to improve upon the design. I recieved the parts on thursday, however this did not allot me enough time to fully finish what I wanted to do.

Week4 Narrative


(November 5, 2012)
 * With our presentation, we did not have much time to work in class, so I began researching what resources I would need to code and create a functioning RF link between our two Arduinos; Continuing what I had started last week. I also looked into how I could log sensor data and then retrieve it from the Arduino and pull it up on the serial monitor. The final thing I did was go over the end documentation with my team and discussed each of our roles in the final team page and poster.

(November 7, 2012)
 * The parts should arrive today, but for in class I focused on cleaning up and fixing our documentation. I also worked on the poster and added the decision matrix to the team page.

(November 8, 2012)
 * The parts arrived this afternoon and I began working with them. The code I had tried to produce before their arrival did not work correctly and I am getting no signal or reading after uploading it to the Arduino. I am going back to the drawing board and looking for more in depth tutorials that I can use to benefit this project.

(November 10, 2012)
 * After looking more into how to work the RF link pair I bought, I again came up with a pair of codes, one for the receiver and one for the transmitter. Instead of trying to code my own functions with the standard Arduino libraries, I found a custom user generated library called VirtualWire that has built in functions to allow the use of wireless technologies with Arduino.


 * I am still getting no signal or reading's from either of the components. In troubleshooting I cannot determine whether it is my code that is not working or if it is the actual components or a mix of both. The code compiles correctly and is bug free. I cannot test the signal nor the components as I do not have access to an oscilloscope. At this point it is a real possibility that this might not be workable with the deadline.

(November 11, 2012)
 * At this point, I've concluded that 4 days is not enough to learn the proper library, implement the Arduino code, and test/troubleshoot it. I am mainly going to focus on the back up plan of storing the sensor values in the Arduino and than reading them out later to the computer.

There are a few restrictions on storing and reading data.
 * You need 2 separate sketches as I could not find a function that worked properly that would check to see whether the plug was connected or not.
 * You must reset the memory every time you wish to write a new value, thus basically adding a 3rd sketch.
 * Only one jump may be recored and logged at a time.

The library used for storing data is called EEPROM and it is built into Arduino.

The code I came up with for this purpose is below:

Complete Team Page
Team Page