Blog

Un module RFID pour Blockly@arduino

13 avril 2017 - 17:47

Ayant décidé de proposer à mes élèves de collège une activité autour de la technologie sans contact et plus particulièrement la technologie RFID, j'avais besoin d'une solution de programmation par blocs adaptée.

Avant de rentrer dans le vif du sujet, un petit point sur le matériel. Pour cette activité, j'utilise des cartes Arduino UNO, divers composants (LED, résistance, servomoteur...) et le module RFID-RC522. Ce dernier coûte en général moins de 10€ et est livré avec une carte et un badge d'identification. Attention cependant, il est livré avec des pins non soudées ! Pas de panique, deux modèles de pins sont proposés dans le kit et il faudra tout d'abord en souder un si vous voulez utiliser le module.

Voici tout d'abord le câblage à minima qui nous permettra de tester la lecture du tag de la carte ou du badge.

Montage du module RFID avec la carte Arduino

Avant de pouvoir programmer la carte, nous devons télécharger les librairies nécessaires au fonctionnement du module RFID.

Lien vers les librairies

Pour installer les librairies, il faut tout d'abord ouvrir le logiciel Arduino. Une fois lancé, il faut se rendre dans Fichier > Préférences puis trouver l'emplacement du carnet de croquis.

Préférences du logiciel Arduino

Par défaut, ce doit être :

  • Sous Windows -> C:\Users\greich\Documents\Arduino
  • Sous Mac -> /Users/greich/Documents/Arduino
  • Sous Linux -> /home/greich/Arduino

Se rendre à l'emplacement du carnet de croquis et y copier les 2 dossiers contenus dans l'archive que vous avez téléchargé plus haut.

Si on cherche sur Internet, on trouve différents exemples de codes dans le langage de programmation d'Arduino mais pas d'exemples avec des blocs de programmation. Partant de ce constat, j"ai développé un ensemble de blocs pour la plateforme libre Blockly@rduino que j'utilise avec mes élèves (et sur ce site). En voici le résultat :

Lecture du tag RFID

Programme pour la lecture du tag RFID

Un peu d'explications. On définit tout d'abord les pins de la carte Arduino associées aux pins du module RFID.

  • SDA -> Pin 10
  • SCK -> Pin 13
  • MOSI -> Pin 11
  • MISO -> Pin 12
  • RST -> Pin 9

On fixe la vitesse du port série que l'on va utiliser pour lire les tags RFID présentés devant notre module.

Ensuite : Si on détecte une carte (ou un badge), on vérifie qu'on reçoit un tag. Si c'est bien le cas, on lit ce tag et on l'envoie ensuite sur le port série. Ceci terminé, on ferme la connexion ouverte entre le module RFID et la carte (ou le badge).

Pour voir les informations envoyées sur le port série, il faut avoir ouvert le logiciel Arduino et Outils > Moniteur série lorsque la carte Arduino est reliée à l'ordinateur à l'aide d'un câble USB.

Contrôler l'accès à l'aide d'un tag RFID

Maintenant que nous connaissons au moins un tag, nous allons pouvoir ajouter d'autres composants à notre montage afin de permettre à la carte Arduino d'agir en fonction du tag reçu.

Je propose ici un exemple simple où on allume une LED verte lorsque le tag reçu est correct et une LED rouge dans le cas contraire.

Montage pour l'interprétation du tag RFID

Programme pour l'interprétation du tag RFID

Le programme ressemble beaucoup au précédent mais je vais quand même le réexpliquer dans son ensemble.

On définit tout d'abord les pins de la carte Arduino associées aux pins du module RFID. On définit également le tag que l'on veut autorisé (celui de notre carte/badge lu précédemment).

Ensuite : Si on détecte une carte (ou un badge), on vérifie qu'on reçoit un tag. Si c'est bien le cas, on lit ce tag. Si le tag correspond à celui que l'on a défini au départ, on allume la LED sur la pin 2 (LED verte) sinon on allume la LED sur la pin 3 (LED rouge). Ceci terminé, on ferme la connexion ouverte entre le module RFID et la carte (ou le badge).

 

Pour conclure, sachez que pour l'instant ce module RFID pour Blockly@rduino n'est disponible que sur ce site dans Services > Blockly@rduino car il est encore en phase de test. Il sera peut-être encore un peu amélioré d'ici son intégration au code du projet.

Pour l'utiliser, il faut se rendre dans Configurer les blocs puis Arduino pour confirmés dans le menu déroulant, cocher RFID dans la liste et valider. Le module RFID sera désormais disponible dans les différents blocs affichés dans le menu à gauche.