Presentation is loading. Please wait.

Presentation is loading. Please wait.

SensorBlocks: The Wood-and-Nails of the Electronic Sensor World Frank Vahid* Department of Computer Science and Engineering University of California, Riverside.

Similar presentations


Presentation on theme: "SensorBlocks: The Wood-and-Nails of the Electronic Sensor World Frank Vahid* Department of Computer Science and Engineering University of California, Riverside."— Presentation transcript:

1 SensorBlocks: The Wood-and-Nails of the Electronic Sensor World Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu http://www.cs.ucr.edu/~vahid * Also with the Center for Embedded Computer Systems at UC Irvine This work is being supported by the National Science Foundation SensorBlocks are also known as "eBlocks" – http://www.cs.ucr.edu/eblocks

2 Frank Vahid UCR TechHorizons 2007 2 of 22 Seen this Problem?  Technology everywhere – Why no good solution? Not!Available

3 Frank Vahid UCR TechHorizons 2007 3 of 22 Introduction  1998: Simple Problem Garage door open at night  No simple solution Off-the-shelf solutions costly, hard to find, and/or not customizable Alarm system cost – overkill  Connecting existing sensors, logic, transmit/receive, LEDs is hard Electronics, programming 2-week project: 70% EE/CS unable  Countless similar applications go unrealized  Why can't I just connect those components like "Lego" blocks? LED receive contact switch light sensor AND transmit

4 Frank Vahid UCR TechHorizons 2007 4 of 22 Shrinking Processor Size/Cost Enables New Solution  Make sensors smarter By adding processor+battery Becomes a "block" easily connected to other blocks http://www.templehealth.org Courtesy of Joe Kahn

5 Frank Vahid UCR TechHorizons 2007 5 of 22 Shrinking Processor Size/Cost Enables New Solution – SensorBlocks Existing component viewNew "SensorBlock" view Button yes/no Light Sensor yes/no Magnetic Contact Switch yes/no LED yes/no Beeper Electric Relay yes/no

6 Frank Vahid UCR TechHorizons 2007 6 of 22 SensorBlocks  Just connect blocks, and they work No programming knowledge, no electronics knowledge Button yes/no LED yes/no Beeper yes/no Light Sensor yes/no

7 Frank Vahid UCR TechHorizons 2007 7 of 22 SensorBlocks Example  "Garage Open at Night" detector  <10 minutes to build Need to indicate garage open at night – use LED block LED Detect night-time – use Light Sensor block Light Sensor Detect garage door open – use Contact Switch block Magnetic Contact Switch Plug pieces together and the system is done! Use Combine block to combine light sensor and contact switch into one Combine AND OR yes no When A isyes no B is then the output is yes

8 Frank Vahid UCR TechHorizons 2007 8 of 22 What's Hard (The Research Part)  (1) Finding right set of building blocks Toggle Splitter Tripper 2-Input Logic 3-Input Logic Splitter 4-Input Logic Splitter Prolong (short) 1 2 3 4 5 6 7 8 9 Prolong (long) 1 2 3 4 5 6 7 8 9 Combine AND OR yes no When A isyes no B is then the output is yes Too many – Overwhelming (too much choice) 2 Yes detector 2 No detector Too few – Overwhelming (too much configuration) SuperBlock 1 2 3 4 5 6 7 8 9 AND OR yes no When A isB is then the output is yes 1 2 3 4 5: Splitter 1 2 3 4 5 6 7 8 9 6:...

9 Frank Vahid UCR TechHorizons 2007 9 of 22 What's Hard (The Research Part)  (2) Making the blocks understandable People NOT likely to read directions Those that do are unlikely to understand ABOutput noyesno yesnoyes noyes no yes Logic Block configurable DIP switch A B Combine A is yes, B is yes A is yes, B is no A is no, B is yes A is no, B is no The output shouldbe yes when: yes no: Phrased truth table yes no the output should be AB When the input is out Combine A is yes, B is yes A is yes, B is no A is no, B is yes A is no, B is no Phrased truth table embedded in sentence yes no The output should be When the input is out AB AB AB AB AB Combine Colored truth table embedded in sentence Combine AND OR yes no When A is yes no B is then the output is yes Logic Sentence Example: Combine block Performed extensive user testing (over 500 students, kids, and adults) over two years Most success

10 Frank Vahid UCR TechHorizons 2007 10 of 22 What's Hard (The Research Part)  (3) Batteries must last years, yet performance should appear continuous Blocks are off 99.9% of the time Mean time between corrupted packets (days) 1 0 F reliability 1 365 730 Block latency (seconds) 1 0 F latency 0 0.05 0.14 Disconnect response (seconds) 1 0 F responsiveness 1800 60 0.25 0.50 1 2 3 4 5 10 30 300 600 Connect response (seconds) 1 0 F responsiveness 0.10600.25 0.501 23 4510 30 300600 Latency Disconnect Responsiveness Reliability Connect Responsiveness time ft f (a) (b) (d) (c) error << ftfff << interpreted as Developed theory to map SensorBlock events to continuous time Developed custom CAD tool to automatically find the best block parameter settings out of the billions of possibilities

11 Frank Vahid UCR TechHorizons 2007 11 of 22 Built >100 Prototypes  Size of deck of cards (eventually smaller)  2-3 years on 2 AA batteries (eventually longer)  Can communicate via wire >1.5 miles, 150 ft wireless  Hundreds of trial users

12 Frank Vahid UCR TechHorizons 2007 12 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets 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 isyes 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 isyes 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 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 isyes no B is then the output is yes

13 Frank Vahid UCR TechHorizons 2007 13 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging 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 isyes 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 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 isyes no B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Button

14 Frank Vahid UCR TechHorizons 2007 14 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging 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 isyes no B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button Light Sensor

15 Frank Vahid UCR TechHorizons 2007 15 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging 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 isyes no B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button Light 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 isyes no B is then the output is yes Combine AND OR yes no When A isyes no B is then the output is yes

16 Frank Vahid UCR TechHorizons 2007 16 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging 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 isyes no B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button Light 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 isyes no B is then the output is yes Combine AND OR yes no When A isyes 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 isyes no B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Beeper

17 Frank Vahid UCR TechHorizons 2007 17 of 22 Combine AND OR yes no When A isyes no B is then the output is yes Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging User is able to configure various blocks by clicking on switches 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 isyes no B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button Light 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 isyes 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 isyes no B is then the output is yes Motion Sensor Yes/No Button Light Sensor Sensors Green/Red Light Beeper Output Beeper

18 Frank Vahid UCR TechHorizons 2007 18 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging User is able to configure various blocks by clicking on switches Connections created by drawing lines between blocks 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 isyes no B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Button Light 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 isyes 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 isyes 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 isyes no B is then the output is yes

19 Frank Vahid UCR TechHorizons 2007 19 of 22 Graphical 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 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.  User specifies and tests block design  Java-based simulator User chooses between pallets Blocks added by dragging 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 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 isyes no B is then the output is yes Green/Red Light Beeper Output Motion Sensor Yes/No Button Light Sensor Sensors Light 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 isyes 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 isyes 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 isyes no B is then the output is yes Light Sensor Button

20 Frank Vahid UCR TechHorizons 2007 20 of 22  Use virtual blocks in graphical simulator to describe desired sensor system behavior Intuitive due to spatial emphasis, not temporal emphasis  Automatically compile to code on programmable SensorBlocks SensorBlocks as a Programming Paradigm Programmable SensorBlocks Partitions

21 Frank Vahid UCR TechHorizons 2007 21 of 22 SensorBlock Tool Generates Code  Tool generates C code automatically #include #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  Download code to block with click of a button Ordinary users can “write” programs in minutes  Spatial vs. temporally-oriented language 20 high school graduates: eBlocks (spatial) vs. LEGO Mindstorms (temporal), 6 example systems, 40 minutes to build Programmable SensorBlock Type Average Success Rate Mindstorms0% eBlocks54%

22 Frank Vahid UCR TechHorizons 2007 22 of 22  SensorBlock technology nearly mature  Possible early-adoption applications Hearing impaired home monitoring Aging parent non-intrusive monitoring Middle-school early engineering experience kits  Trends work in favor each year Smaller, cheaper (<$5), longer battery life (or no battery?)  Eventual applications General blocks for home, stores, office Blocks as front-end devices to "smart home" New blocks and tools for intermediate/advanced users  Collaborators Ph.D students: Susan Lysecky, Ryan Mannion, David Sheldon; Profs. Harry Hsieh, Walid Najjar, Crista Lopes (UC Irvine); UG students: Andrea Coba, Margaret Ukwu, Caleb Leak, and several others Conclusions


Download ppt "SensorBlocks: The Wood-and-Nails of the Electronic Sensor World Frank Vahid* Department of Computer Science and Engineering University of California, Riverside."

Similar presentations


Ads by Google