HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Lab1: LED Control ZigbeX mote has Red, Yellow, Green LED. This lab using LED control component provided by TinyOS exercises LED device control.
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 ZigbeX LED
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 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.
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Leds functions functions Initialization result_t Leds.init() – 3 LED lamp is initialized. Red LED result_t Leds.redOn() - Red LED On. result_t Leds.redOff() - Red LED OFF. result_t Leds.redToggle() - Red LED toggling Green LED result_t Leds.greenOn() - Green LED On. result_t Leds.greenOff() - Green LED OFF. result_t Leds.greenToggle() - Green LED toggling. Yellow LED result_t Leds.yellowOn() - Yellow LED On. result_t Leds.yellowOff() - Yellow LED OFF. result_t Leds.yellowToggle() - Yellow LED toggling.
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 LED sample progam
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Blink program –An instant component named “Blink”. For configuration and module, two files Blink.nc & BlinkM.nc are required. –Blink.nc is for configuration which uses many other components used 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
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 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; }
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 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” interface and “uses” interface - In implementation block is for user programming - task (function w/o parameter) : declaration - StdControl init(), start(), stop() sequence. - StdControl.init() calls Leds.init() to initialize LedsC.
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 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
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 LED Lab Item: host PC(labtop), 1 mote, ISP(AVR), cable
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 LED lab -1 Start cygwin Goto target directory Compile - make zigbex cd /opt/tinyos ‐ 1.x/contrib/zigbex cd Blink
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 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
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Lab -3 Run AVR Studio4 Select ‘cancel’
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Lab -4 Select –Tool Program AVR Auto Connect
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Lab -5 Find ‘main.hex’ file
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Lab - 6 Select ‘Program’
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Lab - 5 Check the message and graph
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 LED lab result Output –Yellow LED is con, every 30ms Green LED is toggling –Please change source code to test RED.