Abstract:

For our project, we created light up running shoes that change color based on how fast you are running. SOL Shoes aims to aid runners by providing them with a general idea of their pace, and also strives to be a fun and useful product for all ages. The runner will wear a clip containing an accelerometer which will transmit the data to the shoes via bluetooth. The shoes also contain a pressure sensor that generated three unique light patterns based on how much pressure is applied. We used led strips, arduinos, an accelerometer, a pressure sensor, and bluetooth to create our shoes.

Inspiration:

We chose to create light up shoes for our project because we both wanted to use LEDs in our product and we figured that having shoes that change color based on speed would be a very fun application of RGB LEDs since we could incorporate multiple colors and patterns.

Technical Description:

To build our shoes, we made use of two arduinos, an RGB led strip, an accelerometer, a pressure sensor, and bluetooth technology. SOL Shoes has an accelerometer powered by a battery pack and an Arduino that is worn on a person’s torso so that the direction is always moving along the same axis. The accelerometer is connected to an arduino on the shoe through bluetooth. It constantly reads analog values of acceleration ranging from 0 to 1023 for a specified axis, in our case the x-axis. Since the acceleration values were in analog values, we used the map function to ensure that when the accelerometer was at rest, the acceleration reading was zero. Since acceleration is not the desired data for a runner, these analog values are then converted to velocity values using the formula final Velocity = initial velocity plus acceleration times time. The initial velocity is zero for the first loop, but the initial velocity of the next loop is equal to the final velocity of the previous loop. By implementing a delay of 200, a new velocity is calculated every 0.2 seconds. When the person is at rest, the LEDs light up red. When the person begins moving, the LEDs light up aqua. When the person moves more quickly, the LEDs light up purple.The RGB led strips that we used allow us to have the ability to control each led individually using the fastled library which we were able to install directly from the libraries already on Arduino. This library allows us to set the color of each individual LED so that we can create distinct patterns. Making use of this, we implemented a pressure sensor that generates 3 unique patterns based on how much pressure is applied. When the sensor is pressed lightly, a segmented pattern of purple, blue, and green is illuminated. If the sensor is pressed slightly harder, the shoe is lit up with a segmented pattern of red and green. Lastly, if there is a significant amount of pressure applied, the shoe lights up with a randomly generated pattern that changes for as long as the sensor is held down.

Assembly:

To assemble the shoe, we hot glued the RGB LED strips around the sides. We then velcroed a black pouch to the back of the shoe to hold the Arduino in place. We also placed the pressure sensor to make fun patterns on the back of the shoe. Lastly, the battery pack to power the LEDs was weaved into the laces of the shoe.

Obstacles:

One major obstacle that we experienced when creating our shoe was the fact that decimal values cannot be sent over Bluetooth. Even though the master was reading in values of velocity in decimals, when the slave code received these values, they were received in integers so a value of 0.8 was the same as 0.2 since they both read as 0. To fix this issue, we attempted to multiply everything by 10 on the master, and then divide on the slave code, however, when we did this, the error in readings was amplified and the lights began changing colors when they were not supposed to do to this increased error. Additionally, we also attempted to fix the issue on just the slave code by multiplying the received value by 10 and then casting to a double. This gave us the same issue of amplified error, and so for our project we used integer values as speeds to control the shoe which still worked well, it was just not as accurate on changing colors and there appeared to be a delay in the color change. Another obstacle was since we only used one axis, tilting the accelerometer slightly changed the velocity values which affected the color of the shoes even when a person was not running. In the future, to fix this, we could make use of all three axes when calculating velocity.

Future:

If we had more time, we would definitely be able to improve our product by making it more sleek and wearable. Instead of using a normal arduino, we could use an Arduino Light Blue Bean which is much smaller so that it will not look as bulky on the shoe, and the circuits can be more compact. Additionally, we would use a much smaller battery pack to also make the shoe look more wearable. With more time, we would also be able to design a nice clip for the runner to wear on their torso. With a smaller arduino this clip would be sleek and easy to wear. Moving forward, we would also figure out a better method to get more accurate velocity readings on the receiver side so that the colors can change quicker since the readings and ranges will now be set to decimal values instead of integers.

What We Learned/Accomplishments:

This project taught us a lot about coding in Arduino, and also communicating over Bluetooth. We were able to learn a lot through trying various methods to acquire velocity values from the analog values that the accelerometer produces. Although getting the velocity values was very difficult, and the values contain a lot of error due to noise, we were able to find a method to change the colors based on how fast a person is moving which is definitely our biggest accomplishment of the project.

Marketability:

S.O.L shoes are a great product that can be used by runners so that they can easily get a sense of their pace as they are running and also by children. Children are often drawn to bright lights and cool shoes, and although light up shoes exist, S.O.L shoes are different in that they have unique and segmented light patterns that most shoes do not have. They also have the ability for the user to change the color of the shoe based on their own actions versus just pressing a button so they would sell very well on the market as they have a wide range of customers.

Arduino Code:

Photos of both the master and slave code are included and can be seen by scrolling to the right on the video above.

Promotional Video Link:

https://www.youtube.com/watch?v=nnDOExaWeas

Share this project:

Updates