- Arduino Nano 33 BLE Sense
- Présentation du matériel Arduino Nano 33 BLE Sense
- Améliorations logicielles avec Arduino Nano 33 BLE sense
- Préparation de votre Arduino IDE pour Arduino Nano 33 BLE sense
- Programme pour lire les données du capteur et les afficher sur le moniteur série
- Arduino Nano 33 BLE - Téléchargement du code
Arduino a été la plate-forme de développement incontournable pour le prototypage rapide et la validation d'idées. Beaucoup d'entre nous auraient commencé avec la carte de développement Arduino UNO, mais aujourd'hui, alors que nous progressons vers l'Internet des objets, la vision par ordinateur, l'intelligence artificielle, l'apprentissage automatique et d'autres technologies futuristes, l'humble Arduino UNO ne pouvait plus faire face à ses 8 Microcontrôleur à bits. Cela a nécessité le lancement de nouvelles cartes avec des processeurs plus puissants dotés de capacités Wi-Fi, Bluetooth, GSM et autres fonctionnalités sans fil intégrées, comme les populaires MKR1000 ou MKR GSM 1400. Dans ce contexte, Arduino a récemment lancé une nouvelle version de son Nano appelée Arduino Nano 33.
Il existe au total deux types de cartes Arduino Nano 33, à savoir Arduino Nano 33 IoT et Arduino Nano 33 BLE sense. La principale différence entre les deux modules est que le module de détection Arduino Nano 33 BLE possède des capteurs intégrés (nous reviendrons dans les détails plus tard) alors que l'Arduino Nano 33 IoT ne les a pas. Dans cet article, nous allons passer en revue la carte de détection Arduino Nano 33 BLE, vous présenter ses caractéristiques et fonctionnalités et enfin écrire un exemple de code pour lire les valeurs du capteur et les afficher sur un moniteur série. Alors apprenons….!
Arduino Nano 33 BLE Sense
Le nom «Arduino Nano 33 BLE Sense» est plein, mais le nom lui-même fournit des informations importantes. On l'appelle «Nano» car les dimensions, le brochage et le facteur de forme sont très similaires à l'Arduino Nano classique, il est en fait prévu pour être utilisé en remplacement d'Arduino Nano dans vos projets existants, mais le hic est que ce nouveau module fonctionne sur 3,3V tandis que le Nano classique fonctionne sur 5V. Je pense donc que c'est là que le nom «33» entre en jeu, pour indiquer que la carte fonctionne sur 3,3V. Ensuite, le nom «BLE» indique que le module prend en charge Bluetooth Low Energy (BLE5 5.0)et le nom «sense» indique qu'il dispose de capteurs embarqués tels qu'un accéléromètre, un gyroscope, un magnétomètre, un capteur de température et d'humidité, un capteur de pression, un capteur de proximité, un capteur de couleur, un capteur de gestes et même un microphone intégré. Nous entrerons dans les détails de BLE et d'autres capteurs plus tard, mais pour l'instant, c'est à quoi ressemble une carte de détection Arduino Nano 33 BLE.
Présentation du matériel Arduino Nano 33 BLE Sense
Au premier coup d'œil sur la carte, vous pouvez trouver de nombreux composants encombrés sur le dessus, dont la plupart sont des capteurs que j'ai mentionnés plus tôt. Mais le cerveau principal est caché derrière le boîtier métallique sur le côté droit. Ce boîtier contient le processeur Nordic nRF52840 qui contient un puissant Cortex M4F et le module NINA B306 pour la communication BLE et Bluetooth 5. Cela permet à la carte de fonctionner à très faible puissance et de communiquer à l'aide de Bluetooth 5, ce qui en fait une solution idéale pour les applications de réseau maillé à faible puissance dans la domotique et d'autres projets connectés. De plus, puisque le processeur nRF prend en charge le système d'exploitation ARM Mbedil fournit également quelques améliorations logicielles dont nous parlerons plus tard. Les capteurs, LED, boutons poussoirs et autres éléments importants que vous devez savoir sur votre tableau sont indiqués dans l'image ci-dessous.
Comme vous pouvez le voir sur l'image ci-dessus, la carte est dotée de capteurs qui peuvent vous aider à construire le côté droit de la boîte sans même avoir à connecter la carte à des capteurs externes. La carte est destinée à être utilisée dans les appareils portables et autres appareils portables intelligents tels que les bandes de fitness, la surveillance du glucose, les podomètres, les montres intelligentes, la station météo, la sécurité domestique, etc. où vous utiliserez la plupart de ces capteurs. Et comme toujours, tous ces capteurs ont des bibliothèques pré-construites pour Arduino que vous pouvez utiliser facilement. À la fin de cet article, nous lirons les valeurs de tous ces capteurs et les afficherons sur le moniteur série. Les détails du capteur sur la carte de détection Arduino Nano 33 BLE ainsi que ses bibliothèques requises sont présentés ci-dessous.
Nom du capteur |
Paramètres |
Liens |
LSM9DSI - ST Microélectronique |
Accéléromètre, gyroscope, magnétomètre |
Fiche technique LSMDSI Bibliothèque Arduino_LSM9DS1 |
LPS22HB - Microélectronique ST |
Pression |
Fiche technique du LPS22HB Bibliothèque Arduino_LPS22HB |
HTS221 - Microélectronique ST |
Température et humidité |
Fiche technique du LPS22HB Bibliothèque Arduino_HTS221 |
APDS9960 - Avago Tech. |
Proximité, lumière, couleur, geste |
Fiche technique du LPS22HB Bibliothèque Arduino_APDS9960 |
MP34DT05 - Microélectronique ST |
Microphone |
Fiche technique MP34DT05 Bibliothèque PDM intégrée |
La plupart de ces capteurs proviennent de ST Microelectronics et prennent en charge un fonctionnement à faible puissance, ce qui le rend idéal pour les conceptions alimentées par batterie. Peu de gens connaissent peut-être déjà le capteur APDS9960 car il est déjà disponible en tant que module spate et nous avons également utilisé le capteur APDS9960 avec Arduino auparavant. Pour plus d'informations sur ces capteurs, vous pouvez visiter la fiche technique respective et également vous assurer que vous avez ajouté toute la bibliothèque fournie à votre Arduino IDE pour commencer à les utiliser avec votre carte de détection Arduino Nano 33 BLE. Pour ajouter une bibliothèque, vous pouvez utiliser le lien donné pour accéder à la page GitHub respective et télécharger le fichier ZIP, puis utiliser Sketch -> Inclure la bibliothèque -> Add.ZIP Library ou vous pouvez également utiliser le gestionnaire de bibliothèque sur Arduino IDE et les ajouter bibliothèques.
Spécifications techniques de la carte de détection Arduino Nano 33 BLE:
Alimenté par le processeur Nordic nRF52840, la carte Arduino Nano 44 BLE a les spécifications techniques suivantes
- Tension de fonctionnement: 3,3 V
- Tension d'entrée USB: 5 V
- Tension de la broche d'entrée: 4,5 V à 21 V
- Puce: NINA-B3 - RF52840
- Horloge: 64 MHz
- Flash: 1 Mo
- SRAM: 256 Ko
- Connectivité sans fil: Bluetooth 5.0 / BLE
- Interfaces: USB, I2C, SPI, I2S, UART
- Broches d'E / S numériques: 14
- Broches PWM: 6 (résolution 8 bits)
- Broches analogiques: 8 (configurables 10 bits ou 12 bits)
Améliorations logicielles avec Arduino Nano 33 BLE sense
Tout comme toutes les cartes Arduino, le sens Arduino Nano 33 BLE peut être programmé avec l'IDE Arduino. Mais vous devez utiliser le gestionnaire de tableau et ajouter les détails du tableau à votre IDE avant de pouvoir commencer. Comme nous le savons, le nRF 52840 peut être programmé à l'aide du système d'exploitation ARM Mbed, cela signifie que notre carte Arduino Nano 33 prend en charge le système d'exploitation en temps réel (RTOS). Avec la programmation Mbed OS, nous pouvons exécuter plusieurs threads en même temps dans le programme pour effectuer plusieurs tâches. En outre, la consommation d'énergie de la carte sera considérablement réduite, chaque fois que nous appelons la fonction de retard, la carte entrera en mode chatouillement pendant le temps de retard pour économiser l'énergie et se remettra en marche une fois le retard terminé. Il est rapporté que cette opération consommera 4,5uA de moins qu'une opération de retard Arduino normale.
Cela étant dit, l'intégration de Mbed OS avec Arduino IDE est relativement nouvelle et cela va prendre un certain temps avant que nous puissions pleinement utiliser toute la puissance de Mbed OS avec Arduino IDE. Donc, pour un démarrage rapide, nous allons écrire un programme pour lire toutes les valeurs du capteur et l'afficher sur les moniteurs série.
Préparation de votre Arduino IDE pour Arduino Nano 33 BLE sense
Lancez votre IDE Arduino et allez dans Outils -> Cartes -> Gestionnaire de carte pour lancer votre gestionnaire de carte Arduino. Recherchez maintenant «Mbed OS» et installez le package. L'installation devrait prendre un certain temps.
Une fois l'installation terminée, fermez la boîte de dialogue et connectez votre carte Arduino 33 à l'aide d'un câble micro USB à votre ordinateur portable. Dès que vous connectez la carte, les fenêtres commencent automatiquement à installer les pilotes requis pour la carte. Ensuite, ouvrez votre IDE Arduino et sélectionnez Outils -> Carte -> Arduino Nano 33. Ensuite, sélectionnez également le bon port COM en cochant Outils -> Port, le mien est connecté au port COM3 mais le vôtre peut varier. Une fois le port sélectionné, le coin inférieur droit de votre IDE devrait ressembler à ceci
Maintenant, pour vérifier rapidement si tout fonctionne, nous pouvons utiliser un exemple de programme, essayons celui fourni dans Fichier -> Exemples -> PDM -> PDMSerialPlotter. Ce programme utilisera le microphone intégré pour écouter l'audio et le tracer sur un traceur série. Vous pouvez télécharger le programme et vérifier si la carte et l'IDE fonctionnent.
Maintenant, si vous rencontrez une compilation ridiculement lente, vous n'êtes pas seul, de nombreuses personnes, dont moi, sont confrontées à ce problème et au moment de la rédaction de cet article, il ne semble pas y avoir de solution. Cela me prend environ 2-3 minutes pour compiler et télécharger des programmes simples et lorsque j'ai essayé des programmes BLE ou essayé de travailler avec Mbed OS, le temps de compilation a augmenté à plus de 10 minutes, ce qui ne m'a pas encouragé à essayer quoi que ce soit. C'est à cause de l' intégration de Mbed OS avec Arduino IDE, espérons que quelqu'un de la merveilleuse communauté Arduino proposera une solution pour cela.
Programme pour lire les données du capteur et les afficher sur le moniteur série
Si nous n'utilisons pas les fonctionnalités BLE ou Mbed OS de base de la carte, le temps de compilation était raisonnable. J'ai donc écrit un simple croquis pour lire toutes les valeurs du capteur et l'afficher sur le moniteur série comme indiqué ci-dessous
Le code complet pour faire de même est donné au bas de cette page, mais assurez-vous d'avoir installé toutes les bibliothèques mentionnées ci-dessus. L'explication du code est la suivante.
Démarrez le programme en incluant tous les fichiers d'en-tête requis. Ici, nous utiliserons les quatre capteurs à l'exception du microphone
#include // Inclut la bibliothèque pour l'IMU 9 axes #include // Inclut la bibliothèque pour lire la pression #include // Inclut la bibliothèque pour lire la température et l'humidité #include // Inclut la bibliothèque pour la reconnaissance des couleurs, de la proximité et des gestes
Dans la fonction de configuration, nous initialisons le moniteur série à un débit de 9600 bauds pour afficher toutes les valeurs du capteur et également initialiser toutes les bibliothèques requises. Le code à l'intérieur de la configuration est indiqué ci-dessous
void setup () {Serial.begin (9600); // Moniteur série pour afficher toutes les valeurs du capteur if (! IMU.begin ()) // Initialiser le capteur IMU {Serial.println ("Impossible d'initialiser IMU!"); while (1);} if (! BARO.begin ()) // Initialiser le capteur de pression {Serial.println ("Impossible d'initialiser le capteur de pression!"); while (1);} if (! HTS.begin ()) // Initialiser le capteur de température et d'humidité {Serial.println ("Impossible d'initialiser le capteur de température et d'humidité!"); while (1);} if (! APDS.begin ()) // Initialisation du capteur de couleur, de proximité et de mouvement {Serial.println ("Impossible d'initialiser le capteur de couleur, de proximité et de mouvement!"); tandis que (1);}}
Dans la fonction de boucle, nous lisons les valeurs de capteur requises dans la bibliothèque, puis nous les imprimons sur le moniteur série. La syntaxe peut être référencée à partir du programme d'exemple de chaque bibliothèque, nous avons lu les valeurs de l'accéléromètre, du gyroscope, du magnétomètre, de la pression, de la température, de l'humidité et de la proximité et les avons affichées sur le moniteur série. Le code pour mesurer la valeur de l'accéléromètre est indiqué ci-dessous, de même, nous pouvons mesurer pour tous les capteurs.
// Valeurs de l'accéléromètre if (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Accelerometer ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } retard (200);
Arduino Nano 33 BLE - Téléchargement du code
Le téléchargement du code sur Nano 33 est similaire à toutes les autres cartes, mais notez que la carte a deux ports COM. Lorsque vous cliquez sur le bouton de téléchargement, l'IDE Arduino compile le code, puis réinitialise automatiquement la carte via une commande logicielle, cela met la carte en mode chargeur de démarrage et télécharge votre code. Pour cette raison, une fois le téléchargement terminé, vous remarquerez peut-être que l'IDE Arduino a automatiquement changé son port COM en un numéro différent et vous voudrez peut-être le modifier avant d'ouvrir votre moniteur série.
C'est donc à peu près mon expérience avec la carte Arduino Nano 33 jusqu'à présent, je vais essayer de construire quelque chose avec ses capteurs et ses fonctionnalités BLE plus tard dans le futur. Quelle a été votre expérience avec le conseil? Que voudriez-vous que je construise avec? Laissez les réponses dans la section commentaires et nous en discuterons plus.