Various embodiments relate generally to electrical and electronic hardware, computer software, human-computing interfaces, wired and wireless network communications, data processing, computing devices, watches, watch bands, and wrist-worn watch-enabled devices. More specifically, techniques for data-capable band management in an integrated application and network communication data environment are described.
With the advent of greater computing capabilities in smaller personal and/or portable form factors and an increasing number of applications (i.e., computer and Internet software or programs) for different uses, consumers (i.e., users) have access to large amounts of personal data. Information and data are often readily available, but poorly captured using conventional data capture devices. Conventional devices typically lack capabilities that can capture, analyze, communicate, or use data in a contextually-meaningful, comprehensive, and efficient manner. Further, conventional solutions are often limited to specific individual purposes or uses, demanding that users invest in multiple devices in order to perform different activities (e.g., a sports watch for tracking time and distance, a GPS receiver for monitoring a hike or run, a cyclometer for gathering cycling data, and others). Although a wide range of data and information is available, conventional devices and applications fail to provide effective solutions that comprehensively capture data for a given user across numerous disparate activities. Further, tools, functions, or features that allow efficient and activity or state-related management of data-capture devices and content are unavailable in conventional solutions.
Some conventional solutions combine a small number of discrete functions. Functionality for data capture, processing, storage, or communication in conventional devices such as a watch or timer with a heart rate monitor or global positioning system (“GPS”) receiver are available conventionally, but are expensive to manufacture and purchase. Other conventional solutions for combining personal data capture facilities often present numerous design and manufacturing problems such as size restrictions, specialized materials requirements, lowered tolerances for defects such as pits or holes in coverings for water-resistant or waterproof devices, unreliability, higher failure rates, increased manufacturing time, and expense. Subsequently, conventional devices such as fitness watches, heart rate monitors, GPS-enabled fitness monitors, health monitors (e.g., diabetic blood sugar testing units), digital voice recorders, pedometers, altimeters, and other conventional personal data capture devices are generally manufactured for conditions that occur in a single or small groupings of activities. Further, conventional devices typically do not provide features or functions, based on the types of data captured, to manage other information or data, including media devices, applications, formats, and content of various types.
Thus, what is needed is a solution for managing wearable computing devices and data gathered from onboard sensors without the limitations of conventional techniques.
Various embodiments or examples (“examples”) are disclosed in the following detailed description and the accompanying drawings:
Various embodiments or examples may be implemented in numerous ways, including as a system, a process, an apparatus, a user interface, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.
As described above, bands 104-112 may be implemented as wearable personal data or data capture devices (e.g., data-capable devices; as used herein, “data-capable” may refer to any capability using data from or transferred using indirect or direct data communication links) that are worn by a user around a wrist, ankle, arm, ear, or other appendage, or attached to the body or affixed to clothing. One or more facilities, sensing elements, or sensors, both active and passive, may be implemented as part of bands 104-112 in order to capture various types of data from different sources. Temperature, environmental, temporal, motion, electronic, electrical, chemical, or other types of sensors (including those described below in connection with
Using data gathered by bands 104-112, applications may be used to perform various analyses and evaluations that can generate information as to a person's physical (e.g., healthy, sick, weakened, or other states, or activity level), emotional, or mental state (e.g., an elevated body temperature or heart rate may indicate stress, a lowered heart rate and skin temperature, or reduced movement (excessive sleeping), may indicate physiological depression caused by exertion or other factors, chemical data gathered from evaluating outgassing from the skin's surface may be analyzed to determine whether a person's diet is balanced or if various nutrients are lacking, salinity detectors may be evaluated to determine if high, lower, or proper blood sugar levels are present for diabetes management, and others). Generally, bands 104-112 may be configured to gather from sensors locally and remotely.
As an example, band 104 may capture (i.e., record, store, communicate (i.e., send or receive), process, or the like) data from various sources (i.e., sensors that are organic (i.e., installed, integrated, or otherwise implemented with band 104) or distributed (e.g., microphones on mobile computing device 115, mobile communications device 118, computer 120, laptop 122, distributed sensor 124, global positioning system (“GPS”) satellites, or others, without limitation)) and exchange data with one or more of bands 106-112, server 114, mobile computing device 115, mobile communications device 118, computer 120, laptop 122, and distributed sensor 124. As shown here, a local sensor may be one that is incorporated, integrated, or otherwise implemented with bands 104-112. A remote or distributed sensor (e.g., mobile computing device 115, mobile communications device 118, computer 120, laptop 122, or, generally, distributed sensor 124) may be sensors that can be accessed, controlled, or otherwise used by bands 104-112. For example, band 112 may be configured to control devices that are also controlled by a given user (e.g., mobile computing device 115, mobile communications device 118, computer 120, laptop 122, and distributed sensor 124). For example, a microphone in mobile communications device 118 may be used to detect, for example, ambient audio data that is used to help identify a person's location, or an ear clip (e.g., a headset as described below) affixed to an ear may be used to record pulse or blood oxygen saturation levels. Additionally, a sensor implemented with a screen on mobile computing device 115 may be used to read a user's temperature or obtain a biometric signature while a user is interacting with data. A further example may include using data that is observed on computer 120 or laptop 122 that provides information as to a user's online behavior and the type of content that she is viewing, which may be used by bands 104-112. Regardless of the type or location of sensor used, data may be transferred to bands 104-112 by using, for example, an analog audio jack, digital adapter (e.g., USB, mini-USB), or other, without limitation, plug, or other type of connector that may be used to physically couple bands 104-112 to another device or system for transferring data and, in some examples, to provide power to recharge a battery (not shown). Alternatively, a wireless data communication interface or facility (e.g., a wireless radio that is configured to communicate data from bands 104-112 using one or more data communication protocols (e.g., IEEE 802.11a/b/g/n (WiFi), WiMax, ANT™, ZigBee®, Bluetooth®, Near Field Communications (“NFC”), and others)) may be used to receive or transfer data. Further, bands 104-112 may be configured to analyze, evaluate, modify, or otherwise use data gathered, either directly or indirectly.
In some examples, bands 104-112 may be configured to share data with each other or with an intermediary facility, such as a database, website, web service, or the like, which may be implemented by server 114. In some embodiments, server 114 can be operated by a third party providing, for example, social media-related services. An example of such a third party is Facebook®. Bands 104-112 may exchange data with each other directly or via a third party server providing social-media related services. Such data can include personal physiological data and data derived from sensory-based user interfaces (“UI”). Server 114, in some examples, may be implemented using one or more processor-based computing devices or networks, including computing clouds, storage area networks (“SAN”), or the like. As shown, bands 104-112 may be used as a personal data or area network (e.g., “PDN” or “PAN”) in which data relevant to a given user or band (e.g., one or more of bands 104-112) may be shared. As shown here, bands 104 and 112 may be configured to exchange data with each other over network 102 or indirectly using server 114. Users of bands 104 and 112 may direct a web browser hosted on a computer (e.g., computer 120, laptop 122, or the like) in order to access, view, modify, or perform other operations with data captured by bands 104 and 112. For example, two runners using bands 104 and 112 may be geographically remote (e.g., users are not geographically in close proximity locally such that bands being used by each user are in direct data communication), but wish to share data regarding their race times (pre, post, or in-race), personal records (i.e., “PR”), target split times, results, performance characteristics (e.g., target heart rate, target VO2 max, and others), and other information. If both runners (i.e., bands 104 and 112) are engaged in a race on the same day, data can be gathered for comparative analysis and other uses. Further, data can be shared in substantially real-time (taking into account any latencies incurred by data transfer rates, network topologies, or other data network factors) as well as uploaded after a given activity or event has been performed. In other words, data can be captured by the user as it is worn and configured to transfer data using, for example, a wireless network connection (e.g., a wireless network interface card, wireless local area network (“LAN”) card, cell phone, or the like. Data may also be shared in a temporally asynchronous manner in which a wired data connection (e.g., an analog audio plug (and associated software or firmware) configured to transfer digitally encoded data to encoded audio data that may be transferred between bands 104-112 and a plug configured to receive, encode/decode, and process data exchanged) may be used to transfer data from one or more bands 104-112 to various destinations (e.g., another of bands 104-112, server 114, mobile computing device 115, mobile communications device 118, computer 120, laptop 122, and distributed sensor 124). In some examples, bands 104-112 may be configured to synchronize (i.e., “sync”) with other bands or applications (e.g., computer programs, software, firmware, server-based, client-based, web-based, computing cloud-based, or a combination thereof) in order to transfer data bidirectionally to analyze, evaluate, or otherwise generate data or information based on input or signals received from or sent to one or more sensors on bands 104-112. Data may be transferred from bands 104-112 to an application hosted on one or more of server 114, mobile computing device 115, mobile communications device 118, computer 120, laptop 122, distributed sensor 124, or another data processing device. In some examples, synchronizing (i.e., “syncing”) may be performed using a wired (e.g., a data transfer cable between coupled between one or more of bands 104-112 and a device such as those listed above) or wireless data communication facility and/or protocol (e.g., Bluetooth low energy (i.e., “Bluetooth® LE”), Near Field Communication (NFC), or any other form of long, short, or near range RF technology).
Syncing may be configured, in some examples, by a user specifying various settings for data to be synchronized from one or more of bands 104-112. For example, a user may define settings on an application that is configured to synch with one or more of bands 104-112 including when and/or how an activity is performed, types of activities, specific types or categories of data to be tracked and collected, and the like. As another example, some activities may be identified, either selected by a user or automatically determined by firmware and/or software implemented on or in data communication with (i.e., consistently or intermittently) one or more of bands 104-112. For example, a user may wish to collect sleep data for only the time period between 1:00 am and 6:00 am. Another user may wish to track and collect only motion data that is either identified by the user or determined by an application (such as those described herein) to be fitness-related motion. In other examples, some activities may synchronize data from different activities at different times.
As an example, some synchronization activities (i.e., activities that are performed based on a user's input or semi-automatically or automatically determined to be performed) can be executed between one or more of bands 104-112 and another device or application in data communication at time periods or periodicities that are different than others. “Background” (i.e., for data applications, sources, or sensors that may not require nor need user input nor is intended to be performed during a session in which a user is interfacing with an application in data communication with one or more of bands 104-112. Examples of background functions may include, but are not limited to, the transfer of large amounts of data, data related to operating system features or functions, firmware upgrades or updates, and the like. Alternatively, “foreground” syncing may be performed when, for example, a user initiates a synchronization session, which may be achieved by selecting an icon on a user interface, selecting a menu option, powering up a band, powering down a band, placing a band in one mode from another, and the like. Foreground syncing may also be performed when a user desires to update data on her device to indicate, for example, progress towards a particular goal (e.g., how many steps did I take today compared to my intended goal of taking 10,000 steps, how many calories were present in the foods I ate compared to my intended goal, how much did I sleep relative to my input goal of 8 hours, and the like).
In some examples, syncing may be initiated by a user and, once initiated, may start an application from the last state of operation before the application was closed, quit, or otherwise “shut down” (i.e., the application and all executable operations were stopped). In some examples, graphical, audio, video (or a combination thereof) icons, images, or elements may be presented on an interface to indicate syncing is being performed. For example, a rotating image or icon, a visual change to progress indicators such as a pie chart, graph, or “lifeline” (i.e., a temporal graph providing various elements at different time periods along an “x” axis while the amplitude indication along the “y” axis can be configured, in some examples, to indicate the level of progress towards a goal that is being tracked using one or more sensors implemented on one or more of bands 104-112. Preferences may be set such that syncing is performed in accordance with various rules or parameters (e.g., synch every 60 seconds or over a set period of time, update visual progress indicators whenever progress is made towards a goal as indicated by synchronized data, perform a synchronization function when a threshold amount of data collected from one or more sensors onboard bands 104-112 is met or exceeded, among others). Syncing may also be configured to provide information or data that is contextually related or of interest to a given user when, for example, a synchronization operation is being performed involving a substantial amount of data being transferred. For example, tips related to a user's area of activity (e.g., motion, eating, sleep, and others) may be presented in a window, box, callout, bubble, balloon, or other graphical element presented on an application interface (i.e., interface), thus providing information that may be beneficial to a user and occupy his attention while a lengthy or large data amount is synchronized between his band and another band, device, or application. In other examples, the graphical environment may be animated, altered, or otherwise modified during a syncing operation in order to provide visual indicators in anticipation of the completion of a syncing operation in which updated visual, audio, video, graphical, or other types of indicators will be updated. Other numerous examples may be implemented for synchronizing one or more of bands 104-112 with a data source, storage, analysis, processor, or other function and are not limited in design, order, steps, actions, activities, or any other aspect or parameter.
In some examples, bands 104-112 may be implemented with various types of wired and/or wireless communication facilities and are not intended to be limited to any specific technology. For example, data may be transferred from bands 104-112 using an analog audio plug (e.g., TRRS, TRS, or others). In other examples, wireless communication facilities using various types of data communication protocols (e.g., WiFi, Bluetooth®, ZigBee®, ANT™, and others) may be implemented as part of bands 104-112, which may include circuitry, firmware, hardware, radios, antennas, processors, microprocessors, memories, or other electrical, electronic, mechanical, or physical elements configured to enable data communication capabilities of various types and characteristics. For example, using Bluetooth® LE (i.e., Low Energy) or another variant of Bluetooth® wireless transceiver (i.e., transmitter and receiver-based communications facility), bands 104-112 may be configured to transfer data between each other or to another device (e.g., server 114, mobile computing device 115, mobile communications device 118, computer 120, laptop 122, distributed sensor 124, or the like) without requiring a wired or other physical connection. In other examples, radio frequency (RF) technologies such as near field communication (NFC), RFID, or any type of wireless communication facility, protocol, or technology may be used in connection with, supplement to, or as an alternative to the techniques shown and/or described above, without limitation or restriction to any particular implementation. Further, hardware, firmware, and software may be varied in layout, configuration, specification, operating parameters, and other criteria in order to implement a wireless data communication capability in bands 104-112 without restriction or limitation based on factors such as antenna placement, battery technology (e.g., lithium ion, nickel metal hydride, and others), grounding, signal converters, amplifiers, modulators, or the like. As an example, a RF antenna may be placed anywhere within band 104-112 such as being deposited on a substrate and “layered-over” or coated with one or more protective coatings. The size, shape, disposition, material composition, connections, length, width, configuration, or other parameters of an antenna used to enable a wireless communication facility may be varied and is not limited or restricted to any particular implementation. As another example, a RF antenna may be used of any shape to have direct or indirect contact with one or more exterior materials, such as a metal window or other element integrated with an exterior protective coating in order to enhance or otherwise increase wireless, mobile, cellular transmission and reception of signals with bands 104-112. Further, a RF antenna may be disposed within any element of bands 104-112, including those as shown and described below, such as an audio cap or other part, component or sub-element of bands 104-112. In still other examples, the above-described techniques may be further varied without limitation or restriction.
As data-capable devices, bands 104-112 may be configured to collect data from a wide range of sources, including onboard (not shown) and distributed sensors (e.g., server 114, mobile computing device 115, mobile communications device 118, computer 120, laptop 122, and distributed sensor 124) or other bands. Some or all data captured may be personal, sensitive, or confidential and various techniques for providing secure storage and access may be implemented. For example, various types of security protocols and algorithms may be used to encode data stored or accessed by bands 104-112. Examples of security protocols and algorithms include authentication, encryption, encoding, private and public key infrastructure, passwords, checksums, hash codes and hash functions (e.g., SHA, SHA-1, MD-5, and the like), or others may be used to prevent undesired access to data captured by bands 104-112. In other examples, data security for bands 104-112 may be implemented differently.
Bands 104-112 may be used as personal wearable, data capture devices that, when worn, are configured to identify a specific, individual user. By evaluating captured data such as motion data from an accelerometer, biometric data such as heart rate, skin galvanic response, and other biometric data, and using analysis techniques, both long and short-term (e.g., software packages or modules of any type, without limitation), a user may have a unique pattern of behavior or motion and/or biometric responses that can be used as a signature for identification. For example, bands 104-112 may gather data regarding an individual person's gait or other unique biometric, physiological or behavioral characteristics. Using, for example, distributed sensor 124, a biometric signature (e.g., fingerprint, retinal or iris vascular pattern, or others) may be gathered and transmitted to bands 104-112 that, when combined with other data, determines that a given user has been properly identified and, as such, authenticated. When bands 104-112 are worn, a user may be identified and authenticated to enable a variety of other functions such as accessing or modifying data, enabling wired or wireless data transmission facilities (i.e., allowing the transfer of data from bands 104-112 using, for example, various types of wireless data communication protocols such as Near Field Communication (NFC), WiFi, Bluetooth, Zigbee, and others, without limitation), modifying functionality or functions of bands 104-112, authenticating financial transactions using stored data and information (e.g., credit card, PIN, card security numbers, and the like), running applications that allow for various operations to be performed (e.g., controlling physical security and access by transmitting a security code to a reader that, when authenticated, unlocks a door by turning off current to an electromagnetic lock, and others), and others. Different functions and operations beyond those described may be performed using bands 104-112, which can act as secure, personal, wearable, data-capable devices. The number, type, function, configuration, specifications, structure, or other features of system 100 and the above-described elements may be varied and are not limited to the examples provided.
In some examples, memory 206 may be implemented using various types of data storage technologies and standards, including, without limitation, read-only memory (“ROM”), random access memory (“RAM”), dynamic random access memory (“DRAM”), static random access memory (“SRAM”), static/dynamic random access memory (“SDRAM”), magnetic random access memory (“MRAM”), solid state, two and three-dimensional memories, Flash®, and others. Memory 206 may also be implemented using one or more partitions that are configured for multiple types of data storage technologies to allow for non-modifiable (i.e., by a user) software to be installed (e.g., firmware installed on ROM) while also providing for storage of captured data and applications using, for example, RAM. Once captured and/or stored in memory 206, data may be subjected to various operations performed by other elements of band 200.
Vibration source 208, in some examples, may be implemented as a motor or other mechanical structure that functions to provide vibratory energy that is communicated through band 200. As an example, an application stored on memory 206 may be configured to monitor a clock signal from processor 204 in order to provide timekeeping functions to band 200. If an alarm is set for a desired time, vibration source 208 may be used to vibrate when the desired time occurs. As another example, vibration source 208 may be coupled to a framework (not shown) or other structure that is used to translate or communicate vibratory energy throughout the physical structure of band 200. In other examples, vibration source 208 may be implemented differently.
Power may be stored in battery 214, which may be implemented as a battery, battery module, power management module, or the like. Power may also be gathered from local power sources such as solar panels, thermo-electric generators, and kinetic energy generators, among others that are alternatives power sources to external power for a battery. These additional sources can either power the system directly or charge a battery that is used to power the system (e.g., of a strapband). In other words, battery 214 may include a rechargeable, expendable, replaceable, or other type of battery, but also circuitry, hardware, or software that may be used in connection with in lieu of processor 204 in order to provide power management, charge/recharging, sleep, or other functions. Further, battery 214 may be implemented using various types of battery technologies, including Lithium Ion (“LI”), Nickel Metal Hydride (“NiMH”), or others, without limitation. Power drawn as electrical current may be distributed from battery via bus 202, the latter of which may be implemented as deposited or formed circuitry or using other forms of circuits or cabling, including flexible circuitry. Electrical current distributed from battery 204 and managed by processor 204 may be used by one or more of memory 206, vibration source 208, accelerometer 210, sensor 212, or communications facility 216.
As shown, various sensors may be used as input sources for data captured by band 200. For example, accelerometer 210 may be used to gather data measured across one, two, or three axes of motion. In addition to accelerometer 210, other sensors (i.e., sensor 212) may be implemented to provide temperature, environmental, physical, chemical, electrical, or other types of sensed inputs. As presented here, sensor 212 may include one or multiple sensors and is not intended to be limiting as to the quantity or type of sensor implemented. Data captured by band 200 using accelerometer 210 and sensor 212 or data requested from another source (i.e., outside of band 200) may also be exchanged, transferred, or otherwise communicated using communications facility 216. As used herein, “facility” refers to any, some, or all of the features and structures that are used to implement a given set of functions. For example, communications facility 216 may include a wireless radio, control circuit or logic, antenna, transceiver, receiver, transmitter, resistors, diodes, transistors, or other elements that are used to transmit and receive data from band 200. In some examples, communications facility 216 may be implemented to provide a “wired” data communication capability such as an analog or digital attachment, plug, jack, or the like to allow for data to be transferred. In other examples, communications facility 216 may be implemented to provide a wireless data communication capability to transmit digitally encoded data across one or more frequencies using various types of data communication protocols, without limitation. In still other examples, band 200 and the above-described elements may be varied in function, structure, configuration, or implementation and are not limited to those shown and described.
As shown, accelerometer 302 may be used to capture data associated with motion detection along 1, 2, or 3-axes of measurement, without limitation to any specific type of specification of sensor. Accelerometer 302 may also be implemented to measure various types of user motion and may be configured based on the type of sensor, firmware, software, hardware, or circuitry used. As another example, altimeter/barometer 304 may be used to measure environment pressure, atmospheric or otherwise, and is not limited to any specification or type of pressure-reading device. In some examples, altimeter/barometer 304 may be an altimeter, a barometer, or a combination thereof. For example, altimeter/barometer 304 may be implemented as an altimeter for measuring above ground level (“AGL”) pressure in band 200, which has been configured for use by naval or military aviators. As another example, altimeter/barometer 304 may be implemented as a barometer for reading atmospheric pressure for marine-based applications. In other examples, altimeter/barometer 304 may be implemented differently.
Other types of sensors that may be used to measure light or photonic conditions include light/IR sensor 306, motion detection sensor 320, and environmental sensor 322, the latter of which may include any type of sensor for capturing data associated with environmental conditions beyond light. Further, motion detection sensor 320 may be configured to detect motion using a variety of techniques and technologies, including, but not limited to comparative or differential light analysis (e.g., comparing foreground and background lighting), sound monitoring, or others. Audio sensor 310 may be implemented using any type of device configured to record or capture sound.
In some examples, pedometer 312 may be implemented using devices to measure various types of data associated with pedestrian-oriented activities such as running or walking Footstrikes, stride length, stride length or interval, time, and other data may be measured. Velocimeter 314 may be implemented, in some examples, to measure velocity (e.g., speed and directional vectors) without limitation to any particular activity. Further, additional sensors that may be used as sensor 212 include those configured to identify or obtain location-based data. For example, GPS receiver 316 may be used to obtain coordinates of the geographic location of band 200 using, for example, various types of signals transmitted by civilian and/or military satellite constellations in low, medium, or high earth orbit (e.g., “LEO,” “MEO,” or “GEO”). In other examples, differential GPS algorithms may also be implemented with GPS receiver 316, which may be used to generate more precise or accurate coordinates. Still further, location-based services sensor 318 may be implemented to obtain location-based data including, but not limited to location, nearby services or items of interest, and the like. As an example, location-based services sensor 318 may be configured to detect an electronic signal, encoded or otherwise, that provides information regarding a physical locale as band 200 passes. The electronic signal may include, in some examples, encoded data regarding the location and information associated therewith. Electrical sensor 326 and mechanical sensor 328 may be configured to include other types (e.g., haptic, kinetic, piezoelectric, piezomechanical, pressure, touch, thermal, and others) of sensors for data input to band 200, without limitation. Other types of sensors apart from those shown may also be used, including magnetic flux sensors such as solid-state compasses and the like, including gyroscopic sensors. While the present illustration provides numerous examples of types of sensors that may be used with band 200 (
For example, logic module 404 may be configured to send control signals to communications module 406 in order to transfer, transmit, or receive data stored in memory 206, the latter of which may be managed by a database management system (“DBMS”) or utility in data management module 412. As another example, security module 408 may be controlled by logic module 404 to provide encoding, decoding, encryption, authentication, or other functions to band 200 (
Interface module 410, in some examples, may be used to manage user interface controls such as switches, buttons, or other types of controls that enable a user to manage various functions of band 200. For example, a 4-position switch may be turned to a given position that is interpreted by interface module 410 to determine the proper signal or feedback to send to logic module 404 in order to generate a particular result. In other examples, a button (not shown) may be depressed that allows a user to trigger or initiate certain actions by sending another signal to logic module 404. Still further, interface module 410 may be used to interpret data from, for example, accelerometer 210 (
As shown, audio module 414 may be configured to manage encoded or unencoded data gathered from various types of audio sensors. In some examples, audio module 414 may include one or more codecs that are used to encode or decode various types of audio waveforms. For example, analog audio input may be encoded by audio module 414 and, once encoded, sent as a signal or collection of data packets, messages, segments, frames, or the like to logic module 404 for transmission via communications module 406. In other examples, audio module 414 may be implemented differently in function, structure, configuration, or implementation and is not limited to those shown and described. Other elements that may be used by band 200 include motor controller 416, which may be firmware or an application to control a motor or other vibratory energy source (e.g., vibration source 208 (
Another element of application architecture 400 that may be included is service management module 418. In some examples, service management module 418 may be firmware, software, or an application that is configured to manage various aspects and operations associated with executing software-related instructions for band 200. For example, libraries or classes that are used by software or applications on band 200 may be served from an online or networked source. Service management module 418 may be implemented to manage how and when these services are invoked in order to ensure that desired applications are executed properly within application architecture 400. As discrete sets, collections, or groupings of functions, services used by band 200 for various purposes ranging from communications to operating systems to call or document libraries may be managed by service management module 418. Alternatively, service management module 418 may be implemented differently and is not limited to the examples provided herein. Further, application architecture 400 is an example of a software/system/application-level architecture that may be used to implement various software-related aspects of band 200 and may be varied in the quantity, type, configuration, function, structure, or type of programming or formatting languages used, without limitation to any given example.
Various types of data may be captured from sensors, such as those described above in connection with
For example, eating, sleeping (as described in further detail below in connection with
For example, a user wearing band 519 may challenge another user to eat a certain number of calories in a given day. Using data manually, semi-automatically, or automatically input using one or more sensors on band 519, each user's caloric intake may be measured and compared between users engaged in a race. As another example, multiple users may engage in a race (i.e., challenge) to achieve a certain number of steps in a given period of time (e.g., one day, 24 hours, a week, a month, a year, and the like). Using data gathered from multiple bands such as band 519, users can “compete” against each other to determine, for example, who has achieved a given threshold first. Other types of activity challenges or races may be implemented or designed using band 519 and the techniques described herein, without limitation or restriction. Further, more, fewer, or different types of data including, but not limited to activity, motion, and user-input data, may be captured for fitness and other types of activities.
Various types of features, functions, or activities may be enabled using band 539 and local or remote processing capabilities (e.g., a smartphone, mobile data communication device, server, or any other type of data processing device, apparatus, or system) in wired or wireless data (e.g., digital or analog) communication with band 539) for sleep management, tracking, monitoring, or other related purposes. For example, one or more sensors on band 539 (or others that are remotely coupled to band 539) may be used to detect one or more sleep characteristics or parameters for a given user such as a time duration for a period of sleep, movement occurring during the sleep, whether the detected period of sleep met, exceeded, or failed to exceed user input or automatically determined thresholds for a desired amount of sleep. As an example, if a user provides an input to an application that is used to manage the user's sleep period based on evaluating data gathered from one or more sensors implemented on band 539, the actual amount of sleep can be determined based on either the user manually placing band 539 in a sleep mode or band 539 automatically or semi-automatically determining whether sleep occurred during a given period of time based on evaluating input from an accelerometer (e.g., no or slight motion detected over a given period of time, and the like) or another sensor (e.g., an audio sensor locally or remotely (e.g., an audio microphone in a separate device that is in data communication with band 539 or capable of being placed in data communication with band 539) implemented on band 539) detecting sound (e.g., measured sound levels may fall above or below a given decibel threshold, and the like) and comparing it to previously stored data to determine if the detected input is substantially comparable or consistent with previously detected sound levels during known sleep periods for a given user. If sleep is detected during a given period, band 539 may be configured to record, store, process, or perform other data functions on data gathered from one or more sensors implemented on band 539. Using gathered data, various types of patterns or analyses may be performed to provide information to a user on, for example, a graphical user interface, which may be implemented using various types of layouts, technologies, computer programs, or the like, without restriction or limitation to any given type of interface.
As another example, a user may specify a desired level of sleep that may be monitored by band 539. If the actual sleep measured is less or greater than the desired threshold, band 539 may be configured to provide one or more actions (e.g., generating a vibratory pattern during the user's sleep) to initiate waking, stimulate additional rest, or aid in altering or modifying a user's sleep pattern such as causing a user to sleep on her side, wake early, sleep more, or the like. Still further, detected data by one or more sensors on band 539 and which is associated with a user's sleep, including the user's sleep environment, may be used to cause environmental changes such as generating, directly or indirectly, a control signal to modify light, sound, temperature, or other environmental conditions that could affect a user's sleep.
When a user is sleeping, for example, band 539, may detect a change in sound, noise, light, or other environmental condition levels that result in control signals being sent to other devices such as heating, ventilation, or air conditioning (HVAC), mechanical, acoustic, audio, video, or other types of controls (i.e., in data communication using, for example, a wireless network such as Wi-Fi, RF, NFC, or others, without limitation) in order to adjust environmental conditions such as temperature, light, or others to modify a given sleep environment. If an increase in noise is detected, white noise or frequencies of various amplitudes and frequencies may be generated to cancel, counter, or otherwise reduce the noise surrounding a sleeping user at a particular position within a room. As another example, band 539 may detect, from one or more sensors (e.g., local, distributed, networked, or others) motion that suggests when a user has woken from a period of sleep. Based on user input, band 539 and an application configured to process data from one or more sensors on band 539, a status may be generated on an interface that indicates whether a user had sufficient, insufficient, excessive, restive, sound, or another type of sleep. Depending upon the measurement of actual sleep against the desired level of sleep, achievement may be expressed as a percentage of the user's goal. For example, if a user inputs 8 hours of desired sleep, including 2 hours of which are considered “deep” (e.g., REM (rapid eye movement)) sleep, but only achieve 6 total hours of sleep with only 1 hour of deep sleep, a graphical user interface of an application on band 539 or a device in data communication with band 539 (e.g., a smartphone, tablet computer, laptop, desktop, server, or other type of data processing device or system) may indicate the user, in this example, achieved 75% of her desired sleep goal and 50% of her intended deep sleep goal. In other examples, if a user surpasses his desired sleep (or other activity) goal, a celebratory message, or celebration of the achievement may also be provided using various types of visual, audible, or a combination thereof, displays, without limitation or restriction. For example a bar graph may be generated that indicates, using varying shades of color, various types of data or information associated with a given user's sleep. Examples of types of data and/or information that can be presented on a graphical user interface (e.g., bar, pie, or other) about a given period of sleep may include whether certain periods of sleep were lighter than others, whether a user was awake during a given period, when a user fell asleep, how long a user was asleep, how many times a user awoke, how long the user was in bed, duration of deep sleep, duration of light sleep, actual sleep expressed as a percentage of a desired or intended sleep target, times associated with each of the above, and the like. More, fewer, or different types of data may be captured for sleep management-related activities.
In some examples, band 112 may identify of a user by the user's unique pattern of behavior or motion. Band 112 may capture and evaluate data from a user to create a unique key personal to the user. The key may be associated with an individual user's physical attributes, including gait, biometric or physiological signatures (e.g., resting heart rate, skin temperature, salinity of emitted moisture, etc.), or any other sets of data that may be captured by band 112, as described in more detail above. The key may be based upon a set of physical attributes that are known in combination to be unique to a user. Once the key is created based upon the predetermined, or pre-programmed, set of physical attributes, it may be used in an authentication process to authenticate a user's identity, and prevent access to, or capture and evaluation of, data by an unauthorized user. In some examples, authentication using the key may be carried out directly by band 112. In other examples, band 112 may be used to authenticate with other bands (not shown) that may be owned by the same individual (i.e., user). Multiple bands, for example, that are owned by the same individual may be configured for different sensors or types of activities, but may also be configured to share data between them. In order to prevent unauthenticated or unauthorized individuals from accessing a given user's data, band 112 may be configured using various types of authentication, identification, or other security techniques among one or more bands, including band 112. As an example, band 112 may be in direct data communication with other bands (not shown) or indirectly through an authentication system or service, which may be implemented using server 114. In still other examples, band 112 may send data to server 114, which in turn carries out the authentication and returns a prompt or notification to band 112 to unlock band 112 for use. In other examples, data security and identity authentication for band 112 may be implemented differently.
In some examples, on or more of playlists 626-632 may reside locally (e.g., on media device 624, etc.). In other examples, one or more of playlists 626-632 may be implemented remotely (e.g., in the Cloud, etc.). In some examples, one or more of playlists 626-632 may be created from songs or groups of songs (e.g., other playlists, etc.) that are shared with the user through an SNS, a radio station website, or other remote source. In some examples, one or more of playlists 626-632 may be created using sensory data gathered by band 612. In other examples, one or more of playlists 626-632 may be created using sensory data gathered by other data-capable bands, worn by the user also wearing band 612, or worn by another user.
As shown, media device 624 may be any type of device that is configured to display, play, interact, show, or otherwise present various types of media, including audio, visual, graphical, images, photographical, video, rich media, multimedia, or a combination thereof, without limitation. Examples of media device 624 may include audio playback devices (e.g., players configured to play various formats of audio and video files including .mp3, .wav, and others, without limitation), connected or wireless (e.g., Bluetooth®, WiFi, WLAN, and others) speakers, radios, audio devices installed on portable, desktop, or mobile computing devices, and others. Playlists 626-632 may be configured to play various types of files of any format, as representatively illustrated by “File 1, File 2, File 3” in association with each playlist. Each file on a given playlist may be any type of media and played using various types of formats or applications implemented on media device 624. As described above, these files may reside locally or remotely.
As an example, sensors 614-620 may detect various types of inputs locally (i.e., on band 612) or remotely (i.e., on another device that is in data communication with band 612) such as an activity or motion (e.g., running, walking, swimming, jogging, jumping, shaking, turning, cycling, or others), a biological state (e.g., healthy, ill, diabetic, or others), a physiological state (e.g., normal gait, limping, injured, or others), or a psychological state (e.g., happy, depressed, angry, and the like). Other types of inputs may be sensed by sensors 614-620, which may be configured to gather data and transmit that information to an application that uses the data to infer various conclusions related to the above-described states or activities, among others. Based on the data gathered by sensors 614-620 and, in some examples, user or system-specified parameters, band 612 may be configured to generate control signals (e.g., electrical or electronic signals that are generated at various types of amount of voltage in order to produce, initiate, trigger, or otherwise cause certain actions or functions to occur). For example, data may be transferred from sensors 614-620 to band 612 indicating that a user has started running Band 612 may be configured to generate a control signal to media device 624 over data connection 622 to initiate playing files in a given playlist in order. A shake of a user's wrist, for example, in a given direction or axis may cause band 612 to generate a different control signal that causes media device 624 to change the play order, to change files, to forward to another file, to playback from a different part of the currently played file, or the like. In some examples, a given movement (e.g., a user shakes her wrist (on which band 612 is worn)) may be resolved into data associated with motion occurring along each of 3-different axes. Band 612 may be configured to detect motion using an accelerometer (not shown), which then resolves the detected motion into data associated with three separate axes of movement, translated into data or electrical control signals that may be stored in a memory that is local and/or remote to band 612. Further, the stored data of a given motion may be associated with a specific action such that, when detected, control signals may be generated by band 612 and sent over data connection 622 to media device 624 or other types of devices, without limitation.
As another example, if sensor 616 detects that a user is lying prone and her heart rate is slowing (e.g., decelerating towards a previously-recorded resting heart rate), a control signal may be generated by band 612 to begin playback of Brahms' Lullaby via a Bluetooth®-connected headset speaker (i.e., media device 624). Additionally, if sensor 618 detects a physiological state change (e.g., a user is walking with a gait or limp as opposed to normally observed physiological behavior), media device 624 may be controlled by band 612 to initiate playback of a file on a graphical user interface of a connected device (e.g., a mobile computing or communications device) that provides a tutorial on running injury recovery and prevent. As yet another example, if sensor 620 detects one or more parameters that a user is happy (e.g., sensor 620 detects an accelerated, but regular heart rate, rapid or erratic movements, increased body temperature, increased speech levels, and the like), band 612 may send a control signal to media device 624 to display an inquiry as to whether the user wishes to hear songs played from her “happy playlist” (not shown). The above-described examples are provided for purposes of illustrating the use of managing various types of media and media content using band 612, but many others may be implemented without restriction to those provided.
As shown, band 612 may send control signals to various types of devices (e.g., device types 644-654), including payment systems (644), environmental (646), mechanical (648), electrical (650), electronic (652), award (654), and others, without limitation. In some examples, band 612 may be associated with an account to which a user may link a credit card, debit card, or other type of payment account that, when properly authenticated, allows for the transmission of data and control signals (not shown) over data connection 642 to payment device 644. In other examples, band 612 may be used to send data that can be translated or interpreted as control signals or voltages in order to manage environmental control systems (e.g., heating, ventilation, air conditioning (HVAC), temperature, air filter (e.g., hepa, pollen, allergen), humidify, and others, without limitation). Input detected from one or more of sensors 614-620 may be transformed into data received by band 612. Using firmware, application software, or other user or system-specified parameters, when data associated with input from sensors 614-620 are received, control signals may be generated and sent by band 612 over data connection 642 to environmental control system 646, which may be configured to implement a change to one or more environmental conditions within, for example, a residential, office, commercial, building, structural, or other type of environment. As an example, if sensor 612 detects that a user wearing band 612 has begun running and sensor 618 detects a rise in one or more physiological conditions, band 612 may generate control signals and send these over data connection 642 to environmental control system 646 to lower the ambient air temperature to a specified threshold (as input by a user into an account storing a profile associated with environmental conditions he prefers for running (or another type of activity)) and decreasing humidity to account for increased carbon dioxide emissions due to labored breathing. As another example, sensor 616 may detect that a given user is pregnant due to the detection of an increase in various types of hormonal levels, body temperature, and other biochemical conditions. Using this input against comparing the user's past preferred ambient temperature ranges, band 612 may be configured to generate, without user input, one or more control signals that may be sent to operate electrical motors that are used to open or close window shades and mechanical systems that are used to open or close windows in order to adjust the ambient temperature inside her home before arriving from work. As a further example, sensor 618 may detect that a user has been physiologically confined to a sitting position for 4 hours and sensor 620 has received input indicating that the user is in an irritated psychological state due to an audio sensor (not shown, but implementable as sensor 620) detecting increased noise levels (possibly, due to shouting or elevating voice levels), a temperature sensor (not shown) detecting an increase in body temperature, and a galvanic skin response sensor (not shown) detecting changes in skin resistivity (i.e., a measure of electrical conductivity of skin). Subsequently, band 612, upon receiving this input, may compare this data against a database (either in firmware or remote over data connection 642) and, based upon this comparison, send a control signal to an electrical system to lower internal lighting and another control signal to an electronic audio system to play calming music from memory, compact disc, or the like.
As another example, a user may have an account associated with band 612 and enrolls in a participatory fitness program that, upon achieving certain milestones, results in the receipt of an award or promotion. For example, sensor 614 may detect that a user has associated his account with a program to receive a promotional discount towards the purchase of a portable Bluetooth® communications headset. However, the promotion may be earned once the user has completed, using band 612, a 10 kilometer run at an 8-minute and 30-second per mile pace. Upon first detecting the completion of this event using input from, for example, a GPS sensor (not shown, but implementable as sensor 614), a pedometer, a clock, and an accelerometer, band 612 may be configured to send a signal or data via a wireless connection (i.e., data connection 642) to award system 654, which may be configured to retrieve the desired promotion from another database (e.g., a promotions database, an advertisement server, an advertisement network, or others) and then send the promotion electronically back to band 612 for further display or use (e.g., redemption) on a device in data connection with band 612 (not shown). Other examples of the above-described device types and other device types not shown or described may be implemented and are not limited to those provided.
A movement, when detected by an accelerometer (not shown) on band 612, may be associated with a given data set and used, for example, to perform one or more functions when detected again. Parameters may be specified (i.e., by either a user or system (i.e., automatically or semi-automatically generated)) that also allow for tolerances to determine whether a given movement falls within a given category (e.g., jumping may be identified as a set of data that has a tolerance of +/−0.5 meters for the given individual along a z-axis as input from a 3-axes accelerometer).
Using the various types of sensors (e.g., sensors 614-620), different movements, motions, moods, emotions, physiological, psychological, or biological events can be monitored, recorded, stored, compared, and used for other functions by band 612. Further, movements may also be downloaded from a remote location (e.g., server 676) to band 612. Input provided by sensors 614-620 and resolved into one or more of patterns 666-672 and used to initiate or perform one or more functions, such as authentication (
Here, band 900 may be configured to perform data communication with one or more other data-capable devices (e.g., other bands, computers, networked computers, clients, servers, peers, and the like) using wired or wireless features. For example, plug 900 may be used, in connection with firmware and software that allow for the transmission of audio tones to send or receive encoded data, which may be performed using a variety of encoded waveforms and protocols, without limitation. In other examples, plug 904 may be removed and instead replaced with a wireless communication facility that is protected by molding 902. If using a wireless communication facility and protocol, band 900 may communicate with other data-capable devices such as cell phones, smart phones, computers (e.g., desktop, laptop, notebook, tablet, and the like), computing networks and clouds, and other types of data-capable devices, without limitation. In still other examples, band 900 and the elements described above in connection with
According to some examples, computer system 1000 performs specific operations by processor 1004 executing one or more sequences of one or more instructions stored in system memory 1006. Such instructions may be read into system memory 1006 from another computer readable medium, such as static storage device 1008 or disk drive 1010. In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation.
The term “computer readable medium” refers to any tangible medium that participates in providing instructions to processor 1004 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1010. Volatile media includes dynamic memory, such as system memory 1006.
Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
Instructions may further be transmitted or received using a transmission medium. The term “transmission medium” may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 1002 for transmitting a computer data signal.
In some examples, execution of the sequences of instructions may be performed by a single computer system 1000. According to some examples, two or more computer systems 1000 coupled by communication link 1020 (e.g., LAN, PSTN, or wireless network) may perform the sequence of instructions in coordination with one another. Computer system 1000 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1020 and communication interface 1012. Received program code may be executed by processor 1004 as it is received, and/or stored in disk drive 1010, or other non-volatile storage for later execution.
According to some examples, synch detector 1340 can facilitate synchronization via communications link 1301 and/or detect synchronization between a sensor platform and autonomous advisor processor 1310. Synch detector 1340 can be configured to detect a signal configured to initiate a synchronization function to receive data transmitted from a wearable computing device including sensors to autonomous advisor processor 1340, which, at least in some examples, is an application. According to various examples, the signal can originate with an autonomous advisor processor 1310 or at wearable device 1302. Synch detector 1340 can also be configured to perform the synchronization function to receive data from wearable computing device 1302 to transfer data 1303 to autonomous advisor processor 1340. For example, data 1303 may include motion data (e.g., data derived from accelerometers, gyroscopes, and the like), control data, etc. The control data can include one or more commands with which autonomous advisor processor 1310 uses to perform its various functions. Data 1303 also may include any other types of data, including input data to facilitate tracking of sleep, activity, nutrition, mood, etc. Examples of such functions include commands to change in mode of operation, commands to confirm a particular state as a sleep state or activity state, commands to retrieve summary information regarding a user's progress, commands to initiate tracking of a user's engagement in sleep or in an activity, commands to initiate a challenge with oneself or with another person, and various other similar commands.
Motion recovery controller 1312 is configured to receive motion data, for example, subsequent to synchronization, and to determine that the motion data is recovered motion data. Further, motion recovery controller 1312 is configured to characterize the recovered motion data as being associated with one enough of states, such as sleep states, active states, etc., and provide recovered state data, which may be unavailable due to an absence communications link 1310, to one or more state managers 1313 to facilitate an update the user's progress being tracked by autonomous advisor processor 1310. According to some embodiments, the term “recovered motion data” may refer, at least in some examples, to motion data received subsequently to synchronization, or subsequently to reclassification as a type of motion data. For example, when a communications link 1301 is present, motion data linked to a particular state may flow over path “S” to one or more state managers 1313 for managing and determining one or more states in related characteristics. But when communications link 1301 is not present and sensor data is accumulated externally (e.g., in wearable computing device 1302). Upon synchronization, motion data 1303 may not be associated with a particular state, and thereby flows over path “A” to motion recovery controller 1312. Further, if autonomous advisor processor 1310 is receiving motion data that is not identified as a type of motion data of interest (e.g., a sleep mode of operation was not activated), sleeping habits can still be tracked by recovering the data and classifying (or reclassifying the motion data) as sleep data.
According to one example, motion recovery controller 1312 is configured to identify an estimated state to which the recovered motion data relates. In some cases, motion recovery controller 1312 may be configured to characterize the recovered motion data as data representing the estimated state. For example, one or more samples of the recovered motion data may be matched against data representing motion patterns stored in repository 1324 (not shown). Also, other factors may be considered in estimating a state, such as time of day (e.g., low levels of motion data occurring during the night likely applies to a sleep state rather than an active state). Upon detecting a match or an approximated set of one or more patterns, motion recovery controller 1312 can associate the estimated state (e.g., a sleep state or active state) to the recovered motion data. Further, motion recovery controller 1312 may be configured to predict time-related parameters specifying a time interval for the estimated state. For example, if the estimated state as a sleep state, motion recovery controller 1312 can be configured to estimate the time (or a range of time) at which the user falls asleep and at which the user wakes up.
Further, motion recovery controller 1312 may be configured to convert the recovered motion data to units of motion associated with the estimated state to form a recovered amount of state. For example, if the estimated state implies movement, such as walking, then motion recovery controller 1312 can be configured to generate a number of steps as the units of motion. As another example, if estimated state implies sleep, then motion recovery controller 1312 can be configured to generate a number of minutes or hours (e.g., as the units of motion) during which a user is in a sleep state (e.g., including light and heavy sleep sub-states). Motion recovery controller 1312 can determine a value of particular state attribute, such as an amount of sleep sensed prior to synchronization or an amount of activity, such as movement or walking, since prior to synchronization. That value can be transmitted to the state managers 1313 to update amounts of sleep, activities, nutrition being tracked.
As shown, state manager(s) 1313 includes a sleep manager 1314, activity manager 1316, and a nutrition manager 1318. Other managers may be implemented, such as a mood manager (not shown) to facilitate tracking the user's mood throughout the day in relation to the different states of a user. Sleep manager 1314 can be configured to determine, track, and correlate, among other things, an amount of time in which a user experiences light sleep, an amount of time a user experiences deep sleep, an amount of time during which it took to fall asleep, an amount of time during which the user was in bed (whether the user is asleep or not), an number of times during the night the user woke up, an amount of time that the user has been awake, and other like sleep attributes. Further, sleep manager 1314 can be configured to receive a value representative of amount of sleep (or other attributes of sleep) from motion recovery controller 1312, and form an updated value for an amount of sleep to account for sleep occurring during the autonomous mode and/or prior to synchronization.
Activity manager 1316 can be configured to determine, track, and correlate, among other things, an amount of time a user is active for a time interval (e.g., in a day), an amount of caloric burn for a time interval (e.g., in a day), a longest period of time during which the user is active, an instantaneous amount of caloric burn, a longest period of time during which the user is idle, an amount of caloric burn during resting, and other like active attributes. Further, activity manager 1316 can be configured to receive a value representative of amount of activity (or other attributes of activity) from motion recovery controller 1312, and form an updated value for an amount of activity to account for activities occurring during the autonomous mode and/or prior to synchronization.
Also, activity manager 1316 can operate to detect the type of activity for a subset of activity data. For example, activity manager 1316 can specify whether activity data relates to walking, running, weight training, cycling, swimming, etc. Moreover, activity manager 1316 can modify above-described activity attributes responsive to the type of activity. For example, activity manager 1316 may calculate an amount of calorie burn or other activity attributes differently for different types of activities.
Nutrition manager 1318 can be configured to track nutrition related attributes and events, including amounts of water consumed relative to the various active states of the user, amounts of micronutrients and macronutrients consumed, etc.
Challenge manager 1320 is configured to define, facilitate, and manage challenges (e.g., a race or other inter-person challenges with one or more other individuals) or progress towards a goal (e.g., a race or other intra-person challenges with the user itself). For example, a user associated with autonomous advisor processor 1310 may receive challenge data 1305 representing a challenge to compete to a common goal to determine a winner. Challenge data 1305 also include an identity of the challenger, specifics of the challenge, communication exchange between the user and the challenger, and other like information. An example of a challenge may be a distance and/or time-based challenge, such that a winner is person who travels over a greater number of steps in a specific period of time. Challenge tracker 1322 is configured to track a user's progress against a goal, as well as the user's progress against another person's progress. As shown, user interfaces 1350, 1352, and 1354 depict a user's progress in an activity against a goal based on recovered activity data, whereby a challenge tracker 1322 can be configured to track the user's progress (e.g., 50% of a goal, 85% of the goal, and 100%, or more, of a goal). Further, user interfaces 1360, 1362, and 1364 depict a user's progress in sleep against a goal based on recovered activity data, whereby a challenge tracker 1322 can be configured to track the user's sleep progress (e.g., 35% of a goal, 85% of the goal, and 100%, or more, of a goal). Such progress data can be pushed periodically or otherwise presented to the user so as to remind the user of their goals to encourage the user to complete the goals.
Insight engine 1326 is configured to generate insight information that correlates to data generated by one or more components of autonomous advisor processor 1310. In some cases, insight engine 1326 is configured to receive data from repository 1324, which, in turn may receive data 1307 that represents one or more aggregated state attributes over a number of persons. For example, an average amount of sleep per night over a sample size of 10,000 persons may be available as data 1307. According to some embodiments, insight engine 1326 is configured to correlate a value representative of a state on state attribute (e.g., a value representing an amount of sleep on attribute of sleep) to another value to determine a correlated value. The other value can be other sleep attributes, or can be related to activities or activity attributes so as to correlate one state to another (e.g., correlate an amount of sleep to amount of exercise). Insight engine 1326 in cooperation with one or more other components of autonomous advisor processor 1310 can be configured to cause or initiate presentation of insight information as a portion of the information to be displayed on an interface. The content of the insight information may be a function of one or more correlated values. According to various embodiments, any number of states or any number of state attributes can be correlated to any number of other states and any other number of state attributes.
In some examples, insight engine 1326 can be configured to identify a value as a targeted amount of state based on goal data (e.g., a target number of steps per week). Insight engine 1326 or challenge tracker 1322, or both, may correlate a value of a state or state attribute to the targeted amount of state to determine a correlated value (e.g., a value representative of a user's progress relative to a goal, such as a sleep goal.). Insight engine 1326 then can generate a set of insight information data specifying a user's performance to the goal. In another example, insight engine 1326 can be configured to identify a value as a representative amount of state derived from a group of users (e.g., data derived from a number of sensors associated with a number of other people). Insight engine 1326 or challenge tracker 1322, or both, may correlate a value of a state or state attribute to a representative amount of state or state attribute to determine a correlated value (e.g., a value representative of the user's progress relative to a user's peers or other people generally). Insight engine 1326 then can generate a set of insight information data specifying a user's performance relative to the group of users.
In the example shown, insight engine 1326 can generate insight data 1380a describing a user's progress against its goals, insight data 1380b describing a user's progress against a challenger's progress (e.g., during a race), insight data 1380c describing a user's progress against others' progress, and insight data 1380d describing general information that may or may not be correlated to a user's progress. Insight engine 1326 is not limited to generating the above-described information and also can generate other types of insight information to provide contextual information regarding a user's goal and progress thereto.
Autonomous advisor processor 1310 and/or an interface controller logic 1326, which is configured to control exchange of input and output signals via user interface, may be configured to cause presentation to an interface of computing device 1304 to display information associated with wearable computing device 1302 (e.g., sensor data), responsive to a processor operating on the data transferred to autonomous advisor processor 1310 after the synchronization function is performed. According to various embodiments, one or more components of autonomous advisor processor 1310 may be disposed in computing device 1304 or in wearable device 1302, or in any combination thereof.
Motion characterizer 1620 is configured to characterize motion data received subsequent to synchronization to identify particular state a state associated with the motion data. In some examples, motion characterizer 1620 can be configured match or correlate one or more samples of recovered motion data against data representing motion patterns to identify that the motion data likely relates to sleep. Motion characterizer 1620 then can generate a signal causing interface 1671 of a computing device 1672 to present a request to confirm whether the motion data corresponds to sleep, which is the default. As shown, a portion of interface 1664 presents an estimated duration of sleep time with which a user 1652 can select to confirm motion data relates to a sleep state.
Time-related parametric manager 1620 is configured to calculate a start sleep time, and an end sleep time, and a total amount of sleep time, among others. Further, time-related parametric manager 1620 determines approximate sleep time from 10:30 PM to 6:35 AM. Interface 1671 receives a user input and generates the user interface 1673 for the computing device 1672 (e.g., same computing device at a different time). At interface 1673, portions 1680 and 1682 of interface 1673 are configured to receive user input describing an adjusted start sleep time and an adjusted end sleep time, respectively. Here, a user can optionally adjust the beginning and end sleep times, which, in turn, are provided as data 1664 in a signal transmitted to a parameter adjuster 1622. Parameter adjuster 1622 is configured to adjust the timing of sleep, whereby motion recovery controller 1622 generates sleep data 1613 based on recovered sleep data that originated during an autonomous mode. Motion recovery controller 1622 can be configured to convert recovered motion data identified as sleep data to form a recovered amount of sleep.
Motion characterizer 1720 is configured to characterize motion data received subsequent to synchronization to identify particular state a state associated with the motion data. In some examples, motion characterizer 1720 can be configured match or correlate one or more samples of recovered motion data against data representing motion patterns to identify that the motion data likely relates to an activity, such as cycling. Motion characterizer 1720 then can generate a signal that causes interface 1771 of a computing device 1770 to present a request to confirm the type of activity in which the user was engaged. In this example, an estimated state of activity corresponds, by default, to a number of steps. As shown, a portion 1763 of interface 1765 presents an estimated number of steps (i.e., 1,988 steps in a 34 minute time period) and another portion 1764 of interface 1771 which a user 1752 can select to provide for the granularity as to the type of activity. Time-related parametric manager 1720 is configured to calculate a start activity time, and an end activity time, and a total amount of activity time, which is shown as 34 minutes, among others. Further, time-related parametric manager 1720 in some cases can be configured to adjust the activity time responsive, for example, to user input.
Interface 1771 receives a user input and generates the user interface 1702 for a computing device (e.g., same as computing device 1770 at a different time). At interface 1702, a portion is provided to accept an input as to whether the user had been engaged in a walking. If so, the user could, for example, double tap the interface. If not, user 1703 can input, for example, as a swipe gesture, as an indication that the user was not walking At interface 1704, a portion is provided to accept an input as to whether the user had been engaged in weight training. If so, the user could, for example, double tap the interface. If not, user 1705 can input, for example, as a swipe gesture, as an indication that the user was not walking At interface 1706, a portion is provided to accept an input as to whether the user had been engaged in a walking. In this case, user 1707, for example, double taps the interface to indicate the user was cycling, interface 1706 being configured to generate data 1654 specifying an activity type of “cycling.” In some cases, parameter adjuster 1722 is configured to adjust the timing of cycling, whereby motion recovery controller 1722 generates activity or cycling data 1713 based on recovered activity data that originated during an autonomous mode. Thus, motion recovery controller 1722 can be configured to convert recovered motion data identified as activity data to form a recovered amount of cycling data.
Challenge manager 1820 and/or a challenge tracker 1822 are configured to receive a value representing another amount of state (e.g., an amount of steps by Tim as Amy is associated with challenge manager 1820 and a challenge tracker 1822). Challenge manager 1820 and/or challenge tracker 1822 may be configured to compare the value of Amy's steps (e.g., 3,187 steps) to the other value of Tim's steps (e.g., 3,492 steps) to determine an identified value 1834. In this case, identified value 1834 is a value representing a differential in which +305 steps represents a greater value of activity during an inter-person challenge time interval 1832 (e.g., with elapsed time or time to challenge-end is 6:24:39). As shown, identified value 1834 of +305 steps is presented in a portion of interface 1874. Interface 1876 depicts the winner at +2,273 to conclude the challenge. Note that next time, the user, such as Amy, can challenge her best time or her best past performance in which interface 1876 would include an identifier 1899 to indicate that Amy is challenging her best performance.
In some cases, computing platform can be disposed in wearable device 2090c or implement, a mobile computing device 2090b, or any other device, such as a computing device 2090a.
Computing platform 2000 includes a bus 2002 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 2004, system memory 2006 (e.g., RAM, etc.), storage device 2008 (e.g., ROM, etc.), a communication interface 2013 (e.g., an Ethernet or wireless controller, a Bluetooth controller, etc.) to facilitate communications via a port on communication link 2021 to communicate, for example, with a computing device, including mobile computing and/or communication devices with processors. Processor 2004 can be implemented with one or more central processing units (“CPUs”), such as those manufactured by Intel® Corporation, or one or more virtual processors, as well as any combination of CPUs and virtual processors. Computing platform 2000 exchanges data representing inputs and outputs via input-and-output devices 2001, including, but not limited to, keyboards, mice, audio inputs (e.g., speech-to-text devices), user interfaces, displays, monitors, cursors, touch-sensitive displays, LCD or LED displays, and other I/O-related devices.
According to some examples, computing platform 2000 performs specific operations by processor 2004 executing one or more sequences of one or more instructions stored in system memory 2006, and computing platform 2000 can be implemented in a client-server arrangement, peer-to-peer arrangement, or as any mobile computing device, including smart phones and the like. Such instructions or data may be read into system memory 2006 from another computer readable medium, such as storage device 2008. In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation. Instructions may be embedded in software or firmware. The term “computer readable medium” refers to any tangible medium that participates in providing instructions to processor 2004 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks and the like. Volatile media includes dynamic memory, such as system memory 2006.
Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read. Instructions may further be transmitted or received using a transmission medium. The term “transmission medium” may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 2002 for transmitting a computer data signal.
In some examples, execution of the sequences of instructions may be performed by computing platform 2000. According to some examples, computing platform 2000 can be coupled by communication link 2021 (e.g., a wired network, such as LAN, PSTN, or any wireless network, including WiFi of various standards and protocols, Blue Tooth®, Zig-Bee, etc.) to any other processor to perform the sequence of instructions in coordination with (or asynchronous to) one another. Computing platform 2000 may transmit and receive messages, data, and instructions, including program code (e.g., application code) through communication link 2021 and communication interface 2013. Received program code may be executed by processor 2004 as it is received, and/or stored in memory 2006 or other non-volatile storage for later execution.
In the example shown, system memory 2006 can include various modules that include executable instructions to implement functionalities described herein. System memory 2006 may include an operating system (“O/S”) 2032, as well as an application 2036 and/or logic module 2059. In the example shown, system memory 2006 includes an autonomous advisor processor module 2050 including any number of modules (not shown), one or more of which can be configured to provide or consume outputs to implement one or more functions described herein.
In at least some examples, the structures and/or functions of any of the above-described features can be implemented in software, hardware, firmware, circuitry, or a combination thereof. Note that the structures and constituent elements above, as well as their functionality, may be aggregated with one or more other structures or elements. Alternatively, the elements and their functionality may be subdivided into constituent sub-elements, if any. As software, the above-described techniques may be implemented using various types of programming or formatting languages, frameworks, syntax, applications, protocols, objects, or techniques. As hardware and/or firmware, the above-described techniques may be implemented using various types of programming or integrated circuit design languages, including hardware description languages, such as any register transfer language (“RTL”) configured to design field-programmable gate arrays (“FPGAs”), application-specific integrated circuits (“ASICs”), or any other type of integrated circuit. According to some embodiments, the term “module” can refer, for example, to an algorithm or a portion thereof, and/or logic implemented in either hardware circuitry or software, or a combination thereof. These can be varied and are not limited to the examples or descriptions provided.
In some embodiments, autonomous advisor processor module or one or more of its components (e.g., a motion recovery controller), or any process or device described herein, can be in communication (e.g., wired or wirelessly) with a mobile device, such as a mobile phone or computing device, or can be disposed therein.
In some cases, a mobile device, or any networked computing device (not shown) in communication with an autonomous advisor processor module or one or more of its components (or any process or device described herein), can provide at least some of the structures and/or functions of any of the features described herein. As depicted in the above-described figures, the structures and/or functions of any of the above-described features can be implemented in software, hardware, firmware, circuitry, or any combination thereof. Note that the structures and constituent elements above, as well as their functionality, may be aggregated or combined with one or more other structures or elements. Alternatively, the elements and their functionality may be subdivided into constituent sub-elements, if any. As software, at least some of the above-described techniques may be implemented using various types of programming or formatting languages, frameworks, syntax, applications, protocols, objects, or techniques. For example, at least one of the elements depicted in any of the figure can represent one or more algorithms. Or, at least one of the elements can represent a portion of logic including a portion of hardware configured to provide constituent structures and/or functionalities.
For example, an autonomous advisor processor module or a motion recovery controller, or any of its one or more components, or any process or device described herein, can be implemented in one or more computing devices (i.e., any mobile computing device, such as a wearable device, an audio device (such as headphones or a headset) or mobile phone, whether worn or carried) that include one or more processors configured to execute one or more algorithms in memory. Thus, at least some of the elements in the above-described figures can represent one or more algorithms. Or, at least one of the elements can represent a portion of logic including a portion of hardware configured to provide constituent structures and/or functionalities. These can be varied and are not limited to the examples or descriptions provided.
As hardware and/or firmware, the above-described structures and techniques can be implemented using various types of programming or integrated circuit design languages, including hardware description languages, such as any register transfer language (“RTL”) configured to design field-programmable gate arrays (“FPGAs”), application-specific integrated circuits (“ASICs”), multi-chip modules, or any other type of integrated circuit.
For example, an autonomous advisor processor module, including one or more components, or any process or device described herein, can be implemented in one or more computing devices that include one or more circuits. Thus, at least one of the elements in the above-described figures can represent one or more components of hardware. Or, at least one of the elements can represent a portion of logic including a portion of circuit configured to provide constituent structures and/or functionalities.
According to some embodiments, the term “circuit” can refer, for example, to any system including a number of components through which current flows to perform one or more functions, the components including discrete and complex components. Examples of discrete components include transistors, resistors, capacitors, inductors, diodes, and the like, and examples of complex components include memory, processors, analog circuits, digital circuits, and the like, including field-programmable gate arrays (“FPGAs”), application-specific integrated circuits (“ASICs”). Therefore, a circuit can include a system of electronic components and logic components (e.g., logic configured to execute instructions, such that a group of executable instructions of an algorithm, for example, and, thus, is a component of a circuit). According to some embodiments, the term “module” can refer, for example, to an algorithm or a portion thereof, and/or logic implemented in either hardware circuitry or software, or a combination thereof (i.e., a module can be implemented as a circuit). In some embodiments, algorithms and/or the memory in which the algorithms are stored are “components” of a circuit. Thus, the term “circuit” can also refer, for example, to a system of components, including algorithms. These can be varied and are not limited to the examples or descriptions provided.
Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the above-described inventive techniques are not limited to the details provided. There are many alternative ways of implementing the above-described invention techniques. The disclosed examples are illustrative and not restrictive.
This application claims the benefit of U.S. Provisional Application No. 61/896,133, filed on Oct. 28, 2013, having Attorney Docket No. ALI-343P; this application is also a continuation-in-part of U.S. Nonprovisional application Ser. No. 14/064,189, having Attorney Docket No. ALI-003CIP1CIP1 filed on Oct. 27, 2013, all of which are herein incorporated by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
61896133 | Oct 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14064189 | Oct 2013 | US |
Child | 14526503 | US |