Abstract:
A method and apparatus for use with a handheld code reader that has a plurality of operating characteristics where each operating characteristic can have a plurality of different states wherein a recipe includes a specific set of states of at least first and second characteristics, the method for switching between recipes and comprising the steps of specifying a circumstance set including at least one of reader orientation and a threshold movement level for the reader, monitoring at least one of movement and orientation of the reader, determining when the circumstance set occurs and changing from a current recipe to a next recipe when the circumstance set occurs.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This patent application is a continuation of U.S. patent application Ser. No. 11/962,339 which was titled “HANDHELD CODE READER HAVING A MOTION SENSOR” and which was filed on Dec. 21, 2007 now U.S. Pat. No. 7,857,218. 
    
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not applicable. 
     BACKGROUND OF THE INVENTION 
     The present invention relates to the field of symbol or mark readers used to read marks (e.g., bar codes, etc.) directly on objects and more specifically to a reader that includes a motion sensor to provide enhanced reader functionality by adjusting reader operating characteristics based on sensed reader motion. 
     Mark or symbol reading entails the aiming of an image acquisition sensor (a CMOS camera, CCD, etc. contained within a reader) at a location on an object at which a symbol or mark has been applied, and acquiring an image of that mark. Each mark contains a set of predetermined patterns that represent an ordered group of characters or shapes that can be decoded by a processor to obtain useful information about the object (e.g. serial number, type, model, price, etc.). 
     During acquisition of an image of a mark, the type of illumination employed can directly affect the quality of the obtained image. For instance, where a mark is printed on a flat surface with contrasting ink or paint, high-angle “bright field” illumination often best illuminates mark features. By high-angle it is meant, generally, that light strikes the surface on which the mark is applied nearly perpendicularly (normal) or at an angle that is typically no less than about 45 degrees from perpendicular (normal) to the surface. Such illumination is subject to substantial reflection back toward im imaging sensor. 
     As another instance, where a mark is applied on a more irregular surface or created by etching or peening a pattern directly on a surface, the use of highly reflective bright field illumination may not be optimal. A penned/etched surface has two-dimensional properties that tend to scatter bright field illumination, thereby affecting the quality of the acquired image. In these cases, marks are often best illuminated via dark field illumination directed at the surface on which a mark is applied at a relatively low angle (e.g., approximately 45 degrees or less). Using such low-angle dark field illumination, two-dimensional surface texture is contrasted more effectively (with indents appearing as bright spots and surroundings as shadows) for better image acquisition. 
     In other cases, diffuse direct illumination may be optimal for imaging purposes. Such illumination is typically produced using a direct-projected light source (e.g. from LEDs) passing through a diffuser to produce a desired illumination effect. 
     When attempting to read and decode various types of marks on parts or components, it may be desirable to initially try one illumination type, such as bright field illumination. If the mark is not able to be read using bright field illumination, the reader may obtain an image of the mark using a second type of illumination, a third type of illumination, and so on. Some code readers have a dial or switch that must be manually toggled to change illumination modes. Manually stepping through illumination types via a switch is cumbersome and typically increases the length of time needed to successfully read a mark. Attempts to solve this problem have been made by developing a reader that sequentially steps through illumination modes while acquiring images of a mark and attempting to decode the marks in the images. This is not an optimal solution, however, as this solution may increase the length of time before a code is successfully read and decoded and additional switches/dials increase reader costs. 
     Similarly, depending on the type of mark to be imaged and decoded, different decoding algorithms may be employed. In some cases a reader user may be able to manually select via a dial or the like which decoding algorithm to use. In other cases a reader may be programmed to step through a series of decoding algorithms in attempts to decode a mark. As in the case of different illumination settings, switching between different decoding algorithms can be cumbersome and additional dials or switches can increase costs appreciably. 
     Other problems with capturing high quality images of marks via a reader are related to reader movement during imaging. To this end, if a reader is moving while an image of a mark is being captured the image can be blurred which often renders the mark in the image unable to be decoded. 
     In addition, reader movement can increase auto-focus time required to, as the label implies, focus a reader lens assembly on a mark to be imaged. To this end, typical readers can obtain an image of a mark suitable for decoding when the distance between the reader and the mark is anywhere within a range of distances by changing a focal length of the reader&#39;s field of view. Here, for instance, if a reader is twenty inches from a surface on which a mark has been applied and is moved toward the mark, a reader processor may be programmed to recognize that the mark is out of focus and hunt for a lens setting that brings the mark back into focus. A typical hunting process may include driving the reader lenses to juxtapositions consistent with one end of the range of focus (i.e., twenty-five inch focus) and then acquiring mark images as the focal length of the field of view is altered until the mark is again in focus. While this solution works well in some applications, one drawback is that the focus settling time can be increased appreciably when the in focus hunting process initially progresses in the wrong direction. For instance, where a reader is moved toward a mark but the reader is programmed to increase the focal length of the field of view when a mark becomes unfocused, the hunting process starts hunting in the wrong direction and settling time (i.e., focusing time) is increased. Excess focus settling time and image capturing time is bothersome. 
     BRIEF SUMMARY OF THE INVENTION 
     The present invention overcomes the disadvantages of the prior art by providing an improved system and method for reading and decoding marks applied on the surface of an object. In an illustrative embodiment, a motion sensor coupled to a handheld code reader senses movement of the reader when moved by a user. This information is then used by the reader to adjust the necessary operating characteristics in order to provide improved code reading functionality such as selecting an exposure period and associated movement for imaging and controlling the direction of focus as a function of the direction of movement of the reader. 
     In another embodiment a reader may be provided where different operating characteristics may be selected by the user by simply moving the reader in a pre-specified movement pattern. For instance, where a reader has five different illumination modes, a reader may be able to cycle from one mode to the next in the series of five modes by rotating the reader about an imaging axis by at least 45° in the counter-clockwise direction. As another example one of a plurality of decoding algorithms may be selectable in a similar fashion. 
     Consistent with the above, some embodiments include a method for use with a handheld code reader that has an operating characteristic that can have at least first and second different states, the method for switching between the different states of the operating characteristic, the method comprising the steps of specifying a circumstance set including at least one of reader orientation and a threshold movement level for the reader, monitoring at least one of movement and orientation of the reader, determining when the circumstance set occurs and changing the operating characteristic state when the circumstance set occurs, wherein the operating characteristic is one of an illumination mode and a code decoding algorithm. 
     In some embodiments the circumstance set includes a threshold movement level of the reader and the handheld code reader includes a movement axis, the movement detected including movement with respect to the movement axis. In some cases the movement detected includes rotation substantially about the movement axis. In some cases the code reader includes an image obtaining component that has a field of view (FOV) centered on the movement axis and the movement detected includes rotation substantially around the movement axis. 
     In some cases the threshold movement level specifies rotation substantially around the movement axis through a threshold rotation angle. In some cases the threshold rotation angle is between 45 degrees and 180 degrees. In some cases the code reader includes an image obtaining component that has a field of view (FOV) centered on an FOV axis, the movement detected includes rotation substantially about the movement axis and the movement axis is substantially parallel to the FOV axis. 
     In some embodiments the code reader movement is sensed by a motion sensor. In some cases the motion sensor is an accelerometer. In some cases the code reader includes a trigger member and the step of changing the operating characteristic state includes changing the state when the trigger member is activated and the detected reader movement exceeds the threshold movement level. 
     Other embodiments include a method for use with a handheld code reader to select at least one reader operating characteristic, the method comprising the steps of detecting movement of the handheld code reader and determining, based on the movement of the reader, an optimum setting for the at least one reader operating characteristic, wherein the at least one operating characteristic includes at least one of lens focus and exposure time. 
     In some cases the at least one reader operating characteristic is lens focus and the optimum setting for the at least one operating characteristic includes a lens focusing setting that is altered as the code reader is moved toward and away from a code to be read. In some cases the at least one reader operating characteristic is exposure time and the optimum setting reduces the exposure time as the degree of movement increases. 
     In some embodiments the sensing movement step further includes sensing the direction of movement of the reader. 
     Still other embodiments include an apparatus for use with a handheld code reader that has an operating characteristic that can have at least first and second different states, the apparatus for switching between the different states of the operating characteristic, the apparatus comprising a sensor for detecting at least one of movement of the handheld code reader and orientation of the reader, a comparator for comparing the at least one of detected reader movement and reader orientation to at least one of a threshold movement level and a specific orientation and determining at least one of when the detected reader movement exceeds the threshold movement level and the reader is oriented in the specific orientation and a characteristic selector for changing between the different states of the operating characteristic when the at least one of detected reader movement exceeds the threshold movement level and the reader is in the specific orientation, wherein the operating characteristic is one of an illumination mode and a code decoding setting. 
     In some cases the handheld code reader includes a movement axis and wherein the sensor detects movement with respect to the movement axis. In some cases the code reader includes an image obtaining component that has a field of view (FOV) centered on an FOV axis, the sensor detecting rotation substantially about the movement axis and the movement axis substantially parallel to the FOV axis. 
     Other embodiments include an apparatus for use with a handheld code reader to select at least one reader operating characteristic, the apparatus comprising a sensor for detecting movement of the handheld code reader, a processor for determining, based on the movement of the reader, an optimum setting for the at least one reader operating characteristic and a characteristic controller for selecting optimum characteristic settings for the code reader as a function of the reader movement, wherein the at least one operating characteristic includes at least one of lens focus and exposure time. 
     In some cases the at least one reader operating characteristic is exposure time and wherein the optimum setting reduces the exposure time as the degree of movement increases. In some cases the sensor further senses the direction of movement of the reader and the processor determines the optimum setting as a function of the direction in which the reader is moving. In some cases the method further includes the step of using the sensed direction of the reader movement to predict the direction in which lens focus is to be adjusted. 
     To the accomplishment of the foregoing and related ends, the invention, then, comprises the features hereinafter fully described. The following description and the annexed drawings set forth in detail certain illustrative aspects of the invention. However, these aspects are indicative of but a few of the various ways in which the principles of the invention can be employed. Other aspects, advantages and novel features of the invention will become apparent from the following detailed description of the invention when considered in conjunction with the drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is a perspective view of a handheld reader constructed in accordance with one aspect of the present invention; 
         FIG. 2  is a schematic illustrating components of the reader of  FIG. 1 ; 
         FIG. 3  is a flowchart illustrating a method wherein reader movement is used to alter reader operating characteristics; 
         FIG. 4  is a flow chart illustrating a method whereby a reader automatically selects an exposure period and moment as a function of reader movement; 
         FIG. 5  is a flow chart illustrating a method whereby a reader automatically controls optics focus as a function of reader movement to expedite the settling time of the focusing process; and 
         FIG. 6  is a perspective view of a reader that includes an aiming apparatus. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to the drawings wherein like reference numerals correspond to similar elements throughout the several views and more specifically, referring to  FIGS. 1 and 2 , the present invention will be described in the context of an exemplary handheld symbol or mark reader  10  including a housing  101  having a grip section  102 , a body/barrel section  104  and a trigger  111 , a CCD or other type camera/sensor  105 , optics/lenses  106 , a motion sensor or accelerometer  50 , a processor  108 , one or more LEDs  132 , a speaker/audio component  134 , a battery  53 , a memory  52  and a light source/subassembly  54 . Each of the processor  108 , sensor  50 , battery  53 , optics  106 , memory  52  and light source  54  are mounted in or otherwise supported by housing  101 . Processor  108  is linked to each of sensor  50 , battery  53 , memory  52 , optics  106 , camera/sensor  105 , source  54 , LEDs  132  and output  134 . Processor  108  runs programs stored in memory  52  to perform inventive processes. 
     Optics  106  focus a field of view  107  on a CCD or other type of sensor device  105  within reader  10  which in turn generates data comprising a high resolution image of items located within the field of view  107 . Field of view  107  is centered along a FOV axis  109 . Thus, when the field of view  107  is directed toward a mark  112  applied on a surface  128  of an item  130  and reader  10  is activated to generate an image, an image including the mark  112  is obtained. 
     According to one aspect of the present invention, different reader  10  settings can be selected by a reader user by moving the reader  10  through a predefined movement or machination that is selected as an action that would not typically occur during normal reader operations. For example, a predefined machination may include rotation of reader  10  substantially about the field of view axis  109  through at least a threshold angle (e.g., between 45° and 90°) in a counter-clockwise direction. Another predefined machination may include a clockwise rotation quickly followed by a counter-clockwise rotation of some threshold angle. Other predefined machinations are contemplated. 
     With respect to settings that may be set in this manner, virtually any operating characteristic may be set including an illumination effect (dark field, light field, diffuse light, etc.), which decoding algorithm to choose to decode a mark to be imaged, combinations of illumination effect/decoding algorithms, etc. Hereinafter, the term “recipe” is used generally to refer to different sets of operating characteristics (e.g., illumination effect and decoding algorithm). 
     Referring again to  FIGS. 1 and 2 , when trigger  111  is activated, reader  10  obtains an image. After mark  112  has been imaged, processor  108  is programmed to decode the mark in the image. When a mark is successfully decoded, processor  108  may generate a signal via one of LEDs  132  or audio output  134  confirming a successful decoding process. 
     Referring now to  FIG. 3 , a process  150  for changing a reader recipe via a predefined reader motion or machination is illustrated. Beginning at block  152 , a recipe sequence is provided. Here, a recipe sequence means a sequence of operating characteristics or operating characteristic sets that should be cycled through when one of the predefined reader movements occurs. For example, one recipe sequence corresponding to illumination effect may cycle from dark field to light field to a diffused lighting effect and then back to dark field illumination. As another example, another recipe sequence corresponding to decoding algorithms may include a first decoding algorithm, followed by a second decoding algorithm, followed by a third decoding algorithm all the way through a tenth decoding algorithm and they may return back to the first decoding algorithm. As one other example, an illumination effect/decoding algorithm recipe sequence may start with a first recipe including dark field illumination and the first decoding algorithm followed by a second recipe including dark field illumination and a second decoding algorithm followed by light field illumination and the first decoding algorithm, and so on. 
     Referring still to  FIG. 3 , at block  154 , when a reader  10  (see again  FIG. 1 ) is initially turned on, the reader will start with a default recipe such as, for instance, the combination of dark field illumination and a first decoding algorithm. At block  156 , the reader processor is initiated with a specific recipe changing motion. For example, an exemplary recipe changing motion may require rotation of the reader  10  about the field of view access  109  through an angle of between 45° and 90° in the counter-clockwise direction. 
     Referring still to  FIGS. 1 ,  2  and  3 , at block  158  reader motion is monitored. At block  160 , reader motion is compared to the recipe changing motion that was specified at block  156 . Where the reader motion corresponds to the recipe changing motion at block  160  control passes to block  162  where the processor  108  switches to the next recipe in the recipe sequence that was specified at block  152 . After block  162 , control passes back up to block  158  where reader motion is again monitored. In at least some applications when a recipe is altered via the prescribed machination, an LED  132  or the like may blink, illuminate, change color or otherwise visually signal to a user that a change has occurred. 
     Referring still to  FIG. 3 , at block  160 , if reader motion does not correspond to the recipe changing motion, control passes back up to block  158  where reader motion is continually monitored. Thus, it should be appreciated that multiple recipe changing motions may occur one after another causing recipe changes corresponding to the sequence to occur for each one of the motions at block  162 . 
     According to another aspect of the present invention, motion sensor  50  is used in conjunction with processor  108  to select and/or modify other reader  10  operating characteristics such as lens focus, exposure time, the image moment to optimize reader IO operation, etc. For example, one problem with reader  10  that may be minimized by adjusting certain operating characteristics based on the sensed movement of reader  10  is motion blur. Motion blur may occur when reading very small codes, reading codes from large distances, or reading codes when the reader  10  is in motion. Motion blur can be especially problematic when a reader user has shaky hands due to the nature of an environment and the user cannot hold the reader  10  steady for even a short time period. According to one aspect of the present invention, processor  108  measures movement of the reader  10  and uses that information to minimize or even eliminate motion blur. For example, processor  108  may be programmed to use movement information to select an optimal setting for operating characteristics such as exposure time and image moment. For example, in a similar example, where an image is obtained over a one second period, time image data may be stored in one-tenth second intervals. Where no movement occurs over the entire second, all of the stored data may be used to generate the image for decoding. Where movement occurs, however, during the last half of the imaging second, the first half second of data may be used to generate the image for decoding. Here, the exposure time and movement would correspond to the first half of the data generating second. In another example, processor  108  does not acquire an image while the motion of reader  10  is above a certain threshold level of movement. 
     Referring now to  FIG. 4 , an exemplary method  140  for selecting an image moment and an exposure time as a function of reader movement is illustrated. Referring also to  FIGS. 1 and 2 , at block  141  a quantity range of required image data is specified for processor  108 . Here, as known in the art, as camera exposure time is increased, the quantity of data collected by the reader camera increases. The greater the amount of data collected by a camera, typically, the better the resulting image. Thus, there is typically some optimal quantity of image data that should be collected to generate an image. However, there is also typically some quantity of data less than the optimal quantity that is usually sufficient for generating an image for decoding purposes. Here, at block  141  both the optimal and sufficient quantities of image data are specified for processor  108 . At block  142 , an image collecting process is initiated. Here, image collection initiation may comprise pointing the reader  10  so that the field of view  107  is directed at a mark to be imaged and depressing trigger  111 . 
     Referring still to  FIGS. 1 ,  2  and  4 , at block  143  data collected by reader  10  is stored. At block  144 , processor  108  determines whether or not the optimal amount of image data has been collected. This step  144  typically is time related. Where an optimal amount of data has been obtained, at block  144 , control passes to block  149  where the data collecting process is halted and the processor  108  attempts to decode the imaged mark. Continuing, at block  144 , where the optimal amount of image data has not yet been collected, control passes to block  145 . At block  145 , processor  108  monitors for reader movement. At block  146 , where reader movement is less than a threshold level control passes back up to block  143  where image data continues to be stored. At block  146 , where reader movement exceeds the threshold level, control passes to block  147 . 
     Referring to  FIG. 4 , at block  147 , processor  108  determines whether or not sufficient image data has already been obtained and stored. Where sufficient data for decoding purposes has been obtained and stored, control passes from block  147  to block  149  where the collecting process is halted and decoding is attempted. At block  147 , where sufficient image data has not been obtained, control passes to block  148  where the image data is cleared from memory after which control passes back up to block  142  where the image collecting process is again initiated. 
     Thus, it should be appreciated that the method of  FIG. 4  effectively selects the exposure time and the image moment for a reader as a function of reader movement. 
     In a similar fashion, in at least some embodiments where data must be collected for at least a minimum period, after the trigger is activated, movement may be monitored and data may be collected and stored to form an image during the first relatively stationary period that occurs after the triggering activity. Thus, for instance, where data has to be collected for at least one-half of one second to form a decodable image, after triggering, data may be collected until one-half second of data corresponding to a stationary reader has been obtained and then the one-half second of data corresponding to the stationary reader may be used to form an image for decoding. 
     According to another aspect of the present invention processor  108  may be programmed to use the movement as measured by motion sensor  50  in an auto-focus control algorithm. For example, if reader  10  is moving away from an object  130  to be scanned, the direction of the movement may be detected and used by processor  108  to adjust operating characteristics such as focal length of the field of view. Conversely, if reader  10  is moved towards an object  130  to be scanned, the movement direction may be detected and used by processor  108  to change the focus settings to shorten the focal length. 
     Referring now to  FIG. 5 , an exemplary method for adjusting reader focus as a function of the direction in which a reader is moved with respect to a mark being imaged is illustrated. Referring also to  FIGS. 1 and 2 , at block  172  the reader  10  is used to obtain an image. At block  174  processor  108  determines whether or not the obtained image is in focus using standard algorithms known in the art. At block  186 , where the image is not in focus, processor  108  adjusts the optics lens  106  at block  186  to bring the image into focus. Once the image is in focus, control passes from block  174  to block  176 . At block  176 , processor  108  senses reader motion via signals generated by accelerometer or motion sensor  50 . At block  178 , when processor  108  determines that the reader is moving in the direction of the reader&#39;s field of view (i.e., toward a mark being imaged) control passes to block  180  where processor  108  controls the optics/lens  106  to shorten the field of view focal point. After block  180  control passes back up to block  172  where another image of the mark is obtained and the process is repeated. Here, the focus hunting sub-processes at block  186  would be around a smaller window of possible focal points so that the hunting process would be expedited. 
     Referring still to  FIGS. 1 ,  2  and  5 , where reader movement is not in the direction of the field of view control passes to block  182 . At block  182 , where reader movement is in the direction opposite the field of view, control passes to block  184  where processor  108  lengthen the field of view focal point by adjusting the optics/lenses  106  after which control again passes back up to block  172  where the process continues. At block  182 , where reader movement is not in the direction opposite the field of view, control simply passes back up to block  172  where another image is obtained. 
     Referring to  FIG. 6 , according to another aspect of the present invention, a reader  10  may include a laser aimer  190  that is used to assist a user in placing a mark within the field of view of reader  10 . Reader  10  power consumption can be reduced by turning off the laser aimer when not needed. An aimer can be turned off when reader  10  has not been in motion for a certain amount of time indicating that the reader is generally dormant. When reader  10  is picked up, this motion may be sensed and the laser aimer may be automatically turned back on. In the alternative, the laser aimer may remain off until the reader is picked up and moved and then held stationary for a short time consistent with a mark reading activity. 
     One or more specific embodiments of the present invention have been described above. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers&#39; specific goals, such as compliance with system-related and business related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure. 
     Thus, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the following appended claims. As such, the following claims are made: