Redes de Computadores II - Seminario
de Redes de
Computadores
Segundo Semestre 2010
Tarea SunSPOT
Punch-o-Meter
Objetivos.
Esta tarea tiene por objetivos que:
- Se acerque a la programación de dispositivos inalámbricos.
- Usted
se familiarice con el ambiente de desarrollo del lenguaje Java para
programar sensores inalámbricos (en este caso, dispositivos SunSPOTs).
Descripción General.
Los dispositivos SunSPOTs son motes para redes de sensores
inalámbricos desarrollados por Sun Microsystems. Estos dispositivos
utilizan el estándar IEEE 802.15.4 para comunicación inalámbrica y
tienen integrada la máquina virtual de Java (Squawk). Además, cada
SunSPOT cuenta con acelerómetro, sensor de temperatura, sensor de
iluminancia, 8 leds RGB y 2 switches.
Los SunSPOTs son distribuídos junto a un kit de desarrollo que
trae las herramientas, tutoriales y ejemplos necesarios para realizar
la programación de estos dispositivos. Uno de estos ejemplos es la
aplicación "Bouncing Ball Demo" que presenta de manera lúdica la
utilización de los leds, el acelerómetro y la radio. En esta
aplicación la fila de LEDs representa una tubería, donde los LEDs
de los extremos se mantienen encendidos en rojo para indicar que
funcionan como topes manteniendo la pelota dentro de la tubería. La
pelota es representada por un LED encendido, en color azul o verde, y
que se
desplaza por la tubería en función de la medición de aceleración del
eje X del acelerómetro. También
la aplicación puede funcionar con dos SunSpots, en esta modalidad uno
de los extremos de la tubería de cada dispositivo está abierto y la
pelota puede pasar de un dispositivo a otro dependiendo de la
inclinación que se aplique. Para más información sobre esta aplicación,
revise el tutorial del sdk encontrado bajo la carpeta de instalación
del sdk (\SunSPOT\sdk\doc\Tutorial\EctoplasmicBall.html). Revise la guía de instalación del software.
|
Figura1. Ejes del acelerómetro en el SunSPOT. |
Tarea.
Dado que esta
aplicación ya implementa muchas de las cosas necesarias para esta
tarea, usted deberá entender el funcionamiento de esta aplicación y
modificarla para enviar la máxima aceleración medida por uno de los
SunSPOT (nodo puño), y recibirla en otro de los SunSPOT (nodo
despliegue), este
ultimo debe representar dicho valor como un nivel utilizando los leds,
luego dicha representación se resetea utilizando uno de los switches.
Nodo Puño:
Debe tomar mediciones de la aceleración en el eje X, detectar el máximo
valor (sobre cierto umbral) en cierto periodo o en una cierta cantidad
de muestras y transmitirlo al nodo despliegue
Nodo Despliegue:
Debe recibir la aceleración medida por el nodo puño y representar la
magnitud de dicha medición mediante los leds, como si estos fuesen una
barra, es decir a un valor bajo se prenden pocos leds, a un valor alto,
se prenden artos leds, luego de un despliegue, los leds deben poder apagarse
presionando uno de los botones para así estar preparado para tomar otra
medición.
|
Figura 2. Funcionamiento |
Considerar:
- Se deben desarrollar para este sistema dos aplicaciones, la del nodo puño y la del nodo despliegue.
- Bajo la carpeta /doc del SDK, podrá encontrar la
documentación de todas las clases disponibles para el desarrollo.
- Revise
las aplicaciones de ejemplo que se distribuyen con el kit, en especial:
LEDSampleCode, BroadcastSample, y BounceDemo.
- Usted es libre de implementar de la manera que más le acomode el
sistema, por ejemplo, puede obtener la velocidad en vez de la
aceleración y utilizar dicho valor, los rangos de aceleración (o
velocidad si quiere) que el sistema acepta para ser desplegados los
debe seleccionar usted, al igual que el periodo (o cantidad de
muestras) en que espera por un valor máximo antes de ser enviado, se
evaluará principalmente el uso de los componentes del SunSPOT, lo
importante es que se note alguna diferencia entre un movimiento "lento"
y uno "veloz", en su documentación debe explicar su implementación.
- No importa los colores de los leds del nodo despliegue, tampoco
importa si deja la "bouncing ball" en el nodo puño, puede eliminarla si
quiere.
- Es MUY IMPORTANTE no
exagerar los movimientos al momento de probar su sistema dado que se
corre el riesgo de que el SunSPOT se le caiga, si ve que sus
movimientos no se ven reflejados en los leds pruebe cambiando los
valores de conversión de la "aceleración - cantidad de leds" de su
implementación.
Forma de entrega.
- La solución debe ser enviada por correo electrónico a elo323 a r r o b a elo p u n t o utfsm p u n t o cl .
- Debe
adjuntar al correo un archivo ZIP, El archivo debe ser nombrado con los apellidos
de los miembros del grupo, por ejemplo, Silva_Gonzalez.zip .
- Dentro
del comprimido, debe incluir la carpeta del proyecto generada por
Netbeans. Si utilizó otro entorno de desarrollo, entregue en una
carpeta todos los archivos *.java correspondientes a su solución.
- Además debe documentar su trabajo incluyendo la
siguiente información:
- Ambiente de trabajo que se requiere para
compilar y ejecutar su solución.
- Explicación breve de alto nivel de su solución.
- Diagrama de clases de su solución.