FR 2730081 A1 19960802 FR 9500913 A 19950126 DISPOSITIF PORTABLE ET PROCEDE DE LECTURE OPTIQUE DE CODES A BARRES La présente invention concerne un dispositif lecteur de codes à barres comprenant un boîtier portable de dimension réduite alimenté de façon autonome par batterie et muni de moyens de commande marche/arrêt de l'alimentation, le boîtier étant muni d'un capteur optique agencé pour effectuer la lecture de codes à barres à une distance sensiblement déterminée. Par dimension réduite, il convient d'entendre un boîtier ne dépassant pas la taille d'une lampe de poche. Elle concerne également un procédé de lecture optique de codes à barres. Elle trouve une application particulièrement importante, bien que non exclusive, dans le domaine de la saisie directe, en rayon, du prix des articles achetés par un consommateur dans un magasin de détail tel qu'un hypermarché ou un supermarché, permettant au consommateur de connaître en temps réel la somme des montants des achats qu'il effectue. On connaît déjà des dispositifs permettant au consommateur de calculer au fur et à mesure la somme de ses achats. I1 s'agit tout d'abord et simplement, de calculatrices portables que l'on incrémente manuellement au fur et à mesure de la lecture visuelle par le consommateur des étiquettes présentes sur les rayons et/ou les articles eux-mêmes. On connaît également des dispositifs utilisant des bornes fixes connectées à une base de données du magasin et mises à la disposition des clients, qui permettent, par lecture optique du code à barres de l'article, de connaître le prix de ce dernier. On saisit ensuite le prix sur une calculette, en évitant ainsi d'avoir à chercher le prix sur l'étiquette du rayon. On connaît aussi un système embarqué comportant un lecteur de codes à barres, du type crayon optique, relié à des moyens (mémoire de masse) de stockage de la base de données du magasin, par exemple portés par le caddie de l'acheteur, ce qui permet d'effectuer la correspondance entre les références et le prix des articles sans avoir à se connecter à une borne fixe en général éloignée du rayon dans lequel se trouve l'article acheté. De telles solutions présentent des inconvénients. Elles nécessitent en effet, soit la saisie du prix de l'article sur un clavier, soit le téléchargement de la base de données du magasin dans le système. Elles sont de ce fait coûteuses. De plus, dans le cas d'une saisie par lecteur type crayon optique sur les articles eux-mêmes, un certain nombre de codes à barres ne peuvent pas être lus correctement. I1 est donc toujours nécessaire de prévoir un clavier numérique pour saisir les prix des produits dont on ne peut pas lire le code à barres. La présente invention vise à fournir un dispositif répondant mieux que ceux antérieurement connus aux exigences de la pratique, notamment en ce qu'elle ne nécessite plus aucune saisie manuelle du prix, en ce qu'elle s'affranchit de la nécessité d'un accès à une base de données du magasin et en ce qu'elle propose un dispositif entièrement autonome, simple à utiliser et peu coûteux. Pour ce faire l'invention part de l'idée suivante : Ce ne sont plus les codes à barres figurant sur les articles eux-mêmes qui sont lus par le lecteur optique, mais les codes à barres figurant sur les étiquettes affichées en rayons lesquelles comportent le prix codé de l'article, les étiquettes étant remises à jour à chaque changement de prix. Les codes à barres figurant sur un support plan indépendant de la forme de l'article, les erreurs ou impossibilités de lecture sont de ce fait éliminées. Le prix étant de plus stocké sur l'étiquette, il n'est plus, non plus, nécessaire d'avoir accès à la base de données du magasin. Dans ce but l'invention propose donc et notamment un dispositif lecteur de codes à barres comprenant un boîtier portable de dimension réduite alimenté de façon autonome par batterie et muni de moyens de commande marche/arrêt de ladite alimentation, ledit boîtier étant muni d'un capteur optique agencé pour effectuer la lecture de codes à barres à une distance sensiblement déterminée, caractérisé en ce que le boîtier comporte - des moyens de signalisation de la prise en compte ou non de la lecture du code à barres par le capteur optique, - des moyens de traitement des signaux issus du capteur optique, comportant des moyens convertisseur analogique/numérique des signaux en données numériques, des moyens de calcul de la dérivée desdites données et de filtrage de ladite dérivée, des moyens d'extraction d'une partie desdites données ainsi dérivées et filtrées correspondant au prix, et des moyens de stockage temporaire en mémoire lecture/écriture de ladite partie de données, - des moyens agencés pour additionner ou pour soustraire ladite partie de données au contenu d'une mémoire d'affichage, - et des moyens d'affichage à cristaux liquides des données contenues dans ladite mémoire d'affichage. Dans des modes de réalisation avantageux, on a de plus recours à l'une et/ou à l'autre des dispositions suivantes - les moyens agencés pour additionner ou pour soustraire sont des moyens de commande manuelle par touche - les moyens agencés pour additionner ou pour soustraire sont agencés pour additionner et pour soustraire par passage droite/gauche et gauche/droite du lecteur sur le code à barres - les moyens de traitement des signaux sont de plus agencés pour comptabiliser le nombre d'articles saisis et pour permettre l'affichage dudit nombre sur l'écran à cristaux liquides - la distance sensiblement déterminée de focalisation du capteur optique est agencée pour permettre une lecture du code à barres à la fois au travers d'une plaque de matière plastique transparente et directement en contact avec ledit code à barres - l'angle de lecture du capteur optique est inclu dans un cône de 30 au sommet. L'invention propose également un procédé de lecture de codes à barres à faible distance, dans lequel on lit le code à barres avec un capteur optique solidaire d'un boîtier portable maintenu manuellement à une distance sensiblement déterminée dudit code à barres par un opérateur, caractérisé en ce que - on extrait directement les signaux issus du capteur optique avec des moyens électroniques inclus dans ledit boîtier, en convertissant les signaux analogiques lus en données numériques, en calculant simultanément la dérivée desdites données, en filtrant ladite dérivée, puis en stockant temporairement en mémoire lecture/écriture lesdites données ainsi dérivées et filtrées, que l'on teste pour déterminer si elles doivent ou non être prises en compte, et on signale à l'opérateur lorsqu'elles sont prises en compte, - on extrait une partie desdites données ainsi dérivées et filtrées, correspondant au prix, - on additionne ou on soustrait ladite partie de données au contenu d'une mémoire d'affichage inclue dans le boîtier, puis - on affiche sur un écran à cristaux liquides solidaire du boîtier le contenu de ladite mémoire d'affichage. Dans un mode de réalisation avantageux, on commande manuellement le capteur optique pour additionner ou pour soustraire en appuyant sur une touche correspondante appartenant au boîtier. Dans un autre mode de réalisation avantageux, on additionne ou on soustrait en passant le capteur optique dans le sens droite/gauche ou gauche/droite sur le code à barres. Avantageusement on calcule de plus et on affiche s'il y lieu le nombre d'articles saisis. L'invention sera mieux comprise à la lecture de la description qui suit d'un mode de réalisation donné à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent dans lesquels - La figure 1 est une vue schématique en perspective montant l'utilisation d'un dispositif selon l'invention par un consommateur. - La figure 2 est une vue de face d'un boîtier du dispositif selon un mode de réalisation de l'invention. - La figure 3 est un schéma électrique de l'intérieur du dispositif de la figure 2. - Les figures 4 et 5 sont des organigrammes de fonctionnement du dispositif selon le mode de réalisation de l'invention plus particulièrement décrit ici. La figure 1 montre un consommateur 1 tenant dans sa main droite un dispositif 2 selon l'invention. Le dispositif est agencé pour effectuer la lecture de codes à barres 3 imprimés sur des étiquettes 4 qui sont collées sur des supports plans 5, ou insérées dans des supports plans d'étiquettes, par exemple protégés par une plaque en matière plastique transparente d'une épaisseur de un ou deux millimètres. Les étiquettes sont fixées sur les rayons 7 d'une allée de supermarché et correspondent aux articles 8 achetés par le consommateur 1 pour être placés dans un panier de supermarché 9 également dénommé caddie. La figure 2 montre le dispositif 2 selon le mode de réalisation de l'invention plus particulièrement décrit ici. I1 comporte exclusivement un boîtier 10 sensiblement parallélépipédique, par exemple de 10 cm x 10 cm x 4 cm, en matière plastique, ouvrable, formé de deux parties symétriques fixées l'une à l'autre. Le boîtier est muni d'un capteur optique 11 par exemple du type fabriqué par la société Hewlet Packard et vendu sous la référence HBCS 1100, permettant la lecture du code avec un angle compris dans un cône de 30 au sommet, par déplacement latéral du capteur qui est du type également et parfois dénommé stylo optique. Le dispositif comprend des moyens 12 de signalisation de la prise en compte ou non de la lecture du code à barres comprenant une diode sur un côté du boîtier, visible pour le consommateur utilisant le dispositif, des moyens de traitement 13 (en trait interrompu sur la figure 2) situés à l'intérieur du boîtier et qui seront détaillés en référence à la figure 3, trois boutons poussoirs, à savoir un bouton 14 de mise en marche ou de demande de lecture par le capteur optique, un bouton 15 qui permet d'ajouter le prix lu par le capteur optique au total et un bouton 16 qui permet de soustraire le prix lu au total. Le boîtier comporte de plus un écran à cristaux liquides 17, par exemple du type fabriqué par la société japonaise SEIKO et vendu sous la référence M 1641 et un interrupteur 18 Marche/Arrêt de mise en marche du dispositif. La figure 3 est un schéma électrique de l'intérieur du boîtier 10 (en trait mixte sur la figure) du dispositif 2. Le dispositif selon le mode de réalisation plus particulièrement décrit ici, comporte une batterie d'alimentation 19, par exemple constituée par une pile de 9 Volts, convertie en 5V de façon connue en elle même par un circuit (non représenté), pour alimenter les différents composants du circuit (alimentation Vcc). Le dispositif comprend un afficheur à cristaux liquides 20 par exemple du type LCD 16 x 1. L'afficheur 20 est relié à un circuit intégré 21 par exemple un circuit de la série 37471M25P, constituant les moyens de traitement 13, comportant une unité centrale, une mémoire ROM et une mémoire RAM. Le circuit 21 est par ailleurs d'une part relié au capteur optique 11 par exemple du type HBCS 1100 et d'autre part aux boutons poussoirs 14, 15 et 16. Une diode 22 de signalisation de bonne lecture (moyens de signalisation 18) est également prévue. Le circuit 21 comporte enfin de façon connue en elle-même, un circuit de synchronisation 23 incluant un quartz 24 par exemple de 4 Mhz. On a représenté sur la figure 4 les différentes étapes du graphe d'état donnant la structure du procédé informatique mis en oeuvre selon l'invention. L'étape 25 est l'étape centralisatrice dite gestionnaire d'Ergonomie. Après l'étape 26 de lecture et de traitement du signal correspondant au code à barres, étape qui va être détaillée en référence à la figure 5, on réalise un décodage des données en 27, une vérification et une traduction des données en 28, une extraction du prix (étape 29) et son affichage en 30. On effectue ensuite les étapes de soustraction en 31 ou d'ajout en 32 du prix courant au total pour obtenir en 33 l'affichage du total sur l'écran à cristaux liquides, ce qui est l'information recherchée par le consommateur. La figure 5 donne de façon détaillée les étapes internes effectuées lors de l'opération 26 de lecture et de traitement du signal, selon le mode de réalisation de l'invention plus particulièrement décrit ici. Après acquisition de l'échantillon N suite à une conversion analogique/numérique (étape 34), on effectue ou non un filtrage du signal (étape 35), on réalise un calcul de la dérivée et un filtrage de ladite dérivée en 36, une extraction des maximums de la dérivée (étape 37), puis un stockage des largeurs de bords (étape 38) et on recommence (chemin 39) tant que le nombre de bandes est inférieur à cinquante-six dans le cas du code à barres correspondant à la norme européenne EAN 13. On a donné ci-après, en langage C, les détails des principales étapes du programme mis en oeuvre dans le mode de réalisation plus particulièrement décrit ici, de façon non limitative. &num;include #inclue #inclue #define Noir O &num;define Blanc 1 unsigned char tableau [56]; unsigned char 1; unsigned char lire(void) (int i; unsigned int aux,donnee; char petit(int i) if (tableau[i] > 1))) return (0) ; return(1); void main(void) (unsigned ... do t Qt=O; exFt=O; Ft=O; milieug=0; milieud=0; changement=1; swap=1; milieu=0; signe=1; ex milieu=0; nb bande=0; pt~bande=3; x=0; /+ Acquisition des 56 Modules */ while (nb bande /* Acquisition du Signal */ Pt = (unsigned int) (lire()); /* Filtrage du Signal */ Ft = (unsigned int) (Ft > > 6); Ft = (unsigned int) (Ft + (Ft + (ft Ft = (unsigned int) ((Ft > > 4) + (Ft 2) + (Ft > > 1) + Pt + (pt /* Calcul de la Derivee */ Dt = (Ft - exFt)+256; /* /+ Ajout d'un Offset a la Derivee */ if (Dt > =0x8000) Dt=O;; else if (Dt > 511) Dt=511 else if (Dt > 127) Dt=127; */ /* Filtrage de la Derivee */ Qt = (unsigned int) ((Qt + (qat (Qt > 7); /* Qt = (unsigned int) ((Qt + (Qt > 2); */ /+ Traitement de la Derivee +/ if (((signe!=0) & amp; ((Qt > 241) & amp; (Qt ((signe==0) & amp; ((Qt > 211) & amp; (Qt if (((signe!=0) & amp; ((Qt > 60) & amp; (Qt ((signe==0) & amp; ((Qt > 52) & amp; (Qt signe=0; if (swap=0) milieud=x; milieu=( (milieud+milieug) > > 1); milieug=x; swap=1; else I if ((x-milieud) > 200) ( printf ("[%d] [%d]\n",min,max); */ milieud=0; milieu=0; ex milieu=0; nb bande=0; x=0; milieug=x; changement=0; else t signe=1; if (changement==0) ; if (ex~milieu!=0) ( tableau[nb~bande]=milieu-ex~milieu; nb bande++; ex milieu=milieu; if (swap==1) swap=0; changement=l; exFt=Ft; x++; /* Elaboration du Code-Barre +/ /* Recherche des Digits */ t* Calcul du Nombre de Bandes elementaires dans le Module */ Correction=compteur; /* Compensation de la Focale */ /* Actualisation de la Largeur elementaire et de la Compensation */ if ((Nn > 0) & amp; (Nb > 0)) t /* Compensation de la Variation de Vitesse du Scan */ /* Recherche des Digits dans les differents Dictionnaires*/ if (pt~mat==13) { do t erreur)0; essai++; digit[13p0; alphabet=3; for (i=0;i if (i!=6) t alphabet=3; switch (digit[i]) t case 0x0D: alphabet=0; tampon=0; break; case 0x19: alphabet=0; tampon=l; break; } if (alphabet if (i else erreur=4; /* Verification du Caractère de CheckSum +/ /* En cas d'Erreur, Essai dans l'Autre Sens */ J while ((essai J while (kbhit()==0); On va maintenant décrire la mise en oeuvre du dispositif 2 par le consommateur 1. Celui-ci se déplace dans les allées du supermarché entre les rayons. Lorsqu'il choisit un article 8, il scanne avec le dispositif le code à barres 3 de l'étiquette 4 en activant la diode par appui sur le bouton 14. Lorsque la diode 22 reste allumée, la lecture a été effectuée avec succès. Lorsque la diode clignote ou ne s'allume pas, la lecture a échoué et le consommateur doit réitérer son opération. Pour tenir compte de la présence ou de l'absence de la lame en matière plastique de protection de l'étiquette, le consommateur joue sur l'inclinaison du boîtier par rapport au code à barres, faisant ainsi varier la position du point de focalisation du capteur. Plus précisément et dans un mode de réalisation, le capteur optique étant situé à l'intérieur d'un évidement d'une extrémité du boîtier à une distance déterminée d du bord extrême de cette extrémité, la distance déterminée est agencée pour que le point de focalisation du capteur optique soit situé à une distance d' dudit bord, de l'autre côté par rapport au capteur, d' étant un peu supérieure ou sensiblement égale à l'épaisseur de la lame en matière plastique utilisée par l'hypermarché pour protéger ses étiquettes. Pour lire un code à barres protégé par une lame, le capteur sera donc placé sensiblement perpendiculairement à l'étiquette. Par contre, dans le cas où l'étiquette n'est pas protégée, il suffit au consommateur d'incliner le dispositif et donc le capteur, pour déplacer le point focal de façon à ce qu'il puisse sensiblement coïncider avec le code à barres. Cette opération s'effectue de façon inconsciente et naturelle par le consommateur. Dans ce mode de réalisation, aucune optique supplémentaire de focalisation n'est prévue. Une fois la lecture effectuée, le consommateur peut vérifier le prix de l'article qui s'est affiché sur l'écran à cristaux liquides. Il appuie alors sur le bouton 15, et obtient le total de ses achats à l'instant t. Si celui-ci lui paraît excessif, il peut soustraire le prix de l'article de la même façon et remettre ou laisser l'article rejeté en rayon. Sinon, il place l'article dans son panier ou son caddie et continue ses achats, tout en maîtrisant parfaitement le coût de ces derniers. Comme il va de soi et comme il résulte d'ailleurs de ce qui précède la présente invention ne se limite pas au mode de réalisation plus particulièrement décrit ici mais en embrasse au contraire toutes les variantes et notamment celles où il ne comporte aucun bouton poussoir d'addition ou de soustraction, le boîtier encore une fois entièrement autonome, étant donc non seulement entièrement démuni de clavier mais encore de touche d'incrémentation quelconque, et celles où est prévu l'affichage du nombre d'articles scannés, en permanence ou à la demande, ce qui permet notamment une vérification supplémentaire à la caisse par le magasin lors de la facturation finale effectuée. REVENDICATIONS 1. Dispositif (2) lecteur de codes à barres (3) comprenant un boîtier (10) portable de dimension réduite alimenté de façon autonome par batterie (19) et muni de moyens de commande marche/arrêt de ladite alimentation, ledit boîtier étant muni d'un capteur optique (11) agencé pour effectuer la lecture de codes à barres à une distance sensiblement déterminée, caractérisé en ce que le boîtier comporte - des moyens (18) de signalisation de la prise en compte ou non de la lecture du code à barres par le capteur optique, - des moyens (21) de traitement des signaux issus du capteur optique, comportant des moyens convertisseur analogique/numérique des signaux en données numériques, des moyens de calcul de la dérivée desdites données et de filtrage de ladite dérivée, des moyens d'extraction d'une partie desdites données ainsi dérivées et filtrées correspondant au prix, et des moyens de stockage temporaire en mémoire lecture/écriture de ladite partie de données, - des moyens (15, 16) agencés pour additionner ou pour soustraire ladite partie de données au contenu d'une mémoire d'affichage, - et des moyens (20) d'affichage à cristaux liquides des données contenues dans ladite mémoire d'affichage. 2. Dispositif selon la revendication 1, caractérisé en ce que les moyens (15, 16) agencés pour additionner ou pour soustraire sont des moyens de commande manuelle par touche. 3. Dispositif selon la revendication 1, caractérisé en ce que les moyens agencés pour additionner ou pour soustraire sont agencés pour additionner et pour soustraire par passage droite/gauche et gauche/droite du lecteur sur le code à barres. 4. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens (21) de traitement des signaux sont de plus agencés pour comptabiliser le nombre d'articles saisis et pour permettre l'affichage dudit nombre sur l'écran à cristaux liquides. 5. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que la distance sensiblement déterminée de focalisation du capteur optique (11) est agencée pour permettre à la fois une lecture du code à barres au travers d'une plaque de matière plastique transparente et directement en contact avec ledit code à barres. 6. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que l'angle de lecture du capteur optique (11) est inclu dans un cône de 30 au sommet. 7. Procédé de lecture de codes à barres à faible distance, dans lequel on lit le code à barres (3) avec un capteur optique (11) solidaire d'un boîtier (10) portable, maintenu manuellement à une distance sensiblement déterminée dudit code à barres par un opérateur, caractérisé en ce que - on extrait directement (26) les signaux issus du capteur optique avec des moyens électroniques inclus dans ledit boîtier, en convertissant les signaux analogiques lus en données numériques (34), en calculant la dérivée desdites données (36), en filtrant ladite dérivée (36), puis en stockant temporairement (38) en mémoire lecture/écriture lesdites données ainsi dérivées et filtrées, que l'on teste pour déterminer si elles doivent ou non être prises en compte, et on signale à l'opérateur lorsqu'elles sont prises en compte, - on extrait (29) une partie desdites données ainsi dérivées et filtrées, correspondant au prix, - on additionne (32) ou on soustrait (31) ladite partie de données au contenu d'une mémoire d'affichage inclue dans le boîtier, puis - on affiche (33) sur un écran à cristaux liquides solidaire du boîtier le contenu de ladite mémoire d'affichage. 8. Procédé selon la revendication 7, caractérisé en ce que on commande manuellement le capteur optique pour additionner ou pour soustraire en appuyant sur une touche correspondante appartenant au boîtier. 9. Procédé selon la revendication 7, caractérisé en ce que on additionne ou on soustrait en passant le capteur optique dans le sens droite/gauche ou gauche/droite sur le code à barres. 10. Procédé selon l'une quelconque des revendications 7 à 9, caractérisé en ce que on calcule de plus et on affiche s'il y lieu le nombre d'articles saisis.