Automated Generation of Basic Custom Sensor-Based Embedded Computing Systems Guided by End-User Optimization Criteria Susan Lysecky Dept. of Electrical.

Slides:



Advertisements
Similar presentations
CDMP Patient Management Help
Advertisements

Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department.
Digitally-Bypassed Transducers: Interfacing Digital Mockups to Real-Time Medical Equipment Scott Sirowy*, Tony Givargis and Frank Vahid* This work was.
1 1 Mechanical Design and Production Dept, Faculty of Engineering, Zagazig University, Egypt. Mechanical Design and Production Dept, Faculty of Engineering,
In Sonata TM, start with the layout of the system. Import a drawing in just about any format and start putting components on it.
Conjoining Soft-Core FPGA Processors David Sheldon a, Rakesh Kumar b, Frank Vahid a*, Dean Tullsen b, Roman Lysecky c a Department of Computer Science.
In this presentation you will:
Microprocessor Motor Control Spring Introduction  Stamp projects Robots  Sensors  Motor control  Logic Rocketry  Reading acceleration (“g”
01/05/2015 Input-Output-Process Demo Automatic Streetlight System.
Applications and Experiments with eBlocks – Electronic Blocks for Basic Sensor-Based Systems Susan Cotterell*, Kelly Downey ŧ, Frank Vahid *¥ * Department.
Dr. Gary Stewardson, Raymond Boyles Hello again, Sparkey here. Slippery and I will help you explore how to create a program that simulates outputs on a.
Qualtrics Survey Kenyon A Beginner’s Guide.
Blogics! It’s a logic circuit simulator aimed at beginners. It introduces simple concepts in the design of interactive physical computing systems such.
CS320n –Visual Programming LabVIEW Foundations. Visual ProgrammingLabVIEW Foundations2 What We Will Do Today Hand back and review the midterm Look at.
Application-Specific Customization of Parameterized FPGA Soft-Core Processors David Sheldon a, Rakesh Kumar b, Roman Lysecky c, Frank Vahid a*, Dean Tullsen.
Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh Department.
EBlocks: Enabling Design of Basic Embedded Systems by Novice Users Susan Lysecky Dept. of Electrical and Computer Engineering University of Arizona
"Standard Binaries for FPGAs" & "eBlocks" Frank Vahid Professor Department of Computer Science and Engineering University of California, Riverside Associate.
"Standard Binaries for FPGAs" & "eBlocks" Frank Vahid Professor Department of Computer Science and Engineering University of California, Riverside Associate.
1 Electronic Blocks -- The “Wood and Nails” of Sensor-Based Embedded Systems Frank Vahid Professor Dept. of Computer Science & Engineering, University.
System Synthesis for Networks of Programmable Blocks Ryan Mannion, Harry Hsieh, Susan Cotterell, Frank Vahid * Department of Computer Science and Engineering.
SensorBlocks: The Wood-and-Nails of the Electronic Sensor World Frank Vahid* Department of Computer Science and Engineering University of California, Riverside.
Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside
A Logic Block Enabling Logic Configuration by Non-Experts in Sensor Networks Susan Cotterell and Frank Vahid * Department of Computer Science and Engineering.
Formula Auditing, Data Validation, and Complex Problem Solving
EBlocks – Electronic Building Blocks for Sensor-Based Systems Frank Vahid Professor Dept. of Computer Science and Engineering University of California,
Simulink ® From Simulink® 7 Getting Started Guide.
Propagating Constants Past Software to Hardware Peripherals Frank Vahid*, Rilesh Patel and Greg Stitt Dept. of Computer Science and Engineering University.
You Can Do It – eBlocks Enabling Regular People to Build Useful Customized Sensor-Based Systems Frank Vahid Professor Dept. of Computer Science and Engineering.
Copyright © 2005 Rockwell Automation, Inc. All rights reserved. 1 Starting & Stopping Motors Micro Logix 1100 RSLogix 500 LAB#1.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
Infinity-project.org Engineering education for today’s classroom The Infinity Project SM LabVIEW for The Infinity Project.
CC0002NI – Computer Programming Computer Programming Er. Saroj Sharan Regmi Week 7.
LabVIEW an Introduction
Digital Systems Presented by Prof Tim Johnson
Advanced Excel for Finance Professionals A self study material from South Asian Management Technologies Foundation.
ESubmitter “Basics” - Brief Introduction to Your eSubmitter Tool June 5, 2014.
Logic Gates How Boolean logic is implemented. Transistors used as switches to implement Boolean logic: ANDOR Logic with Transistors.
 eBlock is an electronics block.  It can define as embedded system building block used in sensor based system.  Enable non-experts to build basic small-scale.
Weston Schreiber & Joshua Gabrielse Robotics Summer Training Programming #1: EasyC Basics.
A Fast On-Chip Profiler Memory Roman Lysecky, Susan Cotterell, Frank Vahid* Department of Computer Science and Engineering University of California, Riverside.
Eclipse EHX System Logic Maestro. Module Objective Introduce Logic Maestro to the user Elements ► What is Logic Maestro ► How does Logic Maestro relate.
Usability of State Based Boolean eBlocks Susan Cotterell and Frank Vahid * Department of Computer Science and Engineering University of California, Riverside.
CS1Q Computer Systems Lecture 8
MagicInfo Pro Scheduler Now that a template has been created from content imported into the Library, the user is ready to begin scheduling content to.
Forging new generations of engineers
Slide No. 1 Course: Logic Design Dr. Ali Elkateeb Topic: Introduction Course Number: COMP 1213 Course Title: Logic Design Instructor: Dr. Ali Elkateeb.
Khoros Yongqun He Dept. of Computer Science, Virginia Tech.
Programmable Logic Training Course HDL Editor
EGR101-34R "lecture on hardware- software" FB 7/10/2004 Digital Electronics Logic Gates Logic gates work with the voltage level of the signals. They are.
Investigating Adaptive Compilation using the MIPSpro Compiler Keith D. Cooper Todd Waterman Department of Computer Science Rice University Houston, TX.
1 Software Reliability Analysis Tools Joel Henry, Ph.D. University of Montana.
MCS-Connect Revision - 12/22/2015.
User Interface – Switch Panel 6 Gang Switch Panel Configuration guide RS485 Terminal Fixing hole Bayonet Front ViewBack View.
EBlocks – An Enabling Technology for Basic Sensor Based Systems Susan Cotterell, Ryan Mannion, Frank Vahid *, Harry Hsieh Department of Computer Science.
Digital Logic Circuits (Part 1) Computer Architecture (Fall 2006)
On-Chip Logic Minimization Roman Lysecky & Frank Vahid* Department of Computer Science and Engineering University of California, Riverside *Also with the.
MEH108 - Intro. To Engineering Applications KOU Electronics and Communications Engineering.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
Introduction to LabVIEW
Wireless 4 Buttons Touch Panel
Wireless 3 Buttons Touch Panel
Doing some Boolean: On/Off
Qualtrics Survey Kenyon
Ann Gordon-Ross and Frank Vahid*
Introduction to LabVIEW
Coding Concepts (Basics)
Introduction to LabVIEW
System Synthesis for Networks of Programmable Blocks
AN INEXPENSIVE ROBOTIC KIT FOR CHILDREN EDUCATION
Presentation transcript:

Automated Generation of Basic Custom Sensor-Based Embedded Computing Systems Guided by End-User Optimization Criteria Susan Lysecky Dept. of Electrical and Computer Engineering University of Arizona slysecky@ece.arizona.edu Frank Vahid Dept. of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu *Also with the Center for Embedded Computer Systems at UC Irvine This work is being supported by the National Science Foundation Grant CCR-0311026

Trend: Smaller Lower-Cost Microprocessors Courtesy of Joe Kahn Today: tens of mm2, ~$1 Moore's Law – still going Tomorrow: dust-sized, pennies Can put in places previously undreamt of Solve problems with new processor-based applications http://www.templehealth.org/capsule/april_22_05/april2205_news03.htm Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Problem Problem: End-users can't create custom sensor-based systems rx LED Garage door tx AND contact switch light sensor http://www.smarthome.com Left open at night – Oops! completed 40% not completed 60% Senior comp. eng. students, 2 weeks Can't customize Hard Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona Goal and Solution Goal: Create off-the-shelf blocks end-users merely connect to build customized sensor-based systems tx light sensor tx contact switch AND AND light sensor contact switch Solution: Put microprocessor inside previously "dumb" sensors and other components "dumb" light sensor micro-processor misc. circuitry eBlock Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Just Connect (and Configure) eBlocks to Build Customized Sensor-Based System Cafeteria Food Alert 2-Input Logic Splitter Toggle Button LED service line kitchen Garage Open at Night At garage door Light Sensor 2-Input Logic Magnetic Contact Switch Green/ Red LED Outside Inside house No programming, no electronics knowledge, some configuration Trick is that connections establish a simple computer network - Packet-based communication of Boolean or integer data The "wood and nails" of the electronic sensor world – can build variety of systems Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona eBlocks Status NSF-funded 2003-2007 Library of ~20 basic Boolean and integer blocks Via trial and iteration with >500 users CHI 2005, HCII 2005, ... Good success rates by end-users with no training Blocks Sensors: Button, light sensor, motion sensor, ... Compute/Comm.: Logic, toggle, trip, prolong, ... Output: Beep, LED, relay, ... Built >100 physical prototypes Can build a surprising variety of useful systems Has limits, of course Off-the-shelf volume costs predicted to be $4-$12 today, less each year (Harvard 2005 study) Prototypes last for 2 to 3 years on 2 AA batteries More info at http://www.cs.ucr.edu/eblocks Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Focus of this Paper: Graphical Simulator  Physical Blocks Users can quickly build correct virtual system, then convert to physical blocks For the slightly more advanced user Available eBlocks Advanced Mode Hide 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 B is then the output is yes Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button Light Sensor 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace Available eBlocks Advanced Mode Hide 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 B is then the output is yes Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Light Sensor Combine AND OR yes no When A is B is then the output is yes Button 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Available eBlocks Advanced Mode Hide 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 B is then the output is yes Light Sensor Beeper Button Combine AND OR yes no When A is B is then the output is yes 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace User configures certain blocks by clicking on switches Available eBlocks Advanced Mode Hide 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 B is then the output is yes Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Light Sensor Button Combine AND OR yes no When A is B is then the output is yes Beeper 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace User configures certain blocks by clicking on switches User connects blocks by drawing lines between blocks Available eBlocks Advanced Mode Hide 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 B is then the output is yes Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Light Sensor Button Combine AND OR yes no When A is B is then the output is yes Beeper 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

eBlock Simulator Graphical simulator User drags blocks from pallets to workspace User configures certain blocks by clicking on switches User connects blocks by drawing lines between blocks User can set sensor values and observe system outputs Can iterate until system functions as desired Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Available eBlocks Advanced Mode Hide 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 B is then the output is yes Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Light Sensor Light Sensor Button Combine AND OR yes no When A is B is then the output is yes Beeper 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, yellow Circles indicate that the port is sending an error signal, and gray circles denote an input port. Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Missing Blocks Problem What if user builds system in simulator using blocks he/she doesn't actually have? 3-Input Logic yes no A B’ C A B’ C’ A B C’ A B C A’ B’ C A’ B’ C’ A’ B C’ A’ B C Invert 1 0 Motion Sensor Button Light Sensor Green/Red Light Available eBlocks Advanced Mode Hide 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 When A is B is then the output is yes Beeper Output Yes/No 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. eBlock Simulator User built working system in simulator No physical 3-input logic block available. But only has certain physical blocks on hand End-user Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Missing Blocks Problem's Solution Automatically convert to equivalent system that makes use of existing physical blocks Invert 1 0 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor Button Light Sensor Green/Red Light Available eBlocks Advanced Mode Hide 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 When A is B is then the output is yes Beeper Output Yes/No 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. eBlock Simulator eBlock Simulator Available eBlocks Available eBlocks Available eBlocks Automatically replace 3-input logic by two 2-input logic blocks, which are available Sensors Sensors Sensors Output Output Output Compute/Communications Compute/Communications Compute/Communications Button When A is When A is When A is Button Button Button Beeper Beeper Beeper yes no yes no yes no AND OR AND OR AND OR B is B is B is yes no yes no yes no yes no A’ B’ C’ then the output is yes then the output is yes then the output is yes A’ B’ C Combine Combine Combine Motion Sensor Motion Sensor Motion Sensor A’ B C’ Green/Red Light Green/Red Light Green/Red Light A’ B C Motion Sensor A B’ C’ rst rst rst A B’ C A B C’ in in in Light Sensor Light Sensor Light Sensor A B C 1 0 Green/Red Light Once Yes, Stays Yes Once Yes, Stays Yes Once Yes, Stays Yes 3-Input Logic Invert Light Sensor Yes/No Yes/No Yes/No Toggle Toggle Toggle No physical 3-input logic block available. 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 seconds seconds seconds 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. Prolonger Prolonger Prolonger Hide this panel Hide this panel Hide this panel Advanced Mode Advanced Mode Advanced Mode End-user End-user Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Inverter could be removed by inverting logic's behavior Sub-Optimal System Problem User-specified system may use more blocks than really necessary Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. eBlock Simulator Invert 1 0 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor Button Light Sensor Green/Red Light Inverter could be removed by inverting logic's behavior End-user Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Inverter could be removed by inverting logic's behavior Sub-Optimal System Problem's Solution Automatically optimize given eBlock system Available eBlocks Advanced Mode Hide 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 B is then the output is yes Green/Red Light Beeper Output 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. eBlock Simulator Button yes no A’ B’ A’ B A B’ A B 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor 2-Input Logic Invert 1 0 Green/Red Light Light Sensor Automatically remove inverter and reconfigure the logic block Inverter could be removed by inverting logic's behavior End User Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Automatic Tool part of Graphical Simulator "Convert to Real Blocks" option in simulator For more advanced end-users User enters number of available blocks and/or costs User enters weights indicating preferred results System is automatically converted to a new one Convert to Real Blocks Invert 1 0 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor Button Light Sensor Green/Red Light Available eBlocks Advanced Mode Hide 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 When A is B is then the output is yes Beeper Output Yes/No 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. eBlock Simulator 3-Input Logic yes no A B’ C A B’ C’ A B C’ A B C A’ B’ C A’ B’ C’ A’ B C’ A’ B C Invert 1 0 Motion Sensor Button Light Sensor Green/Red Light Available eBlocks Advanced Mode Hide 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 When A is B is then the output is yes Beeper Output Yes/No 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. eBlock Simulator Invert 1 0 Motion Sensor Button Light Sensor 2-Input Logic yes no A’ B A’ B’ A B’ A B … Block Weights Physical Fixed Function Virtual Fixed Function Physical Programmable Virtual Programmable Optimization Objective Minimize Cost Minimize Block Count $1.20 x 7 1 $3.80 x 2 10 Willingness to buy new blocks (higher means less willing) Willingness to use "programmable" blocks (advanced users) 2 $2.10 x 3 10 $1.30 x 10 $1.20 x 3 Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

"Transformation Rule Base" How the Automatic Tool Works Similar to IC CAD design problem of "Technology Mapping" (our background) Problem is NP-complete We draw on sophisticated TM heuristic techniques eBlock developer (expert) provides rule base Optimization Library Technology Mapping Library "Transformation Rule Base" eBlock Developer Once Yes, Stays Yes 3-Input Logic yes no A B’ C A B’ C’ A B C’ A B C A’ B’ C A’ B’ C’ A’ B C’ A’ B C Splitter 2-Input Logic A’ B A’ B’ A B’ A B Invert 1 0 Library of valid mappings of one block type to others Library of valid optimizations Block A Block B Block C Block D Splitter Yes Prolonger 1 2 3 4 5 6 7 8 9 May be hundreds of transformation rules in each library Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

How the Automatic Tool Works We use the simulated annealing optimization heuristic Applies transformations in pseudo-random order, evaluates new system, keeps or discards, repeats + Very general: Supports wide variety of scenarios - Slow: Searches thousands of candidate systems Objective function 3-Input Logic yes no A B’ C A B’ C’ A B C’ A B C A’ B’ C A’ B’ C’ A’ B C’ A’ B C Invert 1 0 Motion Sensor Button Light Sensor Green/Re d Light Candidate systems evaluated Invert 1 0 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor Button Light Sensor Green/Red Light Invert 1 0 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor Button Light Sensor Green/Red Light Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona Experiments Physical Fixed Function Blocks Physical Programmable Blocks Considered 12 different end-user-specified optimization scenarios for 16 different eBlock systems Tool averaged about 6 seconds per system and scenario Note different block count and breakdown depending on scenario Cost-reduction scenarios yielded 23% savings from user's original design Virtual Fixed Function Blocks Virtual Programmable Blocks Cafeteria Food Alert Podium Timer Alarm Clock Flood Detection AVERAGE Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona Conclusions eBlocks Enable end-users to create custom sensor-based systems "Wood and nails" of electronic sensor world End-users can build useful systems not presently possible This paper introduced automatic eBlock technology mapping tool Maps virtual system to physical blocks Guided by user information and preferences Requires only minutes Just set weights, and run automatic tool Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks

Programmable eBlocks eBlocks in graphical simulator to describe desired sensor system behavior Automatically partition code to programmable blocks Compile to code on programmable eBlocks Available eBlocks Advanced Mode Hide 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 B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output eBlock Simulator 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 move a block around the workspace, click and drag its orange area. A connection can be destroyed by clicking on a connected port. To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle). Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellow Blocks can be moved into the trash can to delete them. Circles indicate that the port is sending an error signal, and gray circles denote an input port. #include <pic.h> #include “sci.h” #include “io.h” #include “constants.h” Unsigned char data_val = ERROR; ... main(void) { unsigned I, j; TRISB = 0; ... } main(void) { ORTA = 0xff; CMCON = 0x07; TRISA = 0x00; TRISB = 0x02; asm("CLRWDT"); ... } C Code Programmable eBlock Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona http://www.cs.ucr.edu/eblocks