150 likes | 171 Views
eBlocks – An Enabling Technology for Basic Sensor Based Systems. Susan Cotterell, Ryan Mannion, Frank Vahid * , Harry Hsieh Department of Computer Science and Engineering University of California, Riverside {susanc, rmannion, vahid, harry}@cs.ucr.edu http://www.cs.ucr.edu/eblocks
E N D
eBlocks – An Enabling Technology for Basic Sensor Based Systems Susan Cotterell, Ryan Mannion, Frank Vahid*, Harry Hsieh Department of Computer Science and Engineering University of California, Riverside {susanc, rmannion, vahid, harry}@cs.ucr.edu http://www.cs.ucr.edu/eblocks * Also with the Center for Embedded Computer Systems at UC Irvine This work is being supported by the National Science Foundation (CCR-0311026)
Introduction • Sensor networks are emerging as an important general computing domain • Small inexpensive battery-powered sense and compute nodes • Tens to thousands of nodes • Wired or wireless communication • Stringent requirements (power, cost, size) Environmental Monitoring http://www.greatduckisland.net/ http://today.cs.berkeley.edu/retreat-6-03/ Military Applications http://robotics.eecs.berkeley.edu/~pister/29Palms0103/ Home Automation http://www.smarthome.com Structure/Building Monitoring http://www.mrr.dot.state.mn.us/research/MnROAD_Project/MnROADProject.asp Medical Monitoring http://www.eecs.harvard.edu/~mdw/proj/codeblue/
Introduction • Potential sensor network application developers may not be computer programmers • Instead, engineers, scientists, office workers, homeowners, etc. • Existing programmable nodes • Flexible, but require programming • Existing off-the-shelf end applications • Specialized, so hard to customize • Expensive due to small volumes • Our solution – eBlocks • Enables non-programming users to create simple but useful customized sensor network applications http://www.xbow.com/ Flexible, hard to program Photo: Jason Hill http://www.dustnetworks.com/ Easy to use, inflexible http://www.smarthome.com
Magnetic Contact Switch Motion Sensor LED Toggle 2-Input Logic Electric Relay Tripper Light Sensor Button Splitter eBlocks Overview • eBlocks (UC Riverside) • Began as low-cost reusable basic building blocks • Enables non-programmers to create basic but useful sensor-based applications • Function of each block is pre-defined • Block types: • Sensors – motion, light, contact, etc. • Output – led, electric relay, beeper, etc. • Compute – logic, prolong, toggle, etc. • Basic configuration required (dials, switches) • Communicate – wireless point-to-point link • Users merely connect blocks to create working customized application • Evolving into a “spatial” programming methodology for sensor networks with programmable nodes • CODES/ISSS’03, SECON’04, CHI’05, DATE’05
Magnetic Contact Switch LED A’B’ 2-Input Logic Light Sensor Creating an application with eBlocks • Create an application to detect if the garage door is left open at night • Choose which blocks to use • Plug blocks together using standard plugs • Configure blocks if needed (e.g. logic block) Need something to indicate garage open at night – use led We want to detect night – use light sensor Need a function of light sensor output and contact switch output – use Logic Block We want to know if garage door open – use contact switch Configure Logic Block to turn led on when it’s night and when door is open Block Connectors
Tripper Magnetic Contact Switch LED A’B’ A’B Motion Sensor Garage Door Open At Night Detector Sleepwalker at Night Alarm 2-Input Logic 2-Input Logic 2-Input Logic 1 2 3 4 5 6 7 8 9 Prolonger Light Sensor Light Sensor Motion Sensor Beeper Beeper Light Sensor Button A+B Motion Sensor 1 2 3 4 5 6 7 8 9 eBlock to Camera Interface 2-Input Logic Motion Sensor Prolonger A+B Motion on Property Detector Animal Videoing System Building eBlocks Systems • The same basic blocks can be used in a variety of applications
button wireless tx Inside eBlocks: Technology • Tiny computer in every block • Even the simplest button • Enables low-power, and easy connection • Block “asleep” >99% of time • But user doesn’t notice • Communicates tiny computer packets, < 0.1% of time • Connecting eBlocks actually creates a computer network • Use PIC microprocessor costing <$1, consumes little power • Same processor as in blinking tennis shoes • Currently in the process of patenting eBlocks • Method of adding computing intelligence to previously passive components, method of using such computers to reduce power.
Design Entry/Simulation • User specifies and tests block design • Java-based simulator • Blocks added to workspace by dragging blocks from “Available eBlocks” tray • Connections created by drawing lines between blocks • User can create, experiment, test and configure design
123456789 Splitter Prolonger Splitter 1 1 0 0 Inverter Inverter Splitter LED LED LED LED 123456789 LED LED Prolonger 2-Input Logic Splitter PROG PROG Button Button Synthesis -- Partitioning • Mapping of pre-defined blocks to programmable blocks • Problem – map pre-defined blocks to minimum number of programmable blocks • Intermediate blocks (non-sensor, non-output) • We assume 2-input/2-output programmable block available • Partitioning problem differs from existing problems • Classic bin-packing or knapsack algorithms • But we need to be conscious of two constraints – number of inputs and number of outputs • Two-dimensional bin-packing problem (cutting stock problem) • But number of inputs and outputs of programmable block are mutually independent • FPGA synthesis, namely DAG covering • But we do not require all nodes to be covered • Our goal is to minimize block count, many focus on minimum-delay solutions or approximations • Many solutions permit replications – contrary to our goal of minimizing block count
4 7 10 1 3 1-input / 2-output 11 5 9 8 12 2 6 4 7 10 1 3 2-input / 3-output 11 5 9 8 12 Invalid configuration - packing terminated 2 6 4 7 10 1 3 2-input / 2-output 11 5 9 8 12 2 6 Synthesis -- Partitioning Strategies • Exhaustive • Search every combination of n blocks into n programmable blocks • Extremely long run times (hours) • Aggregation • Clusters nodes into subgraphs, continue adding blocks until unable to fit into programmable block • Unable to take advantage of convergence thus yields non-optimal results • Developed a new heuristic – PareDown • Based on a decomposition method • Takes advantage of convergence • Unconstrained by depth at which heuristic looks ahead • Runtime complexity O(n2)
LED LED LED C Code C Code Splitter PROG PROG Button Synthesis -- Code Generation • For each partition a syntax tree is generated to represent equivalent functionality of the partition • Able to generate C code for each partition to download unto a programmable block • Simulator’s interpreter able to evaluate syntax tree and simulate corresponding behavior
Experiments • Conducted numerous experiments in 2003-2004 • Physical Prototypes • Nobody reads/follows the instructions • Re-designed blocks to be self-explanatory • Added debugging lights to indicate block status • Simulator • Allows rapid iterations of eBlock design • Eliminates hardware ambiguities (i.e. power switch, crossed connections) • Enables a wider participations • Enables us to save various user-defined systems for later analysis
Physical Prototype and Simulator Usage Summary • Non-computing users - non-science, non-engineering users (psychology, business, etc. majors) • Beginner users - Students in their first introductory to programming course (<10 weeks) • Intermediate users - Students with 2-3 programming courses • Advanced users - Students with both programming and electronics experience • Miscellaneous - Middle school or high school kids, non-engineering adults
Usability of eBlocks • Student participants of various expertise levels • None of the students had previous experience with eBlocks • More than half of the students were able to build the first three systems in less than 10 minutes • Compared to the days to weeks required by advanced students to build similar systems without the benefit of eBlocks * Total number of students is higher than previous table because individual students may have participated in multiple tests
Conclusions and Future Work • Summary • Presented physical prototypes and graphical tool that can be used by non-computing specialists to develop basic sensor/actuator applications • Summarized usage in a large variety of user experiments • Present/Future work includes • Extend eBlocks to integers (presently Boolean) • Deployment of real systems • Proactive health care (Intel) • Insect monitor and automated pesticide deployment (Isca Corporation)