Projet DataMatrix
- Description d'un datamatrix :
Un DataMatrix est une petite image en noir et blanc qui contient une information codée. Le principe est d'utiliser des informations numériques qui sont représentées en deux dimensions. Un appareil tel qu'un smartphone peut décoder l'information avec une application dédiée comme l'application gratuite "Flashcode" par exemple. Les DataMatrix font l’objet de plusieurs normes dont la norme ISO/IEC 16022. Ils permettent de coder les caractères alphanumériques ( les lettres et les chiffres); vous pouvez, par exemple, coder une carte de visite avec un dataMatrix. Voici l'apparence d'un dataMatrix:
Le DataMatrix est composé d’une marge pour que le lecteur puisse se repérer, et d’une matrice ( un tableau à 2 dimensions) permettant d’y insérer les données sous forme de code :
- Rappel du codage d'un dataMatrix
La matrice d’un DataMatrix comporte des nombres binaires appelés "CodeWords" ( mots codés en Anglais). Chaque CodeWord correspond à une information sur 8 bits (1 octet).
Les CodeWords sont placés dans la matrice binaire selon un procédé décrit par la norme ISO/IEC 16022.
Voici comment sont disposés les CodeWords dans une matrice 8*8 bits:
- Comment lire la matrice:
Analysons un nombre binaire de 8 bits: 1010 0100, ce nombre binaire possède son MSB=1 ( le bit de poids fort=1) et son LSB=0 ( son bit de poids faible=0). Si on veut associer ce nombre à un "CodeWord", on place chaque bit à son emplacement pour le CodeWord choisi. Pour le CodeWord numéro 2 ( celui entouré ci-dessus), les emplacements sont repérés: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7 et 2.8. Le bit de poids fort doit être placé en "2.1" et le bit de poids faible en "2.8", l'affectation du nombre binaire précédent sera donc 2.1=1, 2.2=0, 2.3=1, 2.4=0, 2.5=0, 2.6=1, 2.7=0 et 2.8=0.
Dans le DataMatrix, on n'écrit pas les 1 et les 0, on utilise la couleur noire pour un bit = 1 et la couleur blanche pour un bit =0, voici le résultat (entouré en rouge ci-dessous) pour l'octet précédent placé dans le codeword2
- Cahier des charges ( définition) du projet
Dans ce projet, que vous réaliserez en groupe de deux, vous allez concevoir un logiciel écrit en python qui génère un datamatrix ( ici une matrice de 64 bits pour des "codeword" sur deux chiffres, comme au premier trimestre )
Le logiciel devra proposer une fenêtre ( une interface graphique réalisée avec Tkinter cliquez ici ) qui permettra à l'utilisateur de fournir les nombres à encoder puis d'obtenir dans la fenêtre de l'interface la matrice correspondante.
Vous devrez vous répartir les tâches de manière équitable ( chaque membre devra avoir à gérer une partie de l'interface graphique et des algorithmes à produire)
Vous devez évaluer les difficultés et prévoir un calendrier prévisionnel afin de:
- Dessiner l'interface avec Tkinter ( vous utiliserez des objets entry (des champs de saisie) pour récupérer les valeurs à associer aux codewords.
Voir exemples dans la partie ressources
- Ecrire le programme qui récupère les données à coder dans les champs de saisie, détermine la valeur des codewords puis copie la valeur binaire de chaque codeword dans une liste.
- Ecrire le programme qui dessine une matrice vide dans un canvas
- Ecrire le programme qui dessine la matrice à partir de la liste qui contient les valeurs binaires de chaque codeword.
- Etablir un dossier dans lequel vous mettrez:
- La répartition des tâches et le calendrier prévisionnel ( 6h max accordé).
- Les productions logicielles avec explication du code.
- Présenter le projet au professeur.
Créé avec HelpNDoc Personal Edition: Documentation Qt Help facile