Timing device, system and method for estimated time of arrival (ETA)

A timing device monitors an estimated time of arrival (ETA) for an object in a process of traversing a predetermined range of distance by computing the estimated time of arrival based on a time the object has spent completing at least one interval during the course of traversing the distance. The computation is invoked each time a signal is received by the timing device indicating the completion of an interval. The signal can be sent by a user of the device of by a transmitter placed near an end of the interval.

BACKGROUND

Many watches and other timing devices have incorporated other features in addition to a time-keeping function. An example is a running watch, which can tell the runner, at any point in time, the total time of the run and also the time the runner has spent in completing the last interval, which can be a section in a range of distance that the runner is to cover.

U.S. Pat. No. 5,476,427 describes a pace display device that calculates the average and actual pace to cover a specified distance based on a number of steps per unit time. It calculates the difference between the actual and average (based on prior tests) and displays the difference to inform the individual of their performance relative to the average pace.

U.S. Pat. No. 5,301,154 describes a time calculating device that calculates a time for a user of the device to run a distance and provides an estimated “goal time”. The estimation is based on the age and heart rate of the runner and a comparison of these data with stored the age and heart rate data in two previous runs of the same distance.

U.S. Pat. No. 5,404,341 provides an estimated time to complete one interval or lap based on a standard lap time.

U.S. Pat. No. 3,598,306 discloses a time-speed instrument that provides computation and/or display of travel time, estimated time of arrival, actual time of arrival, speed, elapsed time, distance traveled and current time. This device provides the estimated time of arrival based on user input of known variables (e.g., start time, speed to cover entire distance, and length of distance) into a manual, logarithmic clock mechanism that utilizes overlaying “cards” to calculate the various data.

In many situations, data associated with a runner's previous runs are either not available or cannot be used to predict the runner's performance in a current run. Therefore, there is a need for a timing device that computes a runner's estimated time of arrival based on his performance in part of all of the distance that the runner has covered in the current run.

SUMMARY OF THE INVENTION

The embodiments of the present invention provide a timing device that computes an estimated time of arrival (ETA) for an object in a process of traversing a predetermined range of distance based on the time the object spends to complete one or more prior intervals in the predetermined range of distance.

In one embodiment, the timing device allows a user to enter into the timing device the following: a total distance (such as a number of intervals to be covered), which can be a number of miles, kilometers or other distance measure, a number of intervals for computing the ETA, and a target goal time. The user has the option of having the ETA calculated using all previous completed intervals, which is the default setting, or having the ETA calculated based on a predetermined number of intervals.

Once these data are entered, the device is ready to provide the ETA at each interval of the distance when an ETA process is invoked. In one embodiment, the ETA process is invoked when the user presses an ETA function button on the timing device, or when the device receives an ETA signal transmitted by a transmitter located at the end of each interval. During an ETA process, the timing device computes an estimated time of arrival based on the time the objects spends in completing the number of prior intervals and produces some or all of the following data: a total elapsed time; an elapsed time of current interval, a time in which the last interval is completed, the ETA, and/or the amount that the user is ahead or behind their target goal time.

Embodiments of the invention may display such information simultaneously or in some sequential manner. The information may also or alternatively be vocalized, such as via artificial synthetic speech, so that the user does not need to look at the ETA device to obtain the information.

In certain embodiments, the invention provides a logic circuit for incorporation into a timepiece to perform the inventive ETA calculation.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The embodiments of the present invention provide a timing device and methods for computing an estimated time of arrival (ETA) for an object in a process of traversing a predetermined range of distance based at least in part on the time the object spends to complete one or more prior intervals in the predetermined range of distance. Although the embodiments described below use an example of a Marathon runner, it is to be appreciated that the device and methods can be used to predict ETA for any moving object over any course, circuit, or distance. Furthermore, while the following descriptions of the embodiments sometimes illustrate the application of the timing device: as a wristwatch, the timing device and the methods performed by the timing device are not limited to watch applications.

FIG. 1is a block diagram of a timing device100according to one embodiment of the present invention. As shown inFIG. 1, device100comprises an oscillation circuit110, a frequency divider circuit120, control logic130, one or more memory devices (memory)140, a display driver circuit150, a display device160, and a plurality of signal input devices170.

Oscillator circuit110is configured to produce periodic pulses at a stable frequency, and frequency divider circuit120has a chain of frequency divider stages for converting the oscillator pulses down to a convenient periodic timer reference signal having, for example, one pulse per second. The timer reference signal is provided to processor130.

Display150may be visual, audio, or a combination of visual and audio displays. Thus, display150may comprise a screen for showing visually various time data, which are discussed below, and/or a speaker for playing audible sounds reciting the time data.

Control logic130comprises a plurality of input ports112to allow user input of data and/or instructions. In one embodiment, the plurality of input ports comprises a data input port D, a mode input port M, a stopwatch/start input port SS1, an optional stopwatch/stop input port SS2, and an ETA input port ETA. The input ports may be coupled with respective outputs of input devices170. Control logic130may further comprise a processor or a logic circuit capable of performing a variety of processes including a time-keeping process, a stopwatch process, an ETA process, one or more data display processes, and the like., some or all of which are coded as program instructions stored in memory140. For ease of discussion, control logic130is sometimes referred to as processor130. Control logic130, however, is not limited to being a processor. It can be any logic or circuitry capable of performing the processes described herein.

In one embodiment, control circuitry130and memory140may be parts of an integrated circuit (IC) chip such as a filed programmable gate array (FPGA), a programmable logic device (PLD), an application-specific integrated circuit (ASIC), or the like. Oscillator circuit110, frequency divider120, and/or display driver150may also be part of the IC chip.

Memory140also includes designated storage locations for storing user input data, default data, and computation results for display or for further computation needs.FIG. 2is a block diagram of some of the designated storage locations in memory140according to one embodiment of the present invention. In one embodiment, memory140comprises non-volatile memory142and random access memory (RAM)144. Program instructions and some default data are stored in a non-volatile read-only memory (ROM)142, while user data, computation results, and other data are stored in designated storage locations or registers in a RAM144.

As shown inFIG. 2, ROM142comprises storage locations200storing therein a general control program including program instructions for processor130to control the operation of device100, and storage locations202storing therein an ETA program including program instructions for processor130to compute an ETA. It will also be appreciated that the methods or procedures described in the following discussions may be implemented as one or more computer programs stored in memory140or any other tangible computer readable medium for execution by the logic in circuitry130.

As also shown inFIG. 2, RAM144comprises storage locations206storing therein current results of the time-keeping process such as an updated current date and time, and storage locations208storing therein current results of a stopwatch process such as an updated time since the stopwatch process has started. RAM144further comprises storage locations210,212, and214storing therein user input data for ETA calculation such as a total distance d to be traversed, a number of intervals to be used for ETA calculation, and a target goal time to reach the end of the distance, respectively. The user has the option of having the ETA calculated using all previous completed intervals, which is the default setting if the number stored in storage locations212is zero, or having the ETA calculated based on the number of intervals stored in storage locations212, or according to any other preference. For example, a user may want the ETA Chip to use only the prior six intervals every time the ETA is calculated. In this example, until the first six intervals are completed, all previously completed intervals will be used in calculating the ETA. At interval seven, the timing device will begin using the last six interval times for computing the ETA.

RAM144further comprises storage locations216storing therein a start time of the stopwatch process, storage locations218storing therein a number corresponding to a just-completed or last-finished interval, and storage locations220-1,220-2, . . . ,220-(n−1),220-n, . . . ,220-N, where n is the number corresponding to a current interval (i.e., the nthinterval) and N is a number of intervals in the total distance d. Storage locations200-1stores therein a time (or other time related indicator) associated with the completion of the first interval, storage locations200-2stores therein a time associated with the completion of the second interval, . . . , storage locations200-(n−1) stores therein a time associated with the completion of the last-finished interval, and storage locations200-nstores therein an updated time spent in the current interval. The rest of storage locations220-1,220-2, . . . ,220-(n−1),220-n, . . . ,220-N are each designated to store a time associated with the completion of each of the rest of the intervals in the distance d.

RAM144further comprises storage locations222storing therein a total time for the completion of the intervals prior to the current nthinterval, storage locations224storing therein a total time for the completion of a number m of intervals prior to the current interval230, and storage locations226storing therein an average speed v computed based on the total time for the completion of the number m of intervals prior to the current interval. RAM144further comprises storage locations230storing therein a most recently calculated ETA, and storage locations232storing therein a most recently calculated difference between the ETA and the target goal time.

FIG. 3is a flowchart illustrating a general control process300performed by processor130in accordance with program instructions in the general control program stored in storage locations200, according to one embodiment of the present invention. As shown inFIG. 3, general control process300comprises a basic time-keeping process310such as one found in a conventional time-keeper. In the time-keeping process310, the processor130counts the pulses in the signal from the oscillator110periodically (such as every second or 60thof a second) to update the current date and time, to store the updated date and time in storage locations206, and to cause the display driver150to display the updated date and time on the display160. Process300further includes a step320in which the controller monitors the inputs170periodically (such as every second or 60thof a second) for an interrupt signal. If no interrupt signal is observed, the controller continues the time-keeping process310.

One of the user inputs that may interrupt the time-keeping process310or add another process to the basic time-keeping process310is a stopwatch/start signal sent through the SS1input port. When such a signal is observed in step320, process300proceeds to perform the stopwatch process330in which the controller130stores the time at which the stopwatch/start signal is received in storage locations216and clears the storage locations or registers218,220-1,220-2, . . . ,220-(n−1),220-n, . . .220-N,222,224,226,230and232. The stopwatch process330then proceeds to periodically (such as, for example, every second or 60thof a second) count the pulses in the signal from the oscillator110to update a total elapsed time (TET) or stopwatch time since the stopwatch is invoked. Each time the TET or stopwatch time is updated, it is stored in storage locations208, and displayed on the display160. During the stopwatch process330, the current date and time may continue to be updated in storage locations206and shown in the display160. The stopwatch process330is performed until a user input interrupts it or puts it in background. Thus, process300further includes a step340in which the controller monitors the inputs170periodically (such as every second or 60thof a second) for such an interrupt signal. If no interrupt signal is observed, the controller continues the stopwatch process.

One of the user inputs that may interrupt the stopwatch process330is a stopwatch/stop signal sent through the SS2input port. The stopwatch/stop signal may also be sent through the SS1input port, as processor130can be configured to recognize another signal sent through the SS1port as the stopwatch/stop signal if the stopwatch process330has already been started. Either way, when the stopwatch/stop signal is detected in step340, process300stops the stopwatch process and resumes to the initial state of performing the basic time-keeping process310. The last updated time in storage locations208may be displayed on the display160for a predetermined amount of time (such as 10 seconds) or until the user takes it off the display by, for example, sending another signal to the SS2input port.

Another user input that may interrupt the stopwatch process330is an ETA signal sent through the ETA input port. In response to receiving the ETA signal, processor130proceeds to perform an ETA process350. The ETA process350is performed until a user input interrupts it, stops it, or restarts it. Thus, during the ETA process350, step340is performed periodically (such as every second or 60thof a second or according to other policy or criteria) in which processor130monitors such an interrupt signal. If no interrupt signal is observed, the ETA process350continues as described below in connection withFIG. 4. During the ETA process350, the current date and time, and/or the stopwatch time or TET may continue to be updated in storage locations206and208and be shown in the display160.

If a stopwatch/stop signal is received in step340, however, the ETA process350and the stopwatch process330both stops, while the basic time-keeping process310resumes or continues. Alternatively, if another ETA signal is received, another ETA process is performed for a new interval. In the example that the timing device is used by a Marathon runner, the total course or distance d of a Marathon run is divided into a plurality of intervals (even or uneven), as shown inFIG. 4, which illustrates a Marathon track400with marker401marking the beginning of the run, marker402marking the end of the run, and markers410,420, etc., marking the end of the first interval, the second interval, etc., respectively. For example, a 26.5 mile run can be divided into 26 1-mile intervals plus a half mile interval at the beginning or end of the run. A stopwatch/start signal is received by processor130at the start of the run to start the stopwatch process330. Subsequently at the completion of each interval, an ETA signal is received by processor130to start a new ETA process350, and the stopwatch/stop signal is received by processor130at the end of the run to stop the stopwatch and the ETA processes.

Each stopwatch/start, stopwatch/stop, and ETA signals can be sent to the processors by the runner using the input devices170. In one embodiment, the input devices170include a data input device171to allow the user to input data or change settings, a mode input device173to allow the user to change a mode of the timing-device, a stopwatch/start input device175to allow the input of the stopwatch/start signal, an optional stopwatch/stop input device177to allow the input of the stopwatch/stop signal, and an ETA input device179to allow the input of the ETA signal to start the ETA process and to alert the processor130of a just-finished interval. Input devices171,173,175,177, and179may be implemented using buttons, the pressing of each of which causes an electrical signal to be sent to a respective one of the input ports132of process130.

Alternatively or additionally, as shown inFIGS. 4 and 5, the input devices170may comprise an optional receiver510for receiving stopwatch/start, stopwatch/stop, and/or ETA signals from transmitters405installed at the start, finish, and end of each interval of the run, respectively. The stopwatch/start, stopwatch/stop, and/or ETA signals can be transmitted and received using conventional means. As non-limiting examples, the stopwatch/start, stopwatch/stop, and/or ETA signals can be infrared, optical, ultrasound, or radio-frequency (RF) signals. In one embodiment, transmitter405located at the start of the run may transmit a stopwatch start signal at the start of the run, or it may transmit a stopwatch/start signal in every 10thof a second; each transmitter405located at the end of the intervals between the start and the finish of the run periodically (such as every second) transmits the ETA signals; and the transmitter405located at the finish of the run periodically (such as every second or 10thof a second) transmits the stopwatch/stop signal The range of transmission406of each transmitter is set to be big enough to cover at least a width of track400at the location of the transmitter but should be too big to cause interference with other transmitters. In one embodiment, the range of transmission is about a 10thof an interval.

In one embodiment, receiver510comprises an antenna512configured to receive the stopwatch/start, stopwatch/stop, and/or ETA signals, and circuitry (not shown) for decoding a received signal in order to determine whether the signal is a stopwatch/start, stopwatch/stop, or ETA signal. If the signal is a stopwatch/start signal, the circuitry sends it to an output terminal514coupled to input port SS1of processor130. If the signal is a stopwatch/stop signal, the circuitry sends it to an output terminal516coupled to input port SS2of processor130. If the signal is an ETA signal, the circuitry sends it to an output terminal518coupled to input port ETA of processor130. Again, the provision of input port SS2and the differentiation of the stopwatch/start and stopwatch/stop signals are optional. A same type of signal as the stopwatch/start signal may be treated as the stopwatch/stop signal by the process130if the stopwatch process330has started.

The receiver510may be provided in addition to manual input devices175,177, and179so the user can choose whichever way to input the stopwatch/start, stopwatch/stop, and ETA signals. As shown inFIG. 5, input devices170further comprise logic blocks525,527, and529each implementing a logic OR function. Manual input device175and output514of receiver510are coupled to inputs of logic block525whose output is coupled to input SS1of processor130. So, either the manual input at the manual input device175or a stopwatch/start signal from output514is processed by processor130to start the stopwatch process330. Manual input device177and output516of receiver510are coupled to inputs of logic block527whose output is coupled to input SS2of processor130. So, either the manual input at the manual input device177or a stopwatch/start signal from output516is processed by processor130to stop the stopwatch process330. Furthermore, manual input device179and output518of receiver510are coupled to inputs of logic block529whose output is coupled to input ETA of processor130. So, either the manual input at the manual input device179or an ETA signal from output518is processed by processor130to start each ETA process350.

In one embodiment, processor130is configured to ignore a stopwatch/start, stopwatch/stop, or ETA signal that is received within a predetermined time after the reception of a previous stopwatch/start, stopwatch/stop, and/or ETA signal. The predetermined time may be set to be equal to the time required to complete a 10thof an interval using the average speed of a holder of a current world record on a similar Marathon run. When two consecutive stopwatch/start, stopwatch/stop, or ETA signals are received by receiver510near a single marker401,402,410,420, etc., the one later in time is ignored by-processor130. Also, if the user gives a manual input of ETA signal at the end of an interval wherein a transmitter405is also installed, the earlier input of the ETA signal, whether it comes from the user or the transmitter is processed by processor130while the one received later in time is ignored.

FIG. 6illustrates an alternative implementation of input devices170when input SS2is not provided. As shown inFIG. 6, input devices170comprise receiver510having two outputs614and618, and logic blocks625and629each implementing a logic OR function. Manual input device175and output614of receiver510are coupled to inputs of logic block625whose output is coupled to input SS1of processor130. So, either the manual input at the manual input device175or a stopwatch/start or stopwatch/stop signal from output514is processed by processor130to start or stop the stopwatch process330. Furthermore, manual input device179and output618of receiver510are coupled to inputs of logic block629whose output is coupled to input ETA of processor130. So, either the manual input at the manual input device179or an ETA signal from output618is processed by processor130to start each ETA process350.

FIG. 7is a flowchart illustrating the ETA process350performed by processor130in accordance with program instructions stored in storage locations202, according to one embodiment of the present invention. As shown inFIG. 7, ETA process350comprises a step710in which the number corresponding to the last-finished interval is updated and stored in storage locations218. For example, if the last-finished interval is the fifth interval in the total distance d, the number5is stored in storage locations218. ETA process350comprises a step720in which the time associated with the completion of the last-finished interval (TLI) is updated and stored in storage locations220-(n−1). Since the ETA process350is restarted at the completion of each interval (except the final interval at the end of the total distance d), by the time the runner enters the nth interval, storage locations200-1,200-2, . . . , and200-(n−1) should store the time associated with the completion of the first, second, and (n−1)thintervals, respectively. The time associated with the completion of an interval can be the time or stopwatch time at which the interval is completed by the runner, or the time the runner spent in completing the interval (i.e., the time from the start to the completion of the interval), or both. In one embodiment, the time tithe runner spent in completing the interval i is stored as the time associated with the completion of the interval i, where i=1, 2, . . . , N.

Still referring toFIG. 7, ETA process350further comprises step730in which the processor130updates the total time Tn-1spent by the runner in completing the intervals prior to the current interval (e.g., the nthinterval). This can be done by summing up ti, where i=1, . . . n−1, or simply by adding t(n-1)to Tn-2, which is stored in storage locations222. ETA process350further comprises step740in which the processor130updates the total time τnspent by the runner in completing a number m of intervals prior to the current nthinterval, and computes the average pace π, which is the average time the runner spent in completing each of the m prior intervals. In one embodiment, the number m of prior intervals is specified by a user of the timing device, such as the runner himself or herself, and is stored in storage locations212. If the runner did not enter such a number before the run, a number previously stored in storage locations212or a default number will be used as the number m. The time τncan be computed by summing up ti, i=n−m, . . . n−1, or simply by adding t(n-1)to τn-1, which is stored in storage locations224. With τncomputed, the average pace7can be computed by dividing τnby the number m. The updated τnand average pace π are stored in storage locations224and226, respectively.

ETA process750further comprises step750in which an ETA is computed. In one embodiment, the ETA is computed by adding the product of the average pace π and the number of intervals remaining to be covered (including the current interval) to the total time Tn-1, which is the time the runner has spent in completing the intervals prior to the current interval. Step350can be performed according to the equation:
ETA=Tn-1+(N−n+1)×π,
The newly computed ETA is stored in storage locations230. ETA process350may also-compute in step750a difference between the newly computed ETA and the user specified target goal time and stores the newly computed difference value in storage locations232.

ETA process350further comprises step760in which ETA results including the ETA and optionally the TLI and/or the difference between the newly computed ETA and the user specified target goal time are displayed for a predetermined period of time or until a new ETA signal is received at the end of the current interval. When the ETA results are not displayed, the stopwatch time or TET and/or the current date and time are displayed during the run. ETA process350further comprises step770in which the ETA process350proceeds to periodically (such as every second or 60thof a second) count the pulses in the signal from the oscillator110to update an elapsed time in the current interval (ETCI) since the ETA process350has started. Each time the ETCI is updated, it is stored in storage locations220-n, and may be displayed on the display160.

FIG. 8illustrates a wristwatch or other wearable timepiece800comprising the timing device according to one embodiment of the present invention. As shown inFIG. 8, watch800comprises a plurality of buttons as input devices170, including an Adjust/Reset button (1), a Mode button (2), a Start/Lap button (3), a Stop/Next button (4), and an ETA button (5). Watch800further comprises a Strap (6), a Watch Faceplate (7), and a Night Light (8).

The Adjust/Reset button (1) corresponds to input device171and is used to adjust the time, alarm time, the number of intervals to be used in the ETA calculation, the number of intervals in the distance to be covered, the goal completion time and the time for the timer countdown. After data is entered or adjusted, the Adjust/Reset button is depressed again to lock in the revised data. This button also resets the data when the watch800is in the following modes: chronometer, data and counter.

In one embodiment, the Mode button (2) selects one of the following modes: goal time, number of total intervals, number of intervals for ETA calculation, time, chronometer, data, timer, counter and alarm. Each time this button is depressed, it moves the watch into its next mode to allow the input of the respective data. In one embodiment, the list of modes is arbitrary but sequential, meaning the modes cannot be “skipped” when scrolling through the functions by depressing this button. In other embodiments, the mode selection interface may be configured differently to suit the need of the user.

The Start/Lap button (3) performs the following functions: in the time mode, it selects whether an audible “chirp” is heard when any of the other buttons are depressed. In the chronometer mode, it starts this timing feature. Also, when depressed while in the course of travel, it displays the time of the last lap or “split.” For example, it may display the time since this button was last depressed. Typically, this button is depressed at each interval to show the time to complete each interval or “split.” In the data mode, this button plays back the split time for each interval from each run. (After each run, the data may be stored in the watch including all splits.) In the timer or stopwatch mode, this button initiates the timer or stopwatch process330to start. In the counter mode, depressing this button adds one to the total count. In the alarm mode, this button selects whether each of one or a plurality of alarms is on or off. In the adjust mode, this button adjusts the hour and minute in the time mode (the user moves from the hour to minute adjustment by depressing the Start/Next button while in the adjust mode). Using this button, the user can also input the time for the alarms, input the number of intervals, the goal time, and the number of intervals to be used when calculating the ETA.

In the illustrative embodiment, the Stop/Next button (4) performs the following functions: in the time mode, it selects whether the watch is in time zone1or in time zone2(the watch has two time settings to allow it to display the time in two separate time zones). In the chronometer mode, when turned on, this button stops the chronometer. If the chronometer is not on, depressing this button displays the total amount of “splits” that are available in the watch's memory. Similarly, it also stops the timer. In the timer mode or stopwatch process330, pressing this button sends the stopwatch/stop signal. In the data mode, it chooses which run data (stored in the watch) is to be displayed. In the counter mode, it counts in a negative direction (0, −1, −2, etc) when depressed. In the alarm mode, it chooses which of seven alarms are displayed and it also allows the user, when adjusting the alarm, time and the goal time, to move from hours to minutes

The ETA Button (5) has the following functions: when depressed when the user completes an interval it starts a new ETA process350for the new interval and shows the estimated time of arrival in large numbers and, below the ETA in smaller numerals, it shows how far ahead or behind the user is from their predetermined goal time. Also, the user will have the option of having the ETA calculated based on taking an average time for all previous intervals (which is the default when depressing the ETA button) as well as, when depressing the Adjust/Reset button after depressing the ETA button, showing the ETA based on the predetermined number of intervals.

Although the watch800is described and depicted as having “buttons”, it is to be understood that any variety of input mechanisms may be used to perform the above functionality. By way of example but not limitation, the device may be set or programmed via a computer interface, using voice command or any other input means or devices.

After the user depresses the ETA button (and, if utilized, the Adjust/Reset button) the watch display will show the ETA for four seconds and then the display will revert back to displaying the total elapsed time and the current time (or “split”) spend in the interval through which the user is currently traveling.

From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. For example, although described above as an ETA “Chip” it is to be understood that any number of semiconductor devices or chips may be used to implement the above functionality, as well as any combination of hardware, software, and/or firmware. Accordingly, the invention is not limited, including by the appended claims.