Monday, December 3, 2007

My contribution

These are a work in progress.


Motivation/Background

Consider a group of bicyclists who want to build team spirit by playing a group song while riding. One way to play music that each rider can hear is to have one cyclist carry a speaker large enough to project the music to everybody. This is an inconvenient solution for the rider carrying the speaker system, and further, this is an impractical solution since the volume of the music is dependent on distance to the source.

Project Goal

Consider an alternative where each bike carries a small speaker, thereby eliminating the need for one loud central hub. Each of these speakers will wirelessly receive streaming audio from a central source, thus enabling each rider to hear the music equally well regardless of distance. Ultimately, one person should be able to hook up a music player to this streaming device, and every rider on the network will be able to receive and play back the streaming audio in a synchronous manner.


System Specification

The network will consist of a broadcaster and listeners. The broadcaster will take advantage of an audio jack which can receive music or other audio from a commercial music or audio player. The music data from the input jack will be streamed over the network to the listeners. The listeners will be able to receive the streamed audio and both the listeners and the broadcaster will be able to play the audio from their speakers.

User Scenarios

· As mentioned in the motivation for doing this project, consider a case where one person would like to set up his or her own personal radio station that his or her friends can tune into, but is maybe in a place not nearby computers (bike riding, hiking, etc.)

· Somebody would like to throw a party and would like to avoid disturbing the neighbors. Rather than have one enormously loud music source to reach the whole party, the music sources can be wirelessly distributed around the house/apartment/etc. to allow each speaker to play quieter but still enable partygoers to hear the music. Wireless connection is a plus because there are no wires to trip on and you know how parties can go.

· Consider a family who is about to eat dinner, but everybody is in their rooms. Rather than shout, an announcement can be made via microphone that dinner is ready. This way, if everybody has a speaker in their room, they will hear the dinner announcement and nobody will have a hoarse voice.

· A bunch of people are playing paintball in teams and would like to communicate with each other covertly. Each person can carry one of these devices and communicate with his or her teammates remotely.

Evaluation Criteria

· Does it work?

· Synchronous playback

· Quality of sound

· Power consumption (i.e. will this drain your batteries too quickly)

· Transmission range

· Reliability, packet loss, etc.

· Cost efficiency

· Weight and size

· Color (pinker is better)

· Compatibility with existing consumer products

· Interference with other consumer products

· Ease of setup

Test Plan

You should describe how you intend to test each major component and how
you intend to test the system as a whole. The order in which components
will be tested should be presented. You should justify why your testing
procedures and ordering are sufficient.

The main components of our project are a battery pack, an 8051
microcontroller, an XBee Zigbee radio chip, an analog-to-digital
converter, and a digital-to-analog converter. Each unit will have an
analog input, an analog output, and a power switch.


We will ensure proper connection to and operation of our battery pack with
a multimeter. Subsequent failure of the battery pack should be
immediately apparent during the course of regular testing (i.e. things
won't turn on). As the system nears completion, we will have an idea of the battery life that our pack provides.

When testing our microcontroller, we will first test that we can burn a
simple program into our microcontroller, such as a program that
turns on an LED. When writing programs for our microcontroller, we will
ensure that the programs run on a suitable microcontroller emulator. After we have verified correct operation on the emulated microcontroller, we will burn the program to the real microcontroller and subsequently verify correct operation there. Once burning simple programs to the microcontroller becomes trivial, we will shift our attention towards more complicated microcontroller programming.

For testing our XBee Zigbee radio, we will begin with two XBee chips. We
will designate one chip as the broadcaster and one chip as the receiver.
For a simple send/receive test, we will tell the broadcaster to send a
trigger that will command the receiver to turn on an LED. After we are
able to send simple commands from one chip to another, we will try
streaming packets from the broadcaster to the receiver to ensure that we
are able to maintain a steady data rate between the two chips. In addition, we will test the range of chips. Further, we will test mesh functionality across multiple Xbee units.

Testing of the analog inputs and outputs will occur concurrently with
testing of the ADC and DAC. For testing the ADC we will ensure that we
can convert a signal from a 1/8" speaker jack into a digitized, packetized
signal that can be sent across the Zigbee chips. For testing the DAC we
will ensure that we can take a digital signal and output it to an 1/8"
speaker jack to be received and played by a set of powered speakers.

Once we have ensured proper operation of all individual components, we
will test sending the signals we recover from our ADC over the Zigbee
transmission line. If we can successfully receive these signals from the
broadcaster and subsequently convert the signal to analog for output, we
will have successfully tested the individual components of our project.

After all of the individual components have been tested, we will proceed to test the system as a whole. We will ensure that audio playback is smooth and synchronized with other units. We will also test audio quality and will improve or worsen it as necessary. Further, we will revisit the battery pack after the system is complete and ensure that our battery life is sufficient. We will test the systems in a variety of environments to determine susceptibility to noise or interference. During the environment testing we will test the range of the units and determine susceptibility to interference due to terrain.

No comments: