Description
This project requires
-
- the NUCLEO board
- the Adafruit Music Maker MP3 Shield – by now you should have received a Music Maker shield with headers soldered on.
- the Adafruit 2.8” TFT LCD shield
- headphones or earbuds
- You need to stack the MP3 shield onto the NUCLEO board and the LCD shield on top of the MP3 shield:
- Carefully plug your Adafruit Music Maker MP3 Shield into your NUCLEO board – make sure all the pins are correctly aligned before inserting.
- Carefully plug your Adafruit 2.8” TFT LCD shield into the Adafruit Music Maker shield – make sure all the pins are correctly aligned before inserting.
- If in doubt, check the Lecture 5 recording which has a demo around the 1 hour mark. 3. Download and unzip the MP3Player project contained in the zip file: MP3Player.zip
- Open the MP3Player.eww workspace in the EWARM IDE.
- You will need to copy your context switch file os_cpu_a.asm to the MP3Player project otherwise it won’t build.
- You will get 2 warnings about variables declared and not referenced. Don’t worry, those will go away after you do Assignment 5.
- Launch TeraTerm
- Build and upload the project and start it running.
What to expect
- You should see messages logged in the UART.
- If you plug headphones into the MP3 shield and reset the board you should hear endless repetitions of a ringing bell audio file.
- The LCD screen should display “Hello World!”
What to do if the program builds and uploads to the board but doesn’t work as stated above
- Did you add your working uCOS port code to asm?
- Are the shields plugged in properly to each other, NUCLEO on bottom, MP3 middle, LCD top?
- Are the headphones plugged in properly, and do they work for other devices?
- If none of the above fixes the situation don’t spend a lot of time trying to diagnose. This should just work. Break into the program to see what it is doing. Look at the call Stack (View/Call Stack). Send a message to the instructor with this information.
Objective
- Specify, design, implement and debug a multithreaded embedded project using a real-time operating system.
Overall Functional Requirements
- Create an MP3 player for the NUCLEO-F401RE reference platform using the Adafruit Music Maker MP3 Shield, and the Adafruit 2.8” TFT LCD shield, using the EWARM tool chain.
- Include minimum functionality to Start (from beginning of song), Stop, and indicate play in progress on the LCD.
- Add at least one additional functionality beyond the minimum (see optional features below for ideas).
Additional Requirements
- Produce a written specification
- High level description of your project’s feature set
- What is implemented
- How it works
- Description of the functional blocks
- Each task or group of tasks
- How they work together
- Produce diagrams to show the system design. Indicate tasks, ISRs, Queues, Mailboxes, major interfaces, etc.
- Deliver the working code, with user instructions including a list of features and how to use each feature.
Optional Features (examples)
- Pause, Fast Forward, Rewind
- Display song progress on the LCD display
- Add feature to change song
- Read song files from SD card
- Add a Help system