Modifications

Sauter à la navigation Sauter à la recherche
1 920 octets ajoutés ,  22 novembre 2015 à 21:05
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{PN532-RFID-NFC-NAV}}
 
{{PN532-RFID-NFC-NAV}}
   −
{{traduction}}
   
== Puis-je avoir plusieurs shield sur un Arduino? ==
 
== Puis-je avoir plusieurs shield sur un Arduino? ==
 
{{bloc-etroit|text=Non, la bibliothèque I2C peut uniquement utiliser une adresse par bus I2C et cette adresse n'est pas adjustable! Par conséquent, seul un shield NFC peut être utilisé par Arduino!}}
 
{{bloc-etroit|text=Non, la bibliothèque I2C peut uniquement utiliser une adresse par bus I2C et cette adresse n'est pas adjustable! Par conséquent, seul un shield NFC peut être utilisé par Arduino!}}
Ligne 11 : Ligne 10 :     
Par exemple, les fonctions clés dans la [https://github.com/adafruit/Adafruit_NFCShield_I2C bibliothèque I2C d'Adafruit] (bibliothèque développée pour le {{pl|101|shield NFC d'Adafruit}} puisqu'il fonctionne en I2C par défaut) sont:
 
Par exemple, les fonctions clés dans la [https://github.com/adafruit/Adafruit_NFCShield_I2C bibliothèque I2C d'Adafruit] (bibliothèque développée pour le {{pl|101|shield NFC d'Adafruit}} puisqu'il fonctionne en I2C par défaut) sont:
 
+
}}
 
  <nowiki>uint8_t mifareclassic_AuthenticateBlock (uint8_t * uid, uint8_t uidLen,
 
  <nowiki>uint8_t mifareclassic_AuthenticateBlock (uint8_t * uid, uint8_t uidLen,
 
                                         uint32_t blockNumber, uint8_t keyNumber,
 
                                         uint32_t blockNumber, uint8_t keyNumber,
Ligne 18 : Ligne 17 :  
uint8_t mifareclassic_WriteDataBlock (uint8_t blockNumber, uint8_t * data);</nowiki>
 
uint8_t mifareclassic_WriteDataBlock (uint8_t blockNumber, uint8_t * data);</nowiki>
   −
C'est tout ce dont vous avez besoin pour commencer à lire et écrire vos données... et vous pouvez vérifier vos données en utilisant l'une des nombreuses applications Android qui sont capable de fonctionner avec les cartes Mifare ('''une recherche sur "nfc" vous proposera plein d'application''').  
+
C'est tout ce dont vous avez besoin pour commencer à lire et écrire vos données... et vous pouvez vérifier vos données en utilisant l'une des nombreuses applications Android qui sont capable de fonctionner avec les cartes Mifare ('''une recherche sur "nfc" vous proposera plein d'application''').
}}
      
== Quel est le niveau de support NDEF est inclus dans la bibliothèque? ==
 
== Quel est le niveau de support NDEF est inclus dans la bibliothèque? ==
Pour l'instant, toutes les fonctionnalités [http://learn.adafruit.com/adafruit-pn532-rfid-nfc/ndef NDEF]] restent incomplètes et expérimental. Seul un code de test de base à été écrit pour formater une carte destinée à recevoir des messages NDEF de sorte que de nombreux téléphone Android supportant NFC soient capable de les interpréter. Ce programme de formatage est une façon simple mais très efficace pour réaliser une démonstration de faisabilité (''proof of concept'.
+
Pour l'instant, toutes les fonctionnalités [http://learn.adafruit.com/adafruit-pn532-rfid-nfc/ndef NDEF] restent incomplètes et expérimental. Seul un code de test de base à été écrit pour formater une carte destinée à recevoir des messages NDEF de sorte que de nombreux téléphone Android supportant NFC soient capable de les interpréter. Ce programme de formatage est une façon simple mais très efficace pour réaliser une démonstration de faisabilité (''proof of concept'').
   −
{{traduction}}
+
Adafruit voudrait améliorer le support NDEF dans le future pour les tags Mifare, il y a quelques planifications prévue sur ces tâches mais '''pour le moment, Adafruit propose de stocker du contenu texte pure''' et faire des lectures/écritures en suivant le standard original de [http://learn.adafruit.com/adafruit-pn532-rfid-nfc/mifare Mifare Classic]. Vous pouvez lire et écrire des blocs Mifare Classic et Mifare Ultralight depuis un Android, et vous n'avez pas besoin d'utiliser de format standard NDEF plus compliqué pour échanger des données dans les deux sens via une carte Mifare Classic ou Ultralight.
   −
We would like to improve NDEF support for Mifare tags in the near future and some initial planning has gone into this, but at the moment our suggestion is to stick to plain text and 'vanilla' [http://learn.adafruit.com/adafruit-pn532-rfid-nfc/mifare Mifare Classic] reads and writes. You can read and write Mifare Classic and Mifare Ultralight blocks from Android, and you don't need to used the more complicated NDEF standard to simply pass data back and forth via a Mifare Classic or Ultralight card.
+
{{ambox-stop|text=Note: Utilisez les codes NDEF avec précaution. Formater une carte pour supporter NDEF est une opération à sens unique (irréversible), et devrait uniquement être réaliséé sur des cartes dédiées à l'usage NDEF.}}
   −
{{ambox-stop|text=Note: Please use the limited NDEF code with care. Formatting cards for NDEF support is currently a one way operation, and should only be performed on cards you can dedicate to NDEF use.}}
+
== Est ce que le PN532 supporte la communication 'peer to peer' autorisant le dialogue avec mon smartphone? ==
 +
Oui, le PN532 supporte la communication 'peer to peer' mais le support logiciel de cette fonctionnalité logiciel n'est pas implémenté dans la bibliothèque Adafruit.
   −
== Does the PN532 support peer to peer communication to talk with my smartphone? ==
+
La communication 'Peer to peer' avec Android est possible, par exemple, mais l'implémentation logiciel côté PN532 est vraiment compliquée. Vous aurez besoin de passer au travers de nombreux couches logicielles pour communiquer avec un Android (de sorte qu'il puisse le comprendre) -- cela nécessite le développement d'une stack/pile NDEF au complet pour les messages ainsi que des piles SNEP et LLCP, etc. -- l'étendue de ce type de développement va bien au delà de ce que peut offrir Adafruit pour la gamme de prix auquel est offert le matériel PN532.
Yes, the PN532 supports peer to peer communication, but the SW support for this isn't implemented in the Adafruit libraries.
     −
Peer to peer communication with Android is possible, for example, but the actual implementation is quite complicated on the PN532 side. You need to go through a lot of SW layers to communicate with Android in a way that it understands -- it would require developing a full NDEF stack for the messages, SNEP and LLCP stacks, etc. -- which is unfortunately well beyond the scope of what we can offer on a development board at this price point.
+
Toutes les spécifications matérielles nécessaires pour réaliser cette implémentation 'peer to peer' est offert/supporté par le {{pl|101|shield PN532}} et le {{pl|528|breakout board PN532}} d'Adafruit. Cependant, produire/développer la pile logiciel n'est pas une opération triviale et augmenterait dramatiquement le prix des cartes PN532 si Adafruit devait réaliser une telle implémentation.
   −
All of the HW requirements for this are met with the Adafruit shield and breakout board, but the stack implementation is non trivial and would require us to charge a significant premium for these boards if we implemented this.
+
Adafruit à concentré ses ressources pour produire un matériel de référence fiable, éprouvé, mise au point ainsi qu'un block logiciel permettant à tout un chacun de débuter. Il reste cependant de nombreux points (trous) à combler pour couvrir toutes les fonctionnalitées prévue par NFC (et réalisable avec cette carte de développement). La combinaison matériel et logiciel proposée avec les cartes PN532 d'Adafruit restant dans un rapport qualité/prix très avantageux.
   −
We've focused our energy on providing a reliable, proven, properly-tuned HW reference, and enough of a SW building block to get everyone started, but there are too many holes to fill in to cover everything NFC can do with a development board at this price point.
+
Pour un exemple de communication avec un téléphone via NFC, nous vous proposons de consulter "[http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/ Talking With Your Arduino via NFC on Blackberry]" qui utilise un {{pl|101|shield NFC Adafruit}}. Les couches logicielles nécessaire pour une communication P2P basée sur NFC pour les périphériques Blackberry sont visiblement moins complexes que pour un Android.
   −
For an example of communicating with a phone via NFC, though, have a look at "[http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/ Talking With Your Arduino via NFC on Blackberry]" which uses the Adafruit NFC Shield. The SW layers required for NFC-based P2P communication with a Blackberry device are apparently much lower than on Android.
+
== Est-ce que le PN532 supporte l'émulation de tags? ==
 +
Oui mais dans la réalité, cela est impossible , car cela nécessaire un '[http://nearfieldcommunication.com/developers/nfc-architecture/ secure element]' exterbe qu'il est vraiment difficile de se fournir (sous contrôle d'exportation et NDA--Non Disclosure Agreement--- chez quelques rares fabriquants).
   −
== Does the PN532 support tag emulation? ==
+
== Est ce que le PN532 lit les Tag-It provenant de TI? ==
Yes, but in reality it's impossible to implement since it requires an external '[http://nearfieldcommunication.com/developers/nfc-architecture/ secure element]' that is very difficult to source (under export control and general NDA from the few manufacturers of them). If you can get one we'd love to see it, though!
+
Non. Le PN532 est conçu pour être utilisé avec des tags [http://en.wikipedia.org/wiki/ISO/IEC_14443 ISO14443], le tag Mifare Classic étant probablement le type de tag (d'usage général) le plus couramment utilisé. Pour plus d'informations sur les tags supportés, référez vous à la documentation [http://www.libnfc.org/documentation/hardware/tags/iso14443 http://www.libnfc.org/documentation/hardware/tags/iso14443] ou recherchez des informations sur la famille des tags MiFare répondant à la norme ISO1443A.
   −
== Can the PN532 read Tag-It tags from TI? ==
+
== Puis-je fixer le délais pour appeler readPassiveTargetID()? ==
No. The PN532 is designed to be used with [http://en.wikipedia.org/wiki/ISO/IEC_14443 ISO14443] tags, with Mifare Classic probably the most common general-purpose tag type in use. For more information on supported tags see [http://www.libnfc.org/documentation/hardware/tags/iso14443 http://www.libnfc.org/documentation/hardware/tags/iso14443] or search for information on the common Mifare tag family based on ISO1443A.
+
Note: cette question ne concerne que la [https://github.com/adafruit/Adafruit_NFCShield_I2C bibliothèque NFC Shield en I2C]. La [https://github.com/adafruit/Adafruit-PN532 bibliothèque SPI] ne gère pas le temps de la même façon.
{{PN532-RFID-NFC-TRAILER}}
     −
== Can I set a delay calling readPassiveTargetID()? ==
+
readPassiveTargetID() attend intentionnellement un certain temps (délais bloquant) jusqu'à ce qu'une carte entre dans le champs magnétique du lecteur. La raison de ce délai bloquant est d'assurer un flux commande/réponse" correctement traité. Une fois que le champs magnétique est activé et qu'une requête de lecture est envoyée via {{fname|readPassiveTargetID}}, vous pouvez continuer a envoyer de nouvelle commande sur le PN532, mais au moment où la carte entre dans le champ, le PN532 enverra la réponse à la requête de lecture initiale, même s'il est au milieu d'autres réponses ou activités. Pour éviter d'avoir à déboguer ce fonctionnement relativement complexe au niveau logiciel, un délais bloquant à été mis en oeuvre pour garder le "modèle commande/réponse" aussi clair que possible.
Note: This question only applies to the [https://github.com/adafruit/Adafruit_NFCShield_I2C I2C Library]. The [https://github.com/adafruit/Adafruit-PN532 SPI library] doesn't handle the timing the same way.
     −
readPassiveTargetID() intentionally waits around in a blocking delay until a card enters the magnetic field. The reason for this blocking delay is to ensure a well-understood command/response flow. Once the magnetic field is activated and a read request is sent via readPassiveTargetID, you can keep sending new commands to the PN532, but the moment a card or tag enters the field, the PN532 will send a response to the initial read request, even if it's in the middle of some other response or activity. To avoid having to debug this in SW, a blocking delay was implemented to keep the command/response pattern as clear as possible.
+
Comme solution à cette limitation de "délai bloquant", la fonction {{fname|'''setPassiveActivationRetries(maxRetries)'''}} (''maxRetries'' signifiant ''nombre d'essais max'') à été ajouté à la dernière bibliothèque NFC permettant de mettre en place un ''timeout'' spécifique lors des requêtes de lecture.
   −
As a workaround to this blocking-delay limitation, '''setPassiveActivationRetries(maxRetries)''' was added to the latest NFC libraries to allow you to set a specific timeout after read requests.
+
Par défaut, le PN532 attendra indéfiniment qu'une carte entre dans le champs magnétique du lecteur. En fixant un nombre fixe d'essais  par l'intermédiaire de {{fname|MxRtyPassiveActivation}} (voir ''User Manual'' section 7.3.1 décrivant le registre de configuration '''RFConfiguration''', spécialement CfgItem 5) le PN532 abandonnera les tentatives de lectures après un nombre spécifique d'essais et vous pouvez envoyer de nouvelles commandes sans vous inquiété de faire un gros mélange entre les différentes paquet de réponses RFID. Pour attendre indéfiniment, fixez la laveur de {{fname|MxRtyPassiveActivation}} sur 0xFF. Pour effectuer un ''timeout'' après un certain nombre d'essais, fixez la valeur de {{fname|MxRtyPassiveActivation}} sur n'importe quelle valeur inférieur à 0xFF.
   −
By default, the PN532 will wait forever for a card to enter the field. By specifying a fixed number of retries via '''MxRtyPassiveActivation''' (see UM section 7.3.1 describing the '''RFConfiguration''' register, specifically CfgItem 5) the PN532 will abort the read request after specified number of attempts, and you can safely send new commands without worrying about mixing up response frames. To wait forever, set MxRtyPassiveActivation to 0xFF. To timeout after a fixed number of retries, set MxRtyPassiveActivation to anything less than 0xFF.
+
Exemple de croquis:
 
  −
Example Sketch:
   
  <nowiki>#include <Wire.h>
 
  <nowiki>#include <Wire.h>
 
#include <Adafruit_NFCShield_I2C.h>
 
#include <Adafruit_NFCShield_I2C.h>
    
#define IRQ  (2)
 
#define IRQ  (2)
#define RESET (3)  // Not connected by default on the NFC Shield
+
#define RESET (3)  // Non connectée au NFC shield (par défaut)
    
Adafruit_NFCShield_I2C nfc(IRQ, RESET);
 
Adafruit_NFCShield_I2C nfc(IRQ, RESET);
Ligne 78 : Ligne 73 :  
   }
 
   }
 
    
 
    
   // Got ok data, print it out!
+
   // Obtenir les données et les affichées!
 
   Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX);  
 
   Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX);  
 
   Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);  
 
   Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);  
 
   Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
 
   Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
 
    
 
    
   // Set the max number of retry attempts to read from a card
+
   // Fixer le nombre d'essais MAS pour lire les carte
   // This prevents us from waiting forever for a card, which is
+
   // Cela empeche d'attente infiniement après la lecture d'une carte (qui est
   // the default behaviour of the PN532.
+
   // le fonctionnement par défaut du PN532).
 
   nfc.setPassiveActivationRetries(0xFF);
 
   nfc.setPassiveActivationRetries(0xFF);
 
    
 
    
   // configure board to read RFID tags
+
   // configurer la carte pour lire des tags RFID
 
   nfc.SAMConfig();
 
   nfc.SAMConfig();
 
      
 
      
   Serial.println("Waiting for an ISO14443A card");
+
   Serial.println("Attendre apres une carte ISO14443A");
 
}
 
}
    
void loop(void) {
 
void loop(void) {
 
   boolean success;
 
   boolean success;
   uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID
+
   uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer/Tampon pour stocker le UID retourné
   uint8_t uidLength;                        // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
+
   uint8_t uidLength;                        // Longueur de l'UID (4 ou 7 bytes/octets en fonction du type de carte ISO14443A)
 
    
 
    
   // Wait for an ISO14443A type cards (Mifare, etc.).  When one is found
+
   // Attendre après une carte de type ISO14443A (Mifare, etc.).  Lorsqu'une carte est trouvée
   // 'uid' will be populated with the UID, and uidLength will indicate
+
   // 'uid' est remplis avec l'UID, et uidLength indiquera si nous avons un
   // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
+
   // uid en 4 bytes/octets (Mifare Classic) ou en 7 bytes/octets (Mifare Ultralight)
 
   success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
 
   success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
 
    
 
    
 
   if (success) {
 
   if (success) {
     Serial.println("Found a card!");
+
     Serial.println("Une carte trouvee!");
     Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
+
     Serial.print("Longueur UID: ");Serial.print(uidLength, DEC);Serial.println(" bytes / octets");
     Serial.print("UID Value: ");
+
     Serial.print("Valeur UID: ");
 
     for (uint8_t i=0; i < uidLength; i++)  
 
     for (uint8_t i=0; i < uidLength; i++)  
 
     {
 
     {
Ligne 113 : Ligne 108 :  
     }
 
     }
 
     Serial.println("");
 
     Serial.println("");
     // Wait 1 second before continuing
+
     // Attendre une seconde avant de continuer
 
     delay(1000);
 
     delay(1000);
 
   }
 
   }
 
   else
 
   else
 
   {
 
   {
     // PN532 probably timed out waiting for a card
+
     // PN532 probablement en timeout en attendant une carte
     Serial.println("Timed out waiting for a card");
+
     Serial.println("Timeout pendant l attente d une carte");
 
   }
 
   }
 
}</nowiki>
 
}</nowiki>
   −
== Hey wait ... isn't there something funny with the SVDD pin? ==
+
== Y a t'il quelque-chose de sympa à faire avec la broche SVDD? ==
Indeed, good eye! Unfortunately, both v1.0 and v1.3 of the breakout boards have a problem on the schematic. SVDD is connected directly to VDD, but should be left floating since it is used to power secure modules. This has no effect on the functionality of the boards, but does cause some extra current to be drawn. It will be fixed on the next revision of the board, but if you require the use of the secure modules (rare), you can simply cut the trace to the left of C22, which is the cap connected to SVDD (just follow the trace straight up from pin 37).
+
Vous avez de bon yeux! malheureusement les version v1.0 et v1.3 de la carte breakout ont un problème de conception. SVDD est connecté directement sur VDD mais devrait être laissé flottante puisqu'elle est utilisée pour ''alimenter'' le module de sécurité.  
 +
 
 +
Cela n'a aucun effet sur les fonctionnalités de la carte, mais cause une consommation de courant supplémentaire. Ce point sera fixé à la prochaine révision de la carte mais si vous avez besoin d'utiliser le module de sécurité (rare), vous pouvez simplement couper la trace sur la gauche de C22 qui est la capacité connectée sur SVDD (suivez simplement la trace depuis la broche 37).
    
== Are there any special requirements to use the PN532 Breakout with the Due? ==
 
== Are there any special requirements to use the PN532 Breakout with the Due? ==
While the libraries do not officially support the Due yet, some customers have been able to get them working with some minor changes to the library.
+
Bien que la bibliothèque ne soit pas officiellement supportée sur Arduino Due, certain client on réussit à faire fonctionner la carte à l'aide de quelques changements mineurs dans la ibliothèque.
 +
 
 +
Nous recommandons d'utiliser la bibliothèque I2C avec le shield PN532 et la carte breakout PN532, la bibliothèque I2C est la plus récente produite par Adafruit et la version shield devrait fonctionner sans trop d'effort.
 +
 
 +
Il y a un avertissement concernant le breakout, I2C et Due. '''Le Due inclus des résistance pullup pour I2C0 (SCL0 et SDA1), mais n'a pas de résistances pullups sur SCL1 et SDA1. SCL1/SDA1''' sont les broches utilisées comme remplacement pour les broches I2C d'un arduino Uno (les broches utilisées sur un shield standard), il faut donc ajouter deux résistances pullup de 1.5K sur SCL1 et SDA1 pour utiliser le breakout board avec I2C1 et un Due.  
   −
We recommend using the I2C libraries with both the shield and the breakout boards since the I2C library represents the latest code from Adafruit, and the shield version should work without too much effort.
+
Soudez simplement deux résistances de 1.5K, une depuis SCL1 vers 3V3 et une autre depuis SDA1 vers 3.3V PUIS connectez la carte de la même façon que vous le ferriez avec un Uno.
   −
There is one caveat combining the breakout, I2C and the Due, though: '''The Due includes pullup resistors for I2C0 (SCL0 and SDA1), but there are no pullups resistors on SCL1 and SDA1. SCL1/SDA1''' are the pins used as replacements for the Uno I2C pins (the pins used on standard shields), so you will need to add two 1.5K pullups on SCL1 and SDA1 to use the breakout board with I2C1 and the Due. Simply solder two 1.5K resistors, one from SCL1 to 3V3 and another from SDA1 to 3.3V, and then connect the board the same way you would with an Uno.
+
'''Ce problème ne concerne que la carte breakout PN532 puis le shield PN532 inclus les résistances pullup I2C directement sur la carte'''.
   −
'''This issue only applies to the PN532 Breakout board since the PN532 shield includes I2C pullup resistors right on board'''.
+
{{PN532-RFID-NFC-TRAILER}}
29 917

modifications

Menu de navigation