Codage de l'information

Codes à barres 1D

Un code à barres 1D est une succession de barres verticales et d'espaces, qui permettent de coder une information, dans la zone de données (voir ci-contre), de type caractères alphanumériques.

Il existe différents systèmes de code, permettant de coder des jeux de caractères définis et avec des domaines d'application distincts:

  • UPC/EAN/JAN:

    Codage des chiffres, de 0 à 9, uniquement. Système de code utilisé dans le domaine de la distribution, commun à 60 pays, et qui couvre environ 90% des besoins quotidiens en matière de codage.

  • CODE39:

    Codage des chiffres (de 0 à 9), des symboles (-, espace, $, /, +, %, .), et de l'alphabet (de A à Z). Système de code utilisé dans les domaines techniques (Automobile, Electrique, ...). Les caractères de départ et de fin sont une étoile (*).


Constitution d'un code à barres

Principe de lecture

Il existe deux catégories de lecteurs de codes à barres, les lecteurs à laser et les lecteurs à CCD (type de capteur d'images présent dans les caméras).

Les lecteurs à laser permettent une lecture à grande distance ainsi que pour des objets en mouvement, alors que les lecteurs à CCD sont plus compacts, peu onéreux, et ont une durée de vie importante en raison de l'absence de moteur.


Constitution d'un lecteur à laser


Le principe de lecture des lecteurs à laser est:

  1. Le faisceau laser, émis par la diode laser, est réfléchi par le miroir polygonal en rotation, et balaie le code-barre.
  2. La lumière réfléchie est captée par l’élément récepteur (Photo transistor).
  3. La forme de l’onde du faisceau lumineux réfléchie est représentée, voir dans l’illustration ci-contre, comme un signal analogique.
  4. L’onde subit une conversion A/N (Analogique/Numérique) afin de pouvoir délimiter clairement les deux types de zones (espace et barre).
  5. La largeur de chaque barre et de chaque espace est déterminée à partir du signal numérique.
  6. Ces données sont décodées. La série de barres et d’espaces est lue conformément à un système de code, puis les données sont envoyées en sortie par un connecteur.

Principe de lecture des lecteurs à laser

Exercice 1, décodage d'un code à barres

Le ticket dans la photo ci-contre est un billet d'entrée pour un planétarium qui s'appelle "La porte des étoiles".

On va maintenant s'intéresser au code à barres contenu dans le ticket.



Question 1:

Donnez, en justifiant votre réponse, le nom du système de code qui correspond au code à barres présent sur le ticket:

Question 2:

La photo ci-dessous est un agrandissement du code à barres du ticket:



On représente une bande étroite, blanche ou noire, par la lettre "E", et une bande large, blanche ou noire, par la lettre "L". Dans le code à barres, chaque chiffre est séparé du suivant par une bande étroite blanche.

Complétez le tableau suivant en décodant le code à barres du ticket:

Codes4EEELLEEEL (non présent dans le code)
*ELEELELEE5
0EEELLELEE6EELLLEEEE
1
7EEELEELEL (non présent dans le code)
2EELLEEEEL8LEELEELEE (non présent dans le code)
3
9EELLEELEE (non présent dans le code)

Question 3:

Le capture d'écran, ci-dessous, contient la forme d'un signal, acquis par un lecteur de codes à barres, après la conversion analgique/numérique:



Complétez le tableau suivant:

Donnéesb7b6b5b4b3b2b1b0
Valeurs binaires
Valeurs hexadécimales

L'ASCII, code américain normalisé pour l'échange d'information, est une norme informatique de codage de caractères.

Dans sa version standard, l'ASCII permet d'associer 8 bits avec des caractères de contrôle (retour à la ligne, fin de ligne, ...), des lettres (minuscules et majuscules), des chiffres, et de caractères spéciaux (@, +, -, =, ...). En effet, les systèmes numériques ne connaissent, de base, que le 0 et le 1.

Pour coder la lettre "n", par exemple, dans un système numérique qui utilise l'ASCII, il faut écrire 110 11102 = 6E16 dans la mémoire du système. Pour comprendre cela, il faut voir que la lettre "n" est située à la ligne (quartet de poids fort) 616 et à la colonne (quartet de poids faible) E16.



Quel est le caractère qui correspond au signal, ci-dessus, acquis par un lecteur de codes à barres:

Exercice 2, création d'un code à barres personnel

Cliquez sur l'image ci-contre et, dans le nouveau site qui s'ouvre, effectuez les actions suivantes:

  1. Sélectionnez le système de code: Codes linéaires/Code-39,
  2. Ecrivez, en majuscule, votre Nom et Prénom,
  3. Cliquez sur "Rafraîchir",
  4. Téléchargez votre code à barres personnel et convertissez-le, en utilisant le logiciel Paint, au format JPEG.


Enregistrez le fichier JPEG contenant votre code à barre personnel.

Codes à barres 2D: Data Matrix

Un code Data Matrix est une image composée d'un damier, avec des carrés noirs ou blancs, et permettant d'encoder des caractères alphabétiques ou des chiffres.

Sa taille peut aller de 10×10 à 144×144 carrés (bordure incluse). Il peut contenir jusqu'à 3116 chiffres, ou 2335 chiffres et lettres.


Un Data Matrix sur une puce électronique

Décodage d'un code Data Matrix

Un Data Matrix se compose d'une bordure qui permet de le lire dans n'importe quelle direction, et d'une zone de données.


Structure d'un Data Matrix


La zone de données d'un Data Matrix se compose de deux sous zones:

  • La sous zone des données, en jaune dans l'image ci-contre, codées pour les besoins des utilisateurs,
  • La sous zone des codes de Reed-Solomon, en vert dans l'image ci-contre, qui permettent de corriger les erreurs de lecture (code en partie effacé, ...).

zone de données d'un Data Matrix de 10×10


Un Data Matrix de 10×10 est composé de 8 codewords, voir l'image ci-contre, qui servent pour le codage des données et des codes de Reed-Solomon.

Un codeword contient 8 bits, donc 1 octet, numérotés de 1 à 8.

Les bits des codewords sont repérés par deux chiffres. Le bit en haut à gauche, dans le Data Matrix ci-contre, est repéré par "2.1". Il s'agit du bit de poids fort (MSB) du codeword n°2. Donc les bits, du poids fort au poids faible, du codeword n°2 sont: "2.1", "2.2", "2.3", "2.4", "4.5", "2.6", "2.7", "2.8".


codewords


Nous allons maintenant décoder le codeword n°1 du Data Matrix incomplet ci-contre.

Pour commencer, il faut savoir que si la zone carrée du bit est de couleur blanche, la valeur associée est "0", et si elle est noire, la valeur associée est "1".

Ensuite, il faut utiliser le tableau suivant:

Valeur décimale du codewordDonnées décodées
1 - 128Caractère ASCII (Soustraire 1 à la valeur et consulter la table ASCII)
129Caractère blanc
130 - 229Nombre à deux chiffres de 0 à 99 (nombre = valeur du codeword - 130)

Donc: codeword n°1 = 100010102 = 13810. D'après le tableau, ci-dessus, il s'agit d'un nombre qui vaut: 138 - 130 = 8.



Exercice 1, décodage d'un Data Matrix

Le but de l'exercice est de décoder le mot contenu dans le Data Matrix ci-contre.

La taille du Data Matrix est 10×10.



Question 1:

Complétez, la vérification se fera à la question suivante, le tableau suivant:

Valeur binaire du codewordValeur décimale du codewordCaractère décodé
codeword n°1:
codeword n°2:
codeword n°3:

Question 2:

Cliquez sur l'image ci-contre et, dans le nouveau site qui s'ouvre, effectuez les actions suivantes:

  1. Sélectionnez le système de code: Codes-barres en 2D/Data Matrix,
  2. Saisissez le mot composé des caractères décodés à la question 1,
  3. Cliquez sur le bouton rafraîchir,
  4. Vérifiez que le Data Matrix obtenu correspond bien à celui de l'exercice, et dans le cas contraire refaites la question 1.


Exercice 2, création d'un Data Matrix:

Nous souhaitons trier automatiquement des déchets, pour le recyclage, en utilisant des codes Data Matrix.

Pour identifier les différents types de plastique (PETE, HDPE, PVC, LDPE, PP, PS, ou OTHER), on utilise les mots (PL1, PL2, PL3, PL4, PL5, PL6, et PL7).

Le but de l'exercice est de créer un Data Matrix contenant le mot: PL2.

Faites un clic droit sur l'image ci-contre, puis sélectionnez "Enregistrer l'image sous...", et sauvegardez-la dans votre espace de travail.



Question 1:

Complétez le tableau suivant:

Caractère à codéValeur décimale du codewordValeur binaire du codeword
codeword n°1:P
codeword n°2:L
codeword n°3:2

Question 2:

Lancez le logiciel Paint, puis ouvrez le Data Matrix vide téléchargé au début de l'exercice, et coloriez les bits des codewords n°1, n°2, et n°3 en fonction des résultats trouvés à la question précédente. La zone des codes de Reed-Solomon doit être laissée vide.

Enregistrez votre Data Matrix.

(cc) j. ahmad - Education Nationale - 2020