Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Automated Generation of Basic Custom Sensor-Based Embedded Computing Systems Guided by End-User Optimization Criteria Susan Lysecky Dept. of Electrical."— Presentation transcript:

1 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 Frank Vahid Dept. of Computer Science and Engineering University of California, Riverside *Also with the Center for Embedded Computer Systems at UC Irvine This work is being supported by the National Science Foundation Grant CCR

2 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 Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona

3 Problem Problem: End-users can't create custom sensor-based systems
rx LED Garage door tx AND contact switch light sensor 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

4 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

5 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

6 Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona
eBlocks Status NSF-funded 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 Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona

7 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 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 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 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

8 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 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 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

9 eBlock Simulator Graphical simulator
User drags blocks from pallets to workspace Available eBlocks Advanced Mode Hide this panel Compute/Communications Prolonger 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

10 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 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 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

11 eBlock Simulator Graphical simulator
User drags blocks from pallets to workspace Available eBlocks Advanced Mode Hide this panel Compute/Communications Prolonger 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 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 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

12 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 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 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 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

13 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 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 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 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

14 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 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 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 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

15 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 Motion Sensor Button Light Sensor Green/Red Light Available eBlocks Advanced Mode Hide this panel Compute/Communications Prolonger 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

16 Missing Blocks Problem's Solution
Automatically convert to equivalent system that makes use of existing physical blocks Invert 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 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 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. 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

17 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 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 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

18 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 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 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

19 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 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 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 Motion Sensor Button Light Sensor Green/Red Light Available eBlocks Advanced Mode Hide this panel Compute/Communications Prolonger 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 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

20 "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 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 May be hundreds of transformation rules in each library Frank Vahid, UC Riverside / Susan Lysecky, Univ. of Arizona

21 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 Motion Sensor Button Light Sensor Green/Re d Light Candidate systems evaluated Invert 2-Input Logic yes no A’ B A’ B’ A B’ A B Motion Sensor Button Light Sensor Green/Red Light Invert 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

22 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

23 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

24 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 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


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

Similar presentations


Ads by Google