Modifications

Sauter à la navigation Sauter à la recherche
1 193 octets ajoutés ,  3 août 2017 à 21:03
Ligne 1 : Ligne 1 :  
{{Bluefruit-LE-Shield-NAV}}
 
{{Bluefruit-LE-Shield-NAV}}
   −
{{traduction}}
+
== Mon Bluefruit LE peut-il dialoguer avec un périphérique 'Classic Bluetooth' ? ==
 
  −
== Puis-je dialoguer avec un périphérique 'Classic Bluetooth' avec un Bluefruit LE? ==
   
Non. Bluetooth Low Energy et Bluetooth 'Classic' sont deux parties d'une même noyau de spécification Bluetooth (''Bluetooth Core Specification'') -- définie et maintenue par le Bluetooth SIG -- mais sont des protocoles complètements différents fonctionnant avec des contraintes et des exigences différentes. Les deux protocoles ne peuvent pas dialoguer directement.
 
Non. Bluetooth Low Energy et Bluetooth 'Classic' sont deux parties d'une même noyau de spécification Bluetooth (''Bluetooth Core Specification'') -- définie et maintenue par le Bluetooth SIG -- mais sont des protocoles complètements différents fonctionnant avec des contraintes et des exigences différentes. Les deux protocoles ne peuvent pas dialoguer directement.
   Ligne 13 : Ligne 11 :  
Les produits à base de '''nRF51'''8322 (comme celui utilisé dans ce guide) ne sont '''PAS''' capable de fonctionner en mode Centrale parce qu'il n'est pas supporté par le firmware qu'il utilise. Il n'est pas possible de faire une mise-à-jour en toute sécurité sans utiliser un matériel spécial.
 
Les produits à base de '''nRF51'''8322 (comme celui utilisé dans ce guide) ne sont '''PAS''' capable de fonctionner en mode Centrale parce qu'il n'est pas supporté par le firmware qu'il utilise. Il n'est pas possible de faire une mise-à-jour en toute sécurité sans utiliser un matériel spécial.
   −
== Pourquoi aucun de mes changements ne persiste lorsque lorsque j'utilise un croquis d'exemple ? ==
+
== Pourquoi mes changements ne persiste t'il pas lorsque j'utilise un croquis d'exemple ? ==
 
La plupart des croquis effectuent une réinitialisation d'usine (FACTORY RESET) pour être certain que le module Bluefruit LE soit dans un état connu avant d'exécuter le croquis de démo.
 
La plupart des croquis effectuent une réinitialisation d'usine (FACTORY RESET) pour être certain que le module Bluefruit LE soit dans un état connu avant d'exécuter le croquis de démo.
   Ligne 22 : Ligne 20 :  
Si vous ne voyez pas le flag/drapeau 'FACTORYRESET_ENABLE' dans le fichier .ino c'est que vous avez probablement une ancienne version de la bibliothèque. Vous pourriez avoir besoin de faire une mise-à-jour de la bibliothèque via le gestionnaire de bibliothèque Arduino.
 
Si vous ne voyez pas le flag/drapeau 'FACTORYRESET_ENABLE' dans le fichier .ino c'est que vous avez probablement une ancienne version de la bibliothèque. Vous pourriez avoir besoin de faire une mise-à-jour de la bibliothèque via le gestionnaire de bibliothèque Arduino.
   −
== Ai-je besoin de CTS et RTS sur mon module UART Bluefruit LE ? ==
+
== Ai-je besoin de CTS et RTS avec mon module UART Bluefruit LE ? ==
 
Utiliser CTS et RTS n'est strictement nécessaire lorsque l'on utilise une connexion série matérielle (''HW serial'') mais elle devrait être utilisé lors d'une connexion série logicielle (''SW serial'') pour réguler le flux de donnée et éviter de perdre des octets. Il est également recommandé d'utiliser CTS et RTS si vous avez beaucoup de données à transférer.
 
Utiliser CTS et RTS n'est strictement nécessaire lorsque l'on utilise une connexion série matérielle (''HW serial'') mais elle devrait être utilisé lors d'une connexion série logicielle (''SW serial'') pour réguler le flux de donnée et éviter de perdre des octets. Il est également recommandé d'utiliser CTS et RTS si vous avez beaucoup de données à transférer.
   Ligne 147 : Ligne 145 :  
* Maintenant, vous devriez être capable de voir toutes les releases BETA disponible dans le dépôt github.
 
* Maintenant, vous devriez être capable de voir toutes les releases BETA disponible dans le dépôt github.
   −
==  Pourquoi ne puis-je pas voir mon périphérique Bluefruit LE après un upgrade à Android 6.0? ==
+
==  Pourquoi ne puis-je pas/plus voir mon périphérique Bluefruit LE après un upgrade à Android 6.0? ==
 
Il y a eu [http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id quelques changement de sécurité important] dans Android 6.0 et cela affecte les périphériques Bluetooth Low Energy. Si les services de localisations ne sont pas disponibles (signifiant que le GPS est désactivé) vous ne serez pas capable de détecter les paquets d'annonce des périphériques Bluetooth Low Energy. Voyez [https://code.google.com/p/android/issues/detail?id=190372&q=GPS&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars les détails ici].
 
Il y a eu [http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id quelques changement de sécurité important] dans Android 6.0 et cela affecte les périphériques Bluetooth Low Energy. Si les services de localisations ne sont pas disponibles (signifiant que le GPS est désactivé) vous ne serez pas capable de détecter les paquets d'annonce des périphériques Bluetooth Low Energy. Voyez [https://code.google.com/p/android/issues/detail?id=190372&q=GPS&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars les détails ici].
   Ligne 174 : Ligne 172 :  
Le module BlueFruit LE n'as pas le moyen de détecter d'autres modules Bluefruit (ou périphériques centrales). Ils peuvent uniquement envoyer leurs propres paquets d'annonce et attendre après requête de connexion.
 
Le module BlueFruit LE n'as pas le moyen de détecter d'autres modules Bluefruit (ou périphériques centrales). Ils peuvent uniquement envoyer leurs propres paquets d'annonce et attendre après requête de connexion.
   −
==  How can I determine the distance between my Bluefruit module and my phone in m/ft? ==
+
==  Comment puis-je déterminer la distance (en m) entre entre mon module Bluefruit et mon téléphone ? ==
The short answer is: you can't.
+
La réponse courte est: cela n'est pas possible.
   −
RF devices normally measure signal strength using RSSI, which stands for Received Signal Strength Indicator, which is measured in dBm.  The closer the devices are the strong the RSSI value generally is (-90dBm is much weaker than -60dBm, for example), but there is no reliable relationship between RSSI values in dBm and distance in the real world.  If there is a wall between devices, RSSI will fall.  If there is a lot of interference on the same 2.4GHz band, RSSI will fall. Depending on the device, if you simply change the antenna orientation, RSSI will fall.  You can read the RSSI value between two connected devices with the {{fname|AT+BLEGETRSSI}} command, but there are no meaningful and repeatable conclusions that can be drawn from this value about distance other than perhaps 'farther' or 'closer' in a very loose sense of the terms.
+
Les périphériques RF mesure normalement la puissance du signal en utilisant RSSI qui signifie "Received Signal Strength Indicator" (''indicateur de puissance du signal de réception). Cette puissance de signal se mesure en dBm (Décibel par milliwatt).
   −
== How far away from my phone can I have my Bluefruit LE module? ==
+
Plus près est le périphérique et plus fort sera la valeur de RSSI (par exemple: -90dBm est plus faible que -60dBm). Dans le monde réel, il n'y a cependant pas de relation fiable entre les valeurs de RSSI en dBm et la distance entre mes périphériques. Par exemple, le RSSI chutera, s'il y a un mur entre les périphériques. Le RSSI chutera également s'il y a beaucoup d'interférence sur la même bande 2.4GHz. Le RSSI peut également chuter en fonction du périphérique ou de l'orientation de l'antenne.
This depends on a number of factors beyond the module itself such as antenna orientation, the antenna design on the phone, transmit power on the sending node, competing traffic in the same 2.4GHz bandwidth, obstacles between end points, etc.
     −
It could be as low as a couple meters up to about 10 meters line of sight, but generally Bluetooth Low Energy is designed for very short range and will work best in the 5-6 meter or less range for reliable communication, assuming normal Bluefruit firmware settings.
+
Vous pouvez lire la valeur de RSSI entre deux périphériques connectés en utilisant la commande {{fname|AT+BLEGETRSSI}}. La valeur de RSSI ne permet pas de tirer de résultat ou conclusion valable concernant la distance. Elle permet juste de donner une idée d'éloignement général (éloigné ou proche) en fonction de la force du signal.
   −
== How many GATT services and characteristics can I create? ==
+
== A quelle distance de mon téléphone puis-je capter mon module Bluefruit LE ? ==
For firmware 0.7.0 and higher, the following limitations are present:
+
Cela dépend de plusieurs facteurs au-delà du module comme l'orientation de l'antenne, la conception de l'antenne du SmartPhone, la puissance de transmission sur le noeud d'envoi, le trafic des différents appareils sur la bande de 2.4GHz, les obstacles entre l'émetteur et le récepteur, etc.
* Maximum number of services: 10
  −
* Maximum number of characteristics: 30
  −
* Maximum buffer size for each characteristic: 32 bytes
  −
* Maximum number of CCCDs: 16
     −
==  Is it possible to modify or disable the built in GATT services and characteristics (DIS, DFU, etc.)? ==
+
Cette distance peut être aussi réduite que quelques mètres jusqu'à une dizaine de mètres en terrain découvert. Bluetooth Low Energy est conçu pour des communications courtes distances et fonctionnera dans les meilleures conditions entre 5-6 mètres ou moins (pour un communication fiable et un paramétrage normal du Bluefruit LE).
No, unfortunately you can't. We rely on the [https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.device_information.xml Device Information Service] (DIS) contents to know which firmware and bootloader version you are running, and wouldn't be able to provide firmware updates without being able to trust this information, which i why it's both mandatory and read only.
     −
Similarly, the DFU service is mandatory to maintain over the air updates and disabling it would create more problems that it's presence would cause.
+
== Combien de services GATT et caractéristiques puis-je créer ? ==
 +
Les limitations suivantes sont applicable au firmware 0.7.0 ou supérieur :
 +
* Nombre maximum de services: 10
 +
* Nombre maximum de caractéristiques: 30
 +
* Taille maximum de la mémoire tampon pour chaque caractéristique: 32 octets
 +
* Nombre maximum de CCCDs: 16
   −
== How can I use BlueZ and gatttool with Bluefruit modules? ==
+
== Est-il possible de modifier ou désactiver les services GATT et caractéristiques (DIS, DFU, etc.)? ==
BlueZ has a bit of a learning curve associated with it, but you can find some notes below on one option to send and receive data using the BLE UART Service built into all of our Bluefruit LE modules and boards.
+
Non, ce n'est malheureusement pas possible. Adafruit s'appuie sur la spécification du "[https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.device_information.xml Device Information Service]" (DIS) pour déterminer la versions du firmware et la version du bootloader fonctionnant sur le module BlueFruit LE. Bluefruit LE Connect ne pourra pas offrir de mise-à-jour Firmware sans disposer d'information fiable (comme celles offertes par DIS), raison pour laquelle ces deux information sont obligatoire et en lecture seule.
   −
These commands may change with different versions of BlueZ. Version 5.21 was used below.
+
De même, le service DFU est également nécessaire pour maintenir la fonctionnalité de mise-à-jour OTA (over-the-air). Désactiver ce service créerait plus de problèmes que sa présence n'en provoque.
 +
 
 +
== Comment puis-je utiliser BlueZ et gatttool avec les modules Bluefruit ? ==
 +
BlueZ nécessite un peu d'étude pour pouvoir l'utiliser. Vous trouverez ci-dessous quelques notes sur une approche permettant d'envoyer et recevoir des données en utilisant le service BLE UART disponible sur tous les modules Bluefruit LE et toutes les cartes Bluefruit LE.
 +
 
 +
Ces commandes pourraient changer avec une version différente de BlueZ. La version 5.21 était utilisée ci-dessous.
    
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
# Initialise the USB dongle
+
# Initialiser la clé USB
 
$ sudo hciconfig hci0 up
 
$ sudo hciconfig hci0 up
   −
# Scan for the UART BLE device
+
# Scan des périphériques BLE UART
 
$ sudo hcitool lescan
 
$ sudo hcitool lescan
 
   D6:4E:06:4F:72:86 UART
 
   D6:4E:06:4F:72:86 UART
   −
# Start gatttool, pointing to the UART device found above
+
# Démarrer gatttool, pointant sur le périphérique UART trouvé ci-dessus
 
$ sudo gatttool -b D6:4E:06:4F:72:86 -I -t random --sec-level=high
 
$ sudo gatttool -b D6:4E:06:4F:72:86 -I -t random --sec-level=high
   Ligne 216 : Ligne 218 :  
   Connection successful
 
   Connection successful
 
    
 
    
# Scan for primary GATT Services
+
# Scan des services GATT principaux
 
   [D6:4E:06:4F:72:86][LE]> primary
 
   [D6:4E:06:4F:72:86][LE]> primary
 
   attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
 
   attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
Ligne 223 : Ligne 225 :  
   attr handle: 0x000f, end grp handle: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
 
   attr handle: 0x000f, end grp handle: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
   −
# Get the handles for the entries in the UART service (handle 0x0009)
+
# Obtenir les handles pour les entrées dans le service UART (handle 0x0009)
 
   [D6:4E:06:4F:72:86][LE]> char-desc
 
   [D6:4E:06:4F:72:86][LE]> char-desc
 
   handle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fb
 
   handle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fb
Ligne 246 : Ligne 248 :  
# 6e400003 (handle 0x000d) = RX characteristic
 
# 6e400003 (handle 0x000d) = RX characteristic
   −
# Optional (but maybe helpful) ... scan for CCCD entries
+
# Optionel (mais peut être utile) ... scan des entrées CCCD
 
   [D6:4E:06:4F:72:86][LE]> char-read-uuid 2902
 
   [D6:4E:06:4F:72:86][LE]> char-read-uuid 2902
 
   handle: 0x000e value: 00 00  
 
   handle: 0x000e value: 00 00  
 
    
 
    
# Enable notifications on the RX characteristic (CCCD handle = 0x000e)
+
# Activer les notifications pour la caractéristique RX (CCCD handle = 0x000e)
# 0100 = get notifications
+
# 0100 = get notifications / obtenir des notifications
# 0200 = get indications
+
# 0200 = get indications / obtenir des indications  
# 0300 = get notifications + indications
+
# 0300 = get notifications + indications / Obtenir des notification et indications  
# 0000 = disable notifications + indications
+
# 0000 = désactiver les notifications + indications
 
   [D6:4E:06:4F:72:86][LE]> char-write-req 0x000e 0100
 
   [D6:4E:06:4F:72:86][LE]> char-write-req 0x000e 0100
 
   Characteristic value was written successfully
 
   Characteristic value was written successfully
   −
# Just to make sure it was updated
+
# S'assurer que la caractéristique à été mise-à-jour
 
   [D6:4E:06:4F:72:86][LE]> char-read-hnd 0x000e
 
   [D6:4E:06:4F:72:86][LE]> char-read-hnd 0x000e
 
   Characteristic value/descriptor: 01 00  
 
   Characteristic value/descriptor: 01 00  
 
    
 
    
# Writing "test" in the Serial Monitor of the Arduino sketch should
+
# Ecrire "test" dans le moniteur série du croquis Arduino. Cela
# cause this output not that notifications are enabled:
+
# devrait cette sortie.
 
   Notification handle = 0x000d value: 74 65 73 74  
 
   Notification handle = 0x000d value: 74 65 73 74  
   −
# Write something to the TX characteristic (handle = 0x000b)
+
# Ecrire quelque chose sur la caractéristique TX (handle = 0x000b)
# This should cause E F G H to appear in the Serial Monitor
+
# Cela devrait faire apparaître les caractères E F G H dans le
 +
# moniteur série d'Arduino
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000b 45         
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000b 45         
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000b 46
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000b 46
Ligne 273 : Ligne 276 :  
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000b 48
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000b 48
   −
# To send multiple bytes
+
# Envoyer plusieurs octets
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000B 707172737475
 
   [D6:4E:06:4F:72:86][LE]> char-write-cmd 0x000B 707172737475
 
    
 
    
# If you are running the callbackEcho sketch and notifications
+
# Si vous exécutez le croquis callbackEcho et que les notifications  
# are enabled you should get this response after the above cmd:
+
# sont activée alors vous devriez voir cette réponse après avoir
 +
# exécuté la commande ci-dessus:
 
   Notification handle = 0x000d value: 70 71 72 73 74 75  
 
   Notification handle = 0x000d value: 70 71 72 73 74 75  
    
--------------
 
--------------
   −
# If you just want to enable constant listening, enter the following command from the CLI:
+
# Si vous désirez seulement une écoute permanente, saisissez la
 +
# commande suivante dans le CLI:
 
$ sudo gatttool -b D6:4E:06:4F:72:86 -t random --char-write-req -a 0x000e -n 0100 --listen
 
$ sudo gatttool -b D6:4E:06:4F:72:86 -t random --char-write-req -a 0x000e -n 0100 --listen
   −
# This should give us the following output as data is written on the Uno,
+
# Cela devrait produire les sorties suivantes lorsque des données sont
# though we can't send anything back:
+
# saisie dans Arduino IDE. Nous ne pouvons cependant pas renvoyer
 +
# de données:
 
   Characteristic value was written successfully
 
   Characteristic value was written successfully
 
   Notification handle = 0x000d value: 74 65 73 74  
 
   Notification handle = 0x000d value: 74 65 73 74  
   Notification handle = 0x000d value: 6d 6f 72 65 20 74 65 73 74 </bash>
+
   Notification handle = 0x000d value: 6d 6f 72 65 20 74 65 73 74 </syntaxhighlight>
 +
 
 +
==  Puis-je utiliser la broche IRQ pour sortir mon MCU du mode veille lorsque l'UART BLE à des données disponibles ? ==
 +
Non, sur les cartes à base de SPI, la broche IRQ est utilisé pour indiquer qu'une réponse SDEP est disponible pour une commande SDEP.
 +
 
 +
Par exemple, lorsque vous envoyez une commande "AT+BLEUARTRX" comm message SDEP, le firmware Bluefruit fonctionnant sur le nRF51822 fera une analyse du message, préparera une réponse SDEP et déclenchera la broche d'interruption (pour indiquer au MCU que la réponse est prête).
   −
==  Can I use the IRQ pin to wake my MCU up from sleep when BLE UART data is available? ==
+
Le broche IRQ est complètement indépendante du service BLE UART qui ne dispose pas de capacité d'intérruption (pour le moment).
No, on SPI-based boards the IRQ pin is used to indicate that an SDEP response is available to an SDEP command. For example, when you sent the `AT+BLEUARTRX` command as an SDEP message, the Bluefruit firmware running on the nRF51822 will parse the message, prepare an SDEP response, and trigger the IRQ pin to tell the MCU that the response is ready. This is completely independant from the BLE UART service, which doesn't have interrupt capability at present.
      
{{Bluefruit-LE-Shield-TRAILER}}
 
{{Bluefruit-LE-Shield-TRAILER}}
30 894

modifications

Menu de navigation