The goal of this project is to create a fully functional MP3 music player using SJOne Microcontroller board as the source for music and control. MP3 files will be present on an SD card. SJOne board reads these files and transfers data to a audio decoding peripheral for generating music. User would be able to use player controls (start/stop/pause) for playing MP3 songs and view the track information on a display.
- Should be dynamic.
- As in, you should be able to add more songs and play them
- Should be accurate.
- Audio should not sound distorted,
- Audio should not sound slower or faster when running on your system.
- Should be user friendly.
- User should be able to figure out how to use the device without a user manual.
- Product must be packaged in some enclosure. No wires can be vision for the project.
- System must use the SJOne on board SD card to read MP3 audio files.
- System must communicate to an external MP3 decoder
- System must allow users to control the MP3 player (You may use the onboard buttons for this)
- User must be able to play and pause of song
- user must be able to select a song
- System must use an external display to show a menu providing the following information:
- Current playing song
- Information about current playing song
- Menu showing how to select a different song
- (Not all of the above need to be shown on the same display)
- System software must separated into tasks. EX: Display task, MP3 Read Task, Controller Task etc...
- System software must be thread safe always.
- System software must use OS structures and primitives where applicable.
- System software may only utilize 50% or less CPU
- System MAY NOT use an external SD card reader embedded into MP3 device. YOU MAY use an external SD card reader if your SD card reader is broken
- Use of any external libraries (specifically Arduino) that drive the hardware you intent to use. You must make the drivers from scratch for every part you make.
- You may use the internal buttons for controlling the MP3 player.
- You may use the 7-segment display and LEDs above buttons for debugging but not as the main menu.