SoftwarePractice.org: Home | Courseware | Wiki | Archive

T3 : Ipod Head Remote

From SoftwarePractice.org

T3 - Project Logbook - Guys, put what you have updated on the wiki and on what date in here so that we can keep track of things.

Contents

Introduction

Project:
Topic B. Head-controlled Music Player

The aim of this project is to design a music player for those that are physically disabled and are unable to use their limbs. This device will consist of a accelerometer that works by measuring the direction, tilt and acceleration of a person's head in order to derive input control commands.

Our team aspires to create a system where the user is able to control and do everything without the assistance of another person. The only assistance required is installing the headgear.

The user is able to stop and play music, as well as scroll through directories adding and deleting songs with ease.

Our team members:

  • Jonathan Ka Ming LEANG
  • Hao Liang Steven Zhu
  • Adrian Wong
  • David Du

Requirements

Useing the Wiimote as simulated input. The ThinkGeek WiiHelm
Enlarge
Useing the Wiimote as simulated input.
The ThinkGeek WiiHelm
  • The wearable device communicates over wireless with the sound system to control the selection, playback, volume, and so forth, of music.
  • The sound system contains a graphical user interface that displays the current track, a playlist, duration of track, etc.
  • The system can play tracks in either .wav or .mp3 format.
  • The graphical user interface also contains a separate panel that shows a visual indication of the user!|s head movements, and associated comands.

Stakeholders

A list of stakeholders and some concerns that each may have

*Disabled person using the Ipod Head Remote*

  • Functions of the music player
  • User friendliness
  • Comfort of the head remote
  • Cost of the device

*Family of the disabled person using the Ipod Head Remote*

  • Satisfaction of the disabled person using the device

*Person(s) caring for the disabled person using the Ipod Head Remote*

  • Safety of the device
  • User friendliness

*Company developing the Ipod Head Remote*

  • Development team
    • Cost of developing the project
    • Time given till deadline
    • Wants and needs of target audience
  • System Admin
  • Maintenance Personnel
    • Complexity of mechanical parts
    • Cost of parts
  • Deployment (Advertising)
    • Target audiences
    • Cost contraints

*Retailers selling finished product*

  • Amount of stock avaliable
  • Profitability from selling device

Usage Scenarios


  • Sally puts on the controller with the help of her family, and then she chooses a song from the play list to play through various head movements. Sally and her family are happy because she can do something by herself without having to totally rely on others.
  • Bill is testing the Beta version if the software, everything works fine but after a while he finds that his neck hurts from all the moving of his head, so adjusts the sensitivity option from the option menu to help him use the system.
  • Steve wants to lock the device so he can move his head freely while listening to music, so he uses a combination of keys to lock the interface, preventing the accidental movement of his head to interrupt play.
  • Jeff has just bought some new songs and wants to enjoy listening to them on his player, so he scrolls though the main menu using head movements and selects the option to add songs to the player's playlist.
  • Jeff finds that he has added the wrong song to the playlist and wants to now remove it. Once again he scrolls though the main menu and selects the option to delete songs from the player's playlist.


Essential Use Cases

Play and stop a song

Image:EUseCase031.JPG

The adjustment of settings

Image:EUseCase01.JPG

System Lock

Image:EUseCase02.JPG

Add songs to playist

Image:EUseCase04.JPG

Remove song from playlist

Image:EUseCase05.JPG

Detailed Use Cases

Play or stop a song

Image:DetailedUseCase03.JPG

Alternate paths

Image:DetailedUseCase03alt.JPG

Adjusting the settings

Image:DetailedUseCase01.JPG

Alternate paths

Image:DetailedUseCase01alt.JPG

Locking the system

Image:DetailedUseCase02.JPG

Adding songs to the playlist

Image:DetailedUseCase04.JPG

Use case diagram

User case diagram
Enlarge
User case diagram

CRC Cards

Player core Class
Enlarge
Player core Class
Motion Simulator Class
Enlarge
Motion Simulator Class
Recursive File loading Class
Enlarge
Recursive File loading Class
Setting Class
Enlarge
Setting Class
GUI Class
Enlarge
GUI Class

Class Diagram

Image:T3Class-diagram.JPG

Sequence Diagram

Scenario: Play song
Enlarge
Scenario: Play song
Scenario: addSong
Enlarge
Scenario: addSong
Scenario: Locking the system
Enlarge
Scenario: Locking the system

Initial designs

This design is easy to control with movements of the head.

Initial Idea of the UI
Enlarge
Initial Idea of the UI

Area of possible input area.

Enlarge

Screenshots mock-up

A GUI mock-up, choose to use black background because it is causes less stress for the eyes and looks nice:)

Showing the playlist
Enlarge
Showing the playlist
User Menu
Enlarge
User Menu
Now playing list
Enlarge
Now playing list


Screen shot

Screen shots on Windows XP

Showing the playlist
Enlarge
Showing the playlist
User Menu
Enlarge
User Menu
Now playing song
Enlarge
Now playing song
Add files to playing list
Enlarge
Add files to playing list
Delete song from play list
Enlarge
Delete song from play list
Change sensitivity of the virtual click
Enlarge
Change sensitivity of the virtual click


Screen shots on Windows Vista

Now playing on Vista
Enlarge
Now playing on Vista

Test Cases

Specifying stopMethod
Enlarge
Specifying stopMethod
stopMethod Test Sequence Table
Enlarge
stopMethod Test Sequence Table
Specifying deleteMethod
Enlarge
Specifying deleteMethod
deleteMethod Test Sequence Table
Enlarge
deleteMethod Test Sequence Table
Specifying playFile
Enlarge
Specifying playFile
playFile Test Sequence Table
Enlarge
playFile Test Sequence Table
Specifying getTime
Enlarge
Specifying getTime
getTime Test Sequence Table
Enlarge
getTime Test Sequence Table

References

MP3 plugin for java [1]

Java Media Framework [2]

AudioPlayer example [3]

Quadriplegic functionality [4]

The ThinkGeek WiiHelm [5]

How to edit a wiki page [6]

Java mouse listener [7]

Java mouse motion listener [8]

Links from Team Project assignment instructions

This is a specification for a two-axis accelerometer. It can measure acceleration in two orthogonal directions (X and Y). This means that you can easily derive parameters like tilt, direction and speed.[9]

Here is a description of how an accelerometer works. [10]

This publication describes the application of artificial neural networks for processing and recognising head movement commands. What is useful for this project is their set of head movements such as "forward nod" and "forward hold".

P.B. Taylor, H.T. Nguyen, “Performance of a head-movement interface for wheelchair control”, Engineering in Medicine and Biology Society, 2003. Proceedings of the 25th Annual International Conference of the IEEE, Vol.2, 17-21 Sept. 2003, p. 1590-1593 [11]

This publication describes the use of infrared sensors for detecting head movements to control a wheelchair. It is useful for their approach to understanding the possible range and mapping of head movements.

H.V. Christensen, J.C. Garcia, “Infrared Non-Contact Head Sensor, for Control of Wheelchair Movements”, IOS Press, 2003 [12]

Instructor comments

Reasonable start to usage scenarios. Choice of stakeholders fine. Use case diagram is incorrect - each oval should contain a single name of a use case. Each use case is a major function of the system. Lian 21st March

Post presentation session milestone: Need to elaborate the concerns of stakeholders, and identify disabled vs. non-disabled users. Good set of use cases. I see that your detailed use cases address the question I raised in the presentation session about the use of head movements to control the lock/unlock function. Usage scenarios demonstrate empathy with disabled user. Could include more reference to head movements. Responsibilities are reasonably well done for CRC cards. Class diagram is fine. Great work with the GUI layout and mapping of head movements to commands. Sequence diagrams are okay, but the notation is not quite right. Lian 4th April

Personal tools