Découverte du Bluetooth Low Energy avec la carte Nordic Semiconductor nRF51

Découverte du Bluetooth Low Energy avec la carte Nordic Semiconductor nRF51

Brochage

Seules les broches P0.01 à P0.06 peuvent être configurées en entrées analogiques.

Toutes les broches peuvent être utilisées pour le SPI, l’I²C et le RS232 et pas seulement les broches indiquées sur le schéma de brochage.

Il n’y a qu’un périphérique UART, deux SPI et deux I²C (appelés TWI), mais il faut choisir : soit SPI0 ou TWI0, soit SPI1 ou TWI1, car ils partagent visiblement des ressources communes !

Support imprimé 3D

http://www.thingiverse.com/thing:1012855

https://cad.onshape.com/documents/3f05e14ebb62415c928ff36e/w/d85b78be98c545f6ab2fd41f/e/7053fbf40382442182af2f67

La carte nRF51 en bref

C’est une carte de développement pour le prototypage d’applications Bluetooth LE. Le brochage est compatible avec celui de l’Arduino UNO, donc en théorie on peut utiliser les mêmes shields. Dans la pratique, il faudra faire attention au fait que la carte nRF51 ne fonctionne que sous 3.3 V et que le courant max des sorties est de 0.5 mA (5 mA sur 3 broches au maximum avec le mode “high drive” qu’il faut configurer explicitement)¹.

¹ Voir “nRF51822 Product Specification v3.1 — chap 8.23 — General Purpose I/O (GPIO) specifications”, page 65

Bluetooth avec Node.js

NoBLE

Bluetooth et le marketing

⚠ Bluetooth ≠ Bluetooth Low Energy

Nom courant Nom du marketing
Bluetooth (v1, v2, v3) Bluetooth Classic (BR, EDR)
Bluetooth Low Energy (v4) Bluetooth Smart
Bluetooth + Bluetooth Low Energy Bluetooth Smart Ready

Android

nRF Master Control Panel (BLE)

Quelques outils pour OS X

HardwareIOTools_Xcode_6.3

Portée des variables

static const dans une fonction ⇒ stocké en flash

/* PORTÉE DES VARIABLES */
                          // VISIBILITÉ  PERSISTANCE  ALLOCATION
                          // ==========  ===========  ==========
int vg;                   // Globale     Programme    Heap
static int vg;            // Module      Programme    Heap
void f(..) {
  int vl;                 // Fonction    Fonction     Stack
  static int vlp;         // Fonction    Programme    Heap
  const int vlc = ..;     // Fonction    Fonction     Stack/opt
  static const vlcs = ..; // Fonction    Programme    Flash

norme C 99 ⇒ permet des déclarations spéciales de struct

Liens

Modules BLE