hanback electronics co., ltd. 저자권 보호됨 light sense lab. read data from light(photo diode)...

18
HANBACK ELECTRONICS CO., LTD. 저저저 저저저 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope.

Upload: suzan-hudson

Post on 02-Jan-2016

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨

Light Sense Lab.

Read data from light(photo diode) sensor, display using oscilloscope.

Page 2: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 2

ZigbeX Photo Diode

Page 3: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 3

ZigbeX Photo Diode

• Photo diode CDS – named CDS is connected to INT0 & ADC0 on Atmega

128(8bit CPU)– CDS inputs resistance value varying on light strength– Output to ADC0

• Light Sensor Component– Photo component

Page 4: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 4

Photo component

• ADCC component– Photo component needs to uses upper level component

ADCC.

  ADCC functions

Get data from ADC

  ADC.getData() – read data from ADC port(command).

 event ADC.dataReady(uint16_t data) – event delibers.  

Page 5: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 5

Read Light strength

• Ex.

// upper level comp.xxx_function(){ call ADC.getData() … }

// upper level comp event ADC.dataReady(uint16_t data){ //data -> measured data …}

Photo component

Page 6: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 6

Using Oscilloscope

Page 7: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 7

Oscilloscope Lab

• Oscilloscope program– Oscilloscope program delivers data from mote to PC via

“com” port

• Oscilloscope Location– c:\Programfiles\UCB\cygwin\opt\tinyos‐1.x\contrib\zigbex\

Osilloscope– Oscilloscope.nc, OscilloscopeM.nc, &OscopeMsg.h .

Page 8: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 8

Oscilloscope.nc

• Oscilloscope.nc – Osilloscope components

• UART Comm – connecting to PC• DemoSensorC- Get the light data• TimerC & LedsC

configuration Oscilloscope { } implementation  {    components Main, OscilloscopeM, TimerC, LedsC,                DemoSensorC as Sensor, UARTComm as Comm;

   Main.StdControl ‐> OscilloscopeM;    Main.StdControl ‐> TimerC;    OscilloscopeM.Timer ‐> TimerC.Timer[unique("Timer")];    OscilloscopeM.Leds ‐> LedsC;    OscilloscopeM.ADC ‐> Sensor;    … }

Page 9: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 9

Serial Comm.

• UARTComm component– UARTComm provides ReceiveMsg interface and SendMsg

interface.

  

UARTComm functions 

 ReceiveMsg event TOS_MsgPtr receive(TOS_MsgPtr m) – received from PC with event type, and message type is TOS_Msg

 SendMsg send(...) – sense mode to PC, passes TOS_Msg sendDone(...) - send(...) - when done, tells by event type

Page 10: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 10

OscilloscopeM.nc

• OscilloscopeM.nc (1)

includes OscopeMsg; module OscilloscopeM {   provides interface StdControl;   uses {     … // interfaces  }

} implementation {    … // variables

   command result_t StdControl.init() {      … // initialization    return SUCCESS;   }

Page 11: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 11

OscilloscopeM.nc

• OscilloscopeM.nc (2)

command result_t StdControl.start() {     call SensorControl.start();     call Timer.start(TIMER_REPEAT, 125);     call CommControl.start();     return SUCCESS;   }

command result_t StdControl.stop() {     … return SUCCESS; }

event result_t Timer.fired() {     return call ADC.getData();  }  

Page 12: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 12

OscilloscopeM.nc

• OscilloscopeM.nc (3)

async event result_t ADC.dataReady (uint16_t data) {     struct OscopeMsg *pack;     atomic {       pack = (struct OscopeMsg *) msg[currentMsg].data;       pack‐>data[packetReadingNumber++] = data;       readingNumber++;       dbg(DBG_USR1, "data_event\n");       if (packetReadingNumber == BUFFER_SIZE) {     post dataTask();       }     }     if (data > 0x0300)       call Leds.redOn();     else       call Leds.redOff();

    return SUCCESS;   }

Page 13: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 13

OscilloscopeM.nc

• OscilloscopeM.nc (4)task void dataTask()  {     struct OscopeMsg *pack;     atomic {       pack = (struct OscopeMsg *)msg[currentMsg].data;       packetReadingNumber = 0;       pack‐>lastSampleNumber = readingNumber;     }     pack‐>channel = 1;     pack‐>sourceMoteID = TOS_LOCAL_ADDRESS;     if (call DataMsg.send(TOS_UART_ADDR, sizeof(struct OscopeMsg), &msg[currentMsg]))     {        atomic { currentMsg ^= 0x1; }        call Leds.yellowToggle();      }  }  event result_t DataMsg.sendDone (TOS_MsgPtr sent, result_t success) {     return SUCCESS;  }

Page 14: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 14

Oscilloscope Lab.

Page 15: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 15

Oscilloscope lab. 1• Starts cygwin. Move to folder as follows

• make zigbex

cd /opt/tinyos‐1.x/contrib/zigbex cd Oscilloscope

Page 16: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 16

Oscilloscope lab. 2

• ZigbeX Download– Run AVR studio at Windows– Tolol->auto connect-> browse main.hex located at

– c:\Programfiles\UCB\cygwin\opt\tinyos‐1.x\contrib\zigbex\Oscilloscope\ build\ zigbex

Page 17: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 17

Oscilloscope lab. 3

• Java application– When it is configured correctly,– Move to /opt/tinyos‐1.x/tools/java in Cygwin– Type as follows

export MOTECOM=serial@COM1:57600 cd /opt/tinyos‐1.x/tools/java java net.tinyos.oscope.oscilloscope

Page 18: HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 Light Sense Lab. Read data from light(photo diode) sensor, display using oscilloscope

HANBACKELECTRONICS CO., LTD.

저자권 보호됨23年 4月 20日 18

Oscilloscope result

• Result