Pluggable Real World Interfaces
Till Riedel*, Phillipp Scholl*, Christian Decker*, Martin Berchtold* and Michael Beigl**
 (*TecO, University of Karlsruhe, **DUS, University of Braunschweig)
Smart Items

    Interface the world (context awareness)

    Push Logic to the Item (ad-hoc collaboration)

    Example:
    −    Chairs
    −    Pen
    −    Sponge
    −    Doorplate
    −    White board
         camera
                          AwareOffice
     /                                              2
Logic on the Item

    should extensible and adaptable

    should be sensor hardware independent

    needs execution and communication platform




     /                                           3
Real World Interfaces

    recognize static and dynamic context of object
    −    e.g. so. I am a chair and so. is sitting on me, ...

    depends on sensor types
    −    Acceleration sensors, pressure sensor, ball switches

    depends on sensor placement
    −    Direction, seat/arm rest

    depends on mechanical model
    −    swivel chair, easy chair, stool

     /                                                          4
Key Ideas

    Execute instead of describing sensor semantics
    −    Unlike SensorML, IEEE 1451

    Abstract Real World Interfaces
    −    As High-Level Interfaces
    −    accessible through Programming Language
    −    Use type hierarchies and reflection

    Bundle Software and Hardware
    −    Enable production of Smart Objects
    −    Physically enabled code deployment
     /                                               5
2-Step Approach

    Deploy Real World Interfaces with Hardware
    (Sensors+Interpretation)

    Deploy Logic with Network




                      Architecture
     /                                           6
Implementation

    Load code from object into (virtual) machine

    Execute Static Initializers

    Item becomes “aware”

    Discover

    Deploy Logic




     /                                             7
Platform

    Particle Sensor Nodes
    −    PIC18F6720: 8bit, 5MHz
    −    TR1001 low power radio

    21-Pin FCI Conan Connector

    Various Sensors Boards
    −    SPI, I²C, PWM,
         1Wire, Analog

    Particle Java VM
    −    supports javac
    −    code compression
    −    class loading
     /                               8
Evaluation

    Execution overhead : 30x (from external flash)

    Object overhead: 3 byte

    Code size for Sensors
    −   ADXL210: 167 byte
    −   Ballswitch: 29 byte
    −   TC74: 120 byte
    −   Microphone: 49 byte
    −   TSL2550: 295 byte
    −   TSOP36236: 49 byte

        Fits   easily on cheap ROM/Flash

        /                                            9
Conclusion

    software engineering needs to consider
    “hardware context”


    context-awareness can be just storing code in
    the right place


    embedded design can profit from
    virtual machine abstraction


     /                                              10
Thank you!




/                11

Pluggable Realworld Interfaces

  • 1.
    Pluggable Real WorldInterfaces Till Riedel*, Phillipp Scholl*, Christian Decker*, Martin Berchtold* and Michael Beigl** (*TecO, University of Karlsruhe, **DUS, University of Braunschweig)
  • 2.
    Smart Items  Interface the world (context awareness)  Push Logic to the Item (ad-hoc collaboration)  Example: − Chairs − Pen − Sponge − Doorplate − White board camera AwareOffice / 2
  • 3.
    Logic on theItem  should extensible and adaptable  should be sensor hardware independent  needs execution and communication platform / 3
  • 4.
    Real World Interfaces  recognize static and dynamic context of object − e.g. so. I am a chair and so. is sitting on me, ...  depends on sensor types − Acceleration sensors, pressure sensor, ball switches  depends on sensor placement − Direction, seat/arm rest  depends on mechanical model − swivel chair, easy chair, stool / 4
  • 5.
    Key Ideas  Execute instead of describing sensor semantics − Unlike SensorML, IEEE 1451  Abstract Real World Interfaces − As High-Level Interfaces − accessible through Programming Language − Use type hierarchies and reflection  Bundle Software and Hardware − Enable production of Smart Objects − Physically enabled code deployment / 5
  • 6.
    2-Step Approach  Deploy Real World Interfaces with Hardware (Sensors+Interpretation)  Deploy Logic with Network Architecture / 6
  • 7.
    Implementation  Load code from object into (virtual) machine  Execute Static Initializers  Item becomes “aware”  Discover  Deploy Logic / 7
  • 8.
    Platform  Particle Sensor Nodes − PIC18F6720: 8bit, 5MHz − TR1001 low power radio  21-Pin FCI Conan Connector  Various Sensors Boards − SPI, I²C, PWM, 1Wire, Analog  Particle Java VM − supports javac − code compression − class loading / 8
  • 9.
    Evaluation  Execution overhead : 30x (from external flash)  Object overhead: 3 byte  Code size for Sensors − ADXL210: 167 byte − Ballswitch: 29 byte − TC74: 120 byte − Microphone: 49 byte − TSL2550: 295 byte − TSOP36236: 49 byte Fits easily on cheap ROM/Flash / 9
  • 10.
    Conclusion  software engineering needs to consider “hardware context”  context-awareness can be just storing code in the right place  embedded design can profit from virtual machine abstraction / 10
  • 11.