Frank Lin - Assignment 5


What I am going to build

 

Verplank Diagram:

Note: This has changed a little to include a menu system, instead of buttons.

The choice to use a menu is so that you can preview what sound effect you are going to play before you actually play it out.  It also gives better visual feedback to the user.

 

Interface Sketch:

 - Each page of the menu has a title, in <>, such as <FAILURE>

 - The select potentiometer is used to highlight the effect to be played

 - Visual cue is given by the text being displayed in INVERSE mode

 - Pressing PLAY immediately plays the sound effect

 - Visual cue that the song is playing is a screen that gives the name of the file.

 

Adding Music:

 - Load mp3s into the SD card

 - Edit the config.txt configuration file that sets up categories of sound effects and the order

 - On startup, the config.txt file is read and the menu system is set up 

 

Outline of Project Components

  1. Teensy Arduino Board
  2. MP3 Decoder
  3. Earphone Jack
  4. Potentiometer: Volume
  5. Button or Pot: Select
  6. Button: Flip Page
  7. Button: Play
  8. Enclosure: Clear polycarbonate 

 

Features:

  1. Portable
  2. Battery-powered
  3. Rechargeable
  4. Built-in speakers with volume control
  5. Ability to connect up external source, and disable speakers 

 

Major Technology Challenges

The main challenge is to make a useful, expandable system that can be added to without using the programmer.  There is no efficient way to extract and sort filenames, because each file name is only accessible when the file is open, which means we need a buffer to store them if we need access to multiple file names.

 

Plan B MP3 Player

Remove the filesystem parser functionality.  The names of the files in the file system are hard-coded into the program and stored in Program Memory to save space.

 

Project Timeline

May 13th - Collect sound effects (instantsfun.es has a bunch of good sounds)

May 15th - Begin work on software for player (try out different control schemes)

May 17th - Decide interface details (encoder or potentiometer or button)

May 18th - Field Testing

May 19th - Begin work on physical prototype

May 20th - Have everything on protoboard

May 22nd - MakerFaire

May 23rd - MakerFaire

June 2nd - Presentation Day