View
215
Download
0
Tags:
Embed Size (px)
Citation preview
eBlocks: Enabling Design of Basic Embedded Systems by Novice Users
Susan LyseckyDept. of Electrical and Computer
EngineeringUniversity of Arizona
Frank VahidDept. of Computer Science and
EngineeringUniversity of California, Riverside
[email protected]*Also with the Center for Embedded
Computer Systems at UC Irvine
This work is being supported by the National Science Foundation Grant CCR-0311026
2 of 22
Introduction
• Large class of applications exists comprised of sensor-based systems
• Transform sensor data and feed the proceed data to output or actuator nodes
• Residential• Wireless doorbell, mail alert, gate
open, motion on property, package on porch, customized motion lights, carpool alert
• Office/Commercial• Cafeteria food alert, front desk
notifier, conference rooms in use, copy machine in use, visitor at front gate, reserved parking spot detector
• Countless applications• Health
• Sleepwalker detection, hard-of-hearing sound alert, water leak alert...
• Environmental• Temperature logging, animal tracking, ...
?
?
?
3 of 22
• Why aren’t these systems more prevalent?
http://www.smarthome.com
Off-the-shelf
Introduction
Photo: Jason Hillhttp://www.dustnetworks.com/
http://www.xbow.com/
Programmable
Button
Motion Sensor
2-Input Logic
LED
• Developed for specific application
• Hard to customize• Expensive – low volume
• GOAL – enable novice users to build customized embedded systems
• Provide building blocks to enable customization• Eliminate need for programming/electronics experience
• Hard to design• Find components, read datasheets,
program microcontrollers, many more issues...
• Expensive to hire an engineer
eBlocks
4 of 22
• Balancing act• Too many blocks – overwhelm end-user• Too few blocks – require too much
configuration
• Iterative process• Example-driven
eBlock Catalog Definition
2-Input Logic
Beeper
Tripper
LED
Button
Light Sensor
Contact SwitchMotion
Sensor
Prolonger
1 2 3 4 5 6 7 8 9
Green/Red LED
Wireless TX
Wireless RX
eBlock Catalog
Can we implement this system with available
eBlocks?NO – add required blocks
YES – look at next system
5 of 22
• Boolean eBlock Library• ~30 Blocks, classified into 3
categories• Sensor• Output• Compute/Communicate
• Operates on yes/no values• No programming required
• Some blocks require slight configuration
• eBlock Usability*• Performed experiments with over
500 users• Determined eBlock interfaces• Determine if novices can construct
various eBlock systems
eBlock Catalog
Button
Light Sensor
Contact Switch
Motion Sensor
Sensor
2-Input Logic
Tripper
Prolonger
1 2 3 4 5 6 7 8 9
Wireless TX
Wireless RX
Compute/Communicate
Beeper
Green/Red LED
Output
LED
Electric Relay
* S. Cotterell , Frank Vahid.Usability of State Based Boolean eBlocks.International Conference on Human-Computer Interaction (HCII), July 2005.
* S. Cotterell, Frank Vahid.A Logic Block Enabling Logic Configuration by Non-Experts in Sensor Networks. Conference on Human Factors in Computing Systems (CHI), April 2005.
6 of 22
A’B’
Configure Logic Block to turn led on when it’s night and when door is open
Need a function of light sensor output and contact switch output – use Logic Block
Create an application to detect if the garage door is left open at night
We want to detect night – use light sensor
We want to know if garage door open – use contact switch
Need something to indicate garage open at night – use led
Plug pieces together and the system is done!
Creating An Application with eBlocks
Light Sensor
Magnetic Contact Switch
2-Input Logic
LED
7 of 22
• Same building blocks can be used to create a variety of applications
Motion on Property Detector
Motion Sensor
Motion Sensor
2-Input Logic
A+B
Prolonger
1 2 3 4 5 6 7 8 9
Beeper
Sleepwalker at Night Alarm
Tripper
Motion Sensor
2-Input Logic
A’B
Light Sensor
Button
Beeper
Front Desk Notifier
ToggleButton Beeper
Package Delivery
Tripper
Motion Sensor
Button
Beeper
Tripper
Button
Button
LED
Visual Doorbell
Front Door
Inside House
8-Second Doorbell
Prolonger
1 2 3 4 5 6 7 8 9
BeeperButton
Creating An Application with eBlocks
8 of 22
eBlock Implementation
• We’ve build >100 physical prototypes
• Java-based simulator• User can choose a variety of blocks by
selecting between pallets• User is able to configure various blocks
by clicking on switches• Connections created by drawing lines
between blocks• User can create, experiment, test and
configure design
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
SensorsLight
Sensor
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Beeper
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Light Sensor
Button
Available at http://www.cs.ucr.edu/~eblock/simulator/index.html
9 of 22
Challenges
• Can we provide additional tools to aid users in developing various systems?
• What if blocks used in simulator are not available as physical blocks?
Application Developer(End-user)
3-Input Logic
yes no
A B’ CA B’ C’
A B C’ A B C
A’ B’ CA’ B’ C’
A’ B C’A’ B C
Invert
1 0
Motion Sensor
Button
Light Sensor
Green/Red Light
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
eBlock Simulator
No physical 3-input logic blocks available.
10 of 22
Challenges
• Can we provide additional tools to aid users in developing various systems?
• What if blocks used in simulator are not available as physical blocks?
• Can we optimize the end-user’s system?
Invert
1 0
2-Input Logic
yes no
A’ BA’ B’
A B’ A B
2-Input Logic
yes no
A’ BA’ B’
A B’ A B
Motion Sensor
Button
Light Sensor
Green/Red Light
Inverter is redundant
Application Developer(End-user)
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
eBlock Simulator
Developed eBlock mapping and optimization tools - discussed in
earlier presentation*
*"Automated Generation of Basic Custom Sensor-Based Embedded Computing Systems Guided by End-User Optimization Criteria”Susan Lysecky, Frank Vahid.UbiComp 2006.
11 of 22
Challenges
• Can we provide additional tools to aid users in developing various systems?
• What if blocks used in simulator are not available as physical blocks?
• Can we optimize the end-user’s system?• Can we maximize lifetime for the end-
user’s specific application? Or Reliability? Or Responsiveness?...
APP 1
APP 2
APP 3
Rel
iabi
lity
Life
tim
e
Late
ncy
Res
p.
1.00.80.60.40.2
0
Rel
iabi
lity
Life
tim
e
Late
ncy
Res
p.
1.00.80.60.40.2
0
Rel
iabi
lity
Life
tim
e
Late
ncy
Res
p.
1.00.80.60.40.2
0
12 of 22
Node Tuning
• Application-specific node tuning is not a new idea
• Adlakha, S., S. Ganeriwal, C. Schurger, M. Srivastava. Density, Accuracy, Latency and Lifetime Tradeoffs in Wireless Sensor Networks – A Multidimensional Design Perspective. Embedded Network Sensor Systems, 2003.
• block’s shutdown scheme, network routing algorithms, and data compression schemes
• Yuan, L., G. Qu. Design Space Exploration for Energy-Efficient Secure Sensor Network. Conf. on Application-Specific Systems, Architectures, and Processors, 2002.
• processor type, encryption/decryption algorithms, and dynamic voltage scaling
• Tilak, S., N. Abu-Ghazaleh, W. Heinzelman. Infrastructure Tradeoffs for Sensor Networks. Int. Workshop on Wireless Sensor Networks and Applications, 2002.
• sensor capability, number of sensors deployed, and deployment strategy
• Heinzelman, W., A. Chandrakasan, H. Balakrishnan. Energy-Efficient Communication Protocols for Wireless Microsensor Networks. Hawaii International Conference on System Sciences, 2000.
• communication protocols, transmit/receive circuitry, message size, distance between blocks, etc.
• Martin, T., M. Jones, J. Edmison, R. Shenoy. Towards a design framework for wearable electronic textiles. IEEE International Symposium on Wearable Computers, 2003.
• number of sensors and sampling rate• Shih, E. S. Cho, N. Ickes, R. Min, A. Sinha, A. Wang, A.
Chandrakasan. Physical Layer Driven Protocol and Algorithm Design for Energy-Efficient Wireless Sensor Networks. International Conference on Mobile Computing and Networking (MobiCom), 2001.
• Network protocols and algorithms, dynamic voltage scaling, sleep states
Careful tuning of parameters can have a large impact on design objective
• Node tuning hard - beyond the expertise of most end-users
• Block’s parameter space may consist of billions of possible configurations
• Heavily interdependent parameters
How do we develop application specific eBlock tuning tools for
novice users?
APP 1
APP 2
APP 3
Rel
iabi
lit y
Life
time
Late
ncy
Res
p.
1.00.80.60.40.20
Rel
iabi
lit y
Life
tim
e
Late
ncy
Res
p.
1.00.80.60.40.20
Rel
iabi
lit y
Life
time
Late
ncy
Res
p.
1.00.80.60.40.20
13 of 22
• Expert in the eBlock platform• Responsible for eBlock
characterization
eBlock Tuning
eBlock Developer
Computation and Communication Parameter
Definition
Design Metric Evaluation Equations
5V
4.5V
3V
4 bits1 byte
crc
0.25s10 m
hamming
parity
1M Hz
100k Hz 32k Hz
1m
0.5s 3s
• What parameters can be adjusted?• What values can be assigned to the
various parameters?
Computation and Communication Parameter
Definition
• How are the parameters related?• Given a voltage level, what frequencies are
valid?
Parameter Interdependence
3.03.54.04.55.05.5
32k100k200k300k…
16M20M
120024004800960014.4K28.8K
Lifetime = battery capacity / uP current
uP current = uP Active current + uP Idle Current …
• How do the parameters effect lifetime? Reliability?
Design Metric Evaluation Equations
14 of 22
Computation and Communication Parameter
Definition
Design Metric Evaluation Equations
Parameter InterdependenceeBlock
Developer
eBlock Characterization
• Expert in the application domain
• Responsible for application characterization
Application Developer
eBlock Tuning
Design Metric Objective Functions
Design Metric Objective Functions
Flifetime 1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
• What is considered a good lifetime value and what is a bad lifetime value? (0-good, 1-bad)
Lifetime below 1.5 is bad
Lifetime beyond 2 years yields minimal improvement
Overall Objective Function
• What is the relative importance of each design metric?
Lifetime0 10050
Reliability0 10050
Latency0 10050
Connect Responsiveness0 10050
Foverall = (75 * Flifetime) + (25 * Freliability) +(25 * Flatency) + (50 * Fconnect_resp) + (50 * Fdisconnect_resp)
Disconnect Responsiveness0 10050
Mean time between corrupted packets (days)
1
0
Freliability
1 365 730
Block latency (seconds)
1
0
Flatency
0 0.05 0.14
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 4 5 10 30 300 600
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
LatencyDisconnect
ResponsivenessReliabilityConnect
Responsiveness
15 of 22
eBlock Tuning
Design Metric Objective Functions
Overall Objective Function
Computation and Communication Parameter
Definition
Design Metric Evaluation Equations
Parameter Interdependence
Application Developer
eBlock Developer
eBlock Characterization Application Characterization
Explore Design SpaceExplore Design Space
Config. Avoltage = 5Vfrequency = 32k Hz…ecc = hamming1
Foverall = (75 * 0.11) + (25 * 0.93) +
(25 * 0.15) + (50 * 0.92) + (50 * 0.98)
• Simulated Annealing• Choose eBlock configuration• Determine how well configuration
meets design metrics• Aggregate into a single cost based on
relative importance of each design metric
Mean time between corrupted packets (days)
1
Freliability
Connect response (seconds)
1
Fresponsiveness
Disconnect response (seconds)
1
Fresponsiveness
Flifetime
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Block latency (seconds)
1
0 0.05 0.14
0
1 365 730
0
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
0
1800600.25 0.50 1 2 3 4 5 10 30 300 600
1
0 0
Flatency
16 of 22
eBlock Tuning
Design Metric Objective Functions
Overall Objective Function
Computation and Communication Parameter
Definition
Design Metric Evaluation Equations
Parameter Interdependence
Application Developer
eBlock Developer
eBlock Characterization Application Characterization
Explore Design Space
System Compute and Communicate Protocol
• How well did the configuration perform for each design metric?
Rel
iabi
lity
Life
tim
e
Late
ncy
Res
pons
iven
es s
1.00.80.60.40.2
0
Design Metric Achievement
eBlock Config.
voltage = 5Vfrequency = 32k Hz…ecc = hamming1
• Each eBlock parameter is assigned a value System Compute and
Communicate Protocol
17 of 22
eBlock Tuning
Design Metric Objective Functions
Overall Objective Function
Computation and Communication Parameter
Definition
Design Metric Evaluation Equations
Parameter Interdependence
Application Developer
eBlock Developer
eBlock Characterization Application Characterization
System Evaluation
Explore Design Space
Design Metric Achievement
System Compute and Communicate Protocol
Config. Avoltage = 5Vfrequency = 32k Hz…ecc = hamming1
Mean time between corrupted packets (days)
1
0
Freliability
1 365 730
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 4 5 10 30 300 600
Flifetime
1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Block latency (seconds)
1
0
Flatency
0 0.05 0.14
Config. Bvoltage = 4.5Vfrequency = 100k Hz…ecc = none
Mean time between corrupted packets (days)
1
0
Freliability
1 365 730
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 4 5 10 30 300 600
Flifetime
1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Block latency (seconds)
1
0
Flatency
0 0.05 0.14
Config. Cvoltage = 4Vfrequency = 1M Hz…ecc = crc
Mean time between corrupted packets (days)
1
0
Freliability
1 365 730
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 4 5 10 30 300 600
Flifetime
1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Block latency (seconds)
1
0
Flatency
0 0.05 0.14
18 of 22
Experiments – Varying Domains
• Consider several applications• General
• Encompasses a variety of possible eBlock systems
• Educational Science Kit• Introduce middle school
students to simple engineering concepts
• Students combine and configure blocks to create customized sensor-based embedded systems
• Vineyard Weather Tracker• Long-life application deployed in
vineyard to track temperature, rainfall, avg. hours of sunlight
• Other applications also considered in paper …
Motion on Property Detector
Motion Sensor
Motion Sensor
2-Input Logic
A+B
Prolonger
1 2 3 4 5 6 7 8 9
Beeper
Sleepwalker at Night Alarm
Tripper
Motion Sensor
2-Input Logic
A’B
Light Sensor
Button
Beeper
Front Desk Notifier
ToggleButton Beeper
Tripper
Button
Button
LED
Visual Doorbell
Front Door
Inside House
Wireless Tx
Temp. Sensor Wireless
Rx Logger
Wireless Rx Logger
…
Temp. sensor
Record temperature readingsVineyard Weather Tracker
General
Educational Science Kit
19 of 22
Experiments – Varying Domains
Flifetime
1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 4 5 10 30 300 600
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
General
Educational Science Kit• Lifetime metric
• Lifetime requirement not as important – users can easily change batteries
• Responsiveness metrics• Extensive hot-swapping in an
interactive learning environment
• Design metric weights
• <0.1, 0.5, 0.5, 1, 1>
Flifetime
1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 4 5 10 30 300 600
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 3 4 5 10 30 300 600
Vineyard Weather Tracker
Flifetime
1
0
Lifetime (years)
0.5 1 2 2.5 30 1.5 3.5
Disconnect response (seconds)
1
0
Fresponsiveness
1800600.25 0.50 1 2 3 10 30 300 600
Connect response (seconds)
1
0
Fresponsiveness
0.10 600.25 0.50 1 2 5 10 30 300 600
Educational Science Kit
4 5
3 4
Vineyard Weather Tracker• Lifetime metric
• Yearly maintenance acceptable
• Responsiveness metrics• Deployed system, already
test/configured
• Design metric weights• <1, 0.5, 0.5, 0.1, 0.1>
General• Design metric weights
• <1, 1, 1, 1, 1>
20 of 22
• General Optimized vs. Educational Science Kit Optimized
• Overall objective function increase of 68%
• Lifetime decreases from 931 days to 509 days
• Connect responsiveness changed from 1.25 s to 0.20 s
• Disconnect responsiveness changed from 0.3 s to 0.10 s
• General Optimized vs. Vineyard Weather Tracker Optimized
• Overall objective function increase of 85%
• Lifetime increases from 931 days to 1223 days
• Connect responsiveness changed from 1.25 s to 20 s
• Disconnect responsiveness changed from 0.3 s to 2.5 s
• Application-specific configuration verses general configuration yields an average improvement of 42%
0.00
0.05
0.10
0.15
0.20
0.25
0.30
Gen Edu Gen Vin Gen Msq Gen End AVGGen
AVGApp
Application Domain
No
rma
lize
d F
_o
ve
rall
disconnect connect latency reliability lifetime
Experiments
21 of 22
• Compared simulated annealing heuristic to exhaustive search
• Exhaustive - average of 3.5 minutes per application
• Simulated Annealing – average of 10 seconds per application
• 3% difference in overall design metric achievement
Experiments
0.00
0.05
0.10
0.15
0.20
0.25
Ge
n.
Op
tima
l
Ge
n.
SA
Ed
u O
ptim
al
Ed
u.
SA
Vin
Op
tima
l
Vin
SA
Msq
Op
tima
l
Msq
SA
En
d O
ptim
al
En
d S
A
Application Domains
F_
ov
era
ll
disconnect connect latency reliability lifetime
22 of 22
• Automated eBlock tuning• ~10 minutes to specify high-level design metric goals• ~10 seconds to determine eBlock configuration• Yield an average of 42% improvement in meeting user-defined goals, high of
85%• Can easily be scaled to consider larger number of parameters
• Future Work• Directly extendable to support general sensor network systems
Conclusion
Thank you for your attention