CSEP567 Lab 8: “Introduction to TinyOS”
Objectives
The goal of this lab is to use tutorials to introduce the structure of TinyOS.
In this lab you will learn the following:
-
The major concepts used in TinyOS programming
-
Basic mote communication
-
How to use motes to obtain sensor readings
-
Become familar with the the TinyOS tools
Important Warnings
-
DO NOT power the mote from the AC adapter and batteries at the same
time. ALWAYS
turn off the motes battery power before placing it in the programming
board. Only one mote should be plugged into the
MIB510 programmer.
-
Be careful when placing your mica2dot into your MIB510
programmer and sound board- do NOT bend the pins.
-
Some other courses use software that changes
your windows profile to point to a network copy of cygwin, not the
local copy of cygwin. To complete these labs you will need
to make sure to use the local copy of cygwin. If for some reason TinyOS
is not working please inform a TA or lab staff member and we will
attempt to undo the profile change. In a few extreme cases,
students' profiles have had to be wiped clean by support staff.
Important Notes
-
The type of motes you will be using in lab are the "mica2" and
"mica2dot". Make sure to compile your program for the correct piece of
hardware. (e.g. 'make mica2' NOT 'make mica') For mote programming you will be
using the MIB510 serial programming board.
-
Use the number on your sound board's colored sticker as your group number in hex. Please make sure to
type in your group number as a hex number.
-
A few of these tutorials may be out of date so please ask questions if you are
confused.
-
The mica2 and mica2dot are built around the
ATmega128 microcontroller not the ATmega16.
-
Use the default radio fequency and programming board. If you don't specify the
radio frequency or programming board it will automatically choose a correct
value.
-
Make sure your MOTECOM variable is properly set when trying to communicate to
the devices over serial. The mica2 communicate at 57600 baud while the
mica2dots communicates at 19200.
Reading
Resources
TinyOS Tutorials
ATmega128 data sheet
avr-gcc manual
Application
notes section for the AVR 8-bit RISC family
nesC 1.1 Language Reference Manual
If you wish, you may, at home, install version 1.1.14 of Tinyos: http://www.tinyos.net/download.html
1.1.14 is the version we'll be using for the last two labs. However, we don't have programmers for use outside the lab, so a home installation will give you access to code and documentation only. You are on your own for the installation...
Suggested Steps
Tutorials
-
Unzip
apps.zip (updated 11/30/05) to your Z drive,
creating Z:\apps\.
-
If it's not already installed, CAREFULLY plug your mica2dot mote into your sound board.
Then plug the sound board into the MIB510
programmer and connect the power and serial cables to the programmer. Battery
power must be OFF!
-
Launch Cygwin and use the alias "cdapps" to navigate to the
apps folder on your z: drive. Type 'alias' in cygwin to obtain a list of
available aliases. The aliases are provided to make navigation around TinyOS
easier.
-
-
Make sure BOTH members of your group attempt to compile
and install an application onto a mote using his/her login to
clear up any Windows profile issues. Make sure that you have set up your group
number (in hex) as per the Important notes section above on BOTH member's profiles.
-
Using the photoresistor located on the sound board, complete the tutorial called
Lesson 2: Event-Driven Sensor Acquisition. Refer to the sound board datasheet for the pin mapping.
You do NOT need to complete
the exercise from this lesson.
NOTE: Lesson 2 states "Notice
the use of the function
rcombine() in the implementation of
StdControl.init()." However
the recently updated version of SenseM does NOT use rcombine( ). It
is confusing that the Lesson refers to rcombine() even though
the function is no longer demonstrated in SenseM. The function
rcombine()
is a special nesC combining function which returns the logical-and of two
commands who result type is result_t.
-
Complete the tutorial called
Lesson 3: Introducing Tasks for Application Data Processing including
the exercises. You will need to hand in your solution to the exercises for
Lesson 3.
-
Complete the tutorial called
Lesson 4: Component Composition and Radio Communication including the
exercises. You will need to hand in your solution to the exercises for Lesson 4.
-
Complete the tutorial called
Lesson 6: Displaying Data on PC
including the exercises. The "extra credit" section is optional and will not be
worth any extra credit in this class. You will need to team up with another
group to get a third mote to attempt the "extra credit".
-
Optional: You and your partner might want to complete the first part of Lesson
5: Simulating TinyOS Applications in TOSSIM to learn how to debug
with TOSSIM. TinyViz is not working as described in this tutorial and problems
have been reported on the help list. Therefore we will not be using it in this
class to avoid unnessary complications. Feel free to attempt to
experiment with TinyViz but the course staff will NOT support
TinyViz.
Deliverables
Turn in your solutions for exercises in Lessons 1, 3, and 4. All your files should contain comments that include: both
partners' full name, the lab number (e.g. “Lab 8, Lesson
1”), as well as important words about how your code works.