Method and apparatus for zeroing a weigh scale

An optical code scanner is presented that includes a weigh scale and a least one image capture device. The image capture device captures images that are used to read optical codes presented to the optical code scanner for reading. The image capture device further captures images of the top surface of a weigh plate on the weigh scale. The optical code scanner analyzes the images of the weigh plate before performing a zero function on the weigh scale to determine if an object has been placed on or is touching the weigh plate. The zero function is only performed when no object is placed on or is touching the weigh plate.

FIELD OF THE INVENTION

The present invention relates to optical code scanners and more specifically to optical code scanners with an integrated weigh scale that performs an improved zero function.

BACKGROUND

Optical code scanners are used in point of sale (POS) terminals to read optical codes on items which are presented to the POS terminals for purchase as part of a purchase transaction. Integrated into some of the optical code scanners are weigh scales that are used to weigh items sold by weight. To maintain scale accuracy, a zero function is periodically performed by the scale, usually at the request of an operator. The zero function causes the weigh scale to determine the weight of the elements or structures that are part of the weigh scale and attached to the weight determining elements of the weigh scale. The determined weight becomes the zero weight for the weigh scale after each zero function is performed. The weigh scale determines the net weight of an item placed on the weigh scale by measuring the gross weight which includes the weight of the item and the elements and structures attached to the weight determining elements and then subtracting the zero weight.

The zero function should not be performed when any foreign item or material is present on the weigh scale as this would cause an improper zero weight to be set which would cause any subsequent determined weight for items to be inaccurate. Thus, an operator must determine that the proper conditions exist before causing the weigh scale to perform a zero function. This requires training for the operator.

SUMMARY

Among its several aspects, the present invention seeks to overcome or ameliorate at least one of the disadvantages of the prior art, or to provide a useful alternative.

Among its several aspects, the present invention recognizes that a zero function must be periodically performed on a weigh scale that is part of an optical code scanner to maintain the accuracy of the weigh scale. The invention further recognizes that performing the zero function when an object is resting on or touching the weigh plate of the weigh scale will cause the zero function to measure an incorrect zero weight causing subsequent weight measurements to be inaccurate. The invention recognizes that there is an advantage to being able to perform a zero function without intervention or support from an operator and that there is an advantage to being able to deny an operator requested zero function when an object is resting on or touching the weigh plate.

In accordance with the teachings of the present invention, an optical code scanner with a weigh scale is provided that uses images captured by the optical code scanner to determine when a zero function may be properly executed and when a zero function must be prevented from executing. The optical code scanner captures images of the weigh plate of the weigh scale and uses the image to determine if an object is resting on or touching the weigh plate. The optical code scanner only executes a zero function when the weigh plate is clear and no object is resting on or touching it.

Among its several aspects, the present invention recognizes there is an advantage to being able to prevent the execution of a zero function when it would result in an incorrect zero weight. The invention further recognizes that being able to automatically detect when it is proper to perform a zero function permits the zero function to be periodically performed without operator input which maintains the accuracy of the weigh scale.

In accordance with an embodiment of the present invention, there is provided an optical code scanner. The optical code scanner comprising: a weigh scale adapted to determine the weight of an object placed on a weigh plate of the weigh scale; an image capture device adapted to capture an image of the top surface of the weigh plate; and wherein the optical code scanner is adapted to perform a zero function on the weigh scale when an analysis of a captured image of the weigh plate determines that no object is resting on the weigh plate.

In accordance with an embodiment of the present invention, there is provided a method implemented by a processor in an optical code scanner. The method comprising: receiving an indication to perform a zero function on a weigh scale; capturing an image of a weigh plate of the weigh scale from an image capture device; and performing the zero function on the weigh scale when the captured image shows no object is touching the weigh plate.

In accordance with another embodiment of the present invention, there is provided an optical code scanner. The optical code scanner comprises: a weigh scale adapted to determine the weight of an object placed on a weigh plate of the weigh scale; an image capture device adapted to capture images of items presented for scanning and to capture images of the top surface of the weigh plate when no items are present; a memory adapted to store computer instructions and data; and a processor in communication with the weigh scale, the image capture device and the memory are adapted to execute computer instructions which when the processor executes the computer instructions they cause the processor to perform the steps of: receiving an indication to perform a zero function on a weigh scale; capturing an image of the weigh plate of the weigh scale from an image capture device; and performing the zero function on the weigh scale when the captured image shows no object is touching the weigh plate.

DETAILED DESCRIPTION

In the following description, numerous details are set forth to provide an understanding of the claimed invention. However, it will be understood by those skilled in the art that aspects of the claimed invention may be practiced without utilizing all of these details and that numerous variations or modifications from the described embodiments are possible and envisioned.

With reference toFIG. 1, there is provided a high-level block diagram illustrating a point of sale system100including a point of sale (POS) terminal105that uses a network160to communicate with a store server computer165. The point of sale system100may suitably include more than one POS terminal105where each POS terminal105communicates over the network160with the store server computer165. The POS terminal105may be implemented as either an assisted or a customer operated POS terminal.

In this embodiment, the POS terminal105includes a computer110and a number of components and peripherals that are controlled by the computer110. The POS terminal105further includes an operator display115, a customer display120, a cash drawer125, an optical code scanner130, a printer135, a magnetic stripe reader (MSR) and personal identification number (PIN) pad140, a network controller150and a keyboard155.

The operator display115displays information used by a cashier to operate the POS terminal105. In this embodiment, the cashier is a trained operator employed to, at least in part, operate the POS terminal105. The keyboard155is used by the cashier to input data and commands to the computer110. The cash drawer125is controlled by the computer110and stores currency, checks, coupons and the like. In some embodiments, the cash drawer125is replaced by an automatic cash acceptor/dispenser which is controlled by the computer110and accepts and dispenses currency. The optical code scanner (“scanner”)130is used to read optical codes presented to the POS terminal105for identification. In some embodiments, the scanner130includes a weigh scale as part of a horizontal window (FIG. 2, 235). The weigh scale determines the weight of an item placed on the horizontal window235. The customer display120is visible to the customer and used to display information about the transaction to the customer.

The network controller150has hardware and software necessary to support a connection to the local area network160and for the computer110to communicate over the local area network160to the store server165or other computers and POS terminals on the network160or to computers on other networks connected to the local area network160. In some embodiments, the network controller150supports a transmission control protocol/internet protocol (TCP/IP) network protocol and the local area network160is an Ethernet network.

The MSR/PIN PAD140reads information from a magnetic stripe usually attached to the back of a card, such as a credit or debit card, loyalty card or the like. The PIN pad portion140is used to enter PIN numbers associated with a credit or debit card. The MSR/PIN Pad140device also includes software and hardware to communicate with an external server used to process credit transactions. The printer135is used to print customer receipts and other documents.

The store server165includes software and data used to process purchase transactions being performed at the POS terminal105. The data includes a product lookup database that is used to identify items presented to the POS terminal105for purchase. When an optical code is scanned by the POS terminal105, information read from the optical code is sent to the store server165and used to identify a data record in the product lookup database. The data record includes information about the item the optical code is attached to including a price and description of the item. This information is returned back to the POS terminal105and is used to process a purchase transaction. The store server165also maintains information on all purchase transactions performed by the POS terminal105and can either process payment requests or contact external computer servers that will process the payment requests.

Referring now toFIG. 2, there is provided a high-level drawing illustrating an exemplar embodiment of the optical code scanner130. The optical code scanner130reads optical codes presented to the optical code scanner130. An optical code is a computer readable representation of information. In this embodiment, optical codes can be attached to or printed on an item or object or displayed on an electronic display such as the display screen of a cell phone or tablet computer. The optical code may suitably include one dimensional and two dimensional bar codes. The optical code scanner130can read optical codes based on symbologies that include but are not limited to: UPS, EAN, Code128, GS1 DataBar™, Datamatrix, Aztec, QR and MaxiCode.

The scanner130includes the horizontal scanning window235and a vertical scanning window220. The horizontal scanning window235is part of a weigh plate245that is part of a horizontal housing component230of the scanner130. The weigh plate245or top plate is part of a weigh scale435(FIG. 4) and objects are placed on the weigh plate245to be weighed by the weigh scale435. The vertical scanning window220is housed in a vertical housing component215of the scanner130and faces an operator side240of the scanner130. The side of the vertical housing component215that houses the vertical scanning window220is the front of the scanner130and faces the operator of the scanner130. The two scanning windows220,235are composed of an optically transparent material such as hurricane glass or sapphire coated glass.

An operator scans an item by orienting an optical code on an item or device so it faces either the vertical scanning window220or the horizontal scanning window235and then moving the item past the windows. The scanner130produces an indication, such as an audio sound or a light, once the optical code has been identified and read. The scanner130uses imaging technology to capture an image of the optical code and decode or read it.

In some embodiments, the scanner130also includes laser scanning technology that uses one or more lasers to scan and read an optical code. The laser beams from the laser are directed to form scanning patterns through the vertical scanning window220and the horizontal scanning window235. When a directed laser beam strikes and moves across an object presented to the scanner130, the object reflects a portion of the laser light. Some of the reflected laser light passes back through one of the scanning windows (220or235) and is directed to a photodetector that produces electrical signal data proportional to the amount of light received. The received electrical signal data is processed to detect the presence of an optical code and to recover the information associated with the optical code.

Referring toFIG. 3, there is provided a high-level cross-sectional drawing further illustrating the exemplar embodiment of the optical code scanner130. The scanner130includes a first image capture device310and a second image capture device320. The first image capture device310receives images through the vertical scanning window220. The first image capture device310can capture images of an object300along a first image path315or it can capture images of the weigh plate245along a second image path340. The first image capture device310can capture an image of the entire weigh plate245which is used to determine if an object has been placed on or is touching the weigh plate245.

The two image capture devices310,320preferably may be implemented using a complementary metal oxide semiconductor (CMOS) image capture device. In some embodiments, the image capture devices are based on other technologies such as charged-coupled device (CCD) technology. Some embodiments will also have a different number of image capture devices. The image capture devices310,320capture an electronic image of the optical image directed to the device. The electronic image is captured in the form of digital image data that represents the value of the light received by each pixel of each image capture device310,320. In some embodiments, each of the image capture devices310,320includes a lens that focuses images directed at the image capture devices310,320onto the capture surface of the respective image capture devices310,320.

Items to be scanned by the scanner130are passed through a target scanning area305. The target scanning area305is a volume of space above the horizontal scanning window235and in front of the vertical scanning window220. Optical codes that pass through the target scanning area305will be in the field of view of one of the image capture devices310,320. For example, an image of an object300, located within the target scanning area305, is received along the first image path315and captured by the first image capture device310. Another image of the object300is received along a second image path325and captured by the second image capture device320. The optical codes can be presented in either printed form or electronic form, for example, they can be displayed on an electronic display.

A first illumination device335generates and directs light through the vertical scanning window220to the target scanning area305. A second illumination device330generates and directs light through the horizontal scanning window235to the target scanning area305. The illumination devices335,330can be turned on and off as required and the output light level can also be adjusted as required. While depicted as single elements, in some embodiments, each of the illumination devices335,330includes a plurality of individual illumination devices such as LEDs that may by positioned in different locations within the scanner130and direct light to different portions of the target scanning area305.

The weigh scale435includes load cells370. The load cells370are used to determine the weight of the weigh plate245that includes the horizontal scanning window235, the elements and structures than connect the weigh plate245to the load cells370and any object on the weigh plate245. The weigh scale435measures the gross weight of everything connected to the load cells370and any object placed on the weigh plate245. A zero weight is the weight of the weigh plate245including the horizontal scanning window235and the elements and structures that connect the weigh plate245to the load cells370. The zero weight is determined when no objects are on or touching the weigh plate245. If an object is on or touching the weigh plate245while the zero weight is being determined, subsequent weight measurements of objects on the weigh plate245will not be accurate. The weight of an object placed on the weigh plate245is determined by measuring the gross weight and then subtracting the zero weight from it. From time to time, the zero weight of the weigh scale435should be measured to correct for minor changes or drift associated with the load cells370. The zero weight is determined by executing a zero function. A request to perform a zero function can be made by a person, called an operator, that is operating the optical scanner130or by the computer110using the network connection465. In addition, a request to perform a zero function can be made by internal hardware or software of the optical code scanner130. For example, a software timer that is implemented by an operating system can generate an event that requests a zero function to be performed.

With reference toFIG. 4, there is provided a high-level block diagram illustrating an exemplar embodiment of certain hardware components of the scanner130. The scanner130includes a processor module405which includes a processor410, a memory415, and control circuitry420. The memory415is non-transitory and computer readable. The memory415includes both volatile and non-volatile memory. The non-volatile memory may suitably include solid state and rotating memory devices. The processor410executes computer instruction stored in the memory415which causes the processor410to control the components of the scanner130and to implement the features and functions of the scanner130.

The control circuitry420includes hardware interfaces between the processor410and the memory415and between the processor410and a bus440used to communicate with other components of the scanner130. The control circuitry420further includes a programmable device that can be programmed by the processor410to generate one or more events to the processor410. When the processor410receives an event, the processor410executes computer instructions that are associated with the event. In this embodiment, the programmable device is programmed to generate an event that causes the processor410to perform a zero function when the weigh plate is clear. In some embodiments, the programmable device is an interrupt controller that is programmable by the processor410to generate hardware interrupts to the processor410where the interrupts are associated with events. In some embodiments, the function of the programmable device is replaced by a software function such as a software timer function that generates an event after a programmed period of time has expired.

The scanner130further includes an illumination controller445, an operator interface455and a communications controller450. The bus440connects the processor410to the first image capture device310, the second image capture device320, the weigh scale345, the operator interface455and the communications controller such that the processor410can communicate with and control each of them.

The illumination controller445controls the illumination devices335,330. The illumination controller445turns the illumination devices335,330on or off as needed and sets an illumination output level that is between off and full power. The illumination devices335,330may be turned off when the scanner130is not in use to save power. Where laser scanning technology is used, the laser and laser directing device, such as a spinner, are controlled by the processor410and are turned off when not in use to save power and reduce noise.

The communications controller450includes the hardware and software required for the scanner130to connect to and communicate over the network connection465to the computer110. In some embodiments, the network connection465is implemented as a universal system bus (USB). In other embodiments, the network connection465is implemented as an RS-232 interface.

The operator interface455includes input devices, such as buttons and a speaker that produces audible sounds associated with different functions which are used to communicate information to the operator. One of the buttons may suitably be used by an operator to request that a zero function be performed.

Turning toFIG. 5, there is provided a high-level flow diagram illustrating a method500of operating the optical code scanner130. The following method describes one embodiment of the optical code scanner130and one example method for operating it. The method described below is performed by the processor410in the optical code scanner130.

In step505, the processor410receives a request to perform a zero function on the weigh scale. The request may suitably be received from an operator through the operator interface455or from the interrupt device in the control circuitry420.

In step510, the processor410captures an image of the top surface of the weigh plate245using the first image capture device310. The first image capture device310has a view of the top surface of the weigh plate245.

In step515, the processor410analyzes the captured image of the top surface of the weigh plate245to determine if any foreign object is present on the weigh plate245. The analysis determines if an object is completely resting on the weigh plate245or is partially touching the weigh plate245. The analysis also determines when no object is resting on or touching the weigh plate245. For the zero function to accurately determine the zero weight, no object can be resting on or touching the weigh plate245.

In step520, the processor410uses the results of the analysis to determine if an object is resting on or touching the weigh plate245. Control passes to step530when it is determined that an object is resting on or touching the weigh plate245, otherwise control passes to step525.

In step530, the processor410prevents the execution of a zero function because an object is resting on or touching the weigh plate245. If a zero function were to be performed, the resulting zero weight may not be accurate and may cause subsequent weight measurements by the weigh scale345to be inaccurate. Therefore, the requested zero function is not performed. When the request to perform the zero function is received from the operator interface455, the processor410sends information back to the operator that indicates an object is resting on or touching the weigh plate245and must be removed before the zero function can be performed. When the request to perform the zero function is the result of a non-operator request, information about the request is typically not sent to an operator interface device. This is because an operator may not be present. However, if the processor410has determined that an operator is present, information about the non-operator request can be sent to the operator. The event or interrupt device will continue to periodically generate an event or interrupt to signal a request to perform a zero function but the zero function will only be performed after the object has been removed and the weigh plate is clear.

In step525, the processor410performs a zero function on the weigh scale345. The processor410causes the weigh scale345to measure the current gross weight which includes the weigh plate245, the horizontal window235and all the elements and structures that connect the weigh plate245to the load cells370. The processor410then compares the measured gross weight to the stored zero weight to determine if the difference is within a predetermined weight range. If it is, the measured gross weight is stored as the new zero weight. If the difference between the two weights is greater than the predetermined weight range, the measured gross weight is discarded as being invalid and stored zero weight is retained. It is normal for the load cells370to drift during operation but the drift is usually small. If a large change in weight is detected, this usually means something is wrong such as an object or some foreign body is resting on or touching the weigh plate245. The predetermined weight range is selected to include normal drifts in measured weight but would not include larger differences that would indicate the presence of an object on the weigh plate245. In some embodiments, the processor410sends an error message to the operator that indicates this problem.

Although the present invention has been described with particular reference to certain preferred embodiments thereof, variations and modifications of the present invention can be effected within the spirit and scope of the following claims.