Lecteur de code-barres

Page d'aide sur l'homonymie Pour les articles homonymes, voir Lecteur et douchette.
Lecteur de code-barres

Un lecteur de code-barres est un appareil électronique servant à lire les informations stockées sous la forme de codes-barres. Il est l'ancêtre du lecteur de code QR.

Tout d'abord implémentés sous la forme de crayons optiques avec lesquels l'utilisateur devait manuellement balayer le code à une vitesse aussi constante que possible, ils ont ensuite évolués grâce à l'application de miroirs mobiles, vers des scanners automatiques. D'abord fixes comme on voit encore fréquemment dans les supermarchés, et ensuite vers des version portatives que l'on l'appelle également douchette ou scannette dans le cas de son utilisation courante.

Le principe

Un code-barres code une information numérique sous la forme de barres parallèles fortement contrastées permettant une reconnaissance par une machine avec un taux d'erreurs aussi faible que possible. Il a évolué vers les codes QR (à deux dimensions), dans lesquels les barres sont remplacées par des petits carrés.

Quatre solutions optiques existent pour détecter ces motifs :

  1. la DEL (ou LED) : le mouvement est manuel et le lecteur à la forme d'un gros crayon;
  2. le capteur linéaire à CCD : Il s'agit du précurseur à une dimension de la caméra CCD. le lecteur capte tout le code-barres sans mouvement de l'utilisateur mais nécessite d'être correctement alligné avec celui-ci;
  3. différentes formes plus au moins complexes de scanners laser : le mouvement automatique de balayage du rayon ( miroir rotatif ou oscillant) va parcourir toute la largeur du code-barres. Le parcours du rayon peut aller de la forme d'un simple balayage linéaire (dans les douchettes les plus simples), à une séquence complexe de segments linéaires sous des angles différents permettant à l'opérateur de gagner du temps en évitant de devoir se préoccuper de l'orientation sous laquelle il présente le code barre (C'est généralement le mécanisme qu'on observe dans les scanners fixes, aux caisses des grands magasins).
  4. la caméra CCD : capteur identique à ceux des appareils photo numériques, muni d'une optique et d'un éclairage adaptés à la lecture de code-barres ; C'est la principale solution permettant la lecture des codes 2D (on peut également traiter les codes 2D, au moyen d'un balayage laser suffisamment serré, mais la démocratisation des caméra CCD en fait une solution plus économique).

De façon générale, les dispositifs à balayage (1 et 3) fonctionnent en parcourant le code barre au moyen d'un point lumineux qui est reflété par le code, passe par un dispositif optique permettant de recevoir la lumière réfléchie en limitant au maximum l'influence du faisceau incident (dans le cas du scanner laser, on utilise généralement un miroir semi réfléchissant positionné à 45° de sorte qu'une éventuelle réflexion du faisceau incident sera envoyé dans la direction opposée à celle du capteur); et enfin, la lumière réfléchie est transformée par un capteur ( photodiode ou phototransistor) en un signal électrique qui va devoir être traité électroniquement et puis de façon numérique.

En toute généralité, on ne peut pas considérer que le code est parcouru à vitesse parfaitement constante. Ce n'était clairement déjà pas le cas avec les crayons optiques qui dépendaient du mouvement de l'opérateur; et même si le scanner dispose d'un système de balayage à miroirs rotatif (par exemple un polygone régulier dont chaque face est un miroir), c'est la rotation de l'angle du faisceau qui est constante, mais pas la vitesse à laquelle le faisceau parcours le code barre (qui est une fonction trigonométrique - et donc, non linéaire - de l'angle). Dans le cas des système à miroir oscillant, c'est encore moins le cas, parce que l'inertie du miroir fait qu'il doit ralentir à l'extrémité de sa course avant de repartir dans l'autre sens. De plus, même si l'angle parcouru par le faisceau était suffisamment petit pour qu'on puisse considérer que le rapport entre l'angle et la position sur le code soit quasi linéaire, il y a encore une déformation possible parce que le code barre lui-même n'est souvent pas plan (il peut être apposé sur une boite à conserve ou sur un emballage mou, comme un sachet plastique). Et même si le code barre était plan, il se produit un effet de perspective s'il n'est pas présenté de façon suffisamment perpendiculaire au lecteur. Le seul moyen de garantir une vitesse exactement constante, serait d'avoir des codes barre plats et un faisceau qui se déplace parallèlement à vitesse constante, mais c'est techniquement plus complexe à réaliser, et ça n'est pas nécessaire.

Dans le cas où malgré tout le code est parcouru à vitesse approximativement constante, on pourrait alors considérer que l'erreur éventuelle est trop petite pour induire un décalage suffisant pour présenter un risque d'erreur sur la longueur. En clair, cela signifie que si on mesure la largeur de la première barre et qu'on vise ensuite le milieu des intervalles suivants, les écarts cumulés entre le début et la fin du code barre sont insuffisants pour induire des erreurs. Dans le cas général où cette vitesse constante ne peut être garantie, par contre, on doit alors mettre en place un dispositif électronique de resynchronisation, qui va détecter toutes les transitions, pour se resynchroniser dessus et produire une sortie binaire normalisée.

Il alors encore la question du sens de lecture qui doit alors être contrôlé au moyen d'informations de détrompage incluses dans la structure du code.

Pour les codes 2D, tous ces problèmes se posent à l'identique, mais s'y ajoutent en plus le fait que le code n'est quasiment jamais présenté "droit" par rapport à la "matrice de détection" (les pixels de la caméra CCD). Et donc, il contient également des informations de détrompage (les carrés qu'on peut observer aux coins des codes QR, par exemple) permettant de remettre l'image droite avant le traitement.

Other Languages