Patent Description:
Barcode readers are used in a variety of venues. The purpose of a barcode reader can vary greatly from venue to venue as well as within the venue. In retail environments, a venue may have multiple barcode readers at a single station or point-of-sale for performing various functions. For example, a venue may have a first barcode reader for scanning barcodes on products, a second barcode scanner for reading checks and other forms of payment, and a third barcode reader for identifying objects in a basket. Each barcode reader provides different functions that use different configurations, such as illumination, field-of-view, and reading capabilities. It should be understood that barcode readers are capable of reading machine-readable indicia other than barcodes, including two-dimensional codes, such as QR codes.

Moving a single barcode reader from one orientation to another is time and resource intensive as a user often has to manually modify each of the settings affected by the new orientation and related functionality. Time and personnel are valuable resources to meet demand. As a result, venues install multiple barcode readers with a purpose of each barcode reader stationary in its orientation (or be dedicated to being operated in a hand-held mode), thus removing the need to ever change settings and functionality. Even though the use of multiple barcode readers is less costly in time and personnel resources, the cost of obtaining and maintaining extra barcode readers is a burden on the venue.

Barcode readers are often used within environments in which harmful germs and bacteria exist. For example, barcode readers are used in grocery stores in which foods and chemicals are placed on scanning or processing areas (e.g., workspace surfaces) at the barcode readers. As another example, barcode readers are used in hospitals and other environments in which harmful germs and bacteria exist. As an example, in a grocery store, food products, such as chicken grease, may contact a work surface, such as a conveyer belt, barcode scanner surface, or other surface. As such, reducing harmful germs and bacteria in food handling applications, hospitals, and other environments is highly desirable. Currently, cleaning chemicals and expensive anti-microbial materials are used to control/clean the scanning areas or workspace surfaces, including user interfaces, at the barcode readers. The workspace surfaces could be cleaner, safer, and more efficient while reducing the use of expensive and potentially harmful chemicals. Many of the chemicals that are used to disinfect surfaces are harmful and/or degrade materials (e.g. polycarbonate/ABS) commonly found in the workspace.

<CIT> and <CIT> disclose code readers comprising an illumination source configured to emit an anti-microbial illumination in order to activate a cleaning/disinfecting function.

Illustrative embodiments of the present invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein and wherein:.

With regard to <FIG>, an illustration of a barcode reader system <NUM> including a base <NUM> and code reader <NUM> configured to read machine-readable indicia is shown. The code reader <NUM> may be configured to be positioned in multiple orientations. The barcode reader system <NUM> may further include a first barcode scanner <NUM>, and a second barcode scanner <NUM> to enable the barcode reader system <NUM> to read machine-readable indicia from three different angles to provide efficiency in reading a machine-readable indicia on an object, such as a consumer package. The barcode reader system <NUM> may be configured to identify item <NUM> by reading a machine-readable indicia <NUM> in a target area within a field-of-view of the barcode reader system <NUM>. The machine-readable indicia <NUM> may be representative of a code (e.g., UPC code) associated with the item <NUM> that enables the barcode reader system <NUM> to identify the items for checkout at a store or other purpose. "Barcode" may refer to a "barcode," "code," or any other machine-readable indicia as known by one of skill in the art.

In one embodiment, the barcode reader system <NUM> may be configured to constantly scan the target area, such as, but not limited to, a scanning station. In response to identifying the existence of an item <NUM> in the target area, the first and second barcode scanners <NUM> and <NUM> and the code reader <NUM> may scan or image the machine-readable indicia <NUM> (e.g., barcode, QR code, or any other machine-readable code or markings) captured on the item <NUM>. The barcode reader system <NUM> may have a variety of alternative configurations, as understood in the art.

With regard to <FIG>, an illustration of a barcode reader <NUM> having a housing <NUM> of a code reader is shown in four different mutually different orientations 202a - 202d (collectively <NUM>). In one embodiment, the housing <NUM> includes a light source (not shown) that may illuminate a target area. In one embodiment, the housing <NUM> may include a target indicator light (not shown) that may provide a positioning spot or other indicator (e.g., rectangle corners 204a<NUM>-204a<NUM> (collectively 204a) 204a - 204d (collectively <NUM>) to indicate to a user where to place an item for reading. If different target indictor lights are used to support different functions of the barcode reader <NUM>, then the barcode reader <NUM> may include a driver system (e.g., processor, optical source driver, etc.) to automatically select and control the appropriate light source(s) to turn on and off the light source(s) based on the selected function. In addition to a light source, a function indicator light <NUM> may be used to notify a user of the selected function. In one embodiment, the indicator light <NUM> may produce different colors (e.g., red, green, blue, violet), and each function may cause the function indictor light <NUM> to produce a different color. Alternatively, the function indicator light <NUM> may be composed of multiple lighting elements associated with different physical positions on the housing <NUM> to indicate different functions.

To operate the barcode scanner <NUM>, the scanner <NUM> may be set to an automatic scan mode to continuously scan, scan in response to an event (e.g., identification of motion), periodically scan (e.g., scan every <NUM> seconds), or manually scan in response to a user pressing a button <NUM> to initiate a scan. In response to pushing the button <NUM>, the scanner <NUM> may automatically determine a function based on orientation (e.g., angular, inclination, motion, background image content) of the scanner <NUM>. Alternatively, the scanner <NUM> may be configured for a particular function based on orientation prior to a user pushing the button <NUM> (e.g., in response to a change in orientation, the scanner changes function, thereby being configured to a particular function prior to activation of a scan request by a user or automatic scanning, as previously described).

The barcode reader <NUM> may include different functions corresponding to the respective four orientations <NUM> of the housing <NUM>. The functions may be automatically selected by adjusting at least one setting of the barcode reader <NUM>. The settings may include, but are not limited to, depth of field, region of interest, type of data captured, type and format of data transmitted (e.g., fully decoded barcode data in a case of a customer facing scanner function versus time-synced frame contents in the case of a top-down reader, and non-synced images in a case of an in-basket scanner and check imager, such as a Check <NUM> imager). Transition from one function to another may be achieved dynamically in real-time or near-real-time so that transmission from the code reader is seemingly, or actually, instantaneous to avoid usage disruption or delay.

The barcode reader <NUM> may automatically change functions in response to a change in orientation of the housing <NUM>. In one embodiment, a change in orientation is sensed by at least one electromechanical sensor, such as shown in <FIG> and <FIG>, and communicated to the barcode reader <NUM> so that the barcode reader <NUM> may automatically select a function corresponding to the orientation of the housing <NUM>. In one embodiment, a scan may initiated, such as shown in <FIG>, and the orientation of the housing <NUM> may be determined initially by an image captured of a background portion of the target area. For example, determining an orientation of the housing <NUM> based on the image of the target area may include identifying known features (e.g., scanning window or a base of a barcode scanner system) in a background portion of the image of the target area that correspond with a function corresponding with the orientation of the housing <NUM>. The barcode reader <NUM> is shown in four orientations <NUM> as an example, and an alternative number of orientations corresponding with different functions may be supported.

A first orientation 202a of the housing <NUM> may be a check imaging orientation. A function of the barcode reader <NUM> in the check imaging orientation may be an imaging function. The barcode reader <NUM> may capture an image of a check <NUM> that a user has placed in the target area. In an embodiment, the barcode reader <NUM>, in response to the barcode reader <NUM> entering into a check imaging function, one or more illumination devices may be turned on to define a region in which a check (or other item) may be placed. The illumination devices may define a rectangle in which the check is to be placed, for example, thereby supporting specific functionality of processing checks, which generally has a higher degree of image processing than barcode scanning. The imaging function may include auto-sizing and meeting pixel requirements for check processing applications, such as, for example, Check <NUM> processing. The imaging function may include parallax corrections as well as other imaging corrections for reading and verifying checks known to one of skill in the art.

In one embodiment, the orientations <NUM> may be determined by angular or other (e.g., inclination) orientation of the housing <NUM>. In another embodiment, the orientations may be determined by identifying a background portion (e.g., outline on a base, sticker, text, or other fixed feature in the target area). Orientation may be determined by a variety of alternative methods, as further described herein.

A second orientation 202b of the housing <NUM> may be a barcode scanner orientation. A function of the barcode reader <NUM> in the barcode scanner orientation 202b may be to constantly, periodically, or aperiodically scan the target area. In response to identifying an item <NUM> in the target area, the code reader may scan or image a machine-readable indicia disposed on the item <NUM>. The barcode reader <NUM> may communicate the image to a POS system optionally to be processed with images captured by additional scanners below and to a side of the item <NUM> (see <FIG>, for example). The barcode reader <NUM> may also be configured to identify a code associated with the item <NUM> by reading the machine-readable indicia and communicating the code associated with the item <NUM> to an external processing unit (e.g., POS system). Orientation of the housing <NUM> may be determined by at least those methods as described hereinabove with reference to the check imaging orientation as well as identifying a machine-readable indicia in the target area.

A third orientation 202c of the housing <NUM> may be a mobile device reader orientation for reading a machine-readable indicia displayed on a screen of a mobile device <NUM>. A function of the barcode reader <NUM> in the mobile device reader orientation 202c may be image processing that has different settings than those used to read barcodes on items. The barcode reader <NUM> may read or capture an image on the mobile device <NUM>. The barcode reader <NUM> may then transmit the image to an external processing unit. The barcode reader <NUM> may provide a positioning spot 204c to indicate to a user where to place the mobile device <NUM> to optimize reading the screen of the mobile device <NUM>. The screen of the mobile device <NUM> may display an image of a number of illustrative items related to point-of-sale transactions, such as, but not limited to, coupons, payment information, venue membership information, and other items known to those of skill in the art for use in purchasing or paying for items. Orientation may be determined by at least those methods as described hereinabove with reference to the check imaging orientation as well as identifying a mobile device or an illuminated screen in the target area.

A fourth orientation 202d of the housing <NUM> may be an in-basket orientation for scanning contents of a basket <NUM>. A function of the barcode reader <NUM> in the in-basket orientation 202d may be image processing as well as changing a focal distance or field-of-view settings or parameters of the barcode reader <NUM>. The barcode reader <NUM> may capture and process images of the basket <NUM> to determine a variety of parameters, such as, but not limited to, how many items remain in the basket <NUM>, if any items are hidden underneath other items in the basket <NUM>, how many of a same item are in the basket <NUM> to speed up check-out time, and other parameters known to those with skill in the art.

A fifth orientation (not shown) of the housing <NUM> may be a cleaning orientation for cleaning the barcode reader <NUM>. A function of the barcode reader <NUM> in the cleaning orientation may be a cleaning function including cleaning working surfaces and scanners of the barcode reader <NUM>. The housing <NUM> may be configured to emit an anti-microbial illumination during the cleaning function and may be described in further detail hereinbelow with regard to <FIG>. The cleaning function may also correspond with the first orientation 202a, the second orientation 202b, and the third orientation 202c in addition to, or independent of, the fifth orientation.

With regard to <FIG>, an illustration of a barcode reader system <NUM> having a barcode reader 302a and 302b (collectively <NUM>) in a handheld scanning orientation <NUM> is shown. The barcode reader system <NUM> may include a base <NUM> that may operate as a portion of a POS, and to which a support stand <NUM> may be connected. The barcode reader <NUM> may be detached, by a user <NUM>, from the support stand <NUM> for use in a handheld reading function mode. The barcode reader 302b in the handheld reading function mode may allow the user <NUM> to scan or image an item <NUM> that is not within a field-of-view of the code reader 302a in an attached orientation when positioned on the support stand <NUM>.

In one embodiment, a function of the code reader <NUM> in the handheld scanning orientation <NUM> may be image processing and data storage. The code reader <NUM> may be configured to scan a target area for an item inclusive of a machine-readable indicia. In one embodiment, the barcode reader 302b in a handheld reading function mode may transmit an image of the target area back to the base <NUM>, for example, a point-of-sale station, through a wireless communication system, such as, but not limited to, Wi-Fi®, Bluetooth°, NFC°, wired, or other communication methods known to those of skill in the art.

In another embodiment, the barcode reader 302b in the handheld mode may store any gathered information from the item <NUM> in local memory. In an embodiment, the locally stored data may be transmitted to the base <NUM> when the code reader 302b is re-attached to the support stand <NUM>. The stored data may include product information, venue information read from a barcode (e.g., UPC barcode), item count, item sizes, images, OCR data, as well as other data relevant to consumer goods.

The handheld scanning orientation <NUM> may be determined by any of the processes described hereinabove with reference to <FIG>, as well as other methods one of skill in the art will appreciate with regard to handheld devices. For example, in one embodiment, orientation may be determined by a gravimeter disposed within a housing of the barcode reader <NUM>. Alternatively and/or additionally, accelerometer(s) to sense motion, inclinometer to sense inclination, or other motion or orientation sensor may be utilized. In one embodiment, the barcode reader <NUM> may sense detachment from the base <NUM>. In one embodiment, a power feed may be disconnected at detachment and the barcode reader <NUM> may sense a lack of power feed and/or beginning to use power local to the barcode reader <NUM>, such as, but not limited to, a battery, a capacitor, a set of capacitors, a super capacitor, or any other power supply method known to those of skill in the art. A motion or other sensor may alternatively be used to sense that the barcode reader <NUM> is in a handheld scanning orientation <NUM>. In an embodiment, a determination that the barcode reader <NUM> is in the orientation <NUM> may be performed in response to being detached from the support stand <NUM>, in response to being moved, or commanded to perform a scan, as further described herein.

With regard to <FIG>, an illustration of a barcode reader system <NUM> having a barcode reader <NUM> configured to perform scanning when in a "trained" image position to support orientation identification is shown. The barcode reader system <NUM> may include the barcode reader <NUM> and a base <NUM>, as previously described with respect to <FIG>. The barcode reader <NUM> may be configured to have a field-of-view <NUM> in which the barcode reader <NUM> may scan for items. The base <NUM> may include at least one template <NUM> that the barcode reader <NUM> has been trained to identify as corresponding with an orientation. The barcode reader <NUM> may include a guide template <NUM> that may assist in aligning with the template <NUM> as well as orientation detection.

In one embodiment, one or more orientations of a housing of the barcode reader <NUM> may include a respective template that the barcode reader <NUM> may be trained to identify. The different trained templates may include different configurations (e.g., markings, fixed features, such as scan window edges, stickers, or otherwise) so that the barcode reader <NUM> may identify a corresponding orientation based on the configuration of the trained template <NUM>.

With regard to <FIG>, an illustration of a barcode reader system <NUM> having a barcode reader <NUM> inclusive of an electromechanical sensor <NUM> formed of electrodes 506a - 506n (collectively <NUM>), positioned on a support stand <NUM>, and used to determine orientation is shown. Rather than using electrodes, alternative sensing devices, such as optical sensors or otherwise, may be utilized to enable the barcode reader <NUM> to determine orientation of the reader <NUM>. The electrodes <NUM> may provide voltage signal(s) that the barcode reader <NUM> may measure to determine angular orientation of the barcode reader <NUM>. In an embodiment, as the barcode reader <NUM> is rotated, different signals may be read from a configuration of the electrodes <NUM>. For example, the electrodes <NUM> may be configured such that when the different electrodes <NUM> are contacted by a set of complimentary electrodes in electrical communication with the barcode reader <NUM>, a respective binary signal is communicated or sensed by the barcode reader <NUM>.

In one embodiment, the electromechanical sensors <NUM> may be include a predetermined number of sensors configured so that varying angular orientations of the housing cause different electrodes or sensors to align so that the orientation signal may represent a configuration of the electrodes <NUM> and a corresponding orientation. The stand of the base <NUM> and the connecting mechanism may house a wire that electrically couples the barcode reader <NUM> to the base <NUM>. In one embodiment, the wire may transmit a power source from the base <NUM> to the barcode reader <NUM>. In one embodiment, the wire may also be configured to support data communications between the barcode reader <NUM> and the base <NUM>.

With regard to <FIG>, an illustration of a machine-readable indicia scanner system <NUM> for use in scanning machine-readable indicia, such as barcodes, QR codes, or other machine-readable indicia along with physical dimensions of products or packaging is shown. The scanner system <NUM> may additionally and/or alternatively be configured to operate as a product inspection system or logistics processing system. The scanner system <NUM> may include cameras 602a and 602b (collectively <NUM>) configured to capture images of an object <NUM>, and generate image data <NUM> and/or data (e.g., codes) representative of the machine-readable indicia. The cameras <NUM> may include optics 608a and 608b (collectively <NUM>), which may include lens(es), window, optical filter(s), and so on, and image sensors 610a and 610b (collectively <NUM>) may be used for imaging a scene. In an embodiment, the image data <NUM> captured by the cameras <NUM> may be communicated to a computer system <NUM> for processing (e.g., reading a code from a machine-readable indicia) thereby. Alternatively, the cameras <NUM> may be configured with processing units (not shown) to process image data <NUM> and generate data derived therefrom (e.g., text representative of machine-readable indicia). In an embodiment, the cameras <NUM> and computer system <NUM> may be formed as single units. In one embodiment, the cameras <NUM> are configured (e.g., spatially aligned) so that the image data <NUM> from camera 602a and camera 602b may combine to produce a three dimensional image, as understood in the art. Although the scanner system <NUM> shows two cameras <NUM>, a single camera or more than two cameras may be utilized to capture images from similar or different angles.

In an embodiment, the cameras <NUM> may identify markings, such as words, stickers, or features on a conveyer belt <NUM> that cause the cameras <NUM> to automatically enter a certain function or establish certain parameter(s).

As shown, an object <NUM> on which a machine-readable indicia <NUM> is positioned on the conveyer belt <NUM> that operates to move the object <NUM> along a direction of travel of the conveyer belt <NUM>. When the cameras <NUM> image the object <NUM>, the optics <NUM> and image sensors <NUM> may have some level of blur in the image, thereby being problematic for conventional image processing, as previously described. Depending on height of the object <NUM>, speed of the conveyer belt <NUM>, resolution of a machine-readable indicia <NUM> associated with, in this case attached to, the object <NUM>, illumination of the indicia <NUM>, optical noise, and so on may also contribute to difficulty in reading or decoding the indicia <NUM> by conventional image processing techniques. As a result, a processing unit of the computer system <NUM> may be configured to automatically utilize an algorithm that generates a virtual scanline in response to recognition of certain system parameters and machine-readable indicia type (acting as different "orientations" and corresponding "functions") to be able to more accurately determine or decode codewords of the machine-readable indicia.

With regard to <FIG>, a block diagram of components of a code reader system <NUM> that selects a function for a code reader based on an orientation thereof is shown. The code reader system <NUM> may include a processing unit <NUM>, an input/output (I/O) unit <NUM> for communicating data, such as image data, a memory unit <NUM>, a storage unit <NUM>, scanners 712a - 712n (collectively <NUM>), and an orientation-based scanner <NUM>.

The processing unit <NUM> may include a single processor or multiple processors. The processing unit <NUM> may further include suitable logic, circuitry, and interfaces that are operable to execute one or more instructions <NUM>, such as, for example, modules <NUM> of <FIG>, based on sensor and other data received to perform operations of a scanner. The processing unit <NUM> may be realized through a number of processor technologies known in the art. The examples of the processing unit <NUM> may include, but are not limited to, an x86 processor, an ARM processor, a Reduced Instruction Set Computing (RISC) processor, an Application-Specific Integrated Circuit (ASIC) processor, an image processor, a digital signal processor, or a Complex Instruction Set Computing (CISC) processor. The I/O unit <NUM> may be configured to communicate data over a communications network (e.g., the Internet, wireless communications network, and so on).

The orientation-based scanner <NUM> may be any of the code readers described herein with reference to <FIG>. The orientation-based scanner <NUM> may include a processing unit <NUM>, one or more orientation sensors <NUM>, an image sensor <NUM>, and memory <NUM>. The scanners <NUM> and orientation-based scanner <NUM> may communicate scan data <NUM> to the processing unit <NUM>. The scan data <NUM> may include data corresponding with an orientation of a housing of the orientation-based scanner <NUM>. The scan data <NUM> may include image data, code represented by a machine-readable indicia, or other data format that may be used or combined with other data by another processor operating on a host system (e.g., POS system), for example, based on a function in which the orientation-based scanner <NUM> is operating. It should be understood that the use of the housing as an orientation reference is arbitrary, and that any other object, such as a portion of a stand on which a barcode scanner is positioned, may be considered relative to the housing.

The orientations sensor(s) <NUM> may be any sensor that is capable of measuring angular or other position of the orientation-based scanner <NUM>. The image sensor <NUM> may include an optical camera and processing unit or otherwise (i) that enables a visual orientation of the orientation-based scanner <NUM> to be used in determining orientation as well as (ii) captures images to perform reading of machine-readable indicia or otherwise.

The code reader system <NUM> may also include an anti-microbial light source <NUM>. In one embodiment, the anti-microbial light source <NUM> may include a light emitting diode (LED) configured to emit an illumination having a wavelength between approximately <NUM> nanometers and approximately <NUM> nanometers, which are blue wavelengths. In an embodiment, the anti-microbial light source <NUM> may additionally and/or alternatively include an ultraviolet lighting elements (e.g., LEDs). It should be understood, however, that it has been found that ultraviolet light may be harmful to humans, so the use of ultraviolet light may be limited to times during which no humans are determined to be present through sensing (e.g., motion sensing, light sensing, notification from local security system, etc.), timing (e.g., between 1AM and 5AM), covering (e.g., shade pulled over workstation), or other means. The anti-microbial light source <NUM> may be used to clean or disinfect surfaces from unwanted microbes (i.e., deactivate or kill germs and/or bacteria). The anti-microbial light source <NUM> may be used to clean or disinfect the surfaces, which may include a workspace, touch points on a scanner and/or point-of-sale, etc., without cleaning chemicals that are often harmful to and/or degrade materials, such as polycarbonate and ABS, that are often used on data collection workspaces, on point-of-sale counters, on barcode scanners, or elsewhere in commercial settings at which barcode scanners are used.

With regard to <FIG>, a block diagram of modules <NUM> executed by a barcode reader system or barcode reader configured to automatically select and perform functions based on orientation and perform barcode reading using a selected function is shown. The modules <NUM> may include modules for detecting orientation and selecting a corresponding function, such as, but not limited to, a physical orientation detection module <NUM>, an automatic function selector module <NUM>, a background image detection module <NUM>, and a background image training module <NUM>. The physical orientation detection module <NUM> may include detecting an orientation and/or a change in orientation. The automatic function selector module <NUM> may be configured to select a function corresponding with an orientation detected by the physical orientation detection module <NUM>. In an embodiment, the number of available functions may be five, as described with regard to <FIG> and <FIG>. Other numbers of functions are also possible.

The background image detection module <NUM> may be configured to detect a background according to any of the hereinabove described background detection methods. The background image detection module <NUM> may be configured to search for and detect predetermined parameters of a background image obtained by an image sensor. The background image training module <NUM> may include capturing an image of a background when the barcode reader is in an orientation, and processing an indicator of a portion, or all, of an image captured by an image sensor. The image captured or derivation thereof may be stored in memory and a corresponding orientation may be assigned thereto. The background image training module <NUM> may include identifying parameters of a background image obtained by the image sensor that may be easily detected in subsequent scans of objects with the same background. For example, a rectangle in which checks are scanned may be used to define a recognizable pattern that is within a background portion of an image when the scanner is rotated or otherwise positioned to capture an image inclusive of the rectangle, thereby informing the module <NUM> of the barcode reader to change to a check reader function. Additionally and/or alternatively colors, shapes, or other visually distinguishing features on a surface that defines a background portion of an image of a target area in which objects may be scanned may be utilized to determine orientation via image training and image processing.

The modules <NUM> may also include a barcode image processing module <NUM>, a manual function selector switch module <NUM>, and a barcode scanner module <NUM>. In one embodiment, the manual function selector switch module <NUM> receives a communication, such as a signal from a switch or user interface, from a user in order to direct the processing to select a function identified in the user communication. The barcode scanner module <NUM> may include scanning a machine-readable indicia on an item in a field-of-view of a code reader inclusive of the modules <NUM>. The barcode scanner module <NUM> may further include capturing an image of a machine-readable indicia, or barcode, disposed on the item. The machine-readable-indicia may be a code representative of the item. The barcode image processing module <NUM> may include (i) receiving an image of a machine-readable indicia from the barcode scanner module <NUM> and (ii) processing the image to determine the code of the machine-readable indicia representative of the item.

The modules <NUM> may also include an anti-microbial illumination module <NUM> and an anti-microbial illumination power level module <NUM>. The anti-microbial illumination module <NUM> may be configured to initiate an emission of an anti-microbial illumination by the barcode scanner with anti-microbial illumination devices in response to the code reader being in an orientation corresponding with a cleaning function. The module <NUM> may additionally and/or alternatively be configured to initiate an emission of an anti-microbial illumination in response to other triggers or inputs, including a periodic (e.g., timer) or aperiodic (e.g., activation of a manual switch) event. In one embodiment, the anti-microbial illumination module <NUM> may receive an input that the code reader is in the orientation corresponding with the cleaning function. The anti-microbial illumination module <NUM> may be configured to stop an emission of the anti-microbial illumination in response to receiving an input that the code reader is configured in a non-anti-microbial illumination orientation. In one embodiment, the anti-microbial illumination module <NUM> may cause the anti-microbial illumination to be emitted by anti-microbial illumination device(s) when the code reader is powered on. In one embodiment, the anti-microbial illumination module <NUM> may cause the anti-microbial illumination to be emitted by the code reader after a single use or multiple uses of the code reader. In one embodiment, the anti-microbial illumination module <NUM> may cause the anti-microbial illumination to be emitted when a venue of the code reader is closed and/or unoccupied based on a timer, ambient lighting, audio sensing, motion sensing, and/or otherwise. It should be understood that the module <NUM> may be configured to turn on and off the anti-microbial illumination device(s) using a variety of other inputs that the module <NUM> uses to determine when to turn on and off the anti-microbial illumination device(s).

The anti-microbial illumination power level module <NUM> may be configured to control a power level of the anti-microbial illumination by anti-microbial illumination device(s). As an example, module <NUM> may be configured to cause the code reader to emit the anti-microbial illumination at a first power level when the code reader is in an orientation corresponding with a scanning function. The module <NUM> may further be configured to cause the code reader to emit the anti-microbial illumination at a second power level, which may be greater than the first power level, when the code reader is in an orientation corresponding with a cleaning or disinfection function.

The anti-microbial illumination power level module <NUM> may cause the anti-microbial illumination be emitted at either the first power level or the second power level in response to the code reader being in a corresponding orientation. For example, the code reader may be in a reading orientation, which may cause the module <NUM> to maintain the anti-microbial illumination device(s) to be off, in which case the module <NUM> does not set a power level of the anti-microbial illumination device(s), or be on and send an input (e.g., reader in reading mode) to the module <NUM> that drives the anti-microbial illumination device(s) to be in a first (low) illumination level. In an alternative embodiment, the module <NUM> may be configured to set an illumination level in response to periodic and/or aperiodic events described hereinabove with regard to the anti-microbial illumination module <NUM>. It should be understood that the module <NUM> may be configured to set power level of the anti-microbial illumination device(s) based on a variety of different rules or conditions. A retractable diffuser may be disposed in front of the anti-microbial illumination device(s) to distribute sanitizing light.

With regard to <FIG>, a flow diagram of a method <NUM> of automatically selecting a function of a code reader based on an orientation thereof is shown. The method <NUM> may include a step <NUM> of sensing a new orientation of a housing of the code reader. In sensing the new orientation, any of the hereinabove referenced sensing methods, such as, for example, sensing a new orientation of a housing of a code reader by an electromechanical sensor may be used.

The method <NUM> may then automatically change a function of the code reader based on the new orientation at step <NUM>. A processing unit of the code reader may access a database or table in a memory of corresponding functions and orientations. Based on the new orientation, the processing unit may select the corresponding function as listed in the database. In one embodiment, the processing unit may receive an orientation signal indicating that a new orientation has been sensed. The processing unit may respond to the orientation signal to identify the new orientation. In another embodiment, the new orientation may be identified in the orientation signal. For example, if a set of electrical contacts define different positions of the barcode reader, then the processing unit may switch a function corresponding to the identified orientation (e.g., <NUM> = barcode scanning, <NUM> = check scanning, etc.). At step <NUM>, the processing unit may update a portion of memory with the new orientation.

With regard to <FIG>, a flow diagram of a method <NUM> of automatically selecting a function of a code reader based on an orientation thereof is shown. The method <NUM> may begin with step <NUM> when a scan is initiated. In one embodiment, the scan is initiated in response to a user communicating to a processing unit of a code reader to initiate a scan, such as, for example, squeezing a button or trigger on the code reader to initiate the scan. In another embodiment, the scan may be automatically initiated by identifying an item entering into a target area. The scan may be automatically initiated and the item sensed by at least one of electronics internal to the code reader and electronics external to the code reader.

At step <NUM>, an orientation of the housing may be detected. In one embodiment, the code reader may include a sensor for sensing orientation of the housing. In another embodiment, the orientation may be detected by an image of a background of the target area. One of skill in the art will appreciate that many methods exist for detecting orientation, such as, but not limited, the methods of detecting orientation as described herein. At step <NUM>, the processing unit may determine if the detected orientation is different than a current orientation as stored in memory. If the orientations are different, the processing unit may change a function of the code reader based on the detected orientation at step <NUM>. In one embodiment, the processing unit may update the current orientation in memory with the detected orientation. At step <NUM>, the code reader may scan the target area using a function corresponding to the detected orientation. The processing unit may direct components of the code reader to perform scanning functions corresponding with the detected orientation at step <NUM>. The functions may be functions described hereinabove with reference to <FIG>. The difference between the processes <NUM> and <NUM> is the trigger as to when a function of the barcode reader is changed.

With regard to <FIG>, illustrations of illustrative code readers 1100a and 1100b (collectively <NUM>) positioned in an orientations corresponding with a cleaning function are shown. The code readers <NUM> may include a first scanner 1102a and a second scanner 1102b (collectively <NUM>) that are positioned on arms 1104a and 1104b (collectively <NUM>) to enable the scanners <NUM> to read machine-readable indicia on objects positioned. In addition to the scanners <NUM>, the code reader <NUM> may also include side-view scanners 1108a and 1108b (collectively <NUM>) that are oriented to read machine-readable indicia positioned on objects when facing the scanner(s) <NUM>. A bottom scanner <NUM> may be positioned beneath the surface <NUM> to scan machine-readable indicia facing downwards on the objects placed on the surface <NUM>.

To initiate a disinfecting or cleaning function, the scanner(s) <NUM> may be positioned in an orientation corresponding with the cleaning function by rotating the arm(s) <NUM> at joints 1112a and 1112b along the respective arms <NUM>. The cleaning function may be executed by turning on anti-microbial illumination devices (not shown) that illuminate fields-of-view 1114a and 1114b (collectively <NUM>) of the scanners <NUM>. The disinfecting function may disinfect surfaces within the fields-of-view <NUM> of the scanner(s) <NUM> that may include, but are not limited to, the surface <NUM>, objects being scanned, user interface (e.g., keyboard), a housing of the scanner(s) <NUM>, and/or any other surface or object in the fields-of-view <NUM>. In one embodiment, the housing of the scanners <NUM> may be substantially transparent so that the emitted anti-microbial illumination may clean the housing.

In one embodiment, the scanner(s) <NUM> may also be configured with anti-microbial illumination device(s) to disinfect the surface <NUM> and/or anything in fields-of-view of the scanners <NUM>. The third scanner <NUM> may also be configured with anti-microbial illumination device(s) to disinfect the surface <NUM> and/or anything in the field-of-view of the scanner <NUM>. One of skill in the art will appreciate that a number of combinations of anti-microbial illumination may be incorporated into the scanners <NUM>, <NUM>, and <NUM> or elsewhere at the code reader <NUM>.

With regard to <FIG>, illustrations of an illustrative top-down reader 1200a, 1200b (collectively <NUM>) inclusive of an anti-microbial illumination source configured to emit an anti-microbial illumination for cleaning or disinfecting are shown. The top-down reader <NUM> may include a lower portion <NUM>, an upper portion <NUM>, and a scanner <NUM>.

The top-down reader <NUM> may be configured to extend upward from a housing of a code reader, such as the code reader 1100a of <FIG>, via an adapter <NUM> that may be rotatable or otherwise enable a user to rotate the scanner <NUM> relative to the code reader. In an embodiment, a joint <NUM> between the upper portion <NUM> and lower portion <NUM> may be configured to enable the upper portion <NUM> and lower portion <NUM> to be axially rotatable relative to one another. In addition and/or alternatively, the joint <NUM> may enable the upper portion to be rotated downwards toward the bottom portion <NUM>. In one embodiment, sensors (not shown) may be disposed within or at the joint <NUM>, such as the electromechanical sensors <NUM> of <FIG>, to sense axial rotation of the upper portion <NUM> relative to the lower portion <NUM>. Other sensor(s) (not shown) may be configured to detect vertical rotation of the upper portion <NUM> relative to the lower portion <NUM>. In an embodiment, the top-down reader <NUM> may be configured to have at least two orientations that may include an upright orientation, such as the top-down reader 1200a of <FIG>, and a non-upright orientation, such as the top-down reader 1200b of <FIG>.

In one embodiment, the non-upright orientation of the top-down reader 1200b may correspond with a cleaning function. The cleaning function may include the scanner 1206b emitting an anti-microbial illumination into a field-of-view <NUM> of the scanner 1206b. In one embodiment, the top-down reader <NUM> may be configured with a sensing device, such as a mercury switch, gyroscopes, accelerometers, or otherwise, to sense that the top-down reader <NUM> is in an orientation corresponding with the cleaning function, and respond by executing the cleaning function (e.g., turning on anti-microbial illumination devices, and possibly at one of multiple possible illumination intensity levels). In one embodiment, a processing unit or static logic of the code reader <NUM> may sense that the top-down reader <NUM> is in the orientation corresponding with the cleaning function and respond by communicating a command to execute the cleaning function to the top-down reader <NUM>.

With regard to <FIG>, illustrations of an illustrative code reader <NUM> inclusive of scanners 1302a and 1302b (collectively <NUM>) and a reflective roller shade <NUM> for use during a cleaning function are shown. The reflective roller shade <NUM> may be configured to cover the scanners <NUM> to create a covered workspace <NUM>. The covered workspace <NUM> may be substantially dark and provide a more efficient disinfecting condition for the cleaning function to kill germs and bacteria. In one embodiment, the code reader <NUM> may include a sensor (see <FIG>) for sensing when the covered workspace is dark and in a condition for the cleaning function.

More specifically, the cleaning function may include the scanners <NUM> emitting an anti-microbial illumination into the covered workspace <NUM>. The anti-microbial illumination may reflect off of the reflective roller shade <NUM> and clean additional portions of the code reader external to a field-of-view of the scanners <NUM>.

In one embodiment, the code reader <NUM> may include additional scanners 1308a and 1308b (collectively <NUM>) that may also be configured to emit an additional anti-microbial illumination to the anti-microbial illumination emitted by the scanners <NUM>. In one embodiment, the reflective roller shade <NUM> may be configured to be retractable for ease of use by a user of the code reader <NUM>. The roller shade <NUM> may be manually positioned and retracted. In another embodiment, an event, such as a "clean" setting being selected via a user interface, may trigger (e.g., electronic command signal) the reflective roller shade <NUM> to automatically deploy over the code reader <NUM>.

With regard to <FIG>, illustrations of an illustrative scanner 1400a, 1400b (collectively <NUM>) inclusive of light sources 1402a-1402n (collectively <NUM>), and an image sensor <NUM> configured to be used in cleaning functions and/or scanning functions are shown. The scanner <NUM> may also include illumination lenses 1406a-1406n (collectively <NUM>) and housing members 1408a and 1408b (collectively <NUM>). The scanner <NUM> may be a scanner of a code reader, such as the scanners <NUM>, <NUM>, and <NUM> of <FIG>.

The light sources <NUM>, image sensor <NUM>, and illumination lens <NUM> may be disposed within the housing <NUM>. The housing <NUM> may include a lower portion 1408a and an upper portion 1408b that attach to one another. In one embodiment, the light sources <NUM> and image sensor <NUM> may be coupled to a cover <NUM> for physical protection.

The light sources <NUM> may include eight multi-color LEDs that correspond with eight illumination lenses <NUM> to direct and shape an illumination field-of-view. The light source <NUM> may be configured to emit a plurality of combinations of colors in response to different orientations of the code reader. In one embodiment of the code reader being in an orientation corresponding with a scanning function, the light source <NUM> may emit (i) a red illumination only for performing reading of a machine-readable indicia, (ii) a combination of blue illumination and red illumination for disinfecting/reading, or (iii) any other combination of colors including or not including the blue illumination. The blue illumination may be an anti-microbial wavelength and/or ultraviolet wavelength. In one embodiment of the code reader being in an orientation corresponding with a cleaning function, the light source <NUM> may emit only a blue illumination. Other colors during the cleaning function may be utilized, even for decorative purposes, so long as the anti-microbial functionality of killing harmful bacteria is not reduced. A power level of the anti-microbial illumination may be fixed, have multiple power levels, or be variable (e.g., change wavelengths and/or power levels over time). The power level may be set based on a setting or may be set by a manufacturer. As previously described, the level of the anti-microbial illumination may be set depending on a configuration, such as a cover being positioned for a cleaning mode, scanner with the anti-microbial light sources being placed into a particular position, setting be selected, or otherwise, of the code reader. If the barcode reader uses an image sensor, then the reader may be configured with anti-microbial illumination device(s) and, optionally, guide lights to assist a user with positioning a machine-readable indicia for scanning.

With regard to <FIG>, an illustration of an illustrative handheld code reader <NUM> having a substantially transparent housing <NUM> is shown. The handheld code reader <NUM> may include a light source disposed within the housing <NUM> and configured to emit an anti-microbial illumination over blue wavelengths, as previously described. In one embodiment, the light source may also be configured to scan an object. In one embodiment, the light source may be configured to emit the anti-microbial illumination outward to a portion of the housing <NUM> that is held by a user and may be additional to a light source for scanning objects. One of skill in the art will appreciate that a plurality of combinations of light sources, including, but not limited to, one light source and two or more light sources, may be used for scanning, cleaning, and disinfecting. It should be understood that other, non-handheld code readers may include a portion or entire translucent or transparent housing to enable disinfecting the code readers in addition to surfaces, such as workspaces on which food and items are placed during purchasing or processing (e.g., performing inventory) operations.

With regard to <FIG>, an illustration of an illustrative code reader <NUM> inclusive of a conveyor belt <NUM> with overhead scanners 1602a and 1602b (collectively <NUM>) positioned on arches 1604a and 1604b (collectively <NUM>) having a cleaning function is shown. In one embodiment, the overhead scanner <NUM> may include a single arch including at least one scanner. In addition to the overhead scanners <NUM> positioned on the arches, additional scanners may be positioned prior to, after, and beneath the arches <NUM>. The overhead scanners <NUM>, as well as any of the other scanners, may be configured with anti-microbial illumination sources to emit an anti-microbial illumination for cleaning and/or disinfecting the conveyor belt <NUM>. Additionally and/or alternatively, anti-microbial illumination devices may be positioned separate from the scanner and disposed inside of or external from the arches.

In one embodiment, the overhead scanners <NUM> and any other scanner that may be configured with anti-microbial illumination source(s) may be configured to clean and/or disinfect the conveyor belt <NUM> and/or other work surfaces in response to any number of triggers, as previously described. For example, the overhead scanner <NUM> may be configured to perform a cleaning and/or disinfecting function at a regular time interval (e.g., at 3AM) and for a predetermined duration (e.g., <NUM> minutes). The overhead scanner <NUM> may also be configured to perform the cleaning and/or disinfecting function in response to a command from a user. The command from the user may be active (i.e., flipping a switch or pushing a button) or passive (i.e., shutting down the code reader <NUM>, performing an action or repositioning a component of the code reader <NUM> to indicate that the code reader <NUM> is done being used for a period of time).

In one embodiment, the overhead scanner <NUM> may be configured to perform the cleaning and/or disinfecting function for a set length of time. The overhead scanner <NUM> may be configured to perform the cleaning and/or disinfecting function for a set number of rotations of the conveyor belt <NUM>, such as <NUM> rotations). In operation, the conveyor belt <NUM> may be controllable by a processing unit of the scanning system (e.g., a processing unit that is communication with each of the scanners at the code reader <NUM>) to turn on and off the conveyor belt <NUM> during times that the cleaning function is being performed and controlling speed of the conveyor belt <NUM> (e.g., slower than normal speed during a cleaning mode to enable higher durations of time of being exposed to the anti-microbial illumination). One of skill in the art will appreciate that many methods of initiating and timing a cleaning function may exist for operating the overhead scanner <NUM>.

With regard to <FIG>, an illustration of an illustrative code reader station <NUM> with an overhead anti-microbial illumination source <NUM> for disinfecting a workspace of the station is shown. The code reader station <NUM> may include the overhead anti-microbial illumination source <NUM> disposed in a housings 1704a - 1704n (collectively <NUM>) that is configured to hang or are supported by a post above workstations 1706a-1706n (collectively <NUM>) such that the overhead anti-microbial illumination source <NUM> may flood the workstation <NUM> with anti-microbial illumination.

In one embodiment, the overhead anti-microbial illumination source <NUM> may emit an anti-microbial illumination. The overhead anti-microbial illumination source <NUM> may be configured to emit the anti-microbial illumination in response to at least one of actions, orientations, and other commands as described hereinabove with regard to <FIG>. For example, the anti-microbial illumination source <NUM> may be turned on in response to a scanner arm or other feature of the scanner being placed into a clean orientation. Other triggers may be utilized and illumination intensity may be set based on a variety of possible mechanisms, including motion sensing, light sensing, time of day, or any other sensing mechanism that enables a determination that no one is in a field-of-view of the anti-microbial illumination source <NUM>. The motion, light, and other sensing may be considered sensing environmental factors. In an embodiment, a first sense value (e.g., motion sensed, bright light sensed, etc.) that indicates that people may be local to the code reader may be used by a processor to maintain the anti-microbial illumination source <NUM> at a first level, such as off or at a low power level, and a second sense value (e.g., no motion, darkness or low light sensed, etc.) that indicates that no one is local to the code reader may be used by the processor to turn on or increase the power level of the anti-microbial illumination source <NUM>.

With regard to <FIG>, a flow diagram of an illustrative method <NUM> of automatically selecting a function of a code reader based on an orientation thereof is shown. The method <NUM> may begin with step <NUM> when a scan is initiated in the same or similar manner as <FIG>. In one embodiment, the scan is initiated in response to a user communicating to a processing unit of a code reader to initiate a scan, such as, for example, squeezing a button or trigger on the code reader to initiate the scan. In another embodiment, the scan may be automatically initiated by identifying an item entering into a target area. The scan may be automatically initiated and the item sensed by at least one of electronics internal to the code reader and electronics external to the code reader.

At step <NUM>, an orientation of the housing may be detected. In one embodiment, the code reader may include a sensor for sensing orientation of the housing. In another embodiment, the orientation may be detected by an image of a background of the target area. One of skill in the art will appreciate that many methods exist for detecting orientation, such as, but not limited, the methods of detecting orientation as described herein. At step <NUM>, the processing unit may determine if the detected orientation is different than a current orientation as stored in memory. If the orientations are different, the processing unit may change a function of the code reader based on the detected orientation at step <NUM>. In determining orientations, the orientation may include physical position of a scanner with anti-microbial device(s), support member of the scanner, adjustable member (e.g., cover) of the scanner, or otherwise. In an embodiment, rather than or in addition to determining orientation of the physical position, a determination of a selectable switch, button, or other setting mechanism may be determined. For example, a timer switch that is set to turn on for an hour a night when a store or other venue is closed may cause the cleaner function to be initiated. In one embodiment, the processing unit may update the current orientation in memory with the detected orientation (or other setting). At step <NUM>, the code reader may scan the target area using a function corresponding to the detected orientation. The processing unit may direct components of the code reader to perform scanning functions corresponding with the detected orientation at step <NUM>. The functions may be functions described hereinabove with reference to <FIG>.

At step <NUM>, the processing unit may determine if the detected orientation corresponds with a cleaning function. If the orientation corresponds with the cleaning function, the processing unit may communicate to perform the cleaning function by emitting an anti-microbial illumination at step <NUM>. If the orientation does not correspond with the cleaning function, the code reader may scan the target area at step <NUM> as described hereinabove. In an embodiment, the scanning and cleaning functions may be performed simultaneously.

One embodiment of a method for disinfecting a target area at a code reader may include determining if an orientation of a housing inclusive of a scanner for reading machine-readable indicia is an orientation corresponding with a cleaning function. In response to determining that the orientation of the housing is the orientation corresponding with the cleaning function, a cleaning function may be selected to cause an anti-microbial illumination to be emitted toward a target area of the scanner.

The anti-microbial illumination may emit a blue light having a wavelength between approximately <NUM> nanometers and approximately <NUM> nanometers. A determination if the orientation of the housing is the orientation corresponding with the cleaning function may include sensing a change in angular orientation of the housing. The housing may be supported by an adjustable arm having a first position for enabling the scanner to scan machine-readable indicia and a second position associated with the cleaning function.

A first level of anti-microbial illumination may be produced in response to determining that the housing is in an orientation not associated with the cleaning function. A second, higher level of anti-microbial illumination may be produced in response to determining that the housing is in the orientation corresponding with the cleaning function. The anti-microbial illumination may be produced in combination with the red light.

A shade configured to cover the target area and source of the anti-microbial illumination is deployed may be sensed, and the anti-microbial illumination may be caused to be at a power level higher than when the anti-microbial illumination is used for reading machine-readable indicia. A signal may be utilized to emit an anti-microbial light in response to deploy the reflective roller shade.

One embodiment of a method for disinfecting a surface at a code reader may include sensing an environmental factor at the code reader. In response to determining that the environmental factor is at a first value, the code reader may be configured to read machine-readable indicia. In response to determining that environmental factor is at a second value, an anti-microbial illumination may be caused to be emitted toward a target area of the scanner. In response to determining that the environmental factor is at the first value, the anti-microbial illumination may be caused to be emitted at a first power level. In response to determining that the environmental factor is at the second value, the anti-microbial illumination may be increased to be emitted at a second, higher power level.

As will be appreciated by one of skill in the art, the steps in the foregoing embodiments may be performed in any order. Words such as "then," "next," etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.

The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed here may be implemented as electronic hardware, computer software, or combinations of both.

Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to and/or in communication with another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc..

The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description here.

When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed here may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used here, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.

Claim 1:
A code reader (<NUM>), comprising:
a housing (<NUM>);
a scanner (<NUM>) disposed within said housing, and configured to scan a machine-readable indicia in a target area;
an illumination source (<NUM>) configured to emit an anti-microbial illuminatior
characterized by
a reflective roller shade (<NUM>) configured to be positioned in a retracted position and a deployed position, the deployed position configured to cover the target area and illumination source to create a covered workspace; and
a processing unit in communication with said scanner and said illumination source, and configured to select a cleaning function and cause said illumination source to emit the anti-microbial illumination toward the reflective roller shade and/or the target area to disinfect surfaces in the target area.