Will's Mp3 Player


 Design point of view:

     My design is designed for a runner of any type who listens to music while running. I designed the mp3 player so that the player chooses a song based on the pace of the runner. This is to address the error when your mp3 player decides that a slow jam is appropriate to play during your running workout. 

 

Mind Map:

 

Requirements:

 

Verplank Diagram:

 

Paper Prototypes

 

State Diagram

 

Project Code:

     To make it clean, I uploaded the project code to its own folder my mp3 folder.

     Some highlights of my code include:

          - Gathers the pace over 10 secs

          - As data comes in, the player fills a psudeo-stack that averages the pace over 10 parts (thus the pace is only really valid over 100 secs - this is help alleviate issues from small slowdowns or quick stops)

          - The player picks a song based on that pace

          - The beats per min of songs are stored in the title of the songs (the first three digits represent the time)

          - When the player starts it creates an array of bpm that is linked to way the songs are read in.

          - The player tries to pick songs that are not within the last 10 songs played (so that if your pace stays the same, the same song doesn't keep playing over and over)

          - The volume is saved every time it changes in EEPROM so that when the mp3 player is started it remembers the last volume setting

 

Photos in progress:

 

Video

     Part 1: http://youtu.be/9QXJWdIrmJc

     Part 2: http://youtu.be/3RF18nK8X8o

 

I'm not the best with the video thing, so hopefully, this shows the concept of my mp3 player. It works as advertised but I don't really have a great way of showing it through video. I guess you'd have to try it yourself ;-)

 

Things to improve in future iterations of this mp3 design:

     1) I designed the box so that the side doesn't have a slick way to stay closed. Right now it just slides off.

     2) Create a way to power off the device if the device notes that the user hasn't moved for 10 min

     3) Include a knob that allows the user to set an offset from his/her current pace that the player then uses to pick out a new song

     4) Create a loader program that changes the users input for bpm into song titles that get loaded into the mp3 player

 

Things I found to be most frustrating:

     1) Finding buttons that were able to fit easily into a box and that did not have a lot of depth

     2) Soldering. It takes a long amount of time and I would have benefited greatly from having made a PCB

 

The best part of the mp3:

     1) Getting it to work!!!!

     2) Seeing everyone else's work and their unique/new ideas