Title: External Interfaces and Software Tools for Electronic Blocks
1External Interfaces and Software Tools for
Electronic Blocks
- Shawn Nematbakhsh
- University of California, Riverside
Thesis Defense Dr. Frank Vahid, Chairman Dr.
Harry Hsieh Dr. Walid Najjar
2eBlocks
- What are eBlocks?
- Single-function blocks that snap together to
build useful simple systems. - Each block contains its own microcontroller to
process data. - Three types of blocks Input, output,
computation. - Current protocol completely binary YES/NO.
- eBlock Project Goals
- Allow construction of simple monitor/control
systems in a short period of time. - Allow inexperienced users to build simple systems
that would otherwise be impossible.
3Overview
- eBlock External Interfacing
- Internet
- Telephone
- PDA
- eBlock Software Tools
- eBlock Simulator
- Programmable eBlock
- Sample Application
- Parking Lot Monitor
4eBlock External Interfacing
- eBlock systems designed to be entirely
self-contained. - Sensors, buttons, lights, buzzers, etc all
implemented as stand-alone eBlocks - Would be useful to interface with external
non-eBlock systems. - Devices and technologies already exist to perform
tasks that would be inefficient to implement as
stand-alone eBlocks. - Three interfaces created Internet, Telephone,
PDA.
5Network eBlock
- Intended for long-range monitoring of eBlock
systems. - Takes input from eBlock system, output to
ethernet interface. - On startup gets IP of listening host gateway
networking information from user. - Constantly streams UDP packets with eBlock status
to listening host.
Network eBlock
6Network eBlock
- Listening socket program on host defines
behavior. - Ships with application outputting date/time of
input change to web page. - Users can define own behavior with C API.
- Many possible applications
- Record and display every packet received.
- Send email when YES packet is received.
- Output packet data to IRC chat channel.
- Any network application required completely
customizable.
7Phone Dialer eBlock
- Takes eBlock input, on startup is configured with
a target telephone number. Connects to telephone
line. - When YES packet is received dialer opens line
and calls target number, waits 30 seconds, and
hangs up. - Intended for remote emergency alerts such as
intrusion or disaster detection.
Dialer eBlock
8Phone Relay eBlock
- Reverse of phone dialer block takes a
telephone input and outputs to an eBlock system. - User dialing in enters code to stream YES or
NO packets to system. Packets sent continuously
until next call. - Intended for remote control of eBlock systems
- Sample application toggling lights in house
while on vacation to deter theft.
Phone Relay eBlock
9Palm Logger
- Palm PDA application used to record history of
input changes. - Data saved on Palm system in text file for later
analysis. - eBlock input fed through converter device to
translate TTL to RS232 for Palm use. - Solves problem of automatic monitoring of eBlock
status.
10eBlock Software Tools
- eBlock External Interfacing
- Internet
- Telephone
- PDA
- eBlock Software Tools
- eBlock Simulator
- Programmable eBlock
- Sample Application
- Parking Lot Monitor
11eBlock Simulator
- eBlock simulator allows drag-and-drop layout and
testing of eBlock systems. - Simulation-based testing of eBlock systems
without physical construction, saving
construction time. - Input, computation, and output blocks supported.
- Input blocks simulated with user input toggling
state. - Output blocks simulated with visual alerts.
- Computation blocks display current state.
- Stepwise simulation or real-time.
12eBlock Simulator
- As design is layed out, table keeps track of
blocks and connections. Cycles disallowed. - Simulation algorithm
- Evaluate() produces block output based on inputs
block type. UpdateDisplay() changes display to
reflect output. - Running time O(VE) (Vblocks,Ewires) because
of topological sort
Simulate(table Tn) OrderedTopologicalSort(
T). for i 1 to n do Evaluate(Orderedi)
UpdateDisplay(Orderedi))
13eBlock Simulator
- eBlock Simulator widely used.
- Basis for current version in use by over 500
people. - Allows worldwide eBlock use without distributing
sets of physical blocks. - Simulator useful for testing and feedback.
- Allows eBlock designers to judge user
understanding of blocks. - Able to test and change block customization
without physical construction. Ex 2-input logic
user interface. - Lack of cycles a limitation certain systems
cannot be simulated. - Software simulator generally well-liked by users.
- What if physical systems could be built using the
simulator interface?
14Programmable eBlock
- Idea Use simulator to layout eBlock system.
Replace multiple computation blocks with a single
custom block synthesized to perform the same
exact function for implementation.
15Programmable eBlock Tool
- Design laid out using simulator drag-and-drop
interface. - Different input blocks replaced with INPUT
point. - Output blocks replaced with OUTPUT point.
- Represent input and output points into
programmable block. - Once design completed, SYNTHESIS button is
clicked. - Ordered table created from users design.
- C struct representation copied into code file
along with static code to step through table. - File is compliable using PICC to program onto a
microcontroller without any code needing to be
written by user. - Usable by advanced users or engineers without
programming experience.
16Programmable eBlock Tool
- Algorithm
- GetOrdered runs on PC, produces ordered
representation in C. - Step runs on microcontroller once each time a
packet is received or timeout occurs. Both O(VE).
GetOrdered(table Tn) Call Simulate(T)
Keep Ordered array and output to C code Step
(table Orderedm) for i1 to m do
evali Evaluate(Orderedi) output
evalm
const struct block blocksNUMBLOCKS-1,-1,INPUT
,0,0,0,0,0,-1,SPLITTER,0,0,0,0,1,-1,TOGGLE,0,0
,0,0,1,-1,INVERTER,0,0,0,0,3,2,OR,0,0,0,0,4,
-1,OUTPUT,0,0,0,0
17Programmable eBlock
- After C code generation, PIC microcontroller can
be programmed. - Zero programming knowledge required by user
simply compile and download to chip. - Programmable block implemented as enclosure with
ZIF socket. - Allows easy chip placement after programming.
- Problem One UART per microcontroller.
- Separate microcontroller needed for each set of
inputs and outputs included. - Extra microcontrollers serve only to receive
input and send output. - Communicate with single master microcontroller to
perform all computation.
18Virtual Blocks
- Blocks in programmable eBlock tool do not
necessarily have to exist at physical level. - Blocks implemented in C code for programmable
block. - No need for stand-alone eBlock implementing the
same function. - Size of virtual eBlock library does not have to
be limited. - Selecting a virtual block from library as simple
as selecting from menu and dragging. - Fine-grained functional blocks can be created
without worry of bloat. - Certain blocks requiring user customization are
easier to set by computer. Ex dial-switch timer.
- Programmable blocks can be a mix of actual
physical blocks and virtual blocks which exist
only in software.
19Virtual Blocks
- Two additional blocks created for programmable
eBlock tool. - Sequencer block used for pattern matching of
previous input. - Eight previous inputs represented with 1, 0,
. - Ex 101 outputs YES only if previous
input was YES, previous to that NO, previous
to that YES. - Replaces gate-level pattern matching.
- N-Timer block used to monitor time with
continuous YES packets received. - Value N from 1-59,999 specified by user
- If only YES packets have been received for N
continuous - seconds then YES is outputted for one
timeout period - (2 secs).
20Virtual Block Applications
- Sequencer
- Can be used for passcode systems.
- Also useful for error correction dont sound
alarm unless motion sensor detects several
consecutive YES inputs. First input may be false
alarm. - N-Timer
- Useful for systems that perform long-range
timing. - Difficult for users to easily specify large
periods of time on-block Dial and DIP switches
dont work well for customizing large values. - Best solution is to specify using computer
simply type desired value in.
21Sample Application
- eBlock External Interfacing
- Internet
- Telephone
- PDA
- eBlock Software Tools
- eBlock Simulator
- Programmable eBlock
- Sample Application
- Parking Lot Monitor
22Parking Lot Monitor
- Meter-free time-limited spaces usually monitored
manually. - Chalk tire marks used to determine time elapsed.
- Labor-intensive Monitor must constantly walk
around lots. - Automate parking lot monitoring using
electronics. - Keep track of time elapsed in parking space.
- Wirelessly alert car driver several minutes
before expiration. - Wirelessly alert lot monitor at expiration.
23Parking Lot Monitor from Traditional eBlocks
- Infrared receiver / transmitter placed across
parking space. - Logic blocks set to trigger when pulse goes low
(time exceeded) and infrared beam is broken (car
still in space). - Two extended pulse generators performing timing
of deadline time and deadline time minus 5
minutes so driver gets chance to move car before
time expires.
Buzzer
Buzzer
IR Beam Tx
Wireless Rx Block (to attendant)
Pulse Gen. Block (deadline)
2-IN Logic Block (01)
Wireless Tx Block
Wireless Rx Block (to user)
Pulse Gen. Block (deadline--)
2-IN Logic Block (01)
Wireless Tx Block
IR Rx Block
Splitter Block
24Parking Lot Monitor with Dialer
- Dialer used to send alerts to user and monitor.
- Advantage Replaces six wireless receiver,
transmitter, and buzzer blocks with two dialer
blocks. - Advantage Not range-limited like wireless
eBlocks. - Advantage Doesnt require external buzzer to
carry around. - Disadvantage Requires user to have mobile phone.
- Disadvantage Requires phone line near parking
space.
IR Beam Tx
Pulse Gen. Block (deadline)
2-IN Logic Block (01)
Phone Dialer
Pulse Gen. Block (deadline--)
2-IN Logic Block (01)
Phone Dialer
IR Rx Block
Splitter Block
25Parking Lot Monitor with Programmable eBlock
- Replaces five blocks used for timing with a
single programmable eBlock. - Programmable block created with splitter and two
N-Timers. - Advantage Five to one block reduction.
- Advantage Easier to design and understand for
user.
N- Time
IR Beam Tx
Split
N- Time
Phone Dialer
Programmable eBlock
IR Rx Block
blocksNUMBLOCKS-1,-1,INPUT,0,0,0,0,0,-1,SPL
ITTER,0,0,0,0,1,-1,NCOUNTER,14,16,0,0,1,-1,NCO
UNTER,12,128,0,0,2,-1,OUTPUT,0,0,0,0,3,-1,OUTP
UT,0,0,0,0
Phone Dialer
26Parking Lot Monitor from Components
- Parking lot monitoring system also implemented
with traditional components. - With schematic from web, construction required
8.5 hrs compared to 1.25 hrs for traditional
eBlock construction. - Microcontroller programming required for
component version, but not necessary for eBlock
construction. Component version not buildable for
non-programmers. - Component version allows more flexibility, but
eBlock design meets all requirements in this case.
27Conclusion and Future Work
- Conclusion
- eBlocks have been expanded to use external
interfaces, allowing a wide range of powerful new
systems to be created. - eBlock software tools were created that are being
built on and improved today. These tools allow
large scale use and experiment on eBlocks, and
are the basis for eBlock synthesis. - Future Directions
- Expand the library of virtual blocks to include
many more functions useful for systems. - Improve the synthesis tool to perform advanced
optimizations such as design minimization and
partitioning across multiple blocks.