(Due at the beginning of
class on 10/22/08)
This assignment will be
graded out of 50 points.
In this project, you will program a network of
wireless sensor nodes. The code will be developed over the TinyOS operating system and will run on a number of Tmote
Sky sensors aka TelosB
motes that we have acquired recently. The assignment can be entirely
developed and simulated on your home machine using the simulator TOSSIM that is
available with the TinyOS distribution. You can
work on this assignment in groups of 3. Each group will get 4 motes to
work with (of which at least 2 will be sensor motes, the rest will be relay
motes). These may not be enough for testing your code entirely, but it is
enough to learn programming and to be able to see programs in action. For
the project, you can simulate your code on your home machine using
TOSSIM. Once your code works well on the simulator, you can test it in
the TA’s lab (WVH208) with a larger collection of motes (10-12).
Here is some warm-up work to help you prepare for your sensor programming
project.
I. Installation
You can get Moteiv toolkit
installation CD from the TAs. The installation guide comes with the installation
CD or you could download it from here.
Please note that we have limited number of motes and they are expensive,
so please take good care of your motes and make sure you return the motes in
working condition at the end of the semester. We provide you anti-static wrist
bands as well as antistatic ziplock bags – please use
them and avoid shorting out the motes. The mote plug right
into the usb interface.
II. Getting started
We strongly recommend you to
test your installation after you complete step 1. You could try installing
Blink application to your motes. Blink is a very simple nesC
application provided by TinyOS. You could install it
by going through the following steps.
connect 1 mote to the usb
interface on your machine. (As to how to install the driver, please refer the quick
start guide of moteiv)
$cd /opt/tinyos-1.x/apps/Blink
$make tmote
$make tmote reinstall,1
The LED blinking very quickly indicates that program is being written to the
mote. After the program is completely installed on the mote, the Blink
application will be automatically executed. The LED on the mote will blink
every 1 second.
Another application named Delta, is mentioned
in the "Tmote Sky Quick Start Guide".
III. Go through the TinyOS tutorial
·
Go to the TinyOS tutorial, study Lesson 1 through 8. Pay
attention to the sample programs and programming model of NesC.
·
All the examples
in the tutorial can be tried out on TOSSIM - the sensor network simulator. The
command to compile a PC version of the program is "Make pc", and the
program is stored under the build/pc directory in your program directory.
·
Read the TOSSIM tutorial for issues in controlling the simulation.
·
Optional: Read
the nesC Language Reference Manual. (Lessons 1
through 8 of the TinyOS tutorial should suffice for
the assignment.)
IV. Toy project using two motes
You have the first mote do light sensing. You could
use the TSR interface provided by HamamatsuC
component. (For detail about how to use the components, please check the
tutorial or reference) If the light level is above a certain threshold, this
mote will notify the second mote via radio, so that the second mote will turn
on its LED. If the light sensed by the first mote is below some threshold, it
will send the notification to the second mote, and that mote will turn off the
LED.
This project is NOT required, thus won't be graded. However, this would
definitely help you prepare for the final project, since you would know better
about nesC, radio communication, multihop,
sensing data collection, etc. after you are done with this toy project.
V. Sensor Programming Project
The goal of the sensor project is to set up a shortest-path spanning tree over
the nodes reachable from a central node. After the whole network
converges to the static topology, the network should support the following
features:
·
Set the central
or root node by pressing the user button. Serialize using a timestamp and break
ties using nodeID.
·
Each mote in the
network displays its number of hops back to the central mote.
·
Once you manually
change the motes placement, say remove a certain mote, the network should
recover to static state within short time. And related motes should update
their number of hops in LED.
·
Each mote is
capable of sensing the TSR value. Once the value is below the threshold
predefined in your program, the mote sends an alarm back to the central mote.
And all motes along the route from this mote back to the central mote should
turn on the LED, so that the route could be displayed.
·
You could use
CC2420Control to configure the transmission power. The default transmission
power is pretty high, and the transmission range could reach around 100 meters.
You could set up the radio with minimum transmission power, which has range of
around 0.5 meter. Hence, it's possible to show your demo in the classroom. We
haven’t decided completely yet how we will do the demo, it will be either in
the class or at a separate meeting, time and venue to be decided.