9.2
Objectif
Écrire un programme Flowcode qui :
•
détecter la présence d'un transpondeur ICODE particulier ;
•
lire l'UID du transpondeur ;
•
lire les données du bloc 5 de la mémoire du transpondeur ;
•
afficher les 4 octets de données obtenus à partir du bloc 5 sur l'écran LCD.
9.3
Exigences
Cet exercice nécessite les éléments suivants (voir section 5.2 informations de configuration) :
•
un microcontrôleur, soit le PIC BL0011, soit l'Arduino Uno BL0055
•
une copie de Flowcode, version 8 ou ultérieure, fonctionnant sur le PC
•
un E-blocks2 RFID (BL0197) avec un module de lecture RWD-MICODE
•
une LED E-blocks2 (BL0167)
•
un LCD E-blocks2 (BL0169)
•
un transpondeur RFID ICODE (plusieurs si possible - notez les UID)
9.4
Le programme Flowcode en détail sur
Le programme comprendra :
•
accéder à l'octet d'état du module de lecture à l'aide de la fonction Initialiser ;
•
vérifier qu'un transpondeur a été détecté et qu'il n'y a pas d'erreur, en utilisant la fonction GetRFIDUID ;
•
copier les données du bloc 5 de la mémoire de données du transpondeur dans la mémoire tampon du module de lecture, à l'aide de la fonction
ReadRFIDBlock ;
•
afficher chacun des quatre octets de données, à tour de rôle, sur l'écran LCD, en utilisant la fonction ReadRFIDBuffer ;
•
revenir en arrière et répéter le processus.
9.4.1
Fonction ReadRFIDBlock
La fonction ReadRFIDBlock permet au module de lecture de renvoyer son octet d'état et le bloc de données de 4 octets d'un transpondeur, s'il est disponible. Si
aucun transpondeur n'est disponible, si l'UID fourni est incorrect ou s'il y a une erreur, l'octet d'état reflétera cette situation et aucun bloc de données ne sera
renvoyé.
Données transférées entre le contrôleur hôte et le module de lecture par cette fonction :
Envoyer
Envoyer
Envoyer
Recevoir
Si la valeur d'état indique qu'aucun transpondeur n'est disponible ou qu'il y a une erreur, la commande se termine ici.
Lorsqu'un transpondeur est disponible et qu'il n'y a pas d'erreur, les données du bloc mémoire sont renvoyées dans la mémoire du module de lecture.
Recevoir
Recevoir
'R'
<adresse du bloc>
<UID0>
Envoyer les huit octets de l'UID
|
<UID7>
<état>
<data0>
Réception de quatre octets de données.
|
<data3>
Caractère ASCII (valeur décimale= 82). Envoyer
0 à 27
25