La technologie RFID (radio frequency identification) permet de lire une petite quantité d'information contenue dans des puces électroniques sans contact direct. Ces puces sont fréquemment placées dans des étiquettes, cartes ou badges et permettent entre autres d'identifier des colis, contrôler les accès à des bâtiments, localiser des objets, animaux, etc... Un cas particulier de RFID est appelé NFC (near field communication) et garantit les caractéristiques suivantes : - les puces sont passives et peuvent être lues sans être alimentées (pas besoin de mettre une pile dans l'étiquette). - elles ne fonctionnent que sur une portée courte, il faut placer le lecteur (téléphone, shield, ...) moins de dix centimètres. - elles peuvent être lues mais également réécrites. L'idée était ici de se servir de ce principe pour tenter de réaliser des "graffitis virtuels" en collant des étiquettes pré-programmées sur les murs. Le message contenu dans les étiquettes peut ensuite être lu par certains téléphones (il existe pour cela des applications de lecture NFC). Les marqueurs que nous utilisions possèdent 1ko de mémoire, dont une large partie est réservée à réguler son fonctionnement plutôt qu'aux données enregistrées. Les textes fournis par les élèves auront ainsi eu pour contrainte de ne pas dépasser les 500 caractères (espace approximatif réservé aux données proprement dites). De par la facilité de réécriture sur les marqueurs, le contenu d'une étiquette pourra être modifié par quiconque possède un outil adéquat à sa réécriture. Afin d'écrire sur les marqueurs, nous avons utilisé des cartes Arduino munies de shields NFC, un outil programmable que l'on peut brancher en USB à un ordinateur. La mémoire de la puce est divisée en 16 blocs dont 15 nous seront utilisables, les derniers 16 octets de chacun d'entre eux servent à stocker des clefs de contrôle. Dans notre cas l'espace restant est formaté selon une norme appelée NDEF (NFC Data Exchange Format). Elle permet, par exemple, d'indiquer que les "morceaux" d'information enregistrés contiennent une adresse internet et de ne spécifier que la partie utile (les premiers caractères étant alors systématiquement "http://www."). Nous avons utilisé l'identifiant correspondant à un contenu "plain text" sans préfixe particulier. Un problème fut alors rencontré : la librairie en l'étant ne gérait pas l'ajout de plusieurs "morceaux" sur plusieurs blocs. Face à cette difficulté, plusieurs solutions ont été envisagées : - Utiliser un téléphone et une application existante pour écrire sur les cartes. - Se limiter à des textes contenus dans un seul tag NDEF et un seul bloc. - Insister sur l'utilisation d'Arduino et trouver un compromis quitte à modifier légèrement la librairie. Une combinaison de détails pratiques et d'une volonté de montrer aux élèves le fonctionnement des marqueurs au plus bas niveau nous ont amené à nous concentrer sur la troisième solution. Nous disposions d'assez de temps pour gérer la disposition du texte sur plusieurs blocs mais pas pour garantir le bon formatage des informations NDEF, nous avons donc arbitrairement placé 36 caractères sur chaque bloc avec les mêmes identifiants sans garantie que les blocs 2 à 15 soient interprétés correctement par un autre lecteur que le notre.