18
Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department of Computer Science and Engineering University of California, Riverside *Also with the Center for Embedded Computer Systems at UC Irvine http://www.cs.ucr.edu/~ vahid This work is being supported by the National Science Foundation and a Department of Education GAANN Fellowship

Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Embed Size (px)

Citation preview

Page 1: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside

1

First Results with eBlocks: Embedded Systems Building Blocks

Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh

Department of Computer Science and EngineeringUniversity of California, Riverside

*Also with the Center for Embedded Computer Systems at UC Irvinehttp://www.cs.ucr.edu/~vahid

This work is being supported by the National Science Foundation and a Department of Education GAANN Fellowship

Page 2: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 2

Introduction – A Typical Problem

Garage door

Page 3: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 3

Introduction – A Typical Problem

Oops!

Garage doorleft openat night

Page 4: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 4

Introduction – Solution: Simple Embedded System

Blink LED in the bedroom if garage door is open at night

Homeowner sees LED before sleep

Components needed Light sensor Contact switch Logic (no light AND switch

open) Wireless transmitter Wireless receiver LED

light sensor

contact switch

AND

tx

rx

LED

Page 5: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 5

Introduction – Solution is not so easy

Find components Parts catalogs, from

different vendors, many varieties

Intended for specialists Read datasheets to

understand components 10’s to 100’s of pages Intended for specialists

Light sensor – no “light sensor” listing, it’s a photoresistor

Light – not a light bulb but an LED (light emitting diode)

There are over 80+ listing in a single catalog

Use a wireless transmitter/receiver or a transceiver?

Do we need a antenna or amplifier?

AM or FM?

Which MHz can we use given FCC regulations?

What does the instruction set look like?

Which pins/ports can I use?

How do I specify if a pin is output or input?

What are the connections – power, ground, data transmitted, data received, interface to hardware?

How does transmitter/receiver work?

Who does encoding/decoding?

What does the encoding look like?

Timing Issues?

What are the connections – ground, power, data, address?

Page 6: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 6

Introduction – Solution is not so easy

Program microcontrollers Software Tool Interfacing/

communication Debug

Hardware Breadboard or PCB Debug

Other Issues... Battery drains in 2 days Need packets - requires

networking skills

How do I program the PIC?

Which compilers can I use?

How do I download/install/configure the tools?

How do I interface with other components?

How do I debug my program if it doesn’t work?

How do I read a schematic?

My circuit doesn’t work, now what?

How do I use a multimeter or logic analyzer to debug a circuit?

How do I test the circuit to ensure correctness?

Am I missing other components – voltage regulators, capacitors, resistors?

Page 7: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 7

Introduction – Solution is not so easy

We gave this as a project in an upper-division embedded systems university course, several years in a row

Three week project Students already took courses, from various universities, involving

digital design, microcontrollers, electronics, and interfacing with sensors/displays

Overall, 50 students attempted the project Only 20 completed the project

Problems Misunderstanding (or vague) data sheets Interfacing errors Debugging difficulties

No way a regular person could build this seemingly simple, useful system

Not Completed 71%

Completed 29%

Page 8: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 8

Introduction – Not Just Garage Doors

Home monitoring Garage door open, side fence open, visitor at front door, pool occupied

Inventory Restaurants, stores, storehouses

Assistance for disabled Hard of hearing (vibration when sound), vision impaired, object locators

“Doorbell” type applications Proximity doorbell (carpoolers), temporary building usage, silent

doorbells, customer detection Logging/tracking applications

Log temperature, humidity, customer traffic, car speeds Ad-hoc security Voting systems Countless more applications that today either don’t exist, or are too

costly Low volume, or custom designed

Page 9: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 9

Introduction – Solution: Mass-produced easy-to-use monitor/control system building blocks

Shrinking processor cost and size enables new solution

Put intelligence in every sensor, in every output device, etc.

Proposed solution Define matchbox-sized

building blocks with accompanying standards, protocols, etc.

Easily connected, no programming/electronics experience, battery powered

Like connecting LEGOs

light sensor

LED

contact switch logic

tx

rx

LEDlight sensor

light sensor tx

light sensor logic tx

rx LED

“Smart dust”Getting awfully

small...

Courtesy of Joe Kahn

Page 10: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 10

Design Issues

Categories of blocks Sensors, Outputs, Communication, Logic/Timing

Presently Boolean only (yes/no); now extending to integers Presently about 10 items in each category

Enough to build huge variety of systems Working iteratively with users to refine and create new blocks

Definition of compute and communicate protocols Main constraints: good response, but 2-3 year battery Everything is inter-related, difficult problem

Traditional separation of concerns (compute/comm., and networking layers) too inefficient

Need tools to automate exploration

Page 11: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 11

Defining Basic eBlocks – Partial Catalog

eBlock Diagram Description InterfaceMagnetic Contact Switch

Determines when contact between two sensors is made.

yes = contact between sensors

no = no contact between sensors

Light Sensor Sensor detects presence of light. yes = light detected

no = no light detected

Button Indicates whether button is pressed or not. yes = button pressed

no = button not pressed

LED Device blinks a light when input is a yes. Device emits no light when input is no.

yes = blink LED

no = turn LED off

Splitter Device receives a signal and replicates that signal on each output.

yes = output yes signal

no = output no signal

Toggle An input of yes toggles (inverts) the current value outputted by the device.

yes = toggle previous output value

no = do nothing

 2-Input Logic Block

 Configurable logic block programmed by the user via DIP switch.

For each of the possible outcomes of a and b, there is a corresponding switch which can be set so the resulting output is a yes or no for that particular combination.

2-Input Logicyes/noyes/no

yes/no

Toggleyes/noyes/no

Splitter yes/noyes/noyes/no

yes/no

yes/no

Button yes/no

Magnetic Contact Switch yes/no

Light Sensor yes/no

yes/no LED

Page 12: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 12

Defining Basic eBlocks – How to Implement Logic?

Logic to detect motion at night Motion sensor output A = yes, light

sensor output B = no Motion at night = A AND (NOT B) =

A * B’ Equations too hard for regular

person, plus how to enter it? In general, regular people very weak

with logic Can’t create unique eBlock for

every unique 2-input logic function Create one 2-input logic block

User must configure that block Solution: print truth table on block,

user sets switches for each possible input

Not ideal, but sufficient for now

LogicA

B

From motion sensor

From light sensor

no

no

no

no

yes

yes

yes

yes

A B Output

no no

no yes

yes no

yes yes

Page 13: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 13

Building eBlocks Systems

Build the Garage Door Open at Night System Using eBlocks

Plug pieces together and the system is done!

Light Sensoryes/no

We want to detect night – use light sensor

Light Sensoryes/no

Magnetic Contact Switch yes/no

We want to know if garage door open – use contact switch

Magnetic Contact Switch yes/no

Need a function of light sensor output and contact switch output – use Logic Block

2-Input Logicyes/noyes/no

yes/no

Configure Logic Block to turn led on when it’s night and when door is open

2-Input Logicyes/noyes/no

yes/no

2-Input Logicyes/noyes/no

yes/no LEDyes/no

Need something to indicate garage open at night – use led

LEDyes/no

Page 14: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 14

Current Status: Working Prototypes

Garage Door Open at Night(wired solution)

At garage door

Outside Inside house

Light Sensor

Magnetic Contact Switch

LED

2-Input Logic Inside house

LEDwireless RX

At garage door

Outside

Light Sensor

Magnetic Contact Switch

2-Input Logic

wireless TX

Garage Door Open at Night(wireless solution)

Page 15: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 15

eBlock System Implementations

Cafeteria Food Alert

2-Input Logic

Splitter

ToggleButton

LED

Button

LED

KitchenService Line

Page 16: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 16

Battery Lifetimes

Off the shelf 9V battery Power down PIC when it

is idle Use sampling techniques

to reduce HW energy cost

eBlocks Energy/day (J/day)

Lifetime

PIC HW

Button 2.722 0 20 years

Light Sensor 2.722 44.5 1 year

LED 2.678 14.4 3 years

Green/Red LED 2.678 28.8 2 years

Beeper 2.678 27 2 years

2-Input Logic Block

2.766 0 19 years

Toggle 2.722 0 20 years

Prolonger 2.722 0 20 years

Page 17: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 17

eBlock Design Experiment

Gave garage door project in embedded systems course 3-page eBlock catalog that included basic examples (30 minutes to read) All 22 students successfully designed the system

In less than one hour Students built numerous additional designs during remaining two hours

Not complete

d0%

Completed

100%With eBlocks, 1 hour

Completed 100%

Without eBlocks, and 3 weeks

Not Completed 71%

Completed 29%

Page 18: Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department

Frank Vahid, UC Riverside 18

Conclusions and Future Work eBlocks

Can be used by regular people to construct useful class of embedded systems No programming or electronics experience

Can be mass produced to be cost effective Boolean eBlock prototypes shown to be effective

Essentially creating higher-level digital components Illusion of continuous time, but event-based packet network underneath Only recently made possible due to low-cost, low-power, tiny processors

Will be useful with complementary efforts Intelligent homes, UPnP, IEEE smart sensor standard

All need sensors that people can actually use Sensor networks

Can serve as basic sensor input system (most research focuses on networking infrastructure)

Future work Timing model definition; wireless protocol definition; power sharing methods Extend to integer eBlocks, with arithmetic blocks too; Usage experience Automatic synthesis of eBlock systems from specifications Optimization of eBlock systems; use of eBlocks as a form of spatial

programming eBlocks for those with programming experience