WO2017122198A1 - Systems and methods for connecting physical objects to software applications - Google Patents

Systems and methods for connecting physical objects to software applications Download PDF

Info

Publication number
WO2017122198A1
WO2017122198A1 PCT/IL2017/050032 IL2017050032W WO2017122198A1 WO 2017122198 A1 WO2017122198 A1 WO 2017122198A1 IL 2017050032 W IL2017050032 W IL 2017050032W WO 2017122198 A1 WO2017122198 A1 WO 2017122198A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
proxy device
computing proxy
computing
detachable
Prior art date
Application number
PCT/IL2017/050032
Other languages
French (fr)
Inventor
Avi RABINOVICH
Michael STUTMAN
Tomer ABRAMOVICH
Jonathan SCHIPPER
Original Assignee
Gemsense Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemsense Ltd. filed Critical Gemsense Ltd.
Publication of WO2017122198A1 publication Critical patent/WO2017122198A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/217Input arrangements for video game devices characterised by their sensors, purposes or types using environment-related information, i.e. information generated otherwise than by the player, e.g. ambient temperature or humidity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/218Input arrangements for video game devices characterised by their sensors, purposes or types using pressure sensors, e.g. generating a signal proportional to the pressure applied by the player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/98Accessories, i.e. detachable arrangements optional for the use of the video game device, e.g. grip supports of game controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1632External expansion units, e.g. docking stations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/163Indexing scheme relating to constructional details of the computer
    • G06F2200/1637Sensing arrangement for detection of housing movement or orientation, e.g. for controlling scrolling or cursor movement on the display of an handheld computer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Definitions

  • the present invention in some embodiments thereof, relates to a systems and methods for data communication between devices and, more specifically, but not exclusively, to systems and methods for adapting a presentation on a screen of a client terminal based on data received from another device.
  • ITU-T Y 2060 (published on 06/2012) defines the Internet of Things (IoT) as "A global infrastructure for the information society, enabling advanced services by interconnecting (physical and virtual) things based on existing and evolving interoperable information and communication technologies. Through the exploitation of identification, data capture, processing and communication capabilities, the IoT makes full use of things to offer services to all kinds of applications, whilst ensuring that security and privacy requirements are fulfilled. With regard to the Internet of things, this is an object of the physical world (physical things) or the information world (virtual things), which is capable of being identified and integrated into communication networks.” SUMMARY
  • a communication and computing proxy device for attachment to a physical object, comprising: a substantially planar substrate; at least one of a battery holder and an electricity source attached on a first side of the substrate facing the physical object; the following located on a second side of the substrate opposite the first side: at least one electrical contact interface for establishing physical wired electrical contact with at least one extension sensor located on the physical object externally to the communication and computing proxy device; a wired communication interface that communicates over a wired connection with the at least one extension sensor; a wireless communication interface that communicates over a short range wireless communication link with at least one client terminal, the at least one client located externally to the physical object, the wireless communication interface transmitting signals received from the at least one extension sensor.
  • the communication and computing proxy device is designed for detachment from the physical object.
  • the communication and computing proxy device further comprises a
  • USB type C connector the communication and computing proxy device is encased within a casing having an orifice sized and shape for allowing the USB type C connector to connect to an external device.
  • the USB type C connector is connected to the substrate at the first side, and the at least one of a battery holder and an electricity source is connected to the USB type C connected at a side of the USB type C connector facing the physical object.
  • the at least one of a battery holder and an electricity source includes extension tabs that extend past USB type C connector connect to the substrate for providing power.
  • the substrate planar substrate is shaped as substantially circular.
  • the substrate planar substrate is shaped as a polygon.
  • the at least one electrical contact interface are arranged in proximity to the perimeter of the substrate.
  • the communication and computing proxy device further comprises at least one motion sensor.
  • the communication and computing proxy device further comprises a motion processor executing code instructions to receive low-level signal output from the at least one motion sensor, and process the low-level signal output to generate higher- level signals indicative of at least one of: a quaternion, a higher dimension and motion gesture.
  • the communication and computing proxy device further comprises at least one of: a pressure sensor and a temperature sensor.
  • a long axis of the communication and computing proxy device is less than about 20 mm.
  • the communication and computing proxy device further comprises charging circuits for charging a battery held by the battery holder from an external power source.
  • the communication and computing proxy device is encased within a casing.
  • the at least one client terminal is associated with a display that presents information based on data transmitted by the communication and computing proxy device.
  • a system for adaptation of a presentation on a display of a client terminal based on sensor data transmitted wirelessly by a detachable communication and computing proxy device comprising: at least one sensor disposed on a physical object, the at least one sensor outputting at least one signal representing at least one of a sensed human action performed on the physical object and sensed human motion in proximity to the physical object without contacting the physical object; a cradle having a physical interface for physical attachment to the physical object, the cradle sized for insertion within a depression on a surface of the physical object, the cradle forming a physical electrical conductive wired connection between the at least one sensor and a detachable communication and computing proxy device when the detachable communication and computing proxy device is housed within the cradle, the cradle having detachable mechanism for detachably connecting to the detachable communication and computing proxy device; a detachable communication and computing proxy device sized and
  • the at least one client terminal is associated with a display, and the at least one client terminal adapts a presentation presented on the display based on higher- level instructions calculated from low-level commands derived from the at least one signal.
  • the cradle and the detachable communication and computing proxy device are substantially planar such that an outer surface of the cradle and detachable communication and computing proxy device is approximately continuous with the outer surface of the physical object when the detachable communication and computing proxy device is housed in the cradle within the depression.
  • a long axis of the cradle is less than about 20 millimeters.
  • the physical electrical conductive wired connection is formed by male and female pogo-pins physically connecting to one another when the detachable communication and computing proxy device is inserted into the cradle.
  • the physical electrical conductive wired connection is formed by a USB type-C interface physically connecting when the detachable communication and computing proxy device is inserted into the cradle.
  • the cradle further houses a battery for powering the detachable communication and computing proxy device when housed within the cradle.
  • the cradle further houses a charging circuit for charging a battery housed within the detachable communication and computing proxy device when housed within the cradle.
  • the cradle further houses logic circuits that process low-level signal received from at least some of the sensors to create higher-level instructions for execution by code running on the client terminal.
  • the logic circuits receive low-level signals from at least some motion-related detection sensors and outputs higher-level signals indicative of motion gestures.
  • the logic circuits receive low-level signals from at least some motion-related detection sensors in a first dimension and outputs higher-level signals indicative of motion in a second dimension, wherein the second dimension is equal to or higher than the first dimension.
  • the system further comprises a battery having a long battery axis, the detachable communication and computing proxy device having a long detachable communication and computing proxy device axis, the battery and detachable communication and computing proxy devices arranged such that the long battery axis is parallel to the long detachable communication and computing proxy device axis.
  • the battery and detachable communication and computing proxy devices are disposed on opposite sides of a substrate.
  • the long battery axis is equal to or longer than the long computing axis.
  • a flexible substrate provides at least a portion of the physical wired electrical contact between the at least one sensor located on a first side of the battery and the detachable communication and computing proxy device located on an opposite side of the battery, wherein the flexible substrate envelopes at least a portion of the battery.
  • the detachable communication and computing proxy device is transferrable to different cradles physically coupled to different physical objects and different sensors.
  • the physical object is a dumb object without electrical components.
  • the wired connection between the detachable communication and computing proxy device and the at least one sensor comprises a serial communication interface
  • the wireless connection between the detachable communication and computing proxy device and the client terminal comprises a parallel communication interface
  • the program store of the detachable communication and computing proxy device stores instructions to convert between the serial communication interface and parallel communication interface.
  • a computer implemented method for adaptation of a presentation on a display of a client terminal based on sensor data transmitted wirelessly by a detachable communication and computing proxy device comprising: outputting at least one signal by at least one sensor disposed on a physical object, the at least one sensor sensing at least one of a human action performed on the physical object and human motion in proximity to the physical object without contacting the physical object; transmitting the at least one signal over a wired connector; receiving the transmitted at least one signal by a communication and computing proxy device coupled to the physical object, the at least one signal received by a physical electrically conductive connection formed during physical contact between the detachable communication and computing proxy device and the wired connector; processing, by the detachable communication and computing proxy device, the at least one signal for wireless transmission over a short range wireless communication link using a wireless communication protocol; transmitting, by the detachable communication and computing proxy device over the short range wireless communication link, the processed at least one signal to a client
  • the wired connector is located within a cradle located within a depression on a surface of the physical object.
  • the communication and computing proxy device is housed within a cradle located within a depression on a surface of the physical object.
  • the communication and computing proxy device is detachable from the cradle.
  • the at least one sensor comprises a motion sensor
  • the presentation is adapted to represent motion trajectory of a virtual object corresponding to the physical object.
  • the communication and computing proxy device includes code stored in a program store executable by a processor of the communication and computing proxy device, the code comprising instructions for implementing a state machine with sleep state and active duty state, that is awakened when triggered by interrupt based events associated with the at least one sensor and the client terminal, and resumes the sleep state when processing of the interrupt based events is complete to reduce energy consumption.
  • the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a direction command that defines the direction of input or output for a certain sensor of a plurality of sensors.
  • the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a write command including a value which changes a state of the certain sensor; transmitting the value, by the communication and computing proxy device over the wired communication link, to the certain sensor.
  • the method further comprises waiting, by the communication and computing proxy device to receive an acknowledgement message from the certain sensor over the wired communication link; and transmitting the received acknowledge message, by the communication and computing proxy device to the client terminal over the wireless communication link; or transmitting a time-out message by the communication and computing proxy device to the client terminal over the wireless communication link when the communication and computing proxy device waits for a predefined time without receiving the acknowledgement message.
  • the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a read command to receive at least one new signal from the certain sensor; receiving, the at least one new signal by the communication and computing proxy device from the certain sensor over the wired link; and transmitting, the at least one new signal by the communication and computing proxy device to the client terminal over the wireless communication link, to be used for the analyzing.
  • the at least one new signal outputted by the certain sensor is received by the communication and computing proxy device by at least one of: in response to a poll from the communication and computing proxy device, and as an automatic update by an interrupt created by the certain sensor.
  • the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a quick-data-transfer command that defines a bulk transfer of data from a certain sensor of a plurality of sensors to the client terminal; receiving, by the communication and computing proxy device from the certain sensor, an interrupt representing at least one new signal outputted by the certain sensor; and transmitting, the at least one new signal by the communication and computing proxy device to the client terminal over the wireless communication link, to be used for the analyzing.
  • the method further comprises entering a sleep state, by the communication and computing proxy device, in response to receiving the quick-data- transfer command; and awakening from the sleep state in response to receiving the interrupt from the certain sensor.
  • the method further comprises iterating the receiving the interrupt and transmitting the at least one new signal, until a new command is received by the communication and computing proxy device from the client terminal.
  • the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a first block-data- transfer command that defines a plurality of commands for execution by the communication and computing proxy device; wherein a memory associated with the communication and computing proxy device stores the plurality of commands mapped to each block-data-transfer command; and executing, by the communication and computing proxy device, the plurality of commands mapped to the first block-data- transfer command.
  • the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a second block-data transfer command; storing the second block- data transfer command in a queue stored in the memory; and executing, by the communication and computing proxy device, the plurality of commands mapped to the second block-data-transfer command upon completion of execution of the plurality of commands mapped to the first block-data-transfer command.
  • the communication and computing proxy device receives a number of repetitions for execution of the first block-data-transfer command, and the communication and computing proxy device iteratively executes the plurality of commands mapped to the first block-data-transfer command according to the number of repetitions.
  • the method further comprises automatically adapting a communication protocol for the wired communication between the communication and computing proxy device and each sensor according to the hardware implementation of each sensor.
  • the method further comprises providing the higher-level instructions by a higher-level interface of code executing on the client terminal; and receiving the higher-level-instructions from the higher-level interface by an application running on the client terminal.
  • FIG. 1 is a block diagram of components of a system for adaptation of a presentation on a display of a client terminal based on signals outputted by one or more sensor(s) located on a physical object, in accordance with some embodiments of the present invention
  • FIG. 2 is a schematic representing high-level integration between a detachable communication and computing proxy device, a cradle, and a physical object, in accordance with some embodiments of the present invention
  • FIG. 3 is a schematic of an exemplary implementation based on the system described herein, in accordance with some embodiments of the present invention.
  • FIG. 4 is a block diagram depicting another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention
  • FIG. 5 is a block diagram depicting yet another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention
  • FIG. 6 is a block diagram depicting yet another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention.
  • FIG. 7 is a block diagram depicting yet another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention.
  • FIG. 8 is a schematic depicting an exemplary implementation of a detachable communication and computing proxy device integrated within a complex system physical object, in accordance with some embodiments of the present invention.
  • FIG. 9 is a block diagram representing an exemplary implementation of a detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 10 is a circuit diagram of an exemplary implementation of a detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 11 is a diagram of an exemplary state machine executed by the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 12 is a table representing exemplary batteries which may be used to provide power to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 13 is a schematic depicting some exemplary implementations for arranging the battery relative to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 14 includes 3D schematics based on an implementation of FIG. 13, in accordance with some embodiments of the present invention.
  • FIG. 15 is a schematic depicting an exemplary implementation of a cradle, in accordance with some embodiments of the present invention
  • FIG. 16 is a conceptual diagram of an exemplary implementation of a software interface used by applications for communicating with detachable communication and computing proxy devices based on the systems and/or methods described herein, in accordance with some embodiments of the present invention
  • FIG. 17 is code representing an example implementation of the software interface, in accordance with some embodiments of the present invention.
  • FIG. 18 is a code implementation of exemplary services used for wireless communication between the client terminal and detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 19 is a method of communication between the client terminal and sensor through the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 20 is a dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention
  • FIG. 21 is another dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention
  • FIG. 22 is yet another dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention
  • FIG. 23 is yet another dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • FIG. 24 is a block diagram summarizing the communication related commands that may be issued by the client terminal to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • the present invention in some embodiments thereof, relates to a systems and methods for data communication between devices and, more specifically, but not exclusively, to systems and methods for adapting a presentation on a screen of a client terminal based on data received from another device.
  • An aspect of some embodiments of the present invention relates to a cradle that physically and electrically connects a detachable communication and computing proxy device to a physical object, which may be easily attached and removed from the cradle, for example, by a snap in and snap out mechanism, a rotation back and forth that secures and releases, or other detachable mechanisms.
  • the cradle may be installed within a depression on the surface of the physical object, optionally in a secured manner, for example, using screws, glue, or other methods.
  • the cradle may house sensor(s), or provide a wired electrical communication to external sensor(s) located on the physical object.
  • Insertion of the detachable communication and computing proxy into the cradle physically secures the detachable communication and computing proxy to the physical object, and forms an electrically conductive wired communication between the detachable communication and computing proxy and the sensor(s) located within the cradle and/or externally to the cradle.
  • the same detachable and computing proxy may be removed from a first cradle attached to a first physical object, and inserted to a second cradle attached to a second physical object. In this manner, the same cradle may be used by a user, to connect different physical objects to software running on a client terminal, for example, changing objects during a game, for example, from a magic wand to a wheel.
  • the detachable communication and computing proxy device and/or cradle are designed to embed or blend into the physical object, for example, for inserting within an indentation on the surface of the physical object.
  • the detachable communication and computing proxy device and/or cradle are relatively small, for example, a long axis (i.e., the longest dimension along a straight line) being less than about 25 millimeters (mm), or about 20 mm, or about 10 mm.
  • the cradle design allows for different detachable communication and computing proxy devices (which may have different capabilities, for example, different memory storage sizes, and/or processing resources) to be used with different cradles, which may be coupled to different sensors.
  • the same detachable communication and computing proxy device may be inserted and removed from different cradles, allowing the same detachable communication and computing proxy device to be used with different cradles on different physical objects.
  • An aspect of some embodiments of the present invention relates to a method (and/or system that executes the acts of the method) that adapts a presentation presented on a display of a client terminal (e.g., mobile computing device) based on an analysis of low-level signals outputted by one or more sensors located on a physical object.
  • the low-level signals are received over a wired communication link (optionally a serial link) from the sensor by a detachable communication and computing proxy device located on the physical object, optionally via the cradle proving at least part of the wired communication link.
  • the detachable communication and computing proxy device transmits the low-level signals over a wireless communication link (optionally a parallel link) to the client terminal, which is located externally to the physical object.
  • Code executing on the detachable communication and computing proxy device analyzes the low-level signals to generate instructions for adapting a presentation on the display. For example, signals by a motion sensor representing motion of the physical object are translated by code executing on the client terminal (and/or by code executing on the detachable communication and computing proxy device) into instructions for adapting an image presented on the display representing the physical object to represent the corresponding motion of the real physical object.
  • motion sensors located on a plastic steering wheel coupled to the detachable communication and computing proxy device may be used to adapt a driving game being viewed on the display. The user may virtually drive a car by moving the steering wheel, and view how navigation of the car changes on the display. In this manner, simple objects, which may not necessarily have any electrical components (e.g., a plastic toy steering wheel) may be connected to the virtual world and used in software applications.
  • the detachable communication and computing proxy device relies on a user interface in communication with the client terminal for interfacing with a user (i.e., input and/or output), for example, a graphical user interface (GUI) presented on the display of the client terminal.
  • GUI graphical user interface
  • the detachable communication and computing proxy device does not include, and is not in direct communication with a user interface. In this manner, the detachable communication and computing proxy device may be used with different client terminals, which may be executing different applications and/or different GUIs.
  • the client terminal transmits commands to the detachable communication and computing proxy device, to instruct handling of the signals outputted by the sensor(s), and/or to instruct the sensor(s) via the detachable communication and computing proxy device.
  • the client terminal may instruct the detachable communication and computing proxy device per sensor or group of sensors in communication with the detachable communication and computing proxy device.
  • High-level instructions may be stored and executed by the client terminal (e.g., as applications written using an interface to the detachable communication and computing proxy device and/or sensor, such as an application programming interface (API) or software development kit (SDK)) independently of the low-level implementation, without necessarily requiring the programmer to consider the low-level details, such as the computing client hardware and/or the sensor hardware.
  • API application programming interface
  • SDK software development kit
  • the client terminal may instruct the detachable communication and computing proxy device to define the wired link with the sensor as being for input (i.e., data transmission from the detachable communication and computing proxy device to the sensor, for example, to write a value to the sensor) or output (i.e., data from the sensor to the detachable communication and computing proxy device, for example, outputted signals).
  • the client terminal may control the operation of the sensor(s) via the detachable communication and computing proxy device, by transmitting instructions to the detachable communication and computing proxy device to write values to the sensor(s).
  • the client terminal may control which sensor signals it wants to receive, by transmitting instructions to the detachable communication and computing proxy device to transmit values from selected sensor(s) to the client terminal.
  • the client terminal may instruct the detachable communication and computing proxy device to provide bulk data transfer of signals from the sensor(s) to the client terminal, which reduces the number of commands that are issued by the client terminal to receive the signals (e.g., instead o issuing a read command per signal).
  • a set of commands may be stored on a memory of the detachable communication and computing proxy device, optionally by mapping to a command transmitted by the client terminal to the detachable communication and computing proxy device.
  • the set of commands may be executed based on receiving the mapped command by the detachable communication and computing proxy device, which reduces transmission over the wireless link (e.g., instead of having to send the full set of commands).
  • An aspect of some embodiments of the present invention relates to a system that includes a detachable communication and computing proxy device sized and shaped for insertion into a cradle which is connectable to a physical object.
  • the cradle provides a physical electrical link (i.e. wired) between the detachable communication and computing proxy device and one or more sensors located on the physical object, optionally a serial link (e.g., for compactness).
  • the detachable communication and computing proxy device includes a wireless communication interface for communication with one or more client terminals located externally to the physical object, optionally a parallel link (e.g., to reduce power consumption).
  • the detachable communication and computing proxy device stores instructions to convert between the serial and parallel links (and/or between signals and packets or other wireless transmission message formats), to allow communication between the sensors and the client terminal. Signals outputted by the sensors are received by the detachable communication and computing proxy device over the wired channel, optionally processed, and transmitted to the client terminal over the wireless channel.
  • the client terminal includes code to receive the low-level signals, and generate higher- level instructions to adapt a presentation on a display according to the low-level signals.
  • the system links the physical object (which may be a dumb object without pre-existing electrical capabilities) to a virtual world represented by image(s) presented on the display (which may represent the physical object), optionally by adapting the image(s) according to physical changes occurring to the physical object, or in proximity to the physical object.
  • the detachable communication and computing proxy device is designed for compactness.
  • the long axis of the detachable communication and computing proxy device is arranged in parallel with a long axis of a battery.
  • the detachable communication and computing proxy device and battery may be on opposite sides of a substrate.
  • the substrate may be a flexible substrate, that at least partially enveloped the battery, to provide wired links between the detachable communication and computing proxy device (located on one side of the battery) with physical electrical connections to sensors (located on the other side of the battery).
  • the substrate may act as an electrical insulator between components and/or that allows for controlled transmission of signals and/or other electrical transmission between components, such as along predefined wires and/or wireless channels, for example, silicon or other materials.
  • the cradle and/or detachable communication and computing proxy device provide low-level functions, which may be used by programmers to develop applications using higher-level functions defined using the low-level functions, which are executed on the client terminals.
  • the systems and/or methods described herein provide a technical solution to the technical problem of linking physical objects to a virtual environment represented by a presentation on a display of a client terminal.
  • Signals received from sensors located on the physical object transmitted to the client terminal by the detachable communication and computing proxy device are used to adapt a presentation, optionally a rendering and/or other image representing and/or based on the physical object.
  • Real world measurements, for example, motion of the physical object are translated into a virtual counterpart, for adapting the presentation accordingly.
  • the systems and/or methods described herein generate new data, which is physically stored in a location of a memory storage device.
  • the new data includes the sensor outputted signals, and/or the instructions for adapting the presentation based on the sensor outputted signals.
  • the systems and/or methods described herein improve performance of computing systems, such as a client terminal, and/or wireless link (e.g., network), for example, by reducing processor utilization, reducing traffic over the wireless link, reducing storage requirement, and/or reducing power requirements. Improvements may occur, for example, by using the resources of the detachable communication and computing proxy device and sensors to output low-level signals, and using the resources of the client terminal to process the low-level signals into higher-level instructions to adapt a presentation on a display in communication with the client terminal.
  • the detachable communication and computing proxy device and sensors are designed to operate with reduced power consumption, with low processor requirements, and low storage space requirements.
  • the systems and/or methods described herein improve performance of a presentation presented on a display of a client terminal, by providing additional data to adjust the display.
  • the data to adjust the display is obtained by sensors located on a physical real world object. Output from the sensors which perform measurements of the physical object, and/or of the environment around the physical object, is used to adjust the presentation according to the measured real conditions associated with the physical object.
  • the systems and/or methods described herein allow integration of real world objects into the presentation presented on the display.
  • the present invention may be a system, a method, and/or a computer program product.
  • the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
  • the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
  • the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • a non- exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, and any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • SRAM static random access memory
  • CD-ROM compact disc read-only memory
  • DVD digital versatile disk
  • memory stick a floppy disk, and any suitable combination of the foregoing.
  • a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
  • Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
  • a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
  • Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
  • These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • the flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures.
  • two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
  • the detachable communication and computing proxy device described herein is optionally detachable, and may sometimes be interchanged with the term communication and computing proxy device, for example, the communication and computing proxy device may be physically integrated with the physical object such that removal may be performed by damaging the object, or designed for permanent attachment to the physical object, or may be detachable from the physical object but not actually detached in practice.
  • FIG. 1 is a block diagram of components of a system 100 for adaptation of a presentation on a display 102 of a client terminal 104 based on signals outputted by one or more sensor(s) 106 located on a physical object 108, in accordance with some embodiments of the present invention.
  • the outputted signals are transmitted using wired connected through a cradle 110 which houses a detachable communication and computing proxy device 112.
  • Cradle 110 is sized and positioned for physical coupling to physical object 108, for example, by clicking, using screws, using glue, or other physical coupling methods.
  • Detachable communication and computing proxy device 110 transmits the signals to client terminal 104, which analyzes the signals to adapt the presentation on display 102.
  • Client terminal 104 is located externally to physical object 108.
  • System 100 provides an interface for integrating physical object 108, which may not include any pre-existing electrical components, with the presentation on display 102. For example, a user may interact with a GUI presented on display 102, such as a game, by manipulating physical object 108.
  • Cradle 110 may provide a static mechanical connection to physical object 108, and a dynamic electrical connection to detachable communication and computing proxy device 112.
  • the user may connect the same detachable communication and computing proxy device 112 to different physical objects 108 by clicking into respective cradles 110 connected to the physical objects 108, by removing detachable communication and computing proxy device 112 from cradle 110 of one physical object 108, and inserting detachable communication and computing proxy device 112 into another cradle 110 of another physical object 108.
  • Cradle 110 may be relatively simple, providing the electrical connection between detachable communication and computing proxy device 112 and sensors 106 (and/or housing detachable communication and computing proxy device 112), or cradle 110 may include sensors 106 and/or other components (e.g., power, battery charging circuits), which may allow offloading functions (e.g., from detachable communication and computing proxy device 112).
  • sensors 106 e.g., power, battery charging circuits
  • physical object 108 is a dumb object, that does not contain electrical components with communication ability, or does not contain any electrical components.
  • Examples of physical object 108 include: jewelry (e.g., ring, bracelet, necklace), a plastic toy wheel, a toy magic wand, a chair, a book, a pencil, a stapler, and a toy doll.
  • Detachable communication and computing proxy device 112 may act as a communication hub, providing communication services between sensor(s) 106 and client terminal 104.
  • Detachable communication and computing proxy device 112 may function as a sensor hub, communication sensor, and/or processing unit.
  • Detachable communication and computing proxy device 112 interfaces with sensors 106 (which may be located externally to detachable communication and computing proxy device 112 and/or internally within detachable communication and computing proxy device 112) and/or other peripheral devices, using wired and/or wireless communication (e.g., point-to-point, mesh structure, and/or other methods).
  • detachable communication and computing proxy device 112 is sized and shaped for insertion into cradle 108.
  • the coupling between detachable communication and computing proxy device 112 and cradle 108 may be reversible, allowing a user to insert and remove detachable communication and computing proxy device 112 from different cradles 108, or be permanent, integrating detachable communication and computing proxy device 112 with cradle 108.
  • computing 112 may click into cradle 108, or glued to cradle 108.
  • Detachable communication and computing proxy device 112 includes or is in communication with a wired communication interface 116 that provides communication over a physical wired link between a processor 118 of detachable communication and computing proxy device 112 and sensor(s) 106.
  • Sensors 106 may perform measurements (continuously, periodically, and/or when queried) on the environment, for example, motion, temperature, proximity sensor, camera, global positioning sensor (GPS), and pressure.
  • Sensor 106 may sense human motion in proximity to the physical object without contacting the physical object (e.g., user moving arms up and down, user moving left or right, user moving backwards or forwards), for example, motion sensors detecting motion of the user, and cameras detecting movement of the user.
  • Sensors 106 may perform measurements without explicit human action, for example, temperature of physical object 108 is measured without human intervention.
  • Sensors 106 may perform measurements in response to direct human action, for example, a pressure sensor sensing a pressed button.
  • Sensors 106 may perform measurements in response to indirect human action, for example, a motion sensor measuring motion of physical object 108 that is being moved by the user.
  • Sensors 106 may output analogue and/or digital signals.
  • Detachable communication and computing proxy device 112 includes or is in communication with a wireless communication interface 120 that provides communication over a wireless link with client terminal 104, for example, a wireless modem, a local wireless interface (e.g., BLUETOOTH® 4.x based connectivity), wireless local area network, and a cellular interface.
  • a wireless communication interface 120 that provides communication over a wireless link with client terminal 104, for example, a wireless modem, a local wireless interface (e.g., BLUETOOTH® 4.x based connectivity), wireless local area network, and a cellular interface.
  • Detachable communication and computing proxy device 112 includes processor 118, and client terminal 104 includes processor(s) 126.
  • processor 118 and/or processor(s) 126 include, a central processing unit(s) (CPU), a graphics processing unit(s) (GPU), field programmable gate array(s) (FPGA), digital signal processor(s) (DSP), and application specific integrated circuit(s) (ASIC).
  • processor 118 and/or processor(s) 126 may include one or more processors (homogenous or heterogeneous), which may be arranged for parallel processing, as clusters and/or as one or more multi core processing units.
  • Detachable communication and computing proxy device 112 includes a program store 122 storing code instructions implementable by processor 118
  • client terminal 104 includes a program store 128 storing code instructions implementable by processor 126, for example, a random access memory (RAM), read-only memory (ROM), and/or a storage device, for example, non- volatile memory, magnetic media, semiconductor memory devices, hard drive, removable storage, and optical media (e.g., DVD, CD- ROM).
  • RAM random access memory
  • ROM read-only memory
  • storage device for example, non- volatile memory, magnetic media, semiconductor memory devices, hard drive, removable storage, and optical media (e.g., DVD, CD- ROM).
  • Detachable communication and computing proxy device 112 may include or be in communication with a data repository 124 that stores data
  • client terminal 104 may include or be in communication with a data repository 130 that stores data, for example, a set of commands which are mapped to a trigger command.
  • the set of commands may be copied from data repository 130 to data repository 124.
  • the set of commands may be retrieved from data repository 124 and executed by processor 118 when the trigger command is received from client terminal 104.
  • Client terminal 104 may include or be in communication with a user interface
  • a user may enter data and/or display (and/or hear) data, for example, one or more of: a touch-screen, a display, a radiology monitor, a keyboard, a mouse, voice activated software, and a microphone.
  • a touch-screen for example, one or more of: a touch-screen, a display, a radiology monitor, a keyboard, a mouse, voice activated software, and a microphone.
  • Exemplary client terminals 104 include: stationary devices (e.g., server, desktop computer, smart television, and kiosk), mobile devices, handheld devices, Smartphones, Tablet computers, wearable computers (e.g., glasses, watch), headsets (virtual reality, augmented reality).
  • program store 122 stores code instructions for execution by processor 118 of detachable communication and computing proxy device 112, to receive signals outputted by sensors 106 over a wired link (transmitted via cradle 110, using wired communication interface 116 and using electrical contact elements 114), and processing the signals for wireless transmission, for example, by converting analogue signals to digital representation, and/or encapsulating the signals within packets.
  • the code includes instructions to transmit the processed signals, using wireless communication interface 120 to client terminal 105 over a wireless communication link.
  • Program store 128 of client terminal 104 stores code instructions for execution by processor 126 of client terminal 104, to receive the transmitted messages (e.g., packets), and analyze the data to create higher-level instructions.
  • the presentation presented on display 102 is adapted based on the higher- level instructions. For example, signal data representing motion in 3D is converted to instructions to adapt an image to represent the 3D motion.
  • System 100 allows for applications executing on client terminal 104 to connect physical object(s) 108 (via sensors 106 and detachable communication and computing proxy device 112) to the internet-of-things space, and/or generate interaction between several physical objects.
  • the applications may communicate (e.g., using an interface) with detachable communication and computing proxy device 112, control functions of detachable communication and computing proxy device 112, control sensor(s) 106, and process the received signals to adapt a presentation on a display.
  • FIG. 2 is a schematic representing high-level integration between a detachable communication and computing proxy device 212 (e.g., detachable communication and computing proxy device 112), a cradle 210 (e.g., cradle 110), and a physical object 208 (e.g., physical object 108), in accordance with some embodiments of the present invention.
  • FIG. 2 depicts an example of how physical object 208 may be provided with the ability to adjust a presentation on a display of a client terminal.
  • Detachable communication and computing proxy device 212 is designed to fit within a depression 250 in cradle 210.
  • Depression 250 and detachable communication and computing proxy device 212 may have a unique shape that ensures that cradle 210 may only be inserted in a predefined way into cradle 210, such that electrical contact is made between detachable communication and computing proxy device 212 and cradle 210.
  • the shape may provide a secure connection between detachable communication and computing proxy device 212 and cradle 210, for example, a permanent connection, or a connection requiring force for removal (e.g., by clicking in and out).
  • a toy steering wheel 208 (i.e., the physical object), which may be made for example out of plastic, includes a depression 252 designed to house cradle 210 (which houses detachable communication and computing proxy device 212).
  • cradle 210 and connected detachable communication and computing proxy device 212 are inserted into physical object 208, physical object 208 is provided with the ability to adjust the presentation on the display of the client terminal. For example, when cradle 210 includes motion sensors and the presentation displays a scene of a moving car in a game, a user may steer the car on the display using steering wheel 208.
  • FIG. 3 is a schematic of an exemplary implementation 300 based on the system described herein (e.g., system 100 of FIG. 1), in accordance with some embodiments of the present invention.
  • Implementation 300 includes additional optional components.
  • detachable communication and computing proxy devices 302 communicate with a client terminal 304 using a wireless connection 306.
  • Detachable communication and computing proxy device 302 includes an inertial motion unit (EVIU) 308 that includes elements to measure motion, or example, based on micro-electrical mechanical systems (MEMS) devices.
  • a micro controller unit (MCU) 310 provides processing capabilities, optionally using low power and/or at low cost. MCU 310 may provide BLUETOOTHR® Low Energy (BLE) capabilities, and may include a memory (e.g., FLASH memory).
  • a local power unit 312 delivers power provided by a rechargeable battery 314 and/or other power supply (e.g., energy harvesting, wireless charging), optionally via an extension module interface 316.
  • a human-machine interface (HMI) 318 may provide indications to a human, and/or receive input from a human, for example, a haptic element, a vibration element, and a sound generating element.
  • HMI human-machine interface
  • Detachable communication and computing proxy device 302 may be designed for low power consumption (e.g., less than about 5 milliamperes (mA) per hour at full operation), which may allow battery 314 to be a small coin-cell, optionally rechargeable, which may be charged using wired connectivity and/or wireless charging methods.
  • low power consumption e.g., less than about 5 milliamperes (mA) per hour at full operation
  • battery 314 may be a small coin-cell, optionally rechargeable, which may be charged using wired connectivity and/or wireless charging methods.
  • Detachable communication and computing proxy device 302 communicates with one or more extension modules 320 via extension interface 322.
  • Each extension module 320 includes components 324, for example, human-machine interface elements, sensors (e.g., motion, environmental sensors, bio sensors, barometer, proximity sensor, heart rate sensor, image sensor), signal processing capabilities, local memory, and/or power source.
  • Extension module(s) 320 may be encapsulated within a casing and may communicate with detachable communication and computing proxy device 302 via a cradle, as described herein.
  • the cradle may couple extension module(s) 320 to a physical object, as described herein.
  • Client terminal 304 includes code for an operating system platform 350A.
  • Detachable communication and computing proxy device 302 may communicate with client terminal 304 using a BLUETOOTH® 4.x BLE protocol using a BLE PHY 352 and BLE stack 350B.
  • a native software development kit (SDK) 350C utilizes algorithms 305D to define functions that may be used by programmers to write applications that analyze the signals (e.g., from the sensors) received from detachable communication and computing proxy device 302 for adapting a presentation on a display.
  • SDK software development kit
  • SDK plugins for the Unity Game Engine, and/or for other virtual reality (VR) and/or augmented reality (AR) platforms may provide an easy to use interface for programmers using a graphical Integrated Development Environment (IDE) 350E to develop Applications 350F or demo Apps 350G, such as 3D based applications.
  • Code for 350A-350F may be stored in program store 128 and/or data repository 130 for implementation by processor 126 of client terminal 104.
  • FIG. 4 is block diagram depicting another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention.
  • a detachable communication and computing proxy device 412 e.g., detachable communication and computing proxy device 112
  • optional rechargeable battery 450 may be encased and clickable into (and removed from, optionally without requiring special tools) a cradle 410 (e.g., cradle 410) coupled to physical object 408 (e.g., physical object 108).
  • Physical object 408 may be a dumb physical object, without preexisting electrical communication capabilities and/or electrical components.
  • Detachable communication and computing proxy device 412 communicates with client terminal 404 (e.g., client terminal 104) using a wireless connection 452, as described herein.
  • Client terminal 404 may include a wireless connection interface 454 that provides wireless communication capabilities, and an SDK 456 (e.g., library) which may be used by Applications 458 to communicate with detachable communication and computing proxy device 412, control detachable communication and computing proxy device 412, process signals received from sensors, and/or generate instructions to adapt a presentation on a display associated with the client terminal, as described herein.
  • SDK 456 e.g., library
  • FIG. 5 is block diagram depicting another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention.
  • Detachable communication and computing proxy device 512 may communicate with extensions 502 on a physical object 508, which may include electrical connection capabilities, for example, gaming accessories, or wearable devices having electrical-based functions.
  • Detachable communication and computing proxy device 512 connects physical object 508, via extensions 502, for use by applications executing on client terminal 504.
  • Physical objects 508 may be connected to the internet-of-things space, and/or a presentation displayed on a display of client terminal 504 is adapted using data outputted from extensions 502. Extensions 502 may be designed for use with object 508.
  • Extensions 502 include: HMI, buttons, knobs, light emitting diodes (LED), organic LED, motion sensor(s), environmental sensor(s), bio sensor(s), memory, power, and processing capabilities. Extensions 502 may connect to detachable communication and computing proxy device 512 through a physical link that provides communication capabilities provided by cradle 510 (i.e., an extension communication channel). The physical link is established when detachable communication and computing proxy device 512 is clicked into cradle 510, and may be enabled by application 558.
  • a physical link that provides communication capabilities provided by cradle 510 (i.e., an extension communication channel). The physical link is established when detachable communication and computing proxy device 512 is clicked into cradle 510, and may be enabled by application 558.
  • the extension communication channel may include digital and/or analogue input/output (I/O) support, serial bus interfaces, and/or a power supply.
  • Detachable communication and computing proxy device 512 may act as a bus master controlling data reception from extensions 502, transmitting commands, and providing power when required.
  • Detachable communication and computing proxy device 512 may control payload flow (e.g., control signals and/or data) between client terminal 504 and extensions 502, by acting as a signal transmission conduit that converts the payload to allow communication over the wired (optionally serial) and wireless (optionally parallel) links.
  • Client terminal 504 may issue commands to control extensions 502.
  • Client terminal 504 may process the signals received from extensions 502 using SDK 556, which allows for programmers to write applications 558 without considering the actual low-level implementation of extensions 502, and/or without requiring hardware and/or firmware adaptation.
  • SDK 556 may provide the same or similar high-level functions to application 558 using different low-level extension 502 implementations.
  • FIG. 6 is block diagram depicting yet another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention.
  • the implementation of FIG. 6 may extend functions of smart physical objects 608 that include extensive electrical communication capabilities (e.g., wearable medical devices), by adapting a presentation displayed on a display of client terminal 604 using data outputted from physical object 608 (i.e., from an extension 602 of object 608).
  • Detachable communication and computing proxy device 612 may be used as a wireless communication hub and/or motion sensing signal source.
  • Extension(s) 602 of object 608 may include processing capabilities, memory, sensor(s), and/or power.
  • Detachable communication and computing proxy device 612 may physically connect to extension 602 via cradle 610, for example, by forming the extension communication channel as described herein.
  • Detachable communication and computing proxy device 612 may receive power from object 608 via extension 602.
  • Detachable communication and computing proxy device 612 provides communication between extension 602 of object 608 and application 658 running on client terminal 604.
  • Application 658 may control extension 602, and/or receive data (e.g., signals) from extension 602.
  • extension 602 may request sensor data from detachable communication and computing proxy device 612, process the data, and send the data to application 658 using the communication services provided by detachable communication and computing proxy device 612.
  • FIG. 7 is block diagram depicting yet another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention.
  • Detachable communication and computing proxy device 712 servers as a component within a complex system physical object 708 that includes multiple electrical components such as extensions 702.
  • Detachable communication and computing proxy device 712 connects complex system object 708 with client terminal 704, to adapt a presentation presented on a display of client terminal 704 according to data outputted by complex system object 708.
  • Detachable communication and computing proxy device 712 may be directly integrated with complex system object 708 without a cradle and/or casing and/or battery.
  • detachable communication and computing proxy device 712 is connected (e.g., glued, soldered, or crimped) to complex system object 708, such as to a motherboard or other hardware components. Electrical connections of detachable communication and computing proxy device 712 may be connected to corresponding connections on the motherboard to provide connectivity to extension(s) 702.
  • FIG. 8 is a schematic depicting a top vide 802 and cross sections side view 804 of an exemplary implementation of a detachable communication and computing proxy device 812 designed for integration within a complex system physical object (e.g., object 708 of FIG. 7), in accordance with some embodiments of the present invention.
  • Detachable communication and computing proxy device 812 includes processing capabilities, wired and wireless communication interfaces, and optionally sensor(s), as described herein.
  • Detachable communication and computing proxy device 812 is connected to a substrate (e.g., breadboard) 850, which includes on-board extensions 802A-C (e.g., one or more of sensors 802A, HMI elements 804B, and power and/or charging circuits 802C) and other electrical components, such as a battery 852, a switch 854 (to manually turn device 812 on or off or for a hard reset), a USB type B/C connector 856, and extension pads 858. Extension pads 858 and USB connector 856 may allow further extensions, by connecting with other devices and/or components. Extension pads 858 may be arranged ix proximity to the perimeter of substrate 850 (e.g., without other components between the pads and the perimeter edge of the substrate), which may allow easy access to external connectors.
  • a substrate e.g., breadboard
  • extensions 802A-C e.g., one or more of sensors 802A, HMI elements 804B, and power and/or charging circuits 802C
  • Sensors 802A may include pressure sensors, temperature sensors, motions sensors, and/or other sensors as described herein. Low-level signals outputted by sensors 802A may be processed into high-level data, for example, by a motion processor that outputs higher-dimensional motion data, motion gestures, a quaternion, or other higher- level data.
  • An antenna 860 provides a wireless communication interface that provides communication over a short range wireless link with a client terminal.
  • Connector 862 may provide an electrical connection between extension pads
  • Connector 862 may provide physical contact to secure substrate 850 to the physical object and/or to a cradle, as a permanent connection interface or detachable connection mechanism.
  • Substrate 850 is substantially planar, having a mostly flat and/or smooth-like surface. Substrate 850 may have a uniform shape, or be shaped according to the surface of the physical object (e.g., rounded).
  • LEDs 864 and accessory LEDs 868 may provide visual output to a user, for example, indicating whether device 812 is on or off, indicating whether wireless communication is established with a client terminal, indicating whether wired communication is established with sensor(s), and/or indicating whether an error occurred (which may require a hard rest), for example, using different LED colors and/or different flashing patterns.
  • Battery 852 may be attached on one side of substrate 850 facing the physical object.
  • the other components e.g., extensions 802A-C, switch 854, USB type B/C connector 856, extension pads 858, antenna 860, LEDs 864-868, and detachable communication and computing proxy device 812 are located on the other opposite side of substrate 850 (i.e., the side not facing the physical object).
  • substrate 850 is shaped as a circle, polygon, or other shapes, which may be designed according to the hosting physical object, such as according to the surface profile of the physical object.
  • the dimension (e.g., long axis, diameter) of substrate 850 may be, for example, less about 30 mm, or 25 mm, or 20 mm, or 15 mm, or 10 mm, or 5 mm, or other values.
  • Arrows 860A-D represent exemplary dimensions, for example, 860A represents about 9-9.5 mm, 860B represents about 7-8 mm, 860C represents about 9-9.5 mm, and 860D represents about 20-22 mm.
  • FIG. 9 is a block diagram representing an exemplary implementation of a detachable communication and computing proxy device 912 (e.g., detachable communication and computing proxy device 112 of FIG. 1), in accordance with some embodiments of the present invention.
  • Detachable communication and computing proxy device 912 may include one or more hardware and/or software components, MCU 950, IMU 952, HMI 954, power 956, and extension 958.
  • MCU 950 provides communication between the client terminal and sensors (which may be located within extensions), as described herein.
  • MCU 950 may be implemented as a single system on a chip component, and may include programmable software (e.g., processor 118 and/or program store 122).
  • MCU 950 may control other internal peripherals, provide communication with extensions and/or sensors via wired links, and provide communication with the client terminal over a wireless link (e.g., using a BLE stack).
  • MCU 950 may control power dissipation using power preservation methods.
  • MCU 950 may perform local signal processing, for example, motion signal processing using data provided by IMU 952.
  • Exemplary components of MCU 950 include: processor (e.g., processor 118, such as ARM cortex M3/M4F), memory (e.g., program store 112, internal and/or external, volatile and/or non- volatile), wired communication element (e.g., element 116, digital and/or analogue, I/O, serial and/or parallel), wireless communication element (e.g., element 120, softcore BLE stack, hardcore PHY coupled by an external antenna), near field communication (NFC) interface, battery chargers, and power control circuits.
  • Firmware e.g., embedded real-time software
  • firmware may be executed by a built-in embedded operation system.
  • IMU 952 may include a motion sensor that generates signals representative of motion, optionally in three dimensions.
  • IMU 952 (or code executing on the client terminal) may analyze the signals (e.g., using a 9-axis sensor fusion, using calibration, and/or Kalman filter technique) to generate a quaternion, simple gestures, and/or motion tracking.
  • the outputted signals may be further processed by code executing on the client terminal, to detect gestures and/or classify the motion for adapting a presentation on a display according to the motion, for example, adapting an image according to the detected gesture.
  • IMU 952 may be based on a 9-axis MEMS sensor, single-chip or dual- chip, for example, one or more of: a 3-axis accelerometer, a 3-axis gyroscope, a 3-axis compass, a temperature sensor (which may be used for calibration), and a digital motion sensor. Other sensors may be included to improve the motion detection, for example, pressure sensors, proximity sensors, camera, and GPS that allows for triangulation.
  • HMI 954 includes input and/or output elements designed for human interaction.
  • exemplary input elements include a microphone, and push buttons.
  • exemplary output elements include LED and a vibration element.
  • Power element 956 provides electrical power to detachable communication and computing proxy device 912, for example, a power supply, battery charging circuitry (e.g., based on wired or wireless charging), power control, power distribution, energy harvesting (e.g., piezo-electric elements, heat conversion element, and solar cells).
  • battery charging circuitry e.g., based on wired or wireless charging
  • power control e.g., power control
  • power distribution e.g., energy harvesting (e.g., piezo-electric elements, heat conversion element, and solar cells).
  • Extension element(s) 958 (e.g., electrical contact element 114 and/or wired communication element 116) provides a wired link to the sensors and/or extensors (e.g., the extension communication link). Data communication may be provided to MCU 950, via a bridge circuit which as an interface to extension element 958. Extension element(s) 958 may include electrostatic discharge (ESD) protection circuits that protect from power surges.
  • ESD electrostatic discharge
  • the physical extension connection (e.g., electrical contact element 114) provided by extension element 958 may be implemented, for example, as a multi- pin USB type-C connector, and/or pogo pins (which do not necessarily require board connectors) for example as described with reference to United States Patent No. 6844749.
  • FIG. 10 is a circuit diagram of an exemplary implementation of a detachable communication and computing proxy device (e.g., detachable communication and computing proxy device 912 of FIG. 9, and/or detachable communication and computing proxy device 112 of FIG. 1), in accordance with some embodiments of the present invention.
  • a detachable communication and computing proxy device e.g., detachable communication and computing proxy device 912 of FIG. 9, and/or detachable communication and computing proxy device 112 of FIG. 1
  • FIG. 11 is a diagram of an exemplary state machine 1100 implemented by the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • State machine 1100 may be stored as code implemented by the detachable communication and computing proxy device (e.g., code stored in program store 122 executable by processor 118 of detachable communication and computing proxy device 112 of FIG. 1, and/or MCU 950 and/or IMU 952 of detachable communication and computing proxy device 912 of FIG.
  • state machine 1100 that includes instructions for implementing state machine 1100 with sleep states (e.g., sleep 1106, deep sleep 1108, which may be entered as represented by arrows 1110) and active duty state 1102, that is awakened when triggered by interrupt based events associated with sensors, extensions, and/or the client terminal, and resumes the sleep state when processing of the interrupt based events is complete (e.g., to reduce energy consumption), in accordance with some embodiments of the present invention.
  • the code may be designed to remain in the sleep state for as long as possible, as frequently as possible.
  • the code may perform functions such as control of sensors and/or other extension based devices, signal processing, communication control, and power management.
  • Arrows 1104 represent dataflow of an initialization loop, which is triggered by a power-up sequence or a hard reset 1106.
  • hardware and/or software e.g., of detachable communication and computing proxy device
  • State machine 1100 moves to the main active state 1102 and enters deep sleep 1108 state.
  • a watch-dog 1112 (which may be hardware based) is designed to be acknowledges periodically (e.g., by software), for example, about once a second or other predefined times. When the predefined time passes without watch-dog 1112 receiving the acknowledgement, watch-dog 1112 performs reset 1106.
  • State machine 1100 moves from sleep 1106 or deep sleep 1108 to active state 1102 when awakened by interrupt based events.
  • Interrupts may be triggered, for example, by internal components (e.g., MCU internal peripherals), and external signals (e.g., from sensors and/or extensions).
  • Actions that may be performed during active state 1102 are represented by arrows 1114 to tasks & algorithms 1116 (e.g., processing data, communicating with sensors, communicating with the client terminal).
  • tasks & algorithms 1116 e.g., processing data, communicating with sensors, communicating with the client terminal.
  • state machine 1110 moves to active state 1102 to perform one or more state machine events represented by arrows 1118.
  • BLE pairing state 1128 may be entered to search for a client terminal with which to establish a connection.
  • deep sleep state 1108 may be re-entered.
  • the BLE stack may wake up state machine 1100 to transfer a new data packet to and/or from the client terminal.
  • the stack may transfers the packet from a dedicated first-in-first-out (FIFO) queue.
  • FIFO first-in-first-out
  • Peripheral state 1122 e.g., MCU internal peripherals
  • IMU 1126 and/or extension state 1124 may wake up state machine 1100 using one or more methods.
  • MCU internal pre-programmed timers may be used when polling is used a method of communication.
  • State machine 1100 may be woken up by a dedicated peripheral timeout event, initiating a read and/or write transaction.
  • Direct Interrupt logic may be used to wake up state machine 1100 and initiate a data or control transaction.
  • State machine 1100 may execute code to detect errors in sensors, extensions, and/or internal components (e.g., MCU modules, peripherals). When an error is detected, state machine 1100 may move to error state 1130. A hard reset may be required to exit error state 1130 and enter reset state 1106.
  • State machine 1100 code may be downloaded, for example, through dedicated pads using a programming Jig (e.g., part of the firmware), and/or using an over the air boot loader allowing consecutive updates to be performed wirelessly.
  • a programming Jig e.g., part of the firmware
  • FIG. 12 is a table representing exemplary rechargeable batteries (e.g., lithium-ion) which may be used to provide power to the detachable communication and computing proxy device (e.g., 112) and/or to sensors (and/or extensions), in accordance with some embodiments of the present invention.
  • Battery charging circuits may be provided, for example, as described herein.
  • Charging circuits may be provided within detachable communication and computing proxy device 112, or located on an external element (which may reduce the size and/or cost of the detachable communication and computing proxy device). Charging may be performed using a wire connection (e.g., using a physical connector) or using a wireless connection (e.g., using inductive charging).
  • the cradle may be used as the charger, for example, when the detachable communication and computing proxy device uses pads to connect to sensors and/or extensions (i.e., does not include a physical connector).
  • the battery may be selected to be as small as possible, while providing for as many working hours as possible before a re-charge is required, for example, Lithium Manganese Dioxide (LIR) or PD based batteries.
  • FIG. 13 is a schematic depicting some exemplary implementations 1300A-D for arranging a battery 1302A-B relative to a detachable communication and computing proxy device 1312 (e.g., corresponding to 112, and/or 912), in accordance with some embodiments of the present invention.
  • the battery-detachable communication and computing proxy device combination may be inserted within the cradle (e.g., 110) for connection to sensors (e.g., 106), which may be located on physical object (e.g., 108).
  • Battery 1302A-B includes a long battery axis, which is an imaginary straight line connecting the two furthest points, for example, when the battery is coin shaped, the axis is the diameter, when the battery is rectangular (i.e., box) the axis is the length.
  • Detachable communication and computing proxy device 1312 includes a long detachable communication and computing proxy device axis. Battery 1302A-B and detachable communication and computing proxy device 1312 are arranged such that the long battery axis is parallel to the long detachable communication and computing proxy device axis. In this manner, the surface profile may be reduced when the detachable communication and computing proxy device and battery are coupled to the physical object.
  • Implementations 1300A-B depict an arrangement in which battery 1302A is about the same length as detachable communication and computing proxy device 1312 (e.g., as measured based on respective long axes).
  • Implementations 1300C-D depict an arrangement in which battery 1302B is longer than detachable communication and computing proxy device 1312.
  • Implementation 1300A includes a connector 1350 located between battery 1302A and detachable communication and computing proxy device 1312, for example, a USB connector.
  • Connector 1305 may be located at the edges of detachable communication and computing proxy device 1312 and battery 1302, which may allow battery 1302 to be glued 1370 to detachable communication and computing proxy device 1312.
  • Implementations 1300B-1300D depicts battery 1302A-B and detachable communication and computing proxy device 1312 disposed on opposite sides of a substrate, for example, silicon.
  • substrate 1306A-C is a flexible substrate that provides at least a portion of the physical wired electrical contact (e.g., via pads 1352, which may connect with a cradle) between sensors located on one side of the battery and the detachable communication and computing proxy device located on the opposite side of the battery.
  • the flexible substrate may envelope at least a portion of the battery.
  • the flexible substrate may include pogo-pads on its bottom side to reversibly connect with pogo-pins located on the cradle.
  • battery 1302A may be glued (or connected using other methods) to detachable communication and computing proxy device 1312, with the VCC side soldered (or using other connection methods) to a hardware board or cradle, and GND soldered (or using other connection methods) to a ground plane on flexible substrate 1306A.
  • antenna 1360 for wireless communication with the client terminal, LED 1362 (e.g., which may light up when detachable communication and computing proxy device 1312 is operating), pads 1364 that may be connected to a hardware board having additional circuitry (e.g. complex system object as described herein), and other internal components 1366 (e.g., motion sensor, additional memory).
  • LED 1362 e.g., which may light up when detachable communication and computing proxy device 1312 is operating
  • pads 1364 that may be connected to a hardware board having additional circuitry (e.g. complex system object as described herein), and other internal components 1366 (e.g., motion sensor, additional memory).
  • additional circuitry e.g. complex system object as described herein
  • other internal components 1366 e.g., motion sensor, additional memory
  • battery 1302B is displaced relative to detachable communication and computing proxy device 1312, such that the long axes line up at one end.
  • battery 1302B is approximately centered relative to detachable communication and computing proxy device 1312 (e.g., based on the respective long axes).
  • USB type-C connector 1350 or 856 is attached between (e.g., glued, clamped) to battery 1302A or 852 and board 1412 or 850 that includes detachable communication and computing proxy device 1312 or 812 (and/or other components shown in FIG. 8 on the side of substrate 850 opposite battery 852).
  • USB type C connector 1350 856 is attached to the side of substrate 1312 1412 850 facing the physical object, with battery 1302A 852 attached to the lower side of USB type C connector 1350 856 facing the physical object.
  • Battery includes tabs 1450 that extend past USB type C connector 1350 856 to physically connect to substrate 1312 1412 850.
  • Casing 1402 houses battery 1302A 852, board 1412 856 and/or detachable communication and computing proxy device 1312.
  • Casing 1402 includes an orifice 1420 sized and/or shaped to allow USB type C connector 1350 856 to connect to an external device.
  • FIG. 15 is a schematic depicting an exemplary implementation of a cradle 1510 (e.g., corresponding to cradle 110) connecting a detachable communication and computing proxy device 1512 (e.g., corresponding to detachable communication and computing proxy device 112) to a physical object 1508 (e.g., corresponding to physical object 108), in accordance with some embodiments of the present invention.
  • a detachable communication and computing proxy device 1512 e.g., corresponding to detachable communication and computing proxy device 112
  • a physical object 1508 e.g., corresponding to physical object 108
  • Cradle 1510 forms a physical electrical conductive wired connection between sensor(s) 1506 and detachable communication and computing proxy device 1512 when detachable communication and computing proxy device 1512 is housed within the cradle 1512 by a detachable mechanism for detachably connecting to detachable communication and computing proxy device 1512, for example, a twist and lock mechanism, a snap in and out mechanism, a connector based mechanism (e.g., connecting using USB type C connector 1550).
  • a detachable mechanism for detachably connecting to detachable communication and computing proxy device 1512 for example, a twist and lock mechanism, a snap in and out mechanism, a connector based mechanism (e.g., connecting using USB type C connector 1550).
  • cradle 1510 the detachable communication and computing proxy device 1512 are substantially planar.
  • the outer surface of cradle 1510 and detachable communication and computing proxy device 1512 may be approximately continuous with the outer surface of the physical object 1508 (or may be slightly elevated above the outer surface to allow removal) when detachable communication and computing proxy device 1512 is housed in cradle 1510 within the depression on physical object 1508.
  • a long axis of the cradle is less than about 30 mm, or 25 mm, or 20 mm, or 15 mm or 10 mm.
  • the cradle is shaped as a circle, or polygon.
  • cradle 1510 houses a battery 1560 (optionally rechargeable) for powering detachable communication and computing proxy device 1512 when housed within cradle 1510.
  • Battery 1560 may charge an internal battery of detachable communication and computing proxy device 1512, and/or provide power to detachable communication and computing proxy device 1512. Power may be transmitted by one or more of the physical electrical connections (e.g., connector 1552, 1550, or others).
  • cradle 1510 houses a charging circuit 1562 for charging battery 1560 housed within cradle 1510 and/or for charging an internal battery housed within detachable communication and computing proxy device 1512.
  • the charging may be performed when detachable communication and computing proxy device 1512 is housed within cradle 1510 via the physical electrical connectors (e.g., 1552, 1550, or others).
  • cradle 1510 the cradle houses logic circuits 1564 (and/or code implemented by a processor within the cradle) that process low-level signal received from at least some of sensors 1506 to create higher-level instructions for execution by code running on the client terminal.
  • Logic circuits 1564 may receive low-level signals from at least some motion-related detection sensors (e.g., as described herein) and output higher-level signals indicative motion gestures, motion trajectory, a higher dimension of motion, or other high-level motion data (equal to or higher dimensions than outputted by the sensors).
  • Cradle 1510 houses detachable communication and computing proxy device 1512 on physical object 1508.
  • Cradle 1510 provides physical wired electrical channels for communication between sensors 1506 (and/or extensions) and detachable communication and computing proxy device 1512.
  • Cradle 1510 may be physically connected to detachable communication and computing proxy device 1512 at harness 1558.
  • Sensors 1506 located on physical object 1508 output signals representing a sensed human action performed on the physical object 1508 (e.g., pressure, motion of the physical object), and/or sensed environmental conditions in proximity to physical object 1508 (e.g., temperature, motion of the user in proximity to the physical object).
  • a sensed human action performed on the physical object 1508 e.g., pressure, motion of the physical object
  • sensed environmental conditions in proximity to physical object 1508 e.g., temperature, motion of the user in proximity to the physical object.
  • Cradle 1510 may contain, for example, electrical circuits for charging detachable communication and computing proxy device 1512, a battery for powering detachable communication and computing proxy device 1512, sensors 1506 (and/or other sensors), and/or other components for interaction with detachable communication and computing proxy device 1512.
  • Cradle 1510 may fit into a predefined location on physical object 1508, for example, an indentation on the surface, and/or may be coupled to the surface of physical object 1508 by a physical attachment interface, for example, by screws, glue, a snap-in mechanism, crimping, or other methods. Cradle 1510 may be physically attached to physical object 1508 at harness 1556.
  • Cradle 1510 may connect to sensors and/or extensions 1506 using a harness and connector.
  • Schematics 1500A represent a pogo-pin based connection mechanism for connecting detachable communication and computing proxy device 1512 to cradle 1510.
  • Contacts 1552 e.g., female on detachable communication and computing proxy device 1512, pogo-pins on cradle 1510 are positioned against one another when detachable communication and computing proxy device 1512 is inserted into cradle 1510, forming a physical electrically conductive connection.
  • Connection 1554 provides a physical electrically conductive connection between cradle 1510 and sensor(s) 1506.
  • Schematic 1500B represents a USB type-C based connection 1550 for connecting detachable communication and computing proxy device 1512 to cradle 1510.
  • Detachable communication and computing proxy device 1512 may be clicked into cradle 1510 and shifted or rotated (e.g., horizontally, clockwise) to connect female type USB type-C connectors to the male connectors on cradle 1510.
  • FIG. 16 is a conceptual diagram depicting components (e.g., modules, code, functions, applications) of an exemplary implementation of a software interface 1600 that is used to develop applications based on the systems and/or methods described herein, in accordance with some embodiments of the present invention.
  • FIG. 16 may represent an API, and SDK, a library, or other interfaces, which may be stored, for example, as files, as code, as a script, as compiled instructions, or in other formats.
  • Interface 1600 allows applications to control detachable communication and computing proxy device, receive data from sensors and/or extensions, process the data, and/or write data to sensors and/or extensions.
  • Interface 1600 is designed to support different operating systems on different devices (e.g., desktop computers, laptop computers, mobile devices, Smartphones, Tablets, wearable computers, glasses computers, and watch computers). Interface 1600 is designed to provide communication with multiple detachable communication and computing proxy devices at the same time. Exemplary supported data transfer rates include up to about 400 Hertz (Hz) per detachable communication and computing proxy device (e.g., about 64 kilobits per second).
  • Hz Hertz
  • Interface 1600 provides high-level functions for use by programmers, without necessarily requiring knowledge of the low-level implementations. Knowledge of the actual sensors and/or extensions is not required a-priori. Interface 1600 may receive low-level signals from sensors, and convert the low-level signals to higher-level instructions (e.g., code) which may be used to adapt a presentation on a display of the client terminal, for example, translating low-level motion based data to higher-level gesture trajectories.
  • higher-level instructions e.g., code
  • Interface 1600 may be conceptually organized into multiple layers.
  • Layer 1602 includes a BLUETOOTH® 4.x stack (or other wireless communication protocols, optionally low-energy and/or short range), which may be part of operating system 1604, and/or part of SDK 1600.
  • Layer 1606 includes a BLUETOOTH® (or other wireless communication protocol) service that provides piped data and/or control services to applications 1608.
  • Layer 1606 includes communication functions to allow communication with one or more detachable communication and computing proxy devices, and may be accessed by one or more applications 1608.
  • Layer 1608 includes a low-level API for use by applications 1608 to provide connection services to the detachable communication and computing proxy device(s) and raw data callback functions, for example, to control reception of low-level data, such as signals outputted by the sensors.
  • Algorithms and utilities 1610 may provide functions that process the low-level data into higher-level instructions that may be used to adapt images on a display, for example, translation of signals outputted by motion sensors into gesture recognition and/or motion classification.
  • Layer 1612 includes higher-level interfaces, such as plugins to integrated development environments (IDE) or example, Unity and Unreal engines, for rapid development of graphical applications. Layer 1612 may provide an interface to the higher-level data processed by algorithms 1610, for example, the gestures.
  • IDE integrated development environments
  • Unity and Unreal engines for rapid development of graphical applications.
  • Layer 1612 may provide an interface to the higher-level data processed by algorithms 1610, for example, the gestures.
  • Layer 1608 includes the actual applications that use the described interfaces to adapt displayed images, for example, to move an image on the screen corresponding to the physical object based on gesture trajectories calculated from motion sensors located on the object and transmitted by the detachable communication and computing proxy device. Multiple applications may run in parallel, each accessing multiple detachable communication and computing proxy devices in parallel.
  • FIG. 16 is shown by the code of FIG. 17, in accordance with some embodiments of the present invention.
  • FIG. 18 is an example of a code implementation of exemplary services used for wireless communication between the client terminal and detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • the code may be based on the BLUETOOTH® 4.x protocol.
  • FIG. 19 is a method of communication between the client terminal and sensor through the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • the method may be implemented by system 100 of FIG. 1, and/or by other implementations of the system described herein.
  • the method adapts a presentation presented on a display of a client terminal based on signal data received from sensors located on a physical object (which is not physically connected to the client terminal).
  • the signal pathway includes a wired link between the sensor(s) and a detachable communication and computing proxy device (located on the physical object) and a wireless link between the detachable communication and computing proxy device and client terminal.
  • the method allows for real-world actions (e.g., motion, pressure) performed on the physical object to be translated into virtual changes reflected by adapting a presentation associated with the physical object.
  • the detachable communication and computing proxy device may be inserted by a user into the cradle, for example, by clicking into the cradle, by connecting a physical interface with the cradle (e.g., USB type C connector), by rotating to lock, or other detachable mechanisms.
  • the detachable communication and computing proxy device is pre-installed in the cradle and/or the physical object.
  • the communication and computing proxy device is fixed to the physical object, and/or attached (optionally detachable) to a connector coupled to the physical object.
  • the detachable communication and computing proxy device automatically adapts to the environment, including the sensor hardware and/or cradle.
  • code executed by a processor of the detachable communication and proxy device automatically adapts a communication protocol for the wired communication between the detachable communication and computing proxy device and each sensor according to the hardware implementation of each sensor.
  • the adaptation may be performed by self-check and/or auto-configuration code.
  • the code may load additional code for receiving and processing motion sensor data.
  • the code may load additional code for receiving and processing pressure data.
  • initialization and/or configuration instructions transmitted (e.g., as packets) by the client terminal over the wireless link are received by the detachable communication and computing proxy device.
  • the instructions define the direction of transmission (for input or output) of signals between the sensor(s) and client terminal, for example, when the channel is narrow allowing for serial input or output at a time (e.g., based on serial wired links between the detachable communication and computing proxy device and sensor(s)).
  • the instructions may define which sensor data is to be received, for example, when multiple and/or different sensor(s) are in communication with the detachable communication and computing proxy device, and data is only required from some of the sensors.
  • the instructions may define start of a bulk transmission of signal data from the sensors.
  • the instructions may write to one or more sensors, and/or one or more components of the extensions, for example, the instructions may activate an LED, or adjust settings of the sensor.
  • the detachable communication and computing proxy device may receives the write instructions from the client terminal and perform the write based on the instructions. For example, the instructions from the client terminal may be provided in a higher-level format, and the detachable communication and computing proxy device may translate the instructions to a lower-level format according to the actual hardware implementation of the sensor.
  • the detachable communication and computing proxy device receives, over the wired communication link, signal(s) outputted by sensor(s) (e.g., the selected sensor), via a wired connector, optionally the cradle.
  • sensor(s) e.g., the selected sensor
  • the sensors are located on the physical object, within the cradle, externally to the cradle, and/or within the detachable communication and computing proxy device.
  • the sensors may output signals in response to the environment around the physical object, for example, temperature around the object (e.g., by a temperature sensor), the user moving closer or further away from the object (e.g., by a camera or proximity motion sensor), and/or in response to actions performed by the user on the physical object, for example, movement of the object (e.g., motion sensors that measure rotation and/or displacement), forces applied on the object (e.g., pressure sensors that measure applied pressure) or other data.
  • temperature around the object e.g., by a temperature sensor
  • the user moving closer or further away from the object e.g., by a camera or proximity motion sensor
  • actions performed by the user on the physical object for example, movement of the object (e.g., motion sensors that measure rotation and/or displacement), forces applied on the object (e.g., pressure sensors that measure applied pressure) or other data.
  • the sensors may output low level signals, which may represent raw data.
  • the raw data may be processed into higher level data, by a processor at the detachable communication and computing proxy device and/or by code running on the client terminal.
  • the low level signals may be processed into higher level data which may represent the same or higher dimension (e.g., sensors output 2D data that is processed into 3D data, or sensors output 3D data that is processed into 4D data such as motion gestures and motion trajectory).
  • Data from multiple sensors may be integrated into a single set of higher level instructions, for example, different motion sensors measure different aspects of motion may be integrated into a single set of higher level motion.
  • the signals are transmitted through a wired connection, optionally provided by the cradle.
  • the detachable communication and computing proxy device may receive the signal(s) as an interrupt (and/or after an interrupt), such as to awaken the detachable communication and computing proxy device from the sleep state, as described herein.
  • the detachable communication and computing proxy device may receive the signal(s) as a response to a poll requesting the signal(s), for example, to receive signals upon request (i.e., when needed) rather than receiving a continuous stream of signals (which may require continuous processing even when not needed).
  • the detachable communication and computing proxy device processes the signals for wireless transmission.
  • the detachable communication and computing proxy device may convert analogue signals to digital signals.
  • the detachable communication and computing proxy device may pack the signals into packets and/or other formats based on wireless communication formats.
  • the detachable communication and computing proxy device may perform other low-level signal processing, for example, merge signals from different motion sensors (e.g., representing different axes) into a vector representing higher-dimensional motion.
  • the detachable communication and computing proxy device transmits, over the wireless communication link, the processed signals to the client terminal (which is located externally to the physical object), for example, as packets using the BLUETOOTH® protocol.
  • the client terminal receives and analyzes the signal(s), which represent low-level data, to create higher-level instructions, for example, using software interfaces (e.g., API, SDK), as described herein.
  • software interfaces e.g., API, SDK
  • low-level motion data is converted into a trajectory.
  • the low-level data is received by a low-level interface.
  • the low-level interface may provide the low-level data (optionally after low-level processing) to a higher-level interface, which may perform high-level processing (e.g., as described herein).
  • the higher-level instructions may be provided to a software application by the higher-level interface.
  • the software application may control the presentation displayed on the screen.
  • a presentation presented on a display in association with client terminal is adapted based on the created higher- level instructions, for example, as described herein.
  • presented images on the screen representing the physical object are adapted in response to the actions performed on the object, for example, an image of a magic wand on the screen is moved in real-time according to the user moving a physical magic wand object.
  • FIG. 20 is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2006 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2004 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2012 (e.g., detachable communication and computing proxy device 112 of FIG.
  • the method provides a protocol for writing to a sensor, and/or reading from a sensor, such as when the wired link is a serial link allowing transmission of data in different directions only at separate times.
  • a direction configuration command representing read or write is received by detachable communication and computing proxy device 2012 from client terminal 2004 over wireless channel 2050.
  • a write command is received by detachable communication and computing proxy device 2012 from client terminal 2004 over wireless channel 2050.
  • the write command may define which sensor(s) to write the value to, and includes a value to be written to sensor 2006.
  • the write command is written to sensor 2006 by detachable communication and computing proxy device 2012 over wired link 2052.
  • a read command is received by detachable communication and computing proxy device 2012 from client terminal 2004 over wireless channel 2050.
  • the read command may define the one or more sensors 2006 from which the data is to be read.
  • detachable communication and computing proxy device 2012 receives data (e.g., signal(s)) from sensor 2006 as an interrupt, which may occur automatically as sensor 2006 outputs new data.
  • detachable communication and computing proxy device 2012 receives the data from sensor 2006 after a polling requesting the data (e.g., in real-time).
  • detachable communication and computing proxy device 2012 transmits the received data to client terminal 2004.
  • FIG. 21 is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2106 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2104 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2112 (e.g., detachable communication and computing proxy device 112 of FIG. 1, or others as described herein) over a wired link 2152 and a wireless link 2150, in accordance with some embodiments of the present invention.
  • the method provides a protocol for bulk data transfer, such as when the wired link is a serial link allowing transmission of data in different directions only at separate times.
  • detachable communication and computing proxy device 2112 receives, over wireless communication link 2150, from client terminal 2104, a quick-data-transfer command that defines a bulk transfer of data from sensor 2006 selected from multiple available sensors, to client terminal 2104.
  • a state machine (e.g., as described herein) running on detachable communication and computing proxy device 2112 enters the sleep state, until data is received from the selected sensor 2106.
  • detachable communication and computing proxy device 2112 receives from the selected sensor 2106, an interrupt message representing one or more new signal outputted by the selected sensor 2106.
  • the new signal(s) are transmitted from detachable communication and computing proxy device 2112 to client terminal 2104 over wireless communication link 2150.
  • the bulk transfer occurs by iterating blocks 2162 and 2164, optionally until a new command is received from client terminal 2104.
  • FIG. 22 is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2206 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2204 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2212 (e.g., detachable communication and computing proxy device 112 of FIG. 1, or others as described herein) over a wired link 2252 and a wireless link 2250, in accordance with some embodiments of the present invention.
  • the method provides a protocol for confirming commands, for example, in environments in which error rates are high, and/or when errors cannot be tolerated.
  • the method may provide communication when the wired link is a serial link, allowing transmission of data in different directions only at separate times.
  • Block 2260 corresponds to the description of block 2062 of FIG. 20.
  • Block 2262 corresponds to the description of block 2064 of FIG. 20.
  • detachable communication and computing proxy device 2212 waits to receive an acknowledgement message from sensor 2206.
  • Detachable communication and computing proxy device 2212 may enter a sleep state, awakened when the acknowledgement is received (e.g., as an interrupt).
  • the received acknowledge message (or a processed version thereof) is transmitted by detachable communication and computing proxy device 2212 to client terminal 2204 over wireless communication link 2250.
  • a time-out message is transmitted by detachable communication and computing proxy device 2212 to client terminal 2204 when a predefined time elapses without receiving the acknowledgement message.
  • Block 2268 corresponds to the description of block 2066 of FIG. 20.
  • detachable communication and computing proxy device 2212 issues a request to read data from the selected sensor 2206.
  • sensor 2206 provides the read data to detachable communication and computing proxy device 2212.
  • detachable communication and computing proxy device 2212 transmits the read data to client terminal 2204.
  • a time-out message is transmitted by detachable communication and computing proxy device 2212 to client terminal 2204 when a predefined time elapses without receiving the read data.
  • the read/write messages transmitted by the client terminal to the detachable communication and computing proxy device include the least amount of required information (e.g., to reduce processing resources, memory resources, and/or power requirements), for example the number of bytes to read/write, and the actual value to read/write.
  • Code executing on detachable communication and computing proxy device may translate the message from the client terminal into the read or write request.
  • FIG. 23 is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2306 (e.g., sensor 106 of FIG.
  • the method provides a protocol for reducing the number of commands transmitted by client terminal 2304 to detachable communication and computing proxy device 2312 over wireless link 2350, by issuing block commands.
  • the block commands may provide for a high data stream rate.
  • detachable communication and computing proxy device 2312 receives, over wireless communication link 2350 from client terminal 2304, a first block-data- transfer command.
  • the block-data-transfer command issued by client terminal 2304 defines multiple commands for execution by detachable communication and computing proxy device 2312.
  • a memory associated with detachable communication and computing proxy device 2312 stores block-data-transfer commands each mapped to a set of commands for local execution by detachable communication and computing proxy device 2312.
  • detachable communication and computing proxy device 2312 receives a number of repetitions for execution of the first block-data-transfer command.
  • client terminal 2304 may issue an explicit GO command to instruct detachable communication and computing proxy device 2312 to start execution of the mapped multiple commands.
  • Blocks 2364A-L represent an exemplary set of commands being executed by detachable communication and computing proxy device 2312 based on the block-data- transfer command.
  • detachable communication and computing proxy device 2312 iteratively executes the set of commands mapped to the first block-data-transfer command according to the number of repetitions.
  • detachable communication and computing proxy device 2312 receives over wireless communication link 2350 from client terminal 2304, a second block-data transfer command.
  • the second block-data transfer command is stored in a queue stored in the memory of detachable communication and computing proxy device 2312.
  • detachable communication and computing proxy device 2312 completes execution of the set of commands associated with the first block-data-transfer command.
  • a confirmation of completion may be transmitted by detachable communication and computing proxy device 2312 to client terminal 2304.
  • detachable communication and computing proxy device 2312 executes the set of commands mapped to the second block-data-transfer command, upon completion of execution of set of commands mapped to the first block-data-transfer command.
  • FIG. 24 is a block diagram summarizing the communication related commands that may be issued by the client terminal to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
  • the communication related commands are discussed with reference to FIGs. 20-23.
  • composition or method may include additional ingredients and/or steps, but only if the additional ingredients and/or steps do not materially alter the basic and novel characteristics of the claimed composition or method.
  • a compound or “at least one compound” may include a plurality of compounds, including mixtures thereof.
  • range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.

Abstract

There is provided a communication and computing proxy device for attachment to a physical object, comprising: a substantially planar substrate; at least one of a battery holder and an electricity source attached on a first side of the substrate facing the physical object; the following located on a second side of the substrate opposite the first side: at least one electrical contact interface for establishing physical wired electrical contact with at least one extension sensor located on the physical object externally to the communication and computing proxy device; a wired communication interface that communicates over a wired connection with the at least one extension sensor; a wireless communication interface that communicates over a short range wireless communication link with at least one client terminal, the at least one client located externally to the physical object, the wireless communication interface transmitting signals received from the at least one extension sensor.

Description

SYSTEMS AND METHODS FOR CONNECTING PHYSICAL OBJECTS TO
SOFTWARE APPLICATIONS
BACKGROUND
The present invention, in some embodiments thereof, relates to a systems and methods for data communication between devices and, more specifically, but not exclusively, to systems and methods for adapting a presentation on a screen of a client terminal based on data received from another device.
Recommendation ITU-T Y 2060 (published on 06/2012) defines the Internet of Things (IoT) as "A global infrastructure for the information society, enabling advanced services by interconnecting (physical and virtual) things based on existing and evolving interoperable information and communication technologies. Through the exploitation of identification, data capture, processing and communication capabilities, the IoT makes full use of things to offer services to all kinds of applications, whilst ensuring that security and privacy requirements are fulfilled. With regard to the Internet of things, this is an object of the physical world (physical things) or the information world (virtual things), which is capable of being identified and integrated into communication networks." SUMMARY
According to an aspect of some embodiments of the present invention, there is provided a communication and computing proxy device for attachment to a physical object, comprising: a substantially planar substrate; at least one of a battery holder and an electricity source attached on a first side of the substrate facing the physical object; the following located on a second side of the substrate opposite the first side: at least one electrical contact interface for establishing physical wired electrical contact with at least one extension sensor located on the physical object externally to the communication and computing proxy device; a wired communication interface that communicates over a wired connection with the at least one extension sensor; a wireless communication interface that communicates over a short range wireless communication link with at least one client terminal, the at least one client located externally to the physical object, the wireless communication interface transmitting signals received from the at least one extension sensor.
Optionally, the communication and computing proxy device is designed for detachment from the physical object.
Optionally, the communication and computing proxy device further comprises a
USB type C connector. Optionally, the communication and computing proxy device is encased within a casing having an orifice sized and shape for allowing the USB type C connector to connect to an external device. Optionally, the USB type C connector is connected to the substrate at the first side, and the at least one of a battery holder and an electricity source is connected to the USB type C connected at a side of the USB type C connector facing the physical object. Optionally, the at least one of a battery holder and an electricity source includes extension tabs that extend past USB type C connector connect to the substrate for providing power.
Optionally, the substrate planar substrate is shaped as substantially circular. Alternatively or additionally, the substrate planar substrate is shaped as a polygon.
Optionally, the at least one electrical contact interface are arranged in proximity to the perimeter of the substrate.
Optionally, the communication and computing proxy device further comprises at least one motion sensor. Optionally, the communication and computing proxy device further comprises a motion processor executing code instructions to receive low-level signal output from the at least one motion sensor, and process the low-level signal output to generate higher- level signals indicative of at least one of: a quaternion, a higher dimension and motion gesture.
Optionally, the communication and computing proxy device further comprises at least one of: a pressure sensor and a temperature sensor.
Optionally, a long axis of the communication and computing proxy device is less than about 20 mm.
Optionally, the communication and computing proxy device further comprises charging circuits for charging a battery held by the battery holder from an external power source. Optionally, the communication and computing proxy device is encased within a casing.
Optionally, the at least one client terminal is associated with a display that presents information based on data transmitted by the communication and computing proxy device.
According to an aspect of some embodiments of the present invention, there is provided a system for adaptation of a presentation on a display of a client terminal based on sensor data transmitted wirelessly by a detachable communication and computing proxy device, comprising: at least one sensor disposed on a physical object, the at least one sensor outputting at least one signal representing at least one of a sensed human action performed on the physical object and sensed human motion in proximity to the physical object without contacting the physical object; a cradle having a physical interface for physical attachment to the physical object, the cradle sized for insertion within a depression on a surface of the physical object, the cradle forming a physical electrical conductive wired connection between the at least one sensor and a detachable communication and computing proxy device when the detachable communication and computing proxy device is housed within the cradle, the cradle having detachable mechanism for detachably connecting to the detachable communication and computing proxy device; a detachable communication and computing proxy device sized and shaped for insertion into the cradle and including a mechanism for detachable connection to the cradle, the detachable communication and computing proxy device comprising: at least one electrical contact interface that establishes physical wired electrical contact with the at least one sensor when the detachable communication and computing proxy device is inserted in the cradle; a wired communication interface that communicates over the wired connection with the at least one sensor; a wireless communication interface that communicates over a short range wireless communication link with at least one client terminal, the at least one client located externally to the physical object; a program store storing code; a processor coupled to the at least one electrical contact interface, the wired communication interface, the wireless communication interface, and the program store for implementing the stored code, the stored code comprising: code to receive over the wired communication link, the at least one signal outputted by the at least one sensor disposed on the physical object; code to process the at least one signal for wireless transmission over the short range wireless communication link, and transmit the processed at least one signal over the short range wireless communication link to the client terminal.
Optionally, the at least one client terminal is associated with a display, and the at least one client terminal adapts a presentation presented on the display based on higher- level instructions calculated from low-level commands derived from the at least one signal.
Optionally, the cradle and the detachable communication and computing proxy device are substantially planar such that an outer surface of the cradle and detachable communication and computing proxy device is approximately continuous with the outer surface of the physical object when the detachable communication and computing proxy device is housed in the cradle within the depression.
Optionally, a long axis of the cradle is less than about 20 millimeters.
Optionally, the physical electrical conductive wired connection is formed by male and female pogo-pins physically connecting to one another when the detachable communication and computing proxy device is inserted into the cradle.
Optionally, the physical electrical conductive wired connection is formed by a USB type-C interface physically connecting when the detachable communication and computing proxy device is inserted into the cradle.
Optionally, the cradle further houses a battery for powering the detachable communication and computing proxy device when housed within the cradle.
Optionally, the cradle further houses a charging circuit for charging a battery housed within the detachable communication and computing proxy device when housed within the cradle.
Optionally, the cradle further houses logic circuits that process low-level signal received from at least some of the sensors to create higher-level instructions for execution by code running on the client terminal. Optionally, the logic circuits receive low-level signals from at least some motion-related detection sensors and outputs higher-level signals indicative of motion gestures. Optionally, the logic circuits receive low-level signals from at least some motion-related detection sensors in a first dimension and outputs higher-level signals indicative of motion in a second dimension, wherein the second dimension is equal to or higher than the first dimension. Optionally, the system further comprises a battery having a long battery axis, the detachable communication and computing proxy device having a long detachable communication and computing proxy device axis, the battery and detachable communication and computing proxy devices arranged such that the long battery axis is parallel to the long detachable communication and computing proxy device axis.
Optionally, the battery and detachable communication and computing proxy devices are disposed on opposite sides of a substrate. Optionally, the long battery axis is equal to or longer than the long computing axis. Optionally, a flexible substrate provides at least a portion of the physical wired electrical contact between the at least one sensor located on a first side of the battery and the detachable communication and computing proxy device located on an opposite side of the battery, wherein the flexible substrate envelopes at least a portion of the battery.
Optionally, the detachable communication and computing proxy device is transferrable to different cradles physically coupled to different physical objects and different sensors.
Optionally, the physical object is a dumb object without electrical components.
Optionally, the wired connection between the detachable communication and computing proxy device and the at least one sensor comprises a serial communication interface, and the wireless connection between the detachable communication and computing proxy device and the client terminal comprises a parallel communication interface, and the program store of the detachable communication and computing proxy device stores instructions to convert between the serial communication interface and parallel communication interface.
According to an aspect of some embodiments of the present invention, there is provided a computer implemented method for adaptation of a presentation on a display of a client terminal based on sensor data transmitted wirelessly by a detachable communication and computing proxy device, comprising: outputting at least one signal by at least one sensor disposed on a physical object, the at least one sensor sensing at least one of a human action performed on the physical object and human motion in proximity to the physical object without contacting the physical object; transmitting the at least one signal over a wired connector; receiving the transmitted at least one signal by a communication and computing proxy device coupled to the physical object, the at least one signal received by a physical electrically conductive connection formed during physical contact between the detachable communication and computing proxy device and the wired connector; processing, by the detachable communication and computing proxy device, the at least one signal for wireless transmission over a short range wireless communication link using a wireless communication protocol; transmitting, by the detachable communication and computing proxy device over the short range wireless communication link, the processed at least one signal to a client terminal located externally to the physical object; receiving the transmitted at least one signal, by a low-level interface running on the client terminal; analyzing, by the client terminal, the at least one signal representing low-level commands to create higher- level instructions; adapting a presentation presented on a display by the application based on the higher- level instructions.
Optionally, the wired connector is located within a cradle located within a depression on a surface of the physical object.
Optionally, the communication and computing proxy device is housed within a cradle located within a depression on a surface of the physical object. Optionally, the communication and computing proxy device is detachable from the cradle.
Optionally, the at least one sensor comprises a motion sensor, and the presentation is adapted to represent motion trajectory of a virtual object corresponding to the physical object.
Optionally, the communication and computing proxy device includes code stored in a program store executable by a processor of the communication and computing proxy device, the code comprising instructions for implementing a state machine with sleep state and active duty state, that is awakened when triggered by interrupt based events associated with the at least one sensor and the client terminal, and resumes the sleep state when processing of the interrupt based events is complete to reduce energy consumption.
Optionally, the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a direction command that defines the direction of input or output for a certain sensor of a plurality of sensors. Optionally, the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a write command including a value which changes a state of the certain sensor; transmitting the value, by the communication and computing proxy device over the wired communication link, to the certain sensor. Optionally, the method further comprises waiting, by the communication and computing proxy device to receive an acknowledgement message from the certain sensor over the wired communication link; and transmitting the received acknowledge message, by the communication and computing proxy device to the client terminal over the wireless communication link; or transmitting a time-out message by the communication and computing proxy device to the client terminal over the wireless communication link when the communication and computing proxy device waits for a predefined time without receiving the acknowledgement message.
Optionally, the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a read command to receive at least one new signal from the certain sensor; receiving, the at least one new signal by the communication and computing proxy device from the certain sensor over the wired link; and transmitting, the at least one new signal by the communication and computing proxy device to the client terminal over the wireless communication link, to be used for the analyzing.
Optionally, the at least one new signal outputted by the certain sensor is received by the communication and computing proxy device by at least one of: in response to a poll from the communication and computing proxy device, and as an automatic update by an interrupt created by the certain sensor.
Optionally, the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a quick-data-transfer command that defines a bulk transfer of data from a certain sensor of a plurality of sensors to the client terminal; receiving, by the communication and computing proxy device from the certain sensor, an interrupt representing at least one new signal outputted by the certain sensor; and transmitting, the at least one new signal by the communication and computing proxy device to the client terminal over the wireless communication link, to be used for the analyzing. Optionally, the method further comprises entering a sleep state, by the communication and computing proxy device, in response to receiving the quick-data- transfer command; and awakening from the sleep state in response to receiving the interrupt from the certain sensor. Optionally, the method further comprises iterating the receiving the interrupt and transmitting the at least one new signal, until a new command is received by the communication and computing proxy device from the client terminal.
Optionally, the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a first block-data- transfer command that defines a plurality of commands for execution by the communication and computing proxy device; wherein a memory associated with the communication and computing proxy device stores the plurality of commands mapped to each block-data-transfer command; and executing, by the communication and computing proxy device, the plurality of commands mapped to the first block-data- transfer command. Optionally, the method further comprises receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a second block-data transfer command; storing the second block- data transfer command in a queue stored in the memory; and executing, by the communication and computing proxy device, the plurality of commands mapped to the second block-data-transfer command upon completion of execution of the plurality of commands mapped to the first block-data-transfer command. Optionally, the communication and computing proxy device receives a number of repetitions for execution of the first block-data-transfer command, and the communication and computing proxy device iteratively executes the plurality of commands mapped to the first block-data-transfer command according to the number of repetitions.
Optionally, the method further comprises automatically adapting a communication protocol for the wired communication between the communication and computing proxy device and each sensor according to the hardware implementation of each sensor.
Optionally, the method further comprises providing the higher-level instructions by a higher-level interface of code executing on the client terminal; and receiving the higher-level-instructions from the higher-level interface by an application running on the client terminal.
Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting. BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
In the drawings:
FIG. 1 is a block diagram of components of a system for adaptation of a presentation on a display of a client terminal based on signals outputted by one or more sensor(s) located on a physical object, in accordance with some embodiments of the present invention;
FIG. 2 is a schematic representing high-level integration between a detachable communication and computing proxy device, a cradle, and a physical object, in accordance with some embodiments of the present invention;
FIG. 3 is a schematic of an exemplary implementation based on the system described herein, in accordance with some embodiments of the present invention;
FIG. 4 is a block diagram depicting another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention; FIG. 5 is a block diagram depicting yet another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention;
FIG. 6 is a block diagram depicting yet another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention;
FIG. 7 is a block diagram depicting yet another exemplary implementation of the system described herein, in accordance with some embodiments of the present invention;
FIG. 8 is a schematic depicting an exemplary implementation of a detachable communication and computing proxy device integrated within a complex system physical object, in accordance with some embodiments of the present invention;
FIG. 9 is a block diagram representing an exemplary implementation of a detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 10 is a circuit diagram of an exemplary implementation of a detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 11 is a diagram of an exemplary state machine executed by the detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 12 is a table representing exemplary batteries which may be used to provide power to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 13 is a schematic depicting some exemplary implementations for arranging the battery relative to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 14 includes 3D schematics based on an implementation of FIG. 13, in accordance with some embodiments of the present invention;
FIG. 15 is a schematic depicting an exemplary implementation of a cradle, in accordance with some embodiments of the present invention; FIG. 16 is a conceptual diagram of an exemplary implementation of a software interface used by applications for communicating with detachable communication and computing proxy devices based on the systems and/or methods described herein, in accordance with some embodiments of the present invention;
FIG. 17 is code representing an example implementation of the software interface, in accordance with some embodiments of the present invention;
FIG. 18 is a code implementation of exemplary services used for wireless communication between the client terminal and detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 19 is a method of communication between the client terminal and sensor through the detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 20 is a dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 21 is another dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 22 is yet another dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention;
FIG. 23 is yet another dataflow diagram of an exemplary communication protocol for communicating data between a sensor and/or extension and a client terminal using a detachable communication and computing proxy device, in accordance with some embodiments of the present invention; and
FIG. 24 is a block diagram summarizing the communication related commands that may be issued by the client terminal to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention.
DETAILED DESCRIPTION
The present invention, in some embodiments thereof, relates to a systems and methods for data communication between devices and, more specifically, but not exclusively, to systems and methods for adapting a presentation on a screen of a client terminal based on data received from another device.
An aspect of some embodiments of the present invention relates to a cradle that physically and electrically connects a detachable communication and computing proxy device to a physical object, which may be easily attached and removed from the cradle, for example, by a snap in and snap out mechanism, a rotation back and forth that secures and releases, or other detachable mechanisms. The cradle may be installed within a depression on the surface of the physical object, optionally in a secured manner, for example, using screws, glue, or other methods. The cradle may house sensor(s), or provide a wired electrical communication to external sensor(s) located on the physical object. Insertion of the detachable communication and computing proxy into the cradle physically secures the detachable communication and computing proxy to the physical object, and forms an electrically conductive wired communication between the detachable communication and computing proxy and the sensor(s) located within the cradle and/or externally to the cradle. The same detachable and computing proxy may be removed from a first cradle attached to a first physical object, and inserted to a second cradle attached to a second physical object. In this manner, the same cradle may be used by a user, to connect different physical objects to software running on a client terminal, for example, changing objects during a game, for example, from a magic wand to a wheel.
Optionally, the detachable communication and computing proxy device and/or cradle are designed to embed or blend into the physical object, for example, for inserting within an indentation on the surface of the physical object. Optionally, the detachable communication and computing proxy device and/or cradle are relatively small, for example, a long axis (i.e., the longest dimension along a straight line) being less than about 25 millimeters (mm), or about 20 mm, or about 10 mm. The cradle design allows for different detachable communication and computing proxy devices (which may have different capabilities, for example, different memory storage sizes, and/or processing resources) to be used with different cradles, which may be coupled to different sensors. The same detachable communication and computing proxy device may be inserted and removed from different cradles, allowing the same detachable communication and computing proxy device to be used with different cradles on different physical objects.
An aspect of some embodiments of the present invention relates to a method (and/or system that executes the acts of the method) that adapts a presentation presented on a display of a client terminal (e.g., mobile computing device) based on an analysis of low-level signals outputted by one or more sensors located on a physical object. The low-level signals are received over a wired communication link (optionally a serial link) from the sensor by a detachable communication and computing proxy device located on the physical object, optionally via the cradle proving at least part of the wired communication link. The detachable communication and computing proxy device transmits the low-level signals over a wireless communication link (optionally a parallel link) to the client terminal, which is located externally to the physical object. Code executing on the detachable communication and computing proxy device analyzes the low-level signals to generate instructions for adapting a presentation on the display. For example, signals by a motion sensor representing motion of the physical object are translated by code executing on the client terminal (and/or by code executing on the detachable communication and computing proxy device) into instructions for adapting an image presented on the display representing the physical object to represent the corresponding motion of the real physical object. For example, motion sensors located on a plastic steering wheel coupled to the detachable communication and computing proxy device may be used to adapt a driving game being viewed on the display. The user may virtually drive a car by moving the steering wheel, and view how navigation of the car changes on the display. In this manner, simple objects, which may not necessarily have any electrical components (e.g., a plastic toy steering wheel) may be connected to the virtual world and used in software applications.
The detachable communication and computing proxy device relies on a user interface in communication with the client terminal for interfacing with a user (i.e., input and/or output), for example, a graphical user interface (GUI) presented on the display of the client terminal. The detachable communication and computing proxy device does not include, and is not in direct communication with a user interface. In this manner, the detachable communication and computing proxy device may be used with different client terminals, which may be executing different applications and/or different GUIs.
Optionally, the client terminal transmits commands to the detachable communication and computing proxy device, to instruct handling of the signals outputted by the sensor(s), and/or to instruct the sensor(s) via the detachable communication and computing proxy device. The client terminal may instruct the detachable communication and computing proxy device per sensor or group of sensors in communication with the detachable communication and computing proxy device. High-level instructions may be stored and executed by the client terminal (e.g., as applications written using an interface to the detachable communication and computing proxy device and/or sensor, such as an application programming interface (API) or software development kit (SDK)) independently of the low-level implementation, without necessarily requiring the programmer to consider the low-level details, such as the computing client hardware and/or the sensor hardware.
The client terminal may instruct the detachable communication and computing proxy device to define the wired link with the sensor as being for input (i.e., data transmission from the detachable communication and computing proxy device to the sensor, for example, to write a value to the sensor) or output (i.e., data from the sensor to the detachable communication and computing proxy device, for example, outputted signals). The client terminal may control the operation of the sensor(s) via the detachable communication and computing proxy device, by transmitting instructions to the detachable communication and computing proxy device to write values to the sensor(s). The client terminal may control which sensor signals it wants to receive, by transmitting instructions to the detachable communication and computing proxy device to transmit values from selected sensor(s) to the client terminal. The client terminal may instruct the detachable communication and computing proxy device to provide bulk data transfer of signals from the sensor(s) to the client terminal, which reduces the number of commands that are issued by the client terminal to receive the signals (e.g., instead o issuing a read command per signal). A set of commands may be stored on a memory of the detachable communication and computing proxy device, optionally by mapping to a command transmitted by the client terminal to the detachable communication and computing proxy device. The set of commands may be executed based on receiving the mapped command by the detachable communication and computing proxy device, which reduces transmission over the wireless link (e.g., instead of having to send the full set of commands).
An aspect of some embodiments of the present invention relates to a system that includes a detachable communication and computing proxy device sized and shaped for insertion into a cradle which is connectable to a physical object. The cradle provides a physical electrical link (i.e. wired) between the detachable communication and computing proxy device and one or more sensors located on the physical object, optionally a serial link (e.g., for compactness). The detachable communication and computing proxy device includes a wireless communication interface for communication with one or more client terminals located externally to the physical object, optionally a parallel link (e.g., to reduce power consumption). The detachable communication and computing proxy device stores instructions to convert between the serial and parallel links (and/or between signals and packets or other wireless transmission message formats), to allow communication between the sensors and the client terminal. Signals outputted by the sensors are received by the detachable communication and computing proxy device over the wired channel, optionally processed, and transmitted to the client terminal over the wireless channel. The client terminal includes code to receive the low-level signals, and generate higher- level instructions to adapt a presentation on a display according to the low-level signals. The system links the physical object (which may be a dumb object without pre-existing electrical capabilities) to a virtual world represented by image(s) presented on the display (which may represent the physical object), optionally by adapting the image(s) according to physical changes occurring to the physical object, or in proximity to the physical object.
Optionally, the detachable communication and computing proxy device is designed for compactness. The long axis of the detachable communication and computing proxy device is arranged in parallel with a long axis of a battery. The detachable communication and computing proxy device and battery may be on opposite sides of a substrate. The substrate may be a flexible substrate, that at least partially enveloped the battery, to provide wired links between the detachable communication and computing proxy device (located on one side of the battery) with physical electrical connections to sensors (located on the other side of the battery). The substrate may act as an electrical insulator between components and/or that allows for controlled transmission of signals and/or other electrical transmission between components, such as along predefined wires and/or wireless channels, for example, silicon or other materials.
The cradle and/or detachable communication and computing proxy device provide low-level functions, which may be used by programmers to develop applications using higher-level functions defined using the low-level functions, which are executed on the client terminals.
The systems and/or methods described herein provide a technical solution to the technical problem of linking physical objects to a virtual environment represented by a presentation on a display of a client terminal. Signals received from sensors located on the physical object transmitted to the client terminal by the detachable communication and computing proxy device are used to adapt a presentation, optionally a rendering and/or other image representing and/or based on the physical object. Real world measurements, for example, motion of the physical object are translated into a virtual counterpart, for adapting the presentation accordingly.
The systems and/or methods described herein generate new data, which is physically stored in a location of a memory storage device. The new data includes the sensor outputted signals, and/or the instructions for adapting the presentation based on the sensor outputted signals.
The systems and/or methods described herein improve performance of computing systems, such as a client terminal, and/or wireless link (e.g., network), for example, by reducing processor utilization, reducing traffic over the wireless link, reducing storage requirement, and/or reducing power requirements. Improvements may occur, for example, by using the resources of the detachable communication and computing proxy device and sensors to output low-level signals, and using the resources of the client terminal to process the low-level signals into higher-level instructions to adapt a presentation on a display in communication with the client terminal. The detachable communication and computing proxy device and sensors are designed to operate with reduced power consumption, with low processor requirements, and low storage space requirements.
The systems and/or methods described herein improve performance of a presentation presented on a display of a client terminal, by providing additional data to adjust the display. The data to adjust the display is obtained by sensors located on a physical real world object. Output from the sensors which perform measurements of the physical object, and/or of the environment around the physical object, is used to adjust the presentation according to the measured real conditions associated with the physical object. The systems and/or methods described herein allow integration of real world objects into the presentation presented on the display.
Accordingly, the systems and/or methods described herein are necessarily rooted in computer technology to overcome an actual technical problem arising in graphical user interfaces and/or displays.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non- exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks. The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
It is noted that the detachable communication and computing proxy device described herein is optionally detachable, and may sometimes be interchanged with the term communication and computing proxy device, for example, the communication and computing proxy device may be physically integrated with the physical object such that removal may be performed by damaging the object, or designed for permanent attachment to the physical object, or may be detachable from the physical object but not actually detached in practice.
Reference is now made to FIG. 1, which is a block diagram of components of a system 100 for adaptation of a presentation on a display 102 of a client terminal 104 based on signals outputted by one or more sensor(s) 106 located on a physical object 108, in accordance with some embodiments of the present invention. The outputted signals are transmitted using wired connected through a cradle 110 which houses a detachable communication and computing proxy device 112. Cradle 110 is sized and positioned for physical coupling to physical object 108, for example, by clicking, using screws, using glue, or other physical coupling methods. Detachable communication and computing proxy device 110 transmits the signals to client terminal 104, which analyzes the signals to adapt the presentation on display 102. Client terminal 104 is located externally to physical object 108. System 100 provides an interface for integrating physical object 108, which may not include any pre-existing electrical components, with the presentation on display 102. For example, a user may interact with a GUI presented on display 102, such as a game, by manipulating physical object 108.
Cradle 110 may provide a static mechanical connection to physical object 108, and a dynamic electrical connection to detachable communication and computing proxy device 112. The user may connect the same detachable communication and computing proxy device 112 to different physical objects 108 by clicking into respective cradles 110 connected to the physical objects 108, by removing detachable communication and computing proxy device 112 from cradle 110 of one physical object 108, and inserting detachable communication and computing proxy device 112 into another cradle 110 of another physical object 108.
Cradle 110 may be relatively simple, providing the electrical connection between detachable communication and computing proxy device 112 and sensors 106 (and/or housing detachable communication and computing proxy device 112), or cradle 110 may include sensors 106 and/or other components (e.g., power, battery charging circuits), which may allow offloading functions (e.g., from detachable communication and computing proxy device 112).
Optionally, physical object 108 is a dumb object, that does not contain electrical components with communication ability, or does not contain any electrical components. Examples of physical object 108 include: jewelry (e.g., ring, bracelet, necklace), a plastic toy wheel, a toy magic wand, a chair, a book, a pencil, a stapler, and a toy doll.
Detachable communication and computing proxy device 112 may act as a communication hub, providing communication services between sensor(s) 106 and client terminal 104. Detachable communication and computing proxy device 112 may function as a sensor hub, communication sensor, and/or processing unit. Detachable communication and computing proxy device 112 interfaces with sensors 106 (which may be located externally to detachable communication and computing proxy device 112 and/or internally within detachable communication and computing proxy device 112) and/or other peripheral devices, using wired and/or wireless communication (e.g., point-to-point, mesh structure, and/or other methods).
As described herein in additional detail, detachable communication and computing proxy device 112 is sized and shaped for insertion into cradle 108. The coupling between detachable communication and computing proxy device 112 and cradle 108 may be reversible, allowing a user to insert and remove detachable communication and computing proxy device 112 from different cradles 108, or be permanent, integrating detachable communication and computing proxy device 112 with cradle 108. For example, computing 112 may click into cradle 108, or glued to cradle 108.
Detachable communication and computing proxy device 112 includes or is in communication with one or more electrical contact interfaces 114 that establish physical wired electrical contact with sensor(s) 106 when detachable communication and computing proxy device 112 is inserted into cradle 108, for example, copper contacts, USB type C connectors, and pogo=contacts (as described herein).
Detachable communication and computing proxy device 112 includes or is in communication with a wired communication interface 116 that provides communication over a physical wired link between a processor 118 of detachable communication and computing proxy device 112 and sensor(s) 106.
Sensors 106 may perform measurements (continuously, periodically, and/or when queried) on the environment, for example, motion, temperature, proximity sensor, camera, global positioning sensor (GPS), and pressure. Sensor 106 may sense human motion in proximity to the physical object without contacting the physical object (e.g., user moving arms up and down, user moving left or right, user moving backwards or forwards), for example, motion sensors detecting motion of the user, and cameras detecting movement of the user. Sensors 106 may perform measurements without explicit human action, for example, temperature of physical object 108 is measured without human intervention. Sensors 106 may perform measurements in response to direct human action, for example, a pressure sensor sensing a pressed button. Sensors 106 may perform measurements in response to indirect human action, for example, a motion sensor measuring motion of physical object 108 that is being moved by the user. Sensors 106 may output analogue and/or digital signals.
Detachable communication and computing proxy device 112 includes or is in communication with a wireless communication interface 120 that provides communication over a wireless link with client terminal 104, for example, a wireless modem, a local wireless interface (e.g., BLUETOOTH® 4.x based connectivity), wireless local area network, and a cellular interface.
Detachable communication and computing proxy device 112 includes processor 118, and client terminal 104 includes processor(s) 126. Examples of implementations of processor 118 and/or processor(s) 126 include, a central processing unit(s) (CPU), a graphics processing unit(s) (GPU), field programmable gate array(s) (FPGA), digital signal processor(s) (DSP), and application specific integrated circuit(s) (ASIC). Processor 118 and/or processor(s) 126 may include one or more processors (homogenous or heterogeneous), which may be arranged for parallel processing, as clusters and/or as one or more multi core processing units.
Detachable communication and computing proxy device 112 includes a program store 122 storing code instructions implementable by processor 118, and client terminal 104 includes a program store 128 storing code instructions implementable by processor 126, for example, a random access memory (RAM), read-only memory (ROM), and/or a storage device, for example, non- volatile memory, magnetic media, semiconductor memory devices, hard drive, removable storage, and optical media (e.g., DVD, CD- ROM).
Detachable communication and computing proxy device 112 may include or be in communication with a data repository 124 that stores data, and client terminal 104 may include or be in communication with a data repository 130 that stores data, for example, a set of commands which are mapped to a trigger command. The set of commands may be copied from data repository 130 to data repository 124. The set of commands may be retrieved from data repository 124 and executed by processor 118 when the trigger command is received from client terminal 104.
Client terminal 104 may include or be in communication with a user interface
132 that allows a user to enter data and/or display (and/or hear) data, for example, one or more of: a touch-screen, a display, a radiology monitor, a keyboard, a mouse, voice activated software, and a microphone.
Exemplary client terminals 104 include: stationary devices (e.g., server, desktop computer, smart television, and kiosk), mobile devices, handheld devices, Smartphones, Tablet computers, wearable computers (e.g., glasses, watch), headsets (virtual reality, augmented reality). As described herein in additional detail, program store 122 stores code instructions for execution by processor 118 of detachable communication and computing proxy device 112, to receive signals outputted by sensors 106 over a wired link (transmitted via cradle 110, using wired communication interface 116 and using electrical contact elements 114), and processing the signals for wireless transmission, for example, by converting analogue signals to digital representation, and/or encapsulating the signals within packets. The code includes instructions to transmit the processed signals, using wireless communication interface 120 to client terminal 105 over a wireless communication link. Program store 128 of client terminal 104 stores code instructions for execution by processor 126 of client terminal 104, to receive the transmitted messages (e.g., packets), and analyze the data to create higher-level instructions. The presentation presented on display 102 is adapted based on the higher- level instructions. For example, signal data representing motion in 3D is converted to instructions to adapt an image to represent the 3D motion.
System 100 allows for applications executing on client terminal 104 to connect physical object(s) 108 (via sensors 106 and detachable communication and computing proxy device 112) to the internet-of-things space, and/or generate interaction between several physical objects. The applications may communicate (e.g., using an interface) with detachable communication and computing proxy device 112, control functions of detachable communication and computing proxy device 112, control sensor(s) 106, and process the received signals to adapt a presentation on a display.
Reference is now made to FIG. 2, which is a schematic representing high-level integration between a detachable communication and computing proxy device 212 (e.g., detachable communication and computing proxy device 112), a cradle 210 (e.g., cradle 110), and a physical object 208 (e.g., physical object 108), in accordance with some embodiments of the present invention. FIG. 2 depicts an example of how physical object 208 may be provided with the ability to adjust a presentation on a display of a client terminal.
Detachable communication and computing proxy device 212 is designed to fit within a depression 250 in cradle 210. Depression 250 and detachable communication and computing proxy device 212 may have a unique shape that ensures that cradle 210 may only be inserted in a predefined way into cradle 210, such that electrical contact is made between detachable communication and computing proxy device 212 and cradle 210. The shape may provide a secure connection between detachable communication and computing proxy device 212 and cradle 210, for example, a permanent connection, or a connection requiring force for removal (e.g., by clicking in and out). A toy steering wheel 208 (i.e., the physical object), which may be made for example out of plastic, includes a depression 252 designed to house cradle 210 (which houses detachable communication and computing proxy device 212). When cradle 210 and connected detachable communication and computing proxy device 212 are inserted into physical object 208, physical object 208 is provided with the ability to adjust the presentation on the display of the client terminal. For example, when cradle 210 includes motion sensors and the presentation displays a scene of a moving car in a game, a user may steer the car on the display using steering wheel 208.
Reference is now made to FIG. 3, which is a schematic of an exemplary implementation 300 based on the system described herein (e.g., system 100 of FIG. 1), in accordance with some embodiments of the present invention. Implementation 300 includes additional optional components.
Multiple detachable communication and computing proxy devices 302 (e.g., corresponding to detachable communication and computing proxy device 112 of FIG. 1) communicate with a client terminal 304 using a wireless connection 306.
Detachable communication and computing proxy device 302 includes an inertial motion unit (EVIU) 308 that includes elements to measure motion, or example, based on micro-electrical mechanical systems (MEMS) devices. A micro controller unit (MCU) 310 provides processing capabilities, optionally using low power and/or at low cost. MCU 310 may provide BLUETOOTHR® Low Energy (BLE) capabilities, and may include a memory (e.g., FLASH memory). A local power unit 312 delivers power provided by a rechargeable battery 314 and/or other power supply (e.g., energy harvesting, wireless charging), optionally via an extension module interface 316. A human-machine interface (HMI) 318 may provide indications to a human, and/or receive input from a human, for example, a haptic element, a vibration element, and a sound generating element.
Detachable communication and computing proxy device 302 may be designed for low power consumption (e.g., less than about 5 milliamperes (mA) per hour at full operation), which may allow battery 314 to be a small coin-cell, optionally rechargeable, which may be charged using wired connectivity and/or wireless charging methods.
Detachable communication and computing proxy device 302 communicates with one or more extension modules 320 via extension interface 322. Each extension module 320 includes components 324, for example, human-machine interface elements, sensors (e.g., motion, environmental sensors, bio sensors, barometer, proximity sensor, heart rate sensor, image sensor), signal processing capabilities, local memory, and/or power source.
Extension module(s) 320 may be encapsulated within a casing and may communicate with detachable communication and computing proxy device 302 via a cradle, as described herein. The cradle may couple extension module(s) 320 to a physical object, as described herein.
Client terminal 304 includes code for an operating system platform 350A. Detachable communication and computing proxy device 302 may communicate with client terminal 304 using a BLUETOOTH® 4.x BLE protocol using a BLE PHY 352 and BLE stack 350B. A native software development kit (SDK) 350C utilizes algorithms 305D to define functions that may be used by programmers to write applications that analyze the signals (e.g., from the sensors) received from detachable communication and computing proxy device 302 for adapting a presentation on a display. For example, SDK plugins for the Unity Game Engine, and/or for other virtual reality (VR) and/or augmented reality (AR) platforms may provide an easy to use interface for programmers using a graphical Integrated Development Environment (IDE) 350E to develop Applications 350F or demo Apps 350G, such as 3D based applications. Code for 350A-350F may be stored in program store 128 and/or data repository 130 for implementation by processor 126 of client terminal 104.
Reference is now made to FIG. 4, which is block diagram depicting another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention. A detachable communication and computing proxy device 412 (e.g., detachable communication and computing proxy device 112) and optional rechargeable battery 450 may be encased and clickable into (and removed from, optionally without requiring special tools) a cradle 410 (e.g., cradle 410) coupled to physical object 408 (e.g., physical object 108). Physical object 408 may be a dumb physical object, without preexisting electrical communication capabilities and/or electrical components.
Detachable communication and computing proxy device 412 communicates with client terminal 404 (e.g., client terminal 104) using a wireless connection 452, as described herein. Client terminal 404 may include a wireless connection interface 454 that provides wireless communication capabilities, and an SDK 456 (e.g., library) which may be used by Applications 458 to communicate with detachable communication and computing proxy device 412, control detachable communication and computing proxy device 412, process signals received from sensors, and/or generate instructions to adapt a presentation on a display associated with the client terminal, as described herein.
Reference is now made to FIG. 5, which is block diagram depicting another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention. Detachable communication and computing proxy device 512 may communicate with extensions 502 on a physical object 508, which may include electrical connection capabilities, for example, gaming accessories, or wearable devices having electrical-based functions. Detachable communication and computing proxy device 512 connects physical object 508, via extensions 502, for use by applications executing on client terminal 504. Physical objects 508 may be connected to the internet-of-things space, and/or a presentation displayed on a display of client terminal 504 is adapted using data outputted from extensions 502. Extensions 502 may be designed for use with object 508. Examples of extensions 502 include: HMI, buttons, knobs, light emitting diodes (LED), organic LED, motion sensor(s), environmental sensor(s), bio sensor(s), memory, power, and processing capabilities. Extensions 502 may connect to detachable communication and computing proxy device 512 through a physical link that provides communication capabilities provided by cradle 510 (i.e., an extension communication channel). The physical link is established when detachable communication and computing proxy device 512 is clicked into cradle 510, and may be enabled by application 558.
The extension communication channel may include digital and/or analogue input/output (I/O) support, serial bus interfaces, and/or a power supply. Detachable communication and computing proxy device 512 may act as a bus master controlling data reception from extensions 502, transmitting commands, and providing power when required. Detachable communication and computing proxy device 512 may control payload flow (e.g., control signals and/or data) between client terminal 504 and extensions 502, by acting as a signal transmission conduit that converts the payload to allow communication over the wired (optionally serial) and wireless (optionally parallel) links. Client terminal 504 may issue commands to control extensions 502. Client terminal 504 may process the signals received from extensions 502 using SDK 556, which allows for programmers to write applications 558 without considering the actual low-level implementation of extensions 502, and/or without requiring hardware and/or firmware adaptation. SDK 556 may provide the same or similar high-level functions to application 558 using different low-level extension 502 implementations.
Reference is now made to FIG. 6, which is block diagram depicting yet another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention. The implementation of FIG. 6 may extend functions of smart physical objects 608 that include extensive electrical communication capabilities (e.g., wearable medical devices), by adapting a presentation displayed on a display of client terminal 604 using data outputted from physical object 608 (i.e., from an extension 602 of object 608). Detachable communication and computing proxy device 612 may be used as a wireless communication hub and/or motion sensing signal source. Extension(s) 602 of object 608 may include processing capabilities, memory, sensor(s), and/or power. Detachable communication and computing proxy device 612 may physically connect to extension 602 via cradle 610, for example, by forming the extension communication channel as described herein. Detachable communication and computing proxy device 612 may receive power from object 608 via extension 602.
Detachable communication and computing proxy device 612 provides communication between extension 602 of object 608 and application 658 running on client terminal 604. Application 658 may control extension 602, and/or receive data (e.g., signals) from extension 602. In one example, extension 602 may request sensor data from detachable communication and computing proxy device 612, process the data, and send the data to application 658 using the communication services provided by detachable communication and computing proxy device 612.
Reference is now made to FIG. 7, which is block diagram depicting yet another exemplary implementation of the system (e.g., system 100) described herein, in accordance with some embodiments of the present invention. Detachable communication and computing proxy device 712 servers as a component within a complex system physical object 708 that includes multiple electrical components such as extensions 702. Detachable communication and computing proxy device 712 connects complex system object 708 with client terminal 704, to adapt a presentation presented on a display of client terminal 704 according to data outputted by complex system object 708. Detachable communication and computing proxy device 712 may be directly integrated with complex system object 708 without a cradle and/or casing and/or battery. For example, detachable communication and computing proxy device 712 is connected (e.g., glued, soldered, or crimped) to complex system object 708, such as to a motherboard or other hardware components. Electrical connections of detachable communication and computing proxy device 712 may be connected to corresponding connections on the motherboard to provide connectivity to extension(s) 702.
Reference is now made to FIG. 8, which is a schematic depicting a top vide 802 and cross sections side view 804 of an exemplary implementation of a detachable communication and computing proxy device 812 designed for integration within a complex system physical object (e.g., object 708 of FIG. 7), in accordance with some embodiments of the present invention. Detachable communication and computing proxy device 812 includes processing capabilities, wired and wireless communication interfaces, and optionally sensor(s), as described herein. Detachable communication and computing proxy device 812 is connected to a substrate (e.g., breadboard) 850, which includes on-board extensions 802A-C (e.g., one or more of sensors 802A, HMI elements 804B, and power and/or charging circuits 802C) and other electrical components, such as a battery 852, a switch 854 (to manually turn device 812 on or off or for a hard reset), a USB type B/C connector 856, and extension pads 858. Extension pads 858 and USB connector 856 may allow further extensions, by connecting with other devices and/or components. Extension pads 858 may be arranged ix proximity to the perimeter of substrate 850 (e.g., without other components between the pads and the perimeter edge of the substrate), which may allow easy access to external connectors.
Sensors 802A may include pressure sensors, temperature sensors, motions sensors, and/or other sensors as described herein. Low-level signals outputted by sensors 802A may be processed into high-level data, for example, by a motion processor that outputs higher-dimensional motion data, motion gestures, a quaternion, or other higher- level data.
An antenna 860 provides a wireless communication interface that provides communication over a short range wireless link with a client terminal.
Connector 862 may provide an electrical connection between extension pads
858 and externally located sensor(s). Connector 862 may provide physical contact to secure substrate 850 to the physical object and/or to a cradle, as a permanent connection interface or detachable connection mechanism.
Substrate 850 is substantially planar, having a mostly flat and/or smooth-like surface. Substrate 850 may have a uniform shape, or be shaped according to the surface of the physical object (e.g., rounded).
LEDs 864 and accessory LEDs 868 may provide visual output to a user, for example, indicating whether device 812 is on or off, indicating whether wireless communication is established with a client terminal, indicating whether wired communication is established with sensor(s), and/or indicating whether an error occurred (which may require a hard rest), for example, using different LED colors and/or different flashing patterns.
Battery 852 may be attached on one side of substrate 850 facing the physical object. The other components (e.g., extensions 802A-C, switch 854, USB type B/C connector 856, extension pads 858, antenna 860, LEDs 864-868, and detachable communication and computing proxy device 812) are located on the other opposite side of substrate 850 (i.e., the side not facing the physical object).
Optionally, substrate 850 is shaped as a circle, polygon, or other shapes, which may be designed according to the hosting physical object, such as according to the surface profile of the physical object. The dimension (e.g., long axis, diameter) of substrate 850 may be, for example, less about 30 mm, or 25 mm, or 20 mm, or 15 mm, or 10 mm, or 5 mm, or other values. Arrows 860A-D represent exemplary dimensions, for example, 860A represents about 9-9.5 mm, 860B represents about 7-8 mm, 860C represents about 9-9.5 mm, and 860D represents about 20-22 mm.
Reference is now made to FIG. 9, which is a block diagram representing an exemplary implementation of a detachable communication and computing proxy device 912 (e.g., detachable communication and computing proxy device 112 of FIG. 1), in accordance with some embodiments of the present invention. Detachable communication and computing proxy device 912 may include one or more hardware and/or software components, MCU 950, IMU 952, HMI 954, power 956, and extension 958.
MCU 950 provides communication between the client terminal and sensors (which may be located within extensions), as described herein. MCU 950 may be implemented as a single system on a chip component, and may include programmable software (e.g., processor 118 and/or program store 122). MCU 950 may control other internal peripherals, provide communication with extensions and/or sensors via wired links, and provide communication with the client terminal over a wireless link (e.g., using a BLE stack). MCU 950 may control power dissipation using power preservation methods. MCU 950 may perform local signal processing, for example, motion signal processing using data provided by IMU 952.
Exemplary components of MCU 950 include: processor (e.g., processor 118, such as ARM cortex M3/M4F), memory (e.g., program store 112, internal and/or external, volatile and/or non- volatile), wired communication element (e.g., element 116, digital and/or analogue, I/O, serial and/or parallel), wireless communication element (e.g., element 120, softcore BLE stack, hardcore PHY coupled by an external antenna), near field communication (NFC) interface, battery chargers, and power control circuits. Firmware (e.g., embedded real-time software) may be executed by a built-in embedded operation system.
IMU 952 may include a motion sensor that generates signals representative of motion, optionally in three dimensions. IMU 952 (or code executing on the client terminal) may analyze the signals (e.g., using a 9-axis sensor fusion, using calibration, and/or Kalman filter technique) to generate a quaternion, simple gestures, and/or motion tracking. The outputted signals may be further processed by code executing on the client terminal, to detect gestures and/or classify the motion for adapting a presentation on a display according to the motion, for example, adapting an image according to the detected gesture. IMU 952 may be based on a 9-axis MEMS sensor, single-chip or dual- chip, for example, one or more of: a 3-axis accelerometer, a 3-axis gyroscope, a 3-axis compass, a temperature sensor (which may be used for calibration), and a digital motion sensor. Other sensors may be included to improve the motion detection, for example, pressure sensors, proximity sensors, camera, and GPS that allows for triangulation.
HMI 954 includes input and/or output elements designed for human interaction. Exemplary input elements include a microphone, and push buttons. Exemplary output elements include LED and a vibration element.
Power element 956 provides electrical power to detachable communication and computing proxy device 912, for example, a power supply, battery charging circuitry (e.g., based on wired or wireless charging), power control, power distribution, energy harvesting (e.g., piezo-electric elements, heat conversion element, and solar cells).
Extension element(s) 958 (e.g., electrical contact element 114 and/or wired communication element 116) provides a wired link to the sensors and/or extensors (e.g., the extension communication link). Data communication may be provided to MCU 950, via a bridge circuit which as an interface to extension element 958. Extension element(s) 958 may include electrostatic discharge (ESD) protection circuits that protect from power surges. The physical extension connection (e.g., electrical contact element 114) provided by extension element 958 may be implemented, for example, as a multi- pin USB type-C connector, and/or pogo pins (which do not necessarily require board connectors) for example as described with reference to United States Patent No. 6844749.
Reference is now made to FIG. 10, which is a circuit diagram of an exemplary implementation of a detachable communication and computing proxy device (e.g., detachable communication and computing proxy device 912 of FIG. 9, and/or detachable communication and computing proxy device 112 of FIG. 1), in accordance with some embodiments of the present invention.
Reference is now made to FIG. 11 which is a diagram of an exemplary state machine 1100 implemented by the detachable communication and computing proxy device, in accordance with some embodiments of the present invention. State machine 1100 may be stored as code implemented by the detachable communication and computing proxy device (e.g., code stored in program store 122 executable by processor 118 of detachable communication and computing proxy device 112 of FIG. 1, and/or MCU 950 and/or IMU 952 of detachable communication and computing proxy device 912 of FIG. 9) that includes instructions for implementing state machine 1100 with sleep states (e.g., sleep 1106, deep sleep 1108, which may be entered as represented by arrows 1110) and active duty state 1102, that is awakened when triggered by interrupt based events associated with sensors, extensions, and/or the client terminal, and resumes the sleep state when processing of the interrupt based events is complete (e.g., to reduce energy consumption), in accordance with some embodiments of the present invention. The code may be designed to remain in the sleep state for as long as possible, as frequently as possible. The code may perform functions such as control of sensors and/or other extension based devices, signal processing, communication control, and power management.
Arrows 1104 represent dataflow of an initialization loop, which is triggered by a power-up sequence or a hard reset 1106. At reset state 1106, hardware and/or software (e.g., of detachable communication and computing proxy device) is initialized. State machine 1100 moves to the main active state 1102 and enters deep sleep 1108 state. A watch-dog 1112 (which may be hardware based) is designed to be acknowledges periodically (e.g., by software), for example, about once a second or other predefined times. When the predefined time passes without watch-dog 1112 receiving the acknowledgement, watch-dog 1112 performs reset 1106.
State machine 1100 moves from sleep 1106 or deep sleep 1108 to active state 1102 when awakened by interrupt based events. Interrupts may be triggered, for example, by internal components (e.g., MCU internal peripherals), and external signals (e.g., from sensors and/or extensions).
Actions that may be performed during active state 1102 (by moving to state machine states) are represented by arrows 1114 to tasks & algorithms 1116 (e.g., processing data, communicating with sensors, communicating with the client terminal).
During deep sleep state 1108, the detachable communication and computing proxy device may use minimal power necessary for rudimentary functions. When an interrupt is detected (e.g., by IMU sending an interrupt to the MCU), state machine 1110 moves to active state 1102 to perform one or more state machine events represented by arrows 1118.
BLE pairing state 1128 may be entered to search for a client terminal with which to establish a connection. When no client terminal is found (e.g., after a predefined period of time), deep sleep state 1108 may be re-entered.
During the BLE advertising state 1120, the BLE stack may wake up state machine 1100 to transfer a new data packet to and/or from the client terminal. The stack may transfers the packet from a dedicated first-in-first-out (FIFO) queue.
Peripheral state 1122 (e.g., MCU internal peripherals), IMU 1126 and/or extension state 1124 (e.g., sensors) may wake up state machine 1100 using one or more methods. For example, MCU internal pre-programmed timers may be used when polling is used a method of communication. State machine 1100 may be woken up by a dedicated peripheral timeout event, initiating a read and/or write transaction. Direct Interrupt logic may be used to wake up state machine 1100 and initiate a data or control transaction.
State machine 1100 may execute code to detect errors in sensors, extensions, and/or internal components (e.g., MCU modules, peripherals). When an error is detected, state machine 1100 may move to error state 1130. A hard reset may be required to exit error state 1130 and enter reset state 1106.
State machine 1100 code may be downloaded, for example, through dedicated pads using a programming Jig (e.g., part of the firmware), and/or using an over the air boot loader allowing consecutive updates to be performed wirelessly.
Reference is now made to FIG. 12, which is a table representing exemplary rechargeable batteries (e.g., lithium-ion) which may be used to provide power to the detachable communication and computing proxy device (e.g., 112) and/or to sensors (and/or extensions), in accordance with some embodiments of the present invention. Battery charging circuits may be provided, for example, as described herein. Charging circuits may be provided within detachable communication and computing proxy device 112, or located on an external element (which may reduce the size and/or cost of the detachable communication and computing proxy device). Charging may be performed using a wire connection (e.g., using a physical connector) or using a wireless connection (e.g., using inductive charging). The cradle may be used as the charger, for example, when the detachable communication and computing proxy device uses pads to connect to sensors and/or extensions (i.e., does not include a physical connector). The battery may be selected to be as small as possible, while providing for as many working hours as possible before a re-charge is required, for example, Lithium Manganese Dioxide (LIR) or PD based batteries.
Reference is now made to FIG. 13, which is a schematic depicting some exemplary implementations 1300A-D for arranging a battery 1302A-B relative to a detachable communication and computing proxy device 1312 (e.g., corresponding to 112, and/or 912), in accordance with some embodiments of the present invention. The battery-detachable communication and computing proxy device combination may be inserted within the cradle (e.g., 110) for connection to sensors (e.g., 106), which may be located on physical object (e.g., 108).
Battery 1302A-B includes a long battery axis, which is an imaginary straight line connecting the two furthest points, for example, when the battery is coin shaped, the axis is the diameter, when the battery is rectangular (i.e., box) the axis is the length. Detachable communication and computing proxy device 1312 includes a long detachable communication and computing proxy device axis. Battery 1302A-B and detachable communication and computing proxy device 1312 are arranged such that the long battery axis is parallel to the long detachable communication and computing proxy device axis. In this manner, the surface profile may be reduced when the detachable communication and computing proxy device and battery are coupled to the physical object.
Implementations 1300A-B depict an arrangement in which battery 1302A is about the same length as detachable communication and computing proxy device 1312 (e.g., as measured based on respective long axes). Implementations 1300C-D depict an arrangement in which battery 1302B is longer than detachable communication and computing proxy device 1312.
Implementation 1300A includes a connector 1350 located between battery 1302A and detachable communication and computing proxy device 1312, for example, a USB connector. Connector 1305 may be located at the edges of detachable communication and computing proxy device 1312 and battery 1302, which may allow battery 1302 to be glued 1370 to detachable communication and computing proxy device 1312.
Implementations 1300B-1300D depicts battery 1302A-B and detachable communication and computing proxy device 1312 disposed on opposite sides of a substrate, for example, silicon. Optionally, substrate 1306A-C is a flexible substrate that provides at least a portion of the physical wired electrical contact (e.g., via pads 1352, which may connect with a cradle) between sensors located on one side of the battery and the detachable communication and computing proxy device located on the opposite side of the battery. The flexible substrate may envelope at least a portion of the battery. The flexible substrate may include pogo-pads on its bottom side to reversibly connect with pogo-pins located on the cradle.
In implementation 1302B, battery 1302A may be glued (or connected using other methods) to detachable communication and computing proxy device 1312, with the VCC side soldered (or using other connection methods) to a hardware board or cradle, and GND soldered (or using other connection methods) to a ground plane on flexible substrate 1306A.
Other optional components are shown, for example, antenna 1360 for wireless communication with the client terminal, LED 1362 (e.g., which may light up when detachable communication and computing proxy device 1312 is operating), pads 1364 that may be connected to a hardware board having additional circuitry (e.g. complex system object as described herein), and other internal components 1366 (e.g., motion sensor, additional memory).
In implementation 1300C, battery 1302B is displaced relative to detachable communication and computing proxy device 1312, such that the long axes line up at one end. In implementation 1300D, battery 1302B is approximately centered relative to detachable communication and computing proxy device 1312 (e.g., based on the respective long axes).
Reference is now made to FIG. 14, which includes 3D schematics based on implementation 1300A of FIG. 13 and/or the implementation of FIG. 8, in accordance with some embodiments of the present invention. USB type-C connector 1350 or 856 is attached between (e.g., glued, clamped) to battery 1302A or 852 and board 1412 or 850 that includes detachable communication and computing proxy device 1312 or 812 (and/or other components shown in FIG. 8 on the side of substrate 850 opposite battery 852). USB type C connector 1350 856 is attached to the side of substrate 1312 1412 850 facing the physical object, with battery 1302A 852 attached to the lower side of USB type C connector 1350 856 facing the physical object. Battery includes tabs 1450 that extend past USB type C connector 1350 856 to physically connect to substrate 1312 1412 850.
Casing 1402 (e.g., made from plastic, or other non-conductive materials) houses battery 1302A 852, board 1412 856 and/or detachable communication and computing proxy device 1312. Casing 1402 includes an orifice 1420 sized and/or shaped to allow USB type C connector 1350 856 to connect to an external device.
Reference is now made to FIG. 15, which is a schematic depicting an exemplary implementation of a cradle 1510 (e.g., corresponding to cradle 110) connecting a detachable communication and computing proxy device 1512 (e.g., corresponding to detachable communication and computing proxy device 112) to a physical object 1508 (e.g., corresponding to physical object 108), in accordance with some embodiments of the present invention. Cradle 1510 forms a physical electrical conductive wired connection between sensor(s) 1506 and detachable communication and computing proxy device 1512 when detachable communication and computing proxy device 1512 is housed within the cradle 1512 by a detachable mechanism for detachably connecting to detachable communication and computing proxy device 1512, for example, a twist and lock mechanism, a snap in and out mechanism, a connector based mechanism (e.g., connecting using USB type C connector 1550).
Optionally, cradle 1510 the detachable communication and computing proxy device 1512 are substantially planar. The outer surface of cradle 1510 and detachable communication and computing proxy device 1512 may be approximately continuous with the outer surface of the physical object 1508 (or may be slightly elevated above the outer surface to allow removal) when detachable communication and computing proxy device 1512 is housed in cradle 1510 within the depression on physical object 1508.
Optionally, a long axis of the cradle is less than about 30 mm, or 25 mm, or 20 mm, or 15 mm or 10 mm. Optionally, the cradle is shaped as a circle, or polygon.
Optionally, cradle 1510 houses a battery 1560 (optionally rechargeable) for powering detachable communication and computing proxy device 1512 when housed within cradle 1510. Battery 1560 may charge an internal battery of detachable communication and computing proxy device 1512, and/or provide power to detachable communication and computing proxy device 1512. Power may be transmitted by one or more of the physical electrical connections (e.g., connector 1552, 1550, or others).
Optionally, cradle 1510 houses a charging circuit 1562 for charging battery 1560 housed within cradle 1510 and/or for charging an internal battery housed within detachable communication and computing proxy device 1512. The charging may be performed when detachable communication and computing proxy device 1512 is housed within cradle 1510 via the physical electrical connectors (e.g., 1552, 1550, or others).
Optionally, cradle 1510 the cradle houses logic circuits 1564 (and/or code implemented by a processor within the cradle) that process low-level signal received from at least some of sensors 1506 to create higher-level instructions for execution by code running on the client terminal. Logic circuits 1564 may receive low-level signals from at least some motion-related detection sensors (e.g., as described herein) and output higher-level signals indicative motion gestures, motion trajectory, a higher dimension of motion, or other high-level motion data (equal to or higher dimensions than outputted by the sensors).
Cradle 1510 houses detachable communication and computing proxy device 1512 on physical object 1508. Cradle 1510 provides physical wired electrical channels for communication between sensors 1506 (and/or extensions) and detachable communication and computing proxy device 1512. Cradle 1510 may be physically connected to detachable communication and computing proxy device 1512 at harness 1558.
Sensors 1506 located on physical object 1508 output signals representing a sensed human action performed on the physical object 1508 (e.g., pressure, motion of the physical object), and/or sensed environmental conditions in proximity to physical object 1508 (e.g., temperature, motion of the user in proximity to the physical object).
Cradle 1510 may contain, for example, electrical circuits for charging detachable communication and computing proxy device 1512, a battery for powering detachable communication and computing proxy device 1512, sensors 1506 (and/or other sensors), and/or other components for interaction with detachable communication and computing proxy device 1512.
Cradle 1510 may fit into a predefined location on physical object 1508, for example, an indentation on the surface, and/or may be coupled to the surface of physical object 1508 by a physical attachment interface, for example, by screws, glue, a snap-in mechanism, crimping, or other methods. Cradle 1510 may be physically attached to physical object 1508 at harness 1556.
Cradle 1510 may connect to sensors and/or extensions 1506 using a harness and connector.
Schematics 1500A represent a pogo-pin based connection mechanism for connecting detachable communication and computing proxy device 1512 to cradle 1510. Contacts 1552 (e.g., female on detachable communication and computing proxy device 1512, pogo-pins on cradle 1510) are positioned against one another when detachable communication and computing proxy device 1512 is inserted into cradle 1510, forming a physical electrically conductive connection. Connection 1554 provides a physical electrically conductive connection between cradle 1510 and sensor(s) 1506.
Schematic 1500B represents a USB type-C based connection 1550 for connecting detachable communication and computing proxy device 1512 to cradle 1510. Detachable communication and computing proxy device 1512 may be clicked into cradle 1510 and shifted or rotated (e.g., horizontally, clockwise) to connect female type USB type-C connectors to the male connectors on cradle 1510.
Reference is now made to FIG. 16, which is a conceptual diagram depicting components (e.g., modules, code, functions, applications) of an exemplary implementation of a software interface 1600 that is used to develop applications based on the systems and/or methods described herein, in accordance with some embodiments of the present invention. FIG. 16 may represent an API, and SDK, a library, or other interfaces, which may be stored, for example, as files, as code, as a script, as compiled instructions, or in other formats. Interface 1600 allows applications to control detachable communication and computing proxy device, receive data from sensors and/or extensions, process the data, and/or write data to sensors and/or extensions. Interface 1600 is designed to support different operating systems on different devices (e.g., desktop computers, laptop computers, mobile devices, Smartphones, Tablets, wearable computers, glasses computers, and watch computers). Interface 1600 is designed to provide communication with multiple detachable communication and computing proxy devices at the same time. Exemplary supported data transfer rates include up to about 400 Hertz (Hz) per detachable communication and computing proxy device (e.g., about 64 kilobits per second).
Interface 1600 provides high-level functions for use by programmers, without necessarily requiring knowledge of the low-level implementations. Knowledge of the actual sensors and/or extensions is not required a-priori. Interface 1600 may receive low-level signals from sensors, and convert the low-level signals to higher-level instructions (e.g., code) which may be used to adapt a presentation on a display of the client terminal, for example, translating low-level motion based data to higher-level gesture trajectories.
Interface 1600 may be conceptually organized into multiple layers. Layer 1602 includes a BLUETOOTH® 4.x stack (or other wireless communication protocols, optionally low-energy and/or short range), which may be part of operating system 1604, and/or part of SDK 1600. Layer 1606 includes a BLUETOOTH® (or other wireless communication protocol) service that provides piped data and/or control services to applications 1608. Layer 1606 includes communication functions to allow communication with one or more detachable communication and computing proxy devices, and may be accessed by one or more applications 1608. Layer 1608 includes a low-level API for use by applications 1608 to provide connection services to the detachable communication and computing proxy device(s) and raw data callback functions, for example, to control reception of low-level data, such as signals outputted by the sensors. Algorithms and utilities 1610 may provide functions that process the low-level data into higher-level instructions that may be used to adapt images on a display, for example, translation of signals outputted by motion sensors into gesture recognition and/or motion classification. Layer 1612 includes higher-level interfaces, such as plugins to integrated development environments (IDE) or example, Unity and Unreal engines, for rapid development of graphical applications. Layer 1612 may provide an interface to the higher-level data processed by algorithms 1610, for example, the gestures. Layer 1608 includes the actual applications that use the described interfaces to adapt displayed images, for example, to move an image on the screen corresponding to the physical object based on gesture trajectories calculated from motion sensors located on the object and transmitted by the detachable communication and computing proxy device. Multiple applications may run in parallel, each accessing multiple detachable communication and computing proxy devices in parallel.
An example of implementation of the software interface (e.g., interface 1600 of
FIG. 16) is shown by the code of FIG. 17, in accordance with some embodiments of the present invention.
Reference is now made to FIG. 18, which is an example of a code implementation of exemplary services used for wireless communication between the client terminal and detachable communication and computing proxy device, in accordance with some embodiments of the present invention. The code may be based on the BLUETOOTH® 4.x protocol.
Reference is now made to FIG. 19, which is a method of communication between the client terminal and sensor through the detachable communication and computing proxy device, in accordance with some embodiments of the present invention. The method may be implemented by system 100 of FIG. 1, and/or by other implementations of the system described herein. The method adapts a presentation presented on a display of a client terminal based on signal data received from sensors located on a physical object (which is not physically connected to the client terminal). The signal pathway includes a wired link between the sensor(s) and a detachable communication and computing proxy device (located on the physical object) and a wireless link between the detachable communication and computing proxy device and client terminal. The method allows for real-world actions (e.g., motion, pressure) performed on the physical object to be translated into virtual changes reflected by adapting a presentation associated with the physical object.
At 1901, the detachable communication and computing proxy device may be inserted by a user into the cradle, for example, by clicking into the cradle, by connecting a physical interface with the cradle (e.g., USB type C connector), by rotating to lock, or other detachable mechanisms. Alternatively, the detachable communication and computing proxy device is pre-installed in the cradle and/or the physical object. Alternatively, the communication and computing proxy device is fixed to the physical object, and/or attached (optionally detachable) to a connector coupled to the physical object.
Optionally, the detachable communication and computing proxy device automatically adapts to the environment, including the sensor hardware and/or cradle.
Optionally, code executed by a processor of the detachable communication and proxy device automatically adapts a communication protocol for the wired communication between the detachable communication and computing proxy device and each sensor according to the hardware implementation of each sensor. The adaptation may be performed by self-check and/or auto-configuration code. For example, when the detachable communication and computing proxy device detects motion sensors, the code may load additional code for receiving and processing motion sensor data. In another example, when the detachable communication and computing proxy device detects pressure sensors, the code may load additional code for receiving and processing pressure data.
At 1902, initialization and/or configuration instructions transmitted (e.g., as packets) by the client terminal over the wireless link are received by the detachable communication and computing proxy device. Optionally, the instructions define the direction of transmission (for input or output) of signals between the sensor(s) and client terminal, for example, when the channel is narrow allowing for serial input or output at a time (e.g., based on serial wired links between the detachable communication and computing proxy device and sensor(s)). The instructions may define which sensor data is to be received, for example, when multiple and/or different sensor(s) are in communication with the detachable communication and computing proxy device, and data is only required from some of the sensors. The instructions may define start of a bulk transmission of signal data from the sensors.
The instructions may write to one or more sensors, and/or one or more components of the extensions, for example, the instructions may activate an LED, or adjust settings of the sensor. The detachable communication and computing proxy device may receives the write instructions from the client terminal and perform the write based on the instructions. For example, the instructions from the client terminal may be provided in a higher-level format, and the detachable communication and computing proxy device may translate the instructions to a lower-level format according to the actual hardware implementation of the sensor.
At 1904, the detachable communication and computing proxy device receives, over the wired communication link, signal(s) outputted by sensor(s) (e.g., the selected sensor), via a wired connector, optionally the cradle. The sensors are located on the physical object, within the cradle, externally to the cradle, and/or within the detachable communication and computing proxy device.
The sensors may output signals in response to the environment around the physical object, for example, temperature around the object (e.g., by a temperature sensor), the user moving closer or further away from the object (e.g., by a camera or proximity motion sensor), and/or in response to actions performed by the user on the physical object, for example, movement of the object (e.g., motion sensors that measure rotation and/or displacement), forces applied on the object (e.g., pressure sensors that measure applied pressure) or other data.
The sensors may output low level signals, which may represent raw data. The raw data may be processed into higher level data, by a processor at the detachable communication and computing proxy device and/or by code running on the client terminal. The low level signals may be processed into higher level data which may represent the same or higher dimension (e.g., sensors output 2D data that is processed into 3D data, or sensors output 3D data that is processed into 4D data such as motion gestures and motion trajectory). Data from multiple sensors may be integrated into a single set of higher level instructions, for example, different motion sensors measure different aspects of motion may be integrated into a single set of higher level motion.
The signals are transmitted through a wired connection, optionally provided by the cradle.
The detachable communication and computing proxy device may receive the signal(s) as an interrupt (and/or after an interrupt), such as to awaken the detachable communication and computing proxy device from the sleep state, as described herein. The detachable communication and computing proxy device may receive the signal(s) as a response to a poll requesting the signal(s), for example, to receive signals upon request (i.e., when needed) rather than receiving a continuous stream of signals (which may require continuous processing even when not needed). At 1906, the detachable communication and computing proxy device processes the signals for wireless transmission. The detachable communication and computing proxy device may convert analogue signals to digital signals. The detachable communication and computing proxy device may pack the signals into packets and/or other formats based on wireless communication formats. The detachable communication and computing proxy device may perform other low-level signal processing, for example, merge signals from different motion sensors (e.g., representing different axes) into a vector representing higher-dimensional motion.
At 1908, the detachable communication and computing proxy device transmits, over the wireless communication link, the processed signals to the client terminal (which is located externally to the physical object), for example, as packets using the BLUETOOTH® protocol.
At 1910, the client terminal receives and analyzes the signal(s), which represent low-level data, to create higher-level instructions, for example, using software interfaces (e.g., API, SDK), as described herein. For example, low-level motion data is converted into a trajectory.
Optionally, the low-level data is received by a low-level interface. The low-level interface may provide the low-level data (optionally after low-level processing) to a higher-level interface, which may perform high-level processing (e.g., as described herein). The higher-level instructions may be provided to a software application by the higher-level interface. The software application may control the presentation displayed on the screen.
At 1912, a presentation presented on a display in association with client terminal is adapted based on the created higher- level instructions, for example, as described herein. For example, presented images on the screen representing the physical object are adapted in response to the actions performed on the object, for example, an image of a magic wand on the screen is moved in real-time according to the user moving a physical magic wand object.
At 1914, one or more of blocks 1902, 1904, 1908, 1910, and 1912 are iterated, optionally in real time, to dynamically adapt the images on the screen based on the environmental changes and/or actions performed on the physical object. Reference is now made to FIG. 20, which is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2006 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2004 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2012 (e.g., detachable communication and computing proxy device 112 of FIG. 1, or others as described herein) over a wired link 2052 and a wireless link 2050, in accordance with some embodiments of the present invention. The method provides a protocol for writing to a sensor, and/or reading from a sensor, such as when the wired link is a serial link allowing transmission of data in different directions only at separate times.
At 2060, a direction configuration command representing read or write is received by detachable communication and computing proxy device 2012 from client terminal 2004 over wireless channel 2050.
At 2062, a write command is received by detachable communication and computing proxy device 2012 from client terminal 2004 over wireless channel 2050. The write command may define which sensor(s) to write the value to, and includes a value to be written to sensor 2006.
At 2064, the write command is written to sensor 2006 by detachable communication and computing proxy device 2012 over wired link 2052.
At 2066, a read command is received by detachable communication and computing proxy device 2012 from client terminal 2004 over wireless channel 2050. The read command may define the one or more sensors 2006 from which the data is to be read.
At 2068, detachable communication and computing proxy device 2012 receives data (e.g., signal(s)) from sensor 2006 as an interrupt, which may occur automatically as sensor 2006 outputs new data. Alternatively or additionally, at 2070, detachable communication and computing proxy device 2012 receives the data from sensor 2006 after a polling requesting the data (e.g., in real-time).
At 2072, detachable communication and computing proxy device 2012 transmits the received data to client terminal 2004.
Reference is now made to FIG. 21, which is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2106 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2104 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2112 (e.g., detachable communication and computing proxy device 112 of FIG. 1, or others as described herein) over a wired link 2152 and a wireless link 2150, in accordance with some embodiments of the present invention. The method provides a protocol for bulk data transfer, such as when the wired link is a serial link allowing transmission of data in different directions only at separate times.
At 2160, detachable communication and computing proxy device 2112 receives, over wireless communication link 2150, from client terminal 2104, a quick-data-transfer command that defines a bulk transfer of data from sensor 2006 selected from multiple available sensors, to client terminal 2104.
Optionally, a state machine (e.g., as described herein) running on detachable communication and computing proxy device 2112 enters the sleep state, until data is received from the selected sensor 2106.
At 2162, detachable communication and computing proxy device 2112 receives from the selected sensor 2106, an interrupt message representing one or more new signal outputted by the selected sensor 2106.
At 2164, the new signal(s) are transmitted from detachable communication and computing proxy device 2112 to client terminal 2104 over wireless communication link 2150.
The bulk transfer occurs by iterating blocks 2162 and 2164, optionally until a new command is received from client terminal 2104.
Reference is now made to FIG. 22, which is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2206 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2204 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2212 (e.g., detachable communication and computing proxy device 112 of FIG. 1, or others as described herein) over a wired link 2252 and a wireless link 2250, in accordance with some embodiments of the present invention. The method provides a protocol for confirming commands, for example, in environments in which error rates are high, and/or when errors cannot be tolerated. The method may provide communication when the wired link is a serial link, allowing transmission of data in different directions only at separate times.
Block 2260 corresponds to the description of block 2062 of FIG. 20.
Block 2262 corresponds to the description of block 2064 of FIG. 20.
At 2264, detachable communication and computing proxy device 2212 waits to receive an acknowledgement message from sensor 2206. Detachable communication and computing proxy device 2212 may enter a sleep state, awakened when the acknowledgement is received (e.g., as an interrupt).
At 2266, the received acknowledge message (or a processed version thereof) is transmitted by detachable communication and computing proxy device 2212 to client terminal 2204 over wireless communication link 2250. Alternatively, a time-out message is transmitted by detachable communication and computing proxy device 2212 to client terminal 2204 when a predefined time elapses without receiving the acknowledgement message.
Block 2268 corresponds to the description of block 2066 of FIG. 20.
At 2270, detachable communication and computing proxy device 2212 issues a request to read data from the selected sensor 2206.
At 2272, sensor 2206 provides the read data to detachable communication and computing proxy device 2212.
At 2280, detachable communication and computing proxy device 2212 transmits the read data to client terminal 2204. Alternatively, a time-out message is transmitted by detachable communication and computing proxy device 2212 to client terminal 2204 when a predefined time elapses without receiving the read data.
Optionally, the read/write messages transmitted by the client terminal to the detachable communication and computing proxy device (e.g., as described with reference to FIGs. 20 and 22) include the least amount of required information (e.g., to reduce processing resources, memory resources, and/or power requirements), for example the number of bytes to read/write, and the actual value to read/write. Code executing on detachable communication and computing proxy device may translate the message from the client terminal into the read or write request. Reference is now made to FIG. 23, which is a dataflow diagram of an exemplary communication protocol for communicating data (e.g., signals) between sensor and/or extension 2306 (e.g., sensor 106 of FIG. 1, or others as described herein) and client terminal 2304 (e.g., client terminal 104 of FIG. 1, or others as described herein) using detachable communication and computing proxy device 2312 (e.g., detachable communication and computing proxy device 112 of FIG. 1, or others as described herein) over a wired link 2352 and a wireless link 2350, in accordance with some embodiments of the present invention. The method provides a protocol for reducing the number of commands transmitted by client terminal 2304 to detachable communication and computing proxy device 2312 over wireless link 2350, by issuing block commands. The block commands may provide for a high data stream rate.
At 2360, detachable communication and computing proxy device 2312 receives, over wireless communication link 2350 from client terminal 2304, a first block-data- transfer command. The block-data-transfer command issued by client terminal 2304 defines multiple commands for execution by detachable communication and computing proxy device 2312.
Optionally, a memory associated with detachable communication and computing proxy device 2312 stores block-data-transfer commands each mapped to a set of commands for local execution by detachable communication and computing proxy device 2312.
Optionally, detachable communication and computing proxy device 2312 receives a number of repetitions for execution of the first block-data-transfer command.
At 2362, client terminal 2304 may issue an explicit GO command to instruct detachable communication and computing proxy device 2312 to start execution of the mapped multiple commands.
Blocks 2364A-L represent an exemplary set of commands being executed by detachable communication and computing proxy device 2312 based on the block-data- transfer command. Optionally, when a repetition command is received, detachable communication and computing proxy device 2312 iteratively executes the set of commands mapped to the first block-data-transfer command according to the number of repetitions. At 2366, detachable communication and computing proxy device 2312 receives over wireless communication link 2350 from client terminal 2304, a second block-data transfer command.
Optionally, the second block-data transfer command is stored in a queue stored in the memory of detachable communication and computing proxy device 2312.
At 2368, detachable communication and computing proxy device 2312 completes execution of the set of commands associated with the first block-data-transfer command. A confirmation of completion may be transmitted by detachable communication and computing proxy device 2312 to client terminal 2304.
At 2370, detachable communication and computing proxy device 2312 executes the set of commands mapped to the second block-data-transfer command, upon completion of execution of set of commands mapped to the first block-data-transfer command.
Reference is now made to FIG. 24, which is a block diagram summarizing the communication related commands that may be issued by the client terminal to the detachable communication and computing proxy device, in accordance with some embodiments of the present invention. The communication related commands are discussed with reference to FIGs. 20-23.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
It is expected that during the life of a patent maturing from this application many relevant physical objects, wired communications methods, wireless communication methods, and sensors will be developed and the scope of the terms physical objects, wired communications methods, wireless communication methods, and sensors are intended to include all such new technologies a priori.
As used herein the term "about" refers to ± 10 %. The terms "comprises", "comprising", "includes", "including", "having" and their conjugates mean "including but not limited to". This term encompasses the terms "consisting of" and "consisting essentially of".
The phrase "consisting essentially of" means that the composition or method may include additional ingredients and/or steps, but only if the additional ingredients and/or steps do not materially alter the basic and novel characteristics of the claimed composition or method.
As used herein, the singular form "a", "an" and "the" include plural references unless the context clearly dictates otherwise. For example, the term "a compound" or "at least one compound" may include a plurality of compounds, including mixtures thereof.
The word "exemplary" is used herein to mean "serving as an example, instance or illustration". Any embodiment described as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments and/or to exclude the incorporation of features from other embodiments.
The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments". Any particular embodiment of the invention may include a plurality of "optional" features unless such features conflict.
Throughout this application, various embodiments of this invention may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.
Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases "ranging/ranges between" a first indicate number and a second indicate number and "ranging/ranges from" a first indicate number "to" a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.
It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.
All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting.

Claims

WHAT IS CLAIMED IS:
1. A communication and computing proxy device for attachment to a physical object, comprising:
a substantially planar substrate;
at least one of a battery holder and an electricity source attached on a first side of the substrate facing the physical object;
the following located on a second side of the substrate opposite the first side: at least one electrical contact interface for establishing physical wired electrical contact with at least one extension sensor located on the physical object externally to the communication and computing proxy device;
a wired communication interface that communicates over a wired connection with the at least one extension sensor;
a wireless communication interface that communicates over a short range wireless communication link with at least one client terminal, the at least one client located externally to the physical object, the wireless communication interface transmitting signals received from the at least one extension sensor.
2. The communication and computing proxy device of claim 1, wherein the communication and computing proxy device is designed for detachment from the physical object.
3. The communication and computing proxy device of claim 1, further comprising a USB type C connector.
4. The communication and computing proxy device of claim 3, wherein the communication and computing proxy device is encased within a casing having an orifice sized and shape for allowing the USB type C connector to connect to an external device.
5. The communication and computing proxy device of claim 3, wherein the USB type C connector is connected to the substrate at the first side, and the at least one of a battery holder and an electricity source is connected to the USB type C connected at a side of the USB type C connector facing the physical object.
6. The communication and computing proxy device of claim 5, wherein the at least one of a battery holder and an electricity source includes extension tabs that extend past USB type C connector connect to the substrate for providing power.
7. The communication and computing proxy device of claim 1, wherein the substrate planar substrate is shaped as substantially circular.
8. The communication and computing proxy device of claim 1, wherein the substrate planar substrate is shaped as a polygon.
9. The communication and computing proxy device of claim 1, wherein the at least one electrical contact interface are arranged in proximity to the perimeter of the substrate.
10. The communication and computing proxy device of claim 1, further comprising at least one motion sensor.
11. The communication and computing proxy device of claim 10, further comprising a motion processor executing code instructions to receive low-level signal output from the at least one motion sensor, and process the low-level signal output to generate higher-level signals indicative of at least one of: a quaternion, a higher dimension and motion gesture.
12. The communication and computing proxy device of claim 1, further comprising at least one of: a pressure sensor and a temperature sensor.
13. The communication and computing proxy device of claim 1, wherein a long axis of the communication and computing proxy device is less than about 20 mm.
14. The communication and computing proxy device of claim 1, further comprising charging circuits for charging a battery held by the battery holder from an external power source.
15. The communication and computing proxy device of claim 1, wherein the communication and computing proxy device is encased within a casing.
16. The communication and computing proxy device of claim 1, wherein the at least one client terminal is associated with a display that presents information based on data transmitted by the communication and computing proxy device.
17. A system for adaptation of a presentation on a display of a client terminal based on sensor data transmitted wirelessly by a detachable communication and computing proxy device, comprising:
at least one sensor disposed on a physical object, the at least one sensor outputting at least one signal representing at least one of a sensed human action performed on the physical object and sensed human motion in proximity to the physical object without contacting the physical object;
a cradle having a physical interface for physical attachment to the physical object, the cradle sized for insertion within a depression on a surface of the physical object, the cradle forming a physical electrical conductive wired connection between the at least one sensor and a detachable communication and computing proxy device when the detachable communication and computing proxy device is housed within the cradle, the cradle having detachable mechanism for detachably connecting to the detachable communication and computing proxy device; a detachable communication and computing proxy device sized and shaped for insertion into the cradle and including a mechanism for detachable connection to the cradle, the detachable communication and computing proxy device comprising:
at least one electrical contact interface that establishes physical wired electrical contact with the at least one sensor when the detachable communication and computing proxy device is inserted in the cradle;
a wired communication interface that communicates over the wired connection with the at least one sensor;
a wireless communication interface that communicates over a short range wireless communication link with at least one client terminal, the at least one client located externally to the physical object;
a program store storing code;
a processor coupled to the at least one electrical contact interface, the wired communication interface, the wireless communication interface, and the program store for implementing the stored code, the stored code comprising:
code to receive over the wired communication link, the at least one signal outputted by the at least one sensor disposed on the physical object;
code to process the at least one signal for wireless transmission over the short range wireless communication link, and transmit the processed at least one signal over the short range wireless communication link to the client terminal.
18. The system of claim 17, wherein the at least one client terminal is associated with a display, and the at least one client terminal adapts a presentation presented on the display based on higher-level instructions calculated from low-level commands derived from the at least one signal.
19. The system of claim 17, wherein the cradle and the detachable communication and computing proxy device are substantially planar such that an outer surface of the cradle and detachable communication and computing proxy device is approximately continuous with the outer surface of the physical object when the detachable communication and computing proxy device is housed in the cradle within the depression.
20. The system of claim 17, wherein a long axis of the cradle is less than about 20 millimeters.
21. The system of claim 17, wherein the physical electrical conductive wired connection is formed by male and female pogo-pins physically connecting to one another when the detachable communication and computing proxy device is inserted into the cradle.
22. The system of claim 17, wherein the physical electrical conductive wired connection is formed by a USB type-C interface physically connecting when the detachable communication and computing proxy device is inserted into the cradle.
23. The system of claim 17, wherein the cradle further houses a battery for powering the detachable communication and computing proxy device when housed within the cradle.
24. The system of claim 17, wherein the cradle further houses a charging circuit for charging a battery housed within the detachable communication and computing proxy device when housed within the cradle.
25. The system of claim 17, wherein the cradle further houses logic circuits that process low-level signal received from at least some of the sensors to create higher- level instructions for execution by code running on the client terminal.
26. The system of claim 25, wherein the logic circuits receive low-level signals from at least some motion-related detection sensors and outputs higher-level signals indicative of motion gestures.
27. The system of claim 25, wherein the logic circuits receive low-level signals from at least some motion-related detection sensors in a first dimension and outputs higher-level signals indicative of motion in a second dimension, wherein the second dimension is equal to or higher than the first dimension.
28. The system of claim 17, further comprising a battery having a long battery axis, the detachable communication and computing proxy device having a long detachable communication and computing proxy device axis, the battery and detachable communication and computing proxy devices arranged such that the long battery axis is parallel to the long detachable communication and computing proxy device axis.
29. The system of claim 28, wherein the battery and detachable communication and computing proxy devices are disposed on opposite sides of a substrate.
30. The system of claim 28, wherein a flexible substrate provides at least a portion of the physical wired electrical contact between the at least one sensor located on a first side of the battery and the detachable communication and computing proxy device located on an opposite side of the battery, wherein the flexible substrate envelopes at least a portion of the battery.
31. The system of claim 28, wherein the long battery axis is equal to or longer than the long computing axis.
32. The system of claim 17, wherein the detachable communication and computing proxy device is transferrable to different cradles physically coupled to different physical objects and different sensors.
33. The system of claim 17, wherein the physical object is a dumb object without electrical components.
34. The system of claim 17, wherein the wired connection between the detachable communication and computing proxy device and the at least one sensor comprises a serial communication interface, and the wireless connection between the detachable communication and computing proxy device and the client terminal comprises a parallel communication interface, and the program store of the detachable communication and computing proxy device stores instructions to convert between the serial communication interface and parallel communication interface.
35. A computer implemented method for adaptation of a presentation on a display of a client terminal based on sensor data transmitted wirelessly by a detachable communication and computing proxy device, comprising:
outputting at least one signal by at least one sensor disposed on a physical object, the at least one sensor sensing at least one of a human action performed on the physical object and human motion in proximity to the physical object without contacting the physical object;
transmitting the at least one signal over a wired connector;
receiving the transmitted at least one signal by a communication and computing proxy device coupled to the physical object, the at least one signal received by a physical electrically conductive connection formed during physical contact between the detachable communication and computing proxy device and the wired connector;
processing, by the detachable communication and computing proxy device, the at least one signal for wireless transmission over a short range wireless communication link using a wireless communication protocol;
transmitting, by the detachable communication and computing proxy device over the short range wireless communication link, the processed at least one signal to a client terminal located externally to the physical object;
receiving the transmitted at least one signal, by a low-level interface running on the client terminal;
analyzing, by the client terminal, the at least one signal representing low-level commands to create higher- level instructions;
adapting a presentation presented on a display by the application based on the higher-level instructions.
36. The method of claim 35, wherein the wired connector is located within a cradle located within a depression on a surface of the physical object.
37. The method of claim 35, wherein the communication and computing proxy device is housed within a cradle located within a depression on a surface of the physical object.
38. The method of claim 37, wherein the communication and computing proxy device is detachable from the cradle.
39. The method of claim 35, wherein the at least one sensor comprises a motion sensor, and the presentation is adapted to represent motion trajectory of a virtual object corresponding to the physical object.
40. The method of claim 35, wherein the communication and computing proxy device includes code stored in a program store executable by a processor of the communication and computing proxy device, the code comprising instructions for implementing a state machine with sleep state and active duty state, that is awakened when triggered by interrupt based events associated with the at least one sensor and the client terminal, and resumes the sleep state when processing of the interrupt based events is complete to reduce energy consumption.
41. The method of claim 35, further comprising:
receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a direction command that defines the direction of input or output for a certain sensor of a plurality of sensors.
42. The method of claim 41, further comprising:
receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a write command including a value which changes a state of the certain sensor;
transmitting the value, by the communication and computing proxy device over the wired communication link, to the certain sensor.
43. The method of claim 42, further comprising:
waiting, by the communication and computing proxy device to receive an acknowledgement message from the certain sensor over the wired communication link; and
transmitting the received acknowledge message, by the communication and computing proxy device to the client terminal over the wireless communication link; or transmitting a time-out message by the communication and computing proxy device to the client terminal over the wireless communication link when the communication and computing proxy device waits for a predefined time without receiving the acknowledgement message.
44. The method of claim 41, further comprising:
receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a read command to receive at least one new signal from the certain sensor;
receiving, the at least one new signal by the communication and computing proxy device from the certain sensor over the wired link; and
transmitting, the at least one new signal by the communication and computing proxy device to the client terminal over the wireless communication link, to be used for the analyzing.
45. The method of claim 44, wherein the at least one new signal outputted by the certain sensor is received by the communication and computing proxy device by at least one of: in response to a poll from the communication and computing proxy device, and as an automatic update by an interrupt created by the certain sensor.
46. The method of claim 35, further comprising:
receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a quick-data-transfer command that defines a bulk transfer of data from a certain sensor of a plurality of sensors to the client terminal; receiving, by the communication and computing proxy device from the certain sensor, an interrupt representing at least one new signal outputted by the certain sensor; and
transmitting, the at least one new signal by the communication and computing proxy device to the client terminal over the wireless communication link, to be used for the analyzing.
47. The method of claim 46, further comprising:
entering a sleep state, by the communication and computing proxy device, in response to receiving the quick-data-transfer command; and
awakening from the sleep state in response to receiving the interrupt from the certain sensor.
48. The method of claim 46, further comprising: iterating the receiving the interrupt and transmitting the at least one new signal, until a new command is received by the communication and computing proxy device from the client terminal.
49. The method of claim 35, further comprising:
receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a first block-data-transfer command that defines a plurality of commands for execution by the communication and computing proxy device;
wherein a memory associated with the communication and computing proxy device stores the plurality of commands mapped to each block-data-transfer command; and
executing, by the communication and computing proxy device, the plurality of commands mapped to the first block-data-transfer command.
50. The method of claim 49, further comprising:
receiving, by the communication and computing proxy device over the wireless communication link from the client terminal, a second block-data transfer command; storing the second block-data transfer command in a queue stored in the memory; and
executing, by the communication and computing proxy device, the plurality of commands mapped to the second block-data-transfer command upon completion of execution of the plurality of commands mapped to the first block-data-transfer command.
51. The method of claim 49, wherein the communication and computing proxy device receives a number of repetitions for execution of the first block-data- transfer command, and the communication and computing proxy device iteratively executes the plurality of commands mapped to the first block-data-transfer command according to the number of repetitions.
52. The method of claim 35, further comprising automatically adapting a communication protocol for the wired communication between the communication and computing proxy device and each sensor according to the hardware implementation of each sensor.
53. The method of claim 35, further comprising:
providing the higher-level instructions by a higher-level interface of code executing on the client terminal; and
receiving the higher-level-instructions from the higher-level interface by an application running on the client terminal.
PCT/IL2017/050032 2016-01-11 2017-01-11 Systems and methods for connecting physical objects to software applications WO2017122198A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662277033P 2016-01-11 2016-01-11
US62/277,033 2016-01-11

Publications (1)

Publication Number Publication Date
WO2017122198A1 true WO2017122198A1 (en) 2017-07-20

Family

ID=59311705

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2017/050032 WO2017122198A1 (en) 2016-01-11 2017-01-11 Systems and methods for connecting physical objects to software applications

Country Status (1)

Country Link
WO (1) WO2017122198A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090082879A1 (en) * 2007-09-20 2009-03-26 Evolution Robotics Transferable intelligent control device
WO2013096807A1 (en) * 2011-12-23 2013-06-27 American Electronic Components, Inc. Tilt / vibration sensor
WO2015061737A1 (en) * 2013-10-24 2015-04-30 Fuhu Holdings, Inc. Mobile virtual environment
US20150174499A1 (en) * 2013-12-23 2015-06-25 Olive & Mint LLC Interactive learning system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090082879A1 (en) * 2007-09-20 2009-03-26 Evolution Robotics Transferable intelligent control device
WO2013096807A1 (en) * 2011-12-23 2013-06-27 American Electronic Components, Inc. Tilt / vibration sensor
WO2015061737A1 (en) * 2013-10-24 2015-04-30 Fuhu Holdings, Inc. Mobile virtual environment
US20150174499A1 (en) * 2013-12-23 2015-06-25 Olive & Mint LLC Interactive learning system

Similar Documents

Publication Publication Date Title
CN108075325B (en) Interface device
CN109426327B (en) Method for controlling power between electronic devices and electronic device
EP3022626B1 (en) Energy savings
RU2679408C2 (en) Data and power connector
US7777719B2 (en) System using a living body as a transmission medium
KR20190036300A (en) Connector for connecting antenna and electronic device having the same
CN109276895B (en) Building block system, and method, device and system for identifying topological structure
KR102514256B1 (en) Wearable electronic device with band
EP3683687B1 (en) Method of communication between multiple devices using usb type-c interface and electronic device implementing same
KR20170094406A (en) Optical communication with optical sensors
US20130050087A1 (en) Multi-functional mouse assembly and input operation method thereof
KR20150060804A (en) Transmitting an interrupt packet
EP3641055A1 (en) Electronic device including antenna apparatus using photo-conductive material and antenna control method
KR20170058636A (en) Electronic device with bi-directional connector
EP3447627B1 (en) Method for determining input detection region corresponding to user interface and electronic device thereof
CN204155184U (en) A kind of wearable electronic
CN108595023A (en) A kind of interactive handle and system
CN108141492B (en) Electronic device and method of controlling accessory
WO2017122198A1 (en) Systems and methods for connecting physical objects to software applications
CN103034394A (en) Multimedia device having detachable controller
KR20210022921A (en) Sliding operated electronic device
US20200375018A1 (en) Electronic device for providing feedback corresponding to input for housing
KR20190092680A (en) Electronic device including connector with stacked structure
CN205721205U (en) A kind of modular wearable device and Combined type electric subset
CN217442737U (en) Flexible electronic skin and robot

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17738282

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 30.10.2018)

122 Ep: pct application non-entry in european phase

Ref document number: 17738282

Country of ref document: EP

Kind code of ref document: A1