180 likes | 199 Views
Learn how to control Red, Yellow, and Green LEDs using ZigbeX in this lab. Utilize the LedsC component and Blink program to check device operations. Understand LED control components using TinyOS.
E N D
Lab1: LED Control ZigbeX mote has Red, Yellow, Green LED. This lab using LED control component provided by TinyOS exercises LED device control.
LED in ZigbeX • Use of LED • In order to check whether certain device’s operation is performed successfully or not. • LedsC Component • LedsC is component to control the LED device.
Blink program • Blink program • An instant component named “Blink”. Forconfiguration andmodule,two files Blink.nc &BlinkM.nc are required. • Blink.nc is for configuration which uses many other componentsused in Blink program • BlinkM.nc is a implemented module for Blink program. • Directory of Blink program • c:\Programfiles\UCB\cygwin\opt\tinyos‐1.x\contrib\zigbex\Blink\ • Bink.nc &BlinkM.nc
Blink.nc • Blink.nc . • Main, LedSc, BlinkM are used and shows how they are wired. configuration Blink { } implementation { components Main, BlinkM, LedsC; Main.StdControl ‐> BlinkM.StdControl; BlinkM.Leds ‐> LedsC; }
BlinkM.nc • BlinkM.nc (1) module BlinkM { provides { interface StdControl; } uses { interface Leds; } } implementation { task void led_task(); command result_t StdControl.init() { call Leds.init(); return SUCCESS; } • - declared by “provide” interfaceand • “uses” interface • In implementation block is for user programming • task (function w/o parameter) : declaration • StdControlinit(), start(), stop() sequence. • - StdControl.init() calls Leds.init() • to initialize LedsC.
BlinkM.nc • BlinkM.nc (2) command result_t StdControl.start() { post led_task(); return SUCCESS; } command result_t StdControl.stop() { return SUCCESS; } task void led_task() { int i; for(i=0; i<10; i++) { call Leds.yellowOn(); TOSH_uwait(30000); call Leds.greenToggle(); } } } • After StdControl.init(), StdControl.start() is • executed automatically • In StdControl.start(), defined by “task” • led_task() is called by “post” header. • - No specific implemetation in StdControl.stop(). • - Here your algorithm to control LED
LED Lab Item: host PC(labtop), 1 mote , ISP(AVR), cable
LED lab -1 • Start cygwin • Goto target directory • Compile - make zigbex cd /opt/tinyos‐1.x/contrib/zigbex cd Blink
LED lab -2 • Download binary code to ZigbeX using ISP tool • After compile, folder, build/zigbex is created and main.hex is the binary. • Run AVR studio
Lab -3 • Run AVR Studio4 • Select ‘cancel’
Lab -4 • Select • Tool Program AVRAuto Connect
Lab -5 • Find ‘main.hex’ file
Lab - 6 • Select ‘Program’
Lab - 5 • Check the message and graph
LED lab result • Output • Yellow LEDis con, every 30msGreen LEDis toggling • Please change source code to test RED.