| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Evaluation

Page history last edited by camerons 13 years, 10 months ago

Final Writeup

My initial design ended up being very similar to my final project. The design of my project had to be changed a couple of times because I realized there were more interesting features I wanted to implement. I started out with the goal of building a standard mp3 player with a remote. As I thought about the implications of this, I realized this would be useful for pranking people, just listening to music without having to go over to the mp3 player to change the song. Another great feature of the remote is that it is useful for dance groups (of which I am a part of) to be able to control the song they are dancing to, or practicing, using a remote instead of having to go back to the computer every 30 seconds to restart the song clip. I feel that I got to implement all of the features that I really cared about from the beginning, and then some. I also got to make an amazing case and learned a lot along the way about topics that will be useful to me in later classes such as debugging hardware-software systems, IR remote codes, id3 tags, etc.

Many of my design changes were not made to cut back because I was running out of time, but instead to refine the mp3 player and make it more interesting as a whole. I decided in the end to focus on improving my core features rather than adding excessive luxaries.

Major Changes from initial design:

Removed ID3 tag support to sort songs and list them by name- microcontroller would have trouble with this amount of memory management due to limited stack space. Also it is tedious because the songs are already loaded on the card in alphabetical order by name by the computer.

 I initially planned to include features to sort songs by name artist and length etc, but the amount of work required to read ID3 tags would not have added much.

I changed the audience from just a user who wanted a remote mp3 player to a prankster, an average user, or a dance group. With this I changed the layout from a normal mp3 player look to an mp3 player hiding in a physics textbook. I also added some features that would be useful to dance groups such as the ability to easily save a return point in a song and go back to that point, along with pause, fast forward, rewind, etc.

I decided to use a remote instead of making an mp3 player with buttons because the prebuilt remote is much cleaner and the buttons are almost identical to what I would have to build anyway.

My core features changed as I thought about what would be useful to my audience. Rechargeable batteries would not be worth the cost to a group that can just buy a new 9V battery that will last for many hours. A robust interface is now encompassed in the remote because a prankster wants to have his sounds hotkeyed to the 1-9 keys to access them quickly instead of having to scroll through an interface. The dance team also will also prefer to select 10 songs ahead of time and then use the hotkeys to play them. Also, the hassle of not having sort by artist is not bad because the mp3 player stores only 40 songs maximum anyway, and the buttons on the remote allow scrolling by 1 at a time or 6 at a time. Overall, I am satisfied with the design changes I made and feel these changes contributed to the final success of my mp3 player.

If I could do this project again, I probably would start earlier. I feel that the fact that I started a bit late was also helpful though because I happened to have a block of time without interference from classes. Because I did it all at once, I could remain focused without having to figure out where I was. I have to admit, the 2 or 3 all nighters I did to get things working and all the late nights were kind of fun when I saw how much progress I was making. If I had started earlier, I would have had more time to try out different parts and maybe make better choices, but the parts I got luckily worked fine.

            I consider this project an overall success. Despite the many hours spent debugging hardware, teensy software problems, and coding issues, I am very glad I finished and everything worked. I finished everything I wanted to do, and the final mp3 player works reliably. I plan to use the mp3 player to prank my friends, lead dance events, and just listen to music- all 3 of my targets.

 

During the week and a half I worked  seriously on this project, I allocated time efficiently. I divided my project into many separate baby steps- storing songs, reading the remote signals, interface. These independent modules made testing much easier and when something broke I could rerun these modules to quickly identify what it was. My actual process was something like this.

1)      Get barebones mp3 player working

2)      Get mp3 player to store multiple songs and play 4 songs in a row

3)      Decide on how I am going to communicate wirelessly and research the pros and cons of IR and RF and see which are more readily available in the time I have. Radioshack happened to have IR and not RF and the RF would have taken a week to get here.

4)      Start interface and test it with buttons- get LCD menu to work

5)      Read up on remote protocols and try many various libraries to get the remote working

6)      Give up on libraries after many hours and write my own sony remote reader (this was the protocol I found the most information about

7)      Start a separate module for the remote that translates a key press into a number where each number is unique for each key on the remote. This involved a heavy amount of hours on the oscilloscope getting thresholds for 0s and 1s correct and reverse engineering the sony protocol.

8)      Begin mapping the remote buttons into functions.

9)      Test and refine each remote button function

10)  Build the case (book)

11)  Fix all the wiring on my breadboard

12)  Begin running from a battery

13)  Integrate the components into the case

14)  LOTS of final testing

How to recreate this project  

Comments (0)

You don't have permission to comment on this page.