Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CODE READING DEVICE
Document Type and Number:
WIPO Patent Application WO/2013/088099
Kind Code:
A1
Abstract:
A portable code reading device which is configured for reading an optically readable code on an object. The device is also configured for interrogating a database to retrieve data associated with a code read by the optical code reader. The device is further configured for communicating data related to said code retrieved from the database to a user, in a format suitable for a visually impaired person or person with reduced reading ability.

Inventors:
ROBINSON DUNCAN (GB)
WHYTE STEPHEN (GB)
Application Number:
PCT/GB2012/000758
Publication Date:
June 20, 2013
Filing Date:
October 01, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
RNIB (GB)
ROBINSON DUNCAN (GB)
WHYTE STEPHEN (GB)
International Classes:
G09B21/00
Domestic Patent References:
WO2001054055A12001-07-26
WO1997030415A11997-08-21
Foreign References:
US20030106940A12003-06-12
GB2011000880W2011-06-10
Attorney, Agent or Firm:
MCWILLIAMS, David et al. (4 More London Riverside, London SE1 2AU, GB)
Download PDF:
Claims:
Claims

1. A portable code reading device configured for reading an optically readable code on an object,

wherein the device is also configured for interrogating a database to retrieve data associated with a code read by the optical code reader,

wherein the device is further configured for communicating data related to said code retrieved from the database to a user in a format suitable for a visually impaired person or person with reduced reading ability,

wherein the device is configured for accessing a data set associated with said optically-readable code within said database, and outputting a selection of data from said data set, and

wherein the portable code reading device comprises a programmer configured for programming the device with pre-selection criteria, to enable the device to retrieve and output data in accordance with said pre-selection criteria from said data set within the database.

2. The portable code reading device according to claim 1 wherein the device is configured to allow a user to edit the pre-selection criteria on demand.

3. The portable code reading device according to claim 1 or 2 wherein the preselection criteria may include at least one of the following data elements: type or name of object, price, best before date, use by date, calorific information, allergy information, nutritional information, country of origin, weight, instructions for use.

4. The portable code reading device according to claim 3 wherein the device is configured to allow a user to define an output sequence for the data elements to be output in accordance with said pre-criteria, e.g. on demand.

5. The portable code reading device according to any of claim 3 or 4 wherein the device is configured for retrieving and outputting information in accordance with preselection criteria, said pre-selection criteria including multiple data elements to be output, and wherein the device is configured to allow a user to specify a sequence for said data elements and to navigate between said data elements in the sequence, e.g. on demand. 6. The portable code reading device according to any one of claim 1 , wherein the device is configured to allow a user to specify a sequence of data communication and/or navigate between data elements of a data set related to said code.

7. The portable code reading device according to any previous claim wherein the device includes an internal database (e.g. on a removable memory), to allow the device to retrieve and output data in association with a code read by the device.

8. The portable code reading device according to any preceding claim wherein the device is configured for connection to a remote database, to allow the device to retrieve and output data in association with a code read by the device, optionally wherein the device is configured for automatically downloading data from a remote database when the device is in a specified location.

9. The portable code reading device according to any one of the preceding claims, wherein the device comprises a port for connection to an update station from which to receive data, to allow the device to retrieve and output data in association with a code read by the device.

10. The portable code reading device according to any previous claim wherein the device is further configured to automatically alert, remind or otherwise prompt a user to perform an action and/or confirm that an action has been performed, in response to a code read by the device.

1 1. The portable code reading device according to any previous claim wherein the device is provided with a range of output types (e.g. one or more of: vibration, noise, speech synthesis, large font text, Braille) for communicating retrieved data to a user, optionally wherein the device is configured to allow a user to select one or more output types from said range of output types, e.g. for association with a specific preselection criteria of data to be retrieved.

12. A coded information system having:

an optically-readable code applied to and repeated over at least a portion of a product, the code corresponding to a unique product identifier;

a database containing data associated with a plurality of unique product identifiers (e.g. for a range of different products); and

a portable code reading device according to any one of the previous claims, for reading said code and outputting data in association with a code read by the device from said database to a user.

13. A method of communicating information about a product to a user, the method comprising:

providing an optically readable code on an object;

reading the code with a portable code reading device;

retrieving data associated with the code read by the device from a database; and outputting the retrieved data in a format suitable for communication with a visually impaired user or a user with reduced reading ability.

14. The method according to claim 13 wherein the device is in accordance with any of claims 1 to 11.

15. The method according to claim 13 or 14 wherein the method includes setting the device with pre-selection criteria, in order to retrieve and output a subset of data from a data set associated with a code read by the device, in accordance with said preselection criteria, and wherein optionally the method includes selectively defining an output sequence for the data to be output in accordance with said pre-criteria. 16. The method according to any one of claims 13 to 15, comprising the step of navigating between data elements of a data set related to said code.

17. The method according to any of claims 13 to 16 wherein an auxiliary device is connected to the code reading device, for communicating the retrieved data from the database in a format suitable for a visually impaired person or person with reduced reading ability.

Description:
Code reading device

Field of Invention

The invention relates to a portable code reading device, and/or a coded information system and/or a method for indicating information about a product to a user.

Background

In many countries, it is a legal requirement that certain information must be provided on a product. However, this information is provided in a printed text format and is therefore inaccessible to a person having visual impairment and/or a person with reduced reading ability (e.g. due to dyslexia or a reading/learning difficulty). Including all the information on the products in a Braille format may in some cases not be practical due to space requirements and label types.

Summary of Invention

The invention aims to alleviate the above mentioned problem.

According to a first aspect of the invention, there is provided a portable code reading device configured for reading an optically readable code on an object, wherein the device is also configured for interrogating a database to retrieve data associated with a code read by the optical code reader, and wherein the device is further configured for communicating data related to said code retrieved from the database to a user in a format suitable for a visually impaired person or person with reduced reading ability.

The device has particular advantage in reading optically-readable codes applied to products (e.g. retail products or pharmaceutical products), wherein the device can be used to read a code on a product and then obtain information about the product using the device. Hence, the device provides improved access to information about products, which is of particular benefit to visually impaired users or users with reduced reading ability. Reference in this application to a visually impaired user includes persons who are partially sighted, have low vision, are legally blind or are totally blind. Reference in this application to a person with reduced reading ability includes persons with dyslexia or another reading difficulty (such as reading in a foreign language).

In exemplary embodiments the portable code reading device has one or more of the following: an optical code reader for reading an optically readable code on an object; a decoder for decoding the code read by a reader of the device; an interrogator for interrogating a database to retrieve data associated with a code read by an optical code reader of the device; a programmer for configuring one or more operators of the device; a communicator for outputting data related to a code retrieved from a database to a user; an output processor for sending data to a communicator of the device.

The device may be configured for accessing a database, and accessing a data set associated with said optically-readable code within said database, and outputting a selection of data from said data set.

The device may comprise a programmer configured for programming the device with pre-selection criteria, to enable the device to retrieve and output data from a data set within a database in accordance with said pre-selection criteria.

In such embodiments, the programmer may be configured for programming an interrogator to select a sub-set of data from a full set of data relating to a unique identifier stored in a database. A user may selectively specify one or more pieces or fields of data to be received from the full data set. For example, in the case of foodstuffs, a user may select to receive only one or more pieces of information, such as allergy information and/or price, from a list of information including, for example, price, allergy information, ingredients, cooking time, best before date, or any other information useful to the user and/or commonly found on packaging labels or product instruction leaflets.

The device may be configured to allow a user to edit the pre-selection criteria on demand. The pre-selection criteria may include at least one of the following data elements: type or name of object, price, best before date, use by date, calorific information, allergy information, nutritional information, country of origin, weight, instructions for use. In such embodiments, the pre-selection criteria may include at least three different data elements, e.g. from a list including one or more of the following: type or name of object, price, best before date, use by date, calorific information, allergy information, nutritional information, country of origin, weight, instructions for use.

The device may be configured to allow a user to define an output sequence for the data elements to be output in accordance with said pre-criteria, e.g. on demand. In such embodiments, the device may be configured to allow a user to vary the output sequence on demand.

The device may be configured for retrieving and outputting information in accordance with pre-selection criteria, said pre-selection criteria may include multiple data elements to be output, and wherein the device may be configured to allow a user to specify a sequence for said data elements and to navigate between said data elements in the sequence, e.g. on demand. The device may be configured to allow a user to specify a sequence of data communication and/or navigate between data elements of a data set related to said code. In an exemplary embodiment, the device is configured so that the user is able to scroll through a data set (or subset of a data set) from the database in association with the code. For example, the device may be configured to permit a user to rewind, fast forward, pause or repeat information, e.g. on demand.

In exemplary embodiments, the device includes an internal database, to allow the device to retrieve and output data in association with a code read by the device. The internal database may be pre-populated with data, e.g. the database may be pre- populated to include a plurality of product identifiers and one or more data sets associated with each product identifier (e.g. wherein the codes to be read by the device correspond to product identifiers). Alternatively or additionally, the internal database may be configured to be selectively updated (e.g. via download) from a remote database. The internal database may be selectively populated from one or more remote databases. The device may include a memory for receiving a database of information from a remote location (e.g. via download to the device), to allow the device to retrieve and output data in association with a code read by the device.

In some embodiments, the device may be configured for automatically downloading data from a remote database when the device is in a specified location, or the device may comprise a port for connection to an update station from which to receive data, to allow the device to retrieve and output data in association with a code read by the device. For example, the device may be connectable to a docking station (e.g. for downloading or uploading information, and/or for power charging the device). Connection to the docking station may provide for access to the internet or remote other source of information, e.g. for uploading database information and/or preferences or other pre-programmed functionality.

The device may include a socket or other means for connecting (via a wired or physical connection) to a database. In exemplary embodiments, the device may include a port for receiving a memory card, to allow the device to retrieve and output data in association with a code read by the device. One or more databases for interrogation may be provided on the memory card, so that the device can access data held within the database when the memory card is fitted to or otherwise connected to the device.

The data may be held on the device in a text format. Advantageously this enables the device to hold information about a product using a small amount of memory. This enables the device to be capable of holding all the required information about a high number of products (e.g. millions of products) without having to regularly communicate and retrieve information from a remote database. A text format may include stored text data, and, once decoded, a code read by the device provides coordinates of the text data required so as to assemble the required data. The device may be configured for connection to a remote database, to allow the device to retrieve and output data in association with a code read by the device. In this application reference to a remote database means a database stored at a location other than the device. For example, the database may be an existing database of stock for a supermarket or other retail outlet. In such embodiments, the code may be - or correspond with - conventional barcodes or other existing coded product identifiers for the different items of stock in the database. The device may be configured to automatically alert, remind or otherwise prompt a user to perform an action and/or confirm that an action has been performed, in response to a code read by the device. In such embodiments, the device may comprise a memory for storing actions to be done and a clock and/or a timer. This is particularly useful if the device is used for reading codes applied to medicine- type products or the like. The code can provide for selective access to a database about the product associated with the code, and the device can be configured to prompt the user to perform an action, e.g. in accordance with dosage information associated with the code. In addition or alternatively, the device may be configured to make a (repeat) prescription order of product in association with the code. Information related to the code can be retrieved from the database, for example a Pharmacists' database or a database accessible via the internet. The information from the database can be downloaded to the memory to indicate dosage instructions, for example. The device may then be programmable to either alert the user at a regular pre-set interval or at a set time, according to the dosage instructions.

The device may be configured to update or inspect a database (e.g. a stock list, wants list, schedule or remote monitor) in response to a code read by the device. In some embodiments, the device is configured for storing and/or transmitting information to a remote database or remote monitor, in response to one or more codes that are scanned by the device. Such information may be provided to a physician or the like with responsibility or other interest in monitoring the behaviour of the user, for example. Hence, in an exemplary embodiment, the device can be configured for reading a code on a medicine or medicament (or its label, packaging or other associated literature), and then prompt the user to take or apply the medicine/ medicament at a required point in time (e.g. after expiry of a predetermined date or time period). The device can be configured so that upon re-scanning the code (e.g. to signal that the medicine/medicament has been taken/applied) information is then sent to a remote database or remote monitor.

The device may provide information on offers and links to products and brands in response to a code read by the reader. For example, the device may have a connection with a database, or with the internet, and be programmed to access the internet on demand or at regular intervals, or the device may be programmed to access a database when the device is, for example, within a pre-determined range of a database, for example a supermarket's database, to download the offers available. The device may be programmable to select offers of interest, and when an offer is available the device may alert the user.

The device may be able to connect to an internet shop to re-order a product, and or store the information in the device to create a shopping list. For example, the device may be configured to connect to the internet via a wireless connection such as WIFI or Bluetooth, or a mobile telecommunication network, for example, WPS, 3G, or 4G. A user may be able to read a code from a product, label or packaging and select an option on the device to re-order the product and/or add the product to a shopping list. The device may then be configured to reorder the product via the internet connection, e.g. after use/consumption. Alternatively, the device may store the product identifier in an internal memory to create a shopping list. The stored shopping list can then be used to re-order the products, or to create a list for the user to use when they go shopping. The device may further be programmed with a stock taking capability, e.g. for recognising and indicating whether the user already has (or requires) a particular product.

The device may be provided with a summation operator for summing numerical data associated with a plurality of codes read by the device. Advantageously, this provides the selectable functionality of totalling the cost of a shop or "basket" and/or a calorie counter, for example.

The device may be provided with a comparator for comparing numerical data associated with a plurality of codes read by the device with pre-set values on the device. For example, the comparator may be configured for calculating a cost of a list of selected items (e.g. in a shopping basket) and comparing that against a pre-set weekly budget (e.g. as a percentage). Alternatively or additionally, the comparator may be configured for comparing the number of calories for one or more selected products to a recommended daily allowance.

The device may be provided with a range of output types for communicating retrieved data to a user. In such embodiments, the device may be configured to allow a user to select one or more output types from said range of output types, e.g. for association with a specific pre-selection criteria of data to be retrieved. The range of outputs may comprise one or more of: vibration, noise (or audio alert), speech synthesis, large font text, a textural output (e.g. Braille). The large font text may comprise an enlarged font reproduction of the retrieved data, more particularly in a font size which is larger than the size of the font used on the product (or its packaging, label or information leaflet) to display the same information.

In exemplary embodiments, the device may comprise a communicator and the communicator may be configured with said range of outputs. In such embodiments, the device may comprise a programmer that is programmable to select one or more specific outputs from said range of outputs of the communicator.

In exemplary embodiments, the device is pre-programmed or programmable with one or more preferences, wherein, after reading a code on a product (or its label, packaging or other associated literature) the device can provide an output related to the or each preference. For example, the device may be programmed to acknowledge (e.g. via a physical or audible output) that a particular product is within a pre-specified date and/or price range and/or ingredient/calorie threshold. In addition or as an alternative, the device may be configured to identify a scanned object (via the code) and then provide an output (e.g. a physical or audible output) to indicate that the product is suitable or desired by the user (e.g. by comparison with data retrieved from the database and one or more preferences stored or programmed onto the device). This may be indicating whether the product adheres to allergy concerns, or whether the product meets other criteria specific to the user. This may be particularly useful in the case of users with particular dietary concerns or users who want to ensure that they purchase items suitable to them, such as cosmetics or toiletries with a particular scent or colour, or cosmetics or toiletries or the like suitable for a particular skin preference or condition.

The device may be suited for use in systems in which there is an existing database of information relating to a plurality of different products, said database including one or more sets of data relating to each product, and a unique code may be already associated with each of said products, for identification of each product and/or a specific data set associated with each product. In exemplary embodiments, the device is configured to read a code on a product, then access a database in order to interrogate a data set relating to said code, and then output pre-selected information from said data set to a user in a format which is suitable for a visually impaired user or a user with reduced reading ability.

The device may be configured to read conventional codes (e.g. bar codes and other known optically-readable code formats). The device may be configured for selectively accessing data related to a product associated with said conventional code. In exemplary embodiments, the device is configured for reading visually-negligible or visually-discreet codes, such as those described in PCT/GB201 1/000880 (incorporated herein by reference). In such embodiments, the codes may be presented in a repeat pattern across a portion of a product, product label or product packaging, wherein the device is specifically configured for reading such codes.

In exemplary embodiments, the reader is configured as an optical scanner, for scanning a printed code on a product. The portable device may be hand held. Exemplary embodiments include pen-type reader devices, scanning gun-type reader devices. In other embodiments, the device may be integrated in a mobile telephone or PDA-type device. In a second aspect the invention provides a coded information system having:

an optically-readable code applied to and repeated over at least a portion of a product, the code corresponding to a unique product identifier;

a database containing data associated with a plurality of unique product identifiers (e.g. for a range of different products); and

a portable code reading device according to the first aspect, for reading said code and outputting data in association with a code read by the device from said database to a user.

The code may be applied to and repeated over at least a portion of a printed surface of a product, a product label, product packaging or product information leaflet. This is of particular use for blind or partially sighted users, wherein the repeat pattern improves the chance of a blind or partially sighted user positioning the device adjacent the code format. The code may comprise a plurality of optically machine-readable code markers arranged within a code zone. Each of the optically machine-readable code markers may be arranged at one of a plurality of pre-defined positions within the code zone. The code format may include an optically machine-readable orientation device indicating a correct orientation of the code zone. The position of the code markers within a correctly orientated code zone may correspond to a pre-defined code.

In exemplary embodiments, the code is presented in a manner discreet enough to be part of the printed design of a label or packaging for a product, without changing the overall appearance of the printed design. The codes may be applied as part of the reprographic process and incorporated into the printed design.

The code may be applied across an entire surface of a product, for example, the code may be repeated across the entire printed area of a product or its label or packaging. For example, the code may be applied to: the main printed area of a box or carton, for example the printed panel of a box or carton; or the main printed label of a product, or a side label of a product; or the code may be applied to the product itself, for example a household product such as a mop and/or bucket.

The code may comprise a plurality of optical machine readable code markers arranged within a code zone. Each of the optical machine-readable code markers is arranged at one of a plurality of pre-defined positions within the code zone. The code format may include an optical machine-readable orientation device indicating a correct orientation of the code zone. The position of the code markers within a correctly orientated code zone may correspond to a pre-defined code. For example, the pre-defined code may indicate directly the product identifier, which may correspond to a number represented by a barcode so that the device can utilise existing databases. The orientation marker ensures that the code format is read in the correct way, e.g. with the code integers in the correct sequence, irrespective of the orientation of the product when reading the code with the device.

The code format may be applied as part of the reprographic process and may be incorporated into the printed design. In such embodiments, the code may be applied in a manner to take up no extra or added space on the label area, e.g. as can be achieved using Braille. This is wholly contrary to conventional bar codes, which take up a dedicated area of the label or packaging.

The code zone may have any suitable shape, e.g. of triangular, square, rectangular, cruciform or circular area.

The code zone may be repeated over a portion of the product or packaging, e.g. in a repeat pattern of identical code zones, e.g. one adjacent another, over a specific portion of the product or packaging (which may correspond to an area of printed information on the product or its packaging). For example, over the entire area of a product label. The code format may take the form of an array of dots or other markers (such as crosses or other symbols/shapes) provided in a pattern on a matrix consisting of a plurality of pre-defined points. The pre-defined points in the matrix may represent parts or integers of the code, so that the pattern of markers on the matrix defines an optical machine-readable sequence of code parts or integers.

The pattern of markers on the matrix may include a plurality of fixed markers and a plurality of variable markers. The fixed markers may define the orientation device (so that a scanner or imaging device configured for reading the format can determine the correct orientation of the matrix). The variable markers may define the code.

In exemplary embodiments, the variable markers are positionable at one of a plurality of pre-defined locations associated with a respective one of said pre-defined points in the matrix, each pre-defined location representing a code integer for the respective point in the matrix. Each plurality of pre-defined locations may represent a sub matrix of points within said matrix.

In one example, each point in the matrix is defined by a sub matrix consisting of a 3x3 array of points (e.g. arranged in rows or columns, defining a square), with each point in the sub matrix denoting a unique digit, e.g. between 1 and 9, and the absence of a marker in the sub matrix denoting another digit, e.g. the number 0. Of course, the sub matrix may be of any pre-defined shape and include up to ten or more points.

In a third aspect the invention provides a method of communicating information about a product to a user, the method comprising:

providing an optically readable code on an object;

reading the code with a portable code reading device;

retrieving data associated with the code read by the device from a database; and outputting the retrieved data in a format suitable for communication with a visually impaired user or a user with reduced reading ability.The portable code reading device may be the portable code reading device of the first aspect. In exemplary embodiments, the method may include setting the device with preselection criteria, in order to retrieve and output a subset of data from a data set associated with a code read by the device, in accordance with said pre-selection criteria.

The method may include selectively defining an output sequence for the data to be output in accordance with said pre-criteria. The method may comprise the step of navigating between data elements of a data set related to said code. The device may be set with the pre-selection criteria from a location remote from the device.

The device may read a code on an object, decode the code in order to obtain a value, retrieve a data set associated with said value, and output a selection of data from said retrieved data set.

In exemplary embodiments, the device reads a code on an object, decodes the code in order to obtain a value, and retrieves a selection of data associated with said value from said database.

In such embodiments, the data may be retrieved from a database on the device. Alternatively, the data may be retrieved from a database remote from the device, e.g. via wireless communication. An auxiliary device may be connected to the code reading device, for communicating the retrieved data from the database in a format suitable for a visually impaired person or person with reduced reading ability. For example the auxiliary device may be an external output device, for providing one or more specific outputs, e.g. a speech synthesiser, an audible or vibrational alarm or alert device, and/or a texture-generating device (e.g. a Braille-generating device).

The code may be repeated over at least a portion of the product, embodiments the code may correspond to a unique product identifier. The database may be an internal database. In such embodiments, the method may comprise the step of downloading a plurality of data sets associated with a plurality of optical codes to the internal database.

In an exemplary embodiment, the method may comprise the step of selecting a format of the output from a range of output formats.

Description of Drawings

Other advantages, aspects and features of the invention will be apparent from the claims and following description, made by way of example only, with reference to the accompanying drawings, in which:

Figure 1 is a schematic diagram of a device according to a first embodiment;

Figure 2 is a schematic diagram of a device according to a second embodiment; Figure 3 is a schematic diagram of an exemplary method according to an embodiment; Figure 4 is a schematic perspective view of a pre-packed food product; Figures 5 to 8 are schematic perspective views of products; Figure 9 is an example of a code format for use in exemplary embodiments; and

Figure 10 is an example of a code matrix for use in exemplary embodiments;

A portable device is indicated generally at 50 in Figure 1. Detailed Description

Referring to Figure 1 , the device 50 comprises a reader 54a, a decoder 56a, an interrogator 59a, a database 64, an output processor 60a, a communicator 62a, a first programmer 58a, a second programmer 63 a, a port 53 a for receiving a memory card of some type and a port 51a for connection to a station.

The reader 54a is configured to read a code applied to a product, for example, a machine-readable code, e.g. as described in detail below, such that the code corresponds to a product identifier. In this embodiment the reader is an optical reader, e.g. for scanning the machine-readable code.

The decoder 56a is configured to decode the code read by the reader 54a, such that it translates the code into either a number, text, binary output or other value that corresponds to the product identifier. For example, the code may correspond to a value represented by a standard barcode when decoded. In this embodiment the reader and the decoder are separate, however in alternative embodiments the reader may comprise the decoder.

The decoder 56a communicates the decoded information to the interrogator 59a, and the interrogator 59a interrogates the database 64 to select and retrieve data corresponding to the product identifier. The database 64 stores information about a plurality of products. In some embodiments the database 64 comprises information about a high number of products, for example, in the region of a million products. The information about the products is held in a text format, which enables the device to hold information about a large number of products using only a small amount of memory. The information in the database relevant to a particular product is stored against a product identifier. Each product type has its own product identifier. The code read by the reader is decoded to arrive at the relevant product identifier, and the interrogator uses the product identifier as a lookup value in the database 64, to retrieve data associated with the product identifier. In this embodiment, the database 64 is pre-populated with data that includes a plurality of product identifiers corresponding to a plurality of products, and a full data set relating to each product identifier. However, in alternative embodiments, the database 64 is configured to download data from a remote database 65. For example, the database 64 may be configured to automatically update when the device 50 is in a specified location. For example, the remote database 65 may be a supermarket database, and the device 50 may be configured to update when the device 50 enters the premises of the supermarket or is within a specified radius of the supermarket. Alternatively or additionally, the device 50 may be connectable to a station via port 51b, for example the port 51b may be a docking port, which is connectable to a docking station. When connected to the station the device may download data from the station. In some embodiments the device may also be connectable to the station to re-charge a battery of the device.

In a further alternative embodiment, the database 64 may be updated by communication with a memory card, for example an SD card, USB device, or other suitable memory card which may be received in port 53a and may comprise a database from which the internal database can be updated. Alternatively, the database on the memory card may form the internal database. In such embodiments memory cards could advantageously be provided by retail outlets for a user to use whilst in a particular retail establishment. The interrogator 59a is configured to retrieve data selected from the database 64. The interrogator 59a sends the data to the output processor 60a, which sends the data to the communicator 62a. The data retrieved from the database 64 may be a full set of data associated with a product identifier, or it may be a sub set of data from a full set of data stored in the database and associated with a single product identifier.

In alternative embodiments, the interrogator 59a retrieves data from the database 64, and then either the interrogator 59a or the output processor 60a processes the data such that only a sub set of data received from the database is sent to the communicator 62a.

The communicator 62a is configured to output the selected data in a format suitable for a visually impaired user or a user with reduced reading ability. For example, the communicator outputs the data as a vibration signal, a Braille output, synthetic speech, enlarged text or any other suitable method. For example, the communicator 62a may comprise an audio outlet, a motor and a component to apply a vibration, a Braille display, and/or a Braille printer. Translation software may be provided, for use by non-native speaking users.

The second programmer 63a is programmable for the user to pre-select the format of the output. For example the user can choose whether the output is audio, vibration or Braille. In an alternative embodiment, the communicator 62a is configured for connection to an auxiliary device. The auxiliary device is configured for outputting the data communicated from the communicator in a format suitable for a visually impaired person or a person with reduced reading ability. The first programmer 58a is programmable for the user to pre-select information of interest or importance to them (e.g. price, use by date, country of origin), and/or preselect the order in which they wish the information to be relayed or recorded when shopping. The device 50 may have several modes of operation. The device may be configured to operate in a single mode of operation, or alternatively the device may be configured such that the user can select a mode of operation from a selection of operations via the first programmer 58a. In a first mode of operation, the device may download a remote database to the internal database. The user may then scan a product, and the device may be configured, during manufacture, to output a complete set of data related to a particular code, or it may be configured, during manufacture, to output a subset of data related to a particular code.

In a second mode of operation the programmer 58a can be pre-set, for example at home, with the information the user wishes to receive. The programmer then programs the interrogator to retrieve data based upon pre-selection criteria. For example, when the device 50 is used to read a code printed on a food product, the user may pre-select a sub-set of data/information from a full set of information. For example, the user may decide they wish to receive the brand of the product, the price of the product and the best before date, e.g. in that order. This may be selected from a large list of data which may include, by means of example only; brand, price, ingredients, allergy information, cooking instructions, storage instructions, best before date, related offers and related products.

In a third mode of operation, the programmer 58a may be programmed such that the interrogator retrieves an initial pre-selected data sub-set, for example the brand of the product. This pre-selection may be selected for example at home. The reader 54a of the device 50 may then be used to read the code. The data relating to the code may then be retrieved from the database and the communicator may output this data to the user. The user can then pre-select data they wish to retrieve based upon the data retrieved from the database. For example, if the brand of product is a product of interest the user may select to receive data about price. However, if the product is not of interest to the user, the product may be returned to the shelf and no further information retrieved. In a further alternative embodiment, the device may have the functionality to communicate with a remote database, as well as the internal database 64 of the device. For example, the local database on the device may contain information such as nutritional content, and the remote database may include information such as special offers and best before dates.

The first or second programmer 58a, 63a may comprise an input screen which has a Braille display for the user to input their pre-selected data choice and/or output type, or alternatively the programmer may comprise voice recognition software to permit the user to program the device using voice commands. The programmer 58a, 63a may also be provided with buttons, a toggle switch or voice command to permit the user to indicate the information they wish to receive after they have positioned the device to read the code. An alternative device 52 is illustrated in Figure 2. The device 52 comprises a reader 54b, a decoder 56b, an interrogator 59a, an output processor 60b, a communicator 62b, a first programmer 58b, a second programmer 63b, a port 53b for receiving a memory card of some type and a port 51 b for connection to a station. Unlike the device 50 shown in Figure 1 in this embodiment device 52 during standard operation the interrogator 59a retrieves data from a remote database 66 instead of an internal database.

The features of device 52 operate in a similar manner to the features of device 50, with common features represented by the same numerical value but with a different postfix (i.e. "a" for device 50 and "b" for device 52), therefore only the differences between the devices will be described.

In this embodiment the remote database 66 is separate and distinct from the device 52. The remote database 66 may for example be a supermarket's centralised database. A supermarket database may use a barcode as a product identifier. In such embodiments, a code maybe printed on products in a manner that corresponds to a value represented by a standard barcode when decoded. In use, the user may scan a code with the reader 54b, the decoder 56b decodes the code and sends the decoded code to the interrogator 59b. The interrogator 59b then selects and retrieves the data related to the code read by the reader 54b from the remote database 66. This may be a full set of data associated with the code, or it may be a sub set of data associated with the code, the sub set being selected either at manufacture, or by programming the programmer 58b.

In an alternative embodiment, the device 52 may have an internal temporary memory. In such a case the interrogator may retrieve data related to the product from the database 66, send all said data to the temporary memory, and send a pre-selected sub- set of data to the communicator 62b. The device may be configured, via the programmer 58b, for the user to select further information they wish to receive. In such cases, the interrogator may then interrogate the temporary memory instead of the remote database 66 to send the required data to the communicator 62b. In an alternative embodiment the interrogator 59b directly interrogates the remote database 66 each time any data is requested. Such embodiments enable a user to actively select information they wish to receive about a product. In a further alternative, the device 52 may comprise an internal database and the programmer 58b can program the interrogator 59b to select a sub-set of data to send to the communicator 62b, and a sub-set of data to be sent for storage in the internal database. Such that, the user can program the information they wish to receive about a product that is scanned, when they are, for example, in a supermarket. The reader 54b of the device 52 can then read the relevant code and the communicator 62b outputs the desired data to the user, for example, price, best before date, and allergy information. At the time of retrieving the data from the database 66 the interrogator also retrieves the data selected to be stored in the internal database and sends this to the internal database of the device. This information may be for example, cooking times and storage information. This system means that once the user is at home they are able to scan the product to retrieve information such as recommended storage conditions, and then in the case of a food product the label can be scanned when the product is to be cooked to retrieve the cooking instructions from the internal database, or in the case of clothing, the label may be scanned to retrieve wash care information.

The device 50, 52 may be the consumer's own device (e.g. a pre-purchased item) or a device provided by the retail outlet for in-store use. The device may be programmed with or arranged in communication (e.g. via wireless link) with information relating to all of the products available for purchase in the retail outlet (e.g. by accessing the retail outlet's own database).

In exemplary embodiments the device 50, 52 may also be programmed for automatically ordering a .repeat purchase (e.g. for doorstep delivery). The repeat purchase may be activated if the code is re-scanned, e.g. after use of the product in question. This may be of particular use where the code format is applied to prescription medicines and associated medical equipment. In exemplary embodiments the device 50, 52 may comprise local memory and database to enable the user to record the type and quantity of product at the user's home (e.g. by scanning the individual products/ packing provided with a code format of the kind described herein with an optical device configured for reading the code format), for electronic storage of the relevant information in a specific database. The system or software may be configured for electronically updating said database, e.g. by e-scanning the product/packaging after use or prior to disposal of the product/packaging. The system or software may be configured for electronically reordering a quantity of one or more of the products, e.g. after use or prior to disposal of the product/packaging. This will be of particular relevance to food products and food shopping applications. However, this system may also be applied to other types of product, e.g. medical products or domestic products of the kind commonly available in a retail environment. The device 50, 52 may have complementary functionality. For example, the device 50, 52 may have a summation operator which enables the device to count and add information about products such as prices and calories.

The device 50, 52 may comprise a comparator to indicate to the user the percentage of for example their weekly budget a particular group of items or single item is, or the percentage of the recommended daily allowance the number of calories of an item is.

The device 50, 52 may have a memory which can store information relating to criteria products the user wishes products to meet. For example, in the case of foodstuffs, be gluten free, organic, and free range. The output processor 60a, 60b may be configured to assess the retrieved data against the criteria saved in the memory, and the communicator 62a, 62b outputs to the user whether or not a product meets the specified criteria. The device 50, 52 may have a scheduling operator that can be used to alert a user to take a medicine at a particular time, based upon the scanned information or inputted prescription. This is particularly useful if the device is used for reading codes applied to medicine-type products or the like. The code can provide for selective access to a database about the product associated with the code, and the device can be configured to prompt the user to perform an action, e.g. in accordance with dosage information associated with the code. In addition or alternatively, the device may be configured to make a (repeat) prescription order of product in association with the code. Information related to the code can be retrieved from the database, for example a Pharmacists' database or a database accessible via the internet. The information from the database can be downloaded to the memory to indicate dosage instructions, for example. The device may then be programmable to either alert the user at a regular pre-set interval or at a set time, according to the dosage instructions.

The device 50, 52 may be configured for storing and/or transmitting information to a remote database or remote monitor, in response to one or more codes that are scanned by the device. Such information may be provided to a physician or the like with responsibility or other interest in monitoring the behaviour of the user, for example. Hence, in an exemplary embodiment, the device can be configured for reading a code on a medicine or medicament (or its label, packaging or other associated literature), and then prompt the user to take or apply the medicine/ medicament at a required point in time (e.g. after expiry of a predetermined date or time period). The device can be configured so that upon re-scanning the code (e.g. to signal that the medicine/medicament has been taken/applied) information is then sent to a remote database or remote monitor.

The device 50, 52 may provide information on offers and links to products and brands in response to a code read by the reader. For example, the device may have a connection with a database, or with the internet, and be programmed to access the internet on demand or at regular intervals, or the device may be programmed to access a database when the device is, for example, within a pre-determined range of a database, for example a supermarkets database, to download the offers available. The device may be programmable to select offers of interest, and when an offer is available the device may alert the user.

The device 50, 52 may be able to connect to an internet shop to re-order a product, and/or store the information in the device to create a shopping list. For example, the device may be configured to connect to the internet via a wireless connection such as WIFI or Bluetooth, or a mobile telecommunication network, for example, WPS, 3G, or 4G. A user may be able to read a code from a product, label or packaging and select an option on the device to re-order the product and/or add the product to a shopping list. The device may then be configured to reorder the product via the internet connection, e.g. after use/consumption. Alternatively, the device may store the product identifier in an internal memory to create a shopping list. The stored shopping list can then be used to re-order the products, or to create a list for the user to use when they go shopping. The device may further be programmed with a stock taking capability, e.g. for recognising and indicating whether the user already has (or requires) a particular product.

The device 50, 52 may be pre-programmed or programmable with one or more preferences, wherein, after reading a code on a product (or its label, packaging or other associated literature) the device can provide an output related to the or each preference. For example, the device may be programmed to acknowledge (e.g. via a physical or audible output) that a particular product is within a pre-specified date and/or price range and/or ingredient calorie threshold. In addition or as an alternative, the device may be configured to identify a scanned object (via the code) and then provide an output (e.g. a physical or audible output) to indicate that the product is suitable or desired by the user (e.g. by comparison with data retrieved from the database and one or more preferences stored or programmed onto the device). This may be as straightforward as indicating whether the product adheres to allergy concerns, or whether the product meets other criteria specific to the user. This may be particularly useful in the case of users with particular dietary concerns or users who want to ensure that they purchase items suitable to them, such as cosmetics or toiletries with a particular scent or colour, or cosmetics or toiletries or the like suitable for a particular skin preference or condition. A method of using the device 50, 52 is indicated generally at 68 in Figure 3, optional first 70 and second steps 72 are indicated with a dotted line. In a first step 70, the programmer 58a, 58b of the device 50, 52 may be programmed to pre-select a sub-set of data the user wishes to receive from the database 64, 66, and/or the sequence in which the user would like to receive selected information (for example, the user may select to firstly receive brand information and then receive information relating to price). In a second step 72, or at the same time, or before the first step 70, the programmer may also be programmed to pre-select the type of output the user wishes to receive from either the communicator 62a or an auxiliary device that is connectable to the communicator 62a.

In the next step 74, the reader 54a, 54b is directed to a code printed on a product, and the reader 54a, 54b reads the code and the decoder 56a, 56b decodes the code. In the following step 76, the interrogator interrogates a database 64, 66, to find the data set relating to a product identifier encoded in the code. In the penultimate step 78, data from the database is retrieved by the interrogator 59a, 59b and sent to the output processor 60a, 60b. In the final step 80, the communicator 62a, 62b communicates the information from the database to the user either directly or by connection to an auxiliary device.

Although purchasing of foodstuffs has been specifically described, the code may be applied to many other items for example, medicines, white goods, clothing, books, stationery etc, and as such the device can be used to read and communicate information about many other items to the user. For example, the code may also be applied to literature and the like, for identifying products referred to in the literature, or the code may be applied to clothing labels for identifying the material(s) the clothing is made from, the country of manufacture, and/or care instructions. An example of a retail item to which the code may be applied is indicated generally in Figure 4. Retail item 10 is in the form of a pre-packed food product 12 stored for retail purposes in packaging 14. The packaging 14 has a label 16 which includes information about the product 12 (e.g. price, nutritional information, best before date, country of origin etc). The retail item 10 also include a conventional barcode 18 as part of the label 16, which can be read using a conventional barcode scanner or similar optical device. The retail item 10 is provided with coded information presented in a manner discreet enough to be part of the printed design of the label 16, without changing the overall appearance of the printed design. In this embodiment, the coded information is provided on the normal printed area of the label 16, e.g. applied over or beneath other printed information about the product or its packaging during the reprographic process. Advantageously, this means that the coded information takes up no extra or added space on the label area, e.g. as can be achieved using Braille. This is contrary to conventional barcode techniques, which require a dedicated part of the printed design.

Example areas of application of the code are illustrated in Figures 5 to 8. The code may be applied, for example, across the entire area 19a of a label of a product (as shown in Figure 5), alternatively the code may be applied directly to the packaging (area 19b in Figure 6), the code may be applied to both the packaging and the label (are 19c in Figure 7) or alternatively the code may be applied directly to the products for example in area 19d of a handle 2 of a mop 4, as shown in Figure 8. In other embodiments, the code may be printed over the area of a major panel of packaging, for example a panel of a carton or box. Advantageously, repeating the code over an area enables an associated scanner or imaging device to readily detect/read the information. This is particularly useful for blind or partially sighted users, and is contrary to conventional barcode techniques (where, typically, a single barcode is provided in isolation on a specific portion of the product or its label/packaging).

In this embodiment, the coded information is applied without being overtly visible to the naked eye (unlike the conventional barcode 18), e.g. using a specific colour or by being reversed from the background colour in the region that the coded information is applied, so as to be readable against or through the printed information on the label 16. The coded information may be applied by a printing technique. Typically, the coded information will correspond to an established barcode number for the product. Conveniently, this enables the scanner or imaging device to identify the product using the retailer's barcode database. In exemplary embodiments, this also enables a user to access other information held by the retailer in association with the bar code, e.g. information held on the label of the product or packaging. Printed label information is a legal requirement in many countries, yet is not readily accessible to the blind or partially sighted. However, embodiments of the kind described above enable the blind or partially sighted to access barcode-related information.

Figure 9 shows an exemplary embodiment of a code format, indicated generally at 20, for displaying the alternative coded information referred to above in an optical machine-readable manner. The code format 20 consists of an array of dot-type code markers 22 arranged in a pre-defined pattern, corresponding to a pre-defined code.

The array of dots 22 is provided on a code matrix 24, an example of which is shown in Figure 10. The code matrix 24 consists of a plurality of pre-defined points 26. In this example, the points 26 are arranged in rows and columns to define a 5x5 matrix of points 26. In the embodiment of Figures 5 and 6, the matrix 24 defines a square area. In other embodiments, the matrix 24 may have another shape, e.g. defining a triangular, rectangular, cruciform or circular area.

The matrix 24 includes a code zone 28. In use, the dots or other code markers provided in association with the points 26 within the code zone 28 represent specific parts or integers of the pre-defined code that is represented on the matrix 24. Hence, the specific pattern of dots 22 within the code zone 28 of Figure 2 provides an optical machine-readable sequence of code parts or integers.

As will be described in more detail below, the precise position of the dots 22 within the code zone 28 (i.e. relative to the pre-defined points 26 on the matrix 24) can be selected from a plurality of different pre-defined combinations, corresponding to a plurality of different codes that may be represented by the format 20. Hence, the dots 22 within the code zone 28 can be referred to as 'variable' dots. The code format 20 also includes an optical machine-readable marker or orientation device (indicated generally at 30), for indicating the correct orientation of the code zone 28, such that the specific pattern of dots 22 within the correctly orientated code zone 28 corresponds to a pre-defined code. e.g. consisting of a plurality of code integers arranged in a desired sequence.

In this embodiment, the orientation device consists of a plurality of dots 22 in a pre- defined pattern outside the code zone 28. The position of these dots 22 relative to the code zone 28 is pre-selected, and so these dots can be referred to as 'fixed' dots. The purpose of the orientation device is to enable a scanner or imaging device configured for reading the format 20 to identify the position of the fixed dots and thereby determine the correct orientation of the code zone 28.

As mentioned above, the precise position of the dots 22 within the code zone 28 can be varied. In exemplary embodiments, the variable dots 22 may be positioned at one of a plurality of pre-defined locations associated with a respective one of said predefined points 26 in the code zone 28. Each pre-defined location may represent a symbol or digit for use as a specific integer of the code associated with the respective point 26 in the matrix 24, e.g. in order to provide a plurality of potentially different readings for that point 26 in the code zone 28.

The number of integers in the code that is stored by the format 20 may need to be different for different applications. For example, the code format may be used to represent an 8-digit barcode or a 13 digit bar code, a date code format (such as 01/18 1974 to represent 18 th January 1974), or a multi digit batch code for products. Hence, exemplary embodiments of the invention include an identifier (e.g. defined by one or more markers in the array), to indicate that the array holds a code having a pre- determined number of code integers. Hence, for certain lengths of code sequence, not all of the points in the code zone will be required.

The number of integers in the code that is stored by the format 20 may need to be different for different applications. For example, the code format may be used to represent an 8-digit barcode or a 13-digit barcode. In other embodiments, the code format may be used to represent a date code format (e.g. 01/18/1974 to represent 18th January 1974), or a multi digit batch code for products. Hence, exemplary embodiments of the invention include an identifier (e.g. defined by one or more markers in the array), to indicate that the array holds a code having a pre-determined number of code integers (e.g. the length of the code sequence). Hence, for certain lengths of code sequence, not all of the points in the code zone will be required. The pre-defined pattern of fixed markers in the array is identified, in order to establish the correct orientation of the pattern. The number of integers in the code is determined (e.g. by recognising the identifier 36). The pattern is analysed to extract data from the variable markers in the array, e.g. by establishing the sequence and exact position of the variable markers in the code zone 28.

For the embodiment illustrated in Figure 5, the dots in the top row and the right hand column are fixed in a generally L-shaped arrangement. This pattern is used as the orientation device, and can be used to determine the correct orientation and perimeter of the matrix, as well as the start point for the code zone. The middle three dots on the bottom row of the array are used as the identifier. In this embodiment, the presence of all three dots indicates that the code in the array has 13 digits, whereas the presence of only a single dot indicates that the code has 8 digits. Of course, other pre-defined combinations can be used to denote different code lengths. The remaining dots define the code zone 28. Each of said dots is located at the notional centre position of a 3x3 sub-matrix of variable positions for each point in the code zone 28. Hence, the 13 digit code held by the array 20 is 55555555555.

Other examples of the code are detailed in PCT/GB2011/000880 which is incorporated herein by reference.

The above described embodiments of the device 50, 52 comprise a programmer 58a, 58b, but alternative embodiments may not comprise a programmer. In such examples, the device may have selected options already pre-programmed, or they may be no selectability of the data that is received by the interrogator 59a, 59b from the database 64, 66, in such cases either all the data in the database related to a code is received by the interrogator or the sub-set of data is pre-selected at the manufacturing stage of the device. Although the invention has been described above with reference to one or more preferred embodiments, it will be appreciated that various changes or modifications may be made without departing from the scope of the invention as defined in the appended claims.