- Arduino Nano 33 BLE Sense
- Panoramica dell'hardware di Arduino Nano 33 BLE Sense
- Miglioramenti del software con Arduino Nano 33 BLE sense
- Preparazione del tuo IDE Arduino per Arduino Nano 33 BLE sense
- Programma per leggere i dati del sensore e visualizzarli su Serial Monitor
- Arduino Nano 33 BLE- Caricamento del codice
Arduino è stata la piattaforma di sviluppo ideale per la prototipazione rapida e la convalida delle idee. Molti di noi avrebbero iniziato con la scheda di sviluppo Arduino UNO, ma oggi mentre progrediamo verso l'Internet delle cose, la visione artificiale, l'intelligenza artificiale, l'apprendimento automatico e altre tecnologie futuristiche, l'umile Arduino UNO non è più in grado di far fronte al suo 8 -bit Microcontrollore. Ciò ha richiesto il lancio di nuove schede con processori più potenti dotati di Wi-Fi, Bluetooth, GSM e altre funzionalità wireless integrate, come il popolare MKR1000 o MKR GSM 1400. In questo contesto, Arduino ha recentemente lanciato una nuova versione del suo Nano chiamata Arduino Nano 33.
Esistono due tipi di schede Arduino Nano 33, ovvero Arduino Nano 33 IoT e Arduino Nano 33 BLE sense. La differenza principale tra entrambi i moduli è che il modulo di rilevamento BLE di Arduino Nano 33 ha alcuni sensori integrati (entreremo nei dettagli più avanti) mentre Arduino Nano 33 IoT non li ha. In questo articolo esamineremo la scheda di rilevamento BLE di Arduino Nano 33, ti presenteremo le sue caratteristiche e funzionalità e infine scriveremo un codice di esempio per leggere i valori del sensore e visualizzarli sul monitor seriale. Quindi impariamo…!
Arduino Nano 33 BLE Sense
Il nome "Arduino Nano 33 BLE Sense" è un boccone, ma il nome stesso mette fuori alcune informazioni importanti. Si chiama "Nano" perché le dimensioni, il pinout e il fattore di forma sono molto simili al classico Arduino Nano, in realtà è previsto per essere utilizzato come sostituto di Arduino Nano nei tuoi progetti esistenti, ma il problema è che questo nuovo modulo funziona su 3,3 V mentre il classico Nano funziona a 5 V. Quindi penso che sia qui che entra in gioco il nome "33", per indicare che la scheda funziona a 3,3 V. Quindi il nome "BLE" indica che il modulo supporta Bluetooth Low Energy (BLE5 5.0)e il nome "senso" indica che dispone di sensori integrati come accelerometro, giroscopio, magnetometro, sensore di temperatura e umidità, sensore di pressione, sensore di prossimità, sensore di colore, sensore di gesti e persino un microfono incorporato. Entreremo nei dettagli di BLE e altri sensori in seguito, ma per ora è così che una scheda Sense Arduino Nano 33 BLE sembra direttamente da un-boxing.
Panoramica dell'hardware di Arduino Nano 33 BLE Sense
Alla prima occhiata alla scheda puoi trovare molti componenti affollati sulla parte superiore, la maggior parte dei quali sono sensori che ho detto prima. Ma il cervello principale è nascosto dietro l'involucro di metallo sul lato destro. Questo involucro contiene il processore Nordic nRF52840 che contiene un potente Cortex M4F e il modulo NINA B306 per la comunicazione BLE e Bluetooth 5. Ciò consente alla scheda di funzionare a bassissima potenza e di comunicare tramite Bluetooth 5, ideale per applicazioni di rete mesh a bassa potenza nell'automazione domestica e in altri progetti connessi. Inoltre, poiché il processore nRF supporta il sistema operativo ARM Mbedfornisce anche alcuni miglioramenti software di cui parleremo più avanti. I sensori, i LED, i pulsanti e altre cose importanti che dovresti sapere sulla tua scheda sono contrassegnati nell'immagine sottostante.
Come puoi vedere dall'immagine sopra, la scheda è ricca di sensori che possono aiutarti a costruire il diritto della scatola senza nemmeno dover collegare la scheda a sensori esterni. La scheda è pensata per essere utilizzata in dispositivi indossabili e altri dispositivi portatili intelligenti come cinturini fitness, monitoraggio del glucosio, contapassi, smartwatch, stazione meteorologica, sicurezza domestica ecc. Dove utilizzerai la maggior parte di questi sensori. E come sempre tutti questi sensori hanno librerie predefinite per Arduino che puoi usare prontamente. Alla fine di questo articolo leggeremo i valori di tutti questi sensori e li visualizzeremo sul monitor seriale. I dettagli del sensore sulla scheda di rilevamento BLE di Arduino Nano 33 insieme alle librerie richieste sono riportati di seguito
Nome del sensore |
Parametri |
Collegamenti |
LSM9DSI - ST Microelectronics |
Accelerometro, giroscopio, magnetometro |
Scheda tecnica LSMDSI Libreria Arduino_LSM9DS1 |
LPS22HB - ST Microelectronics |
Pressione |
Scheda tecnica LPS22HB Libreria Arduino_LPS22HB |
HTS221 - ST Microelectronics |
Temperatura e umidità |
Scheda tecnica LPS22HB Libreria Arduino_HTS221 |
APDS9960 - Avago Tech. |
Prossimità, Luce, Colore, Gesto |
Scheda tecnica LPS22HB Libreria Arduino_APDS9960 |
MP34DT05 - ST Microelectronics |
Microfono |
Scheda dati MP34DT05 Libreria PDM integrata |
La maggior parte di questi sensori proviene dalla ST Microelectronics e supporta il funzionamento a bassa potenza, rendendolo ideale per i progetti a batteria. Poche persone potrebbero già avere familiarità con il sensore APDS9960 poiché è già disponibile come modulo di ondata e abbiamo anche utilizzato il sensore APDS9960 con Arduino in precedenza. Per ulteriori informazioni su questi sensori, puoi visitare la rispettiva scheda tecnica e assicurarti anche di aver aggiunto l'intera libreria fornita al tuo IDE Arduino per iniziare a usarli con la tua scheda di rilevamento Arduino Nano 33 BLE. Per aggiungere una libreria è possibile utilizzare il collegamento fornito per accedere alla rispettiva pagina GitHub e scaricare il file ZIP, quindi utilizzare Sketch -> Include Library -> Add.ZIP Library oppure puoi anche utilizzare il gestore della libreria su Arduino IDE e aggiungerli biblioteche.
Specifiche tecniche della scheda Arduino Nano 33 BLE sense:
Alimentata dal processore Nordic nRF52840, la scheda Arduino Nano 44 BLE ha le seguenti specifiche tecniche
- Tensione di funzionamento: 3,3 V.
- Tensione di ingresso USB: 5 V.
- Tensione pin di ingresso: da 4,5 V a 21 V.
- Chip: NINA-B3 - RF52840
- Orologio: 64 MHz
- Flash: 1 MB
- SRAM: 256 KB
- Connettività wireless: Bluetooth 5.0 / BLE
- Interfacce: USB, I2C, SPI, I2S, UART
- Pin I / O digitali: 14
- Pin PWM: 6 (risoluzione a 8 bit)
- Pin analogici: 8 (configurabili a 10 o 12 bit)
Miglioramenti del software con Arduino Nano 33 BLE sense
Proprio come tutte le schede Arduino disponibili, Arduino Nano 33 BLE sense può essere programmato con l'IDE di Arduino. Ma devi usare il gestore della scheda e aggiungere i dettagli della scheda al tuo IDE prima di poter iniziare. Come sappiamo, l'nRF 52840 può essere programmato utilizzando il sistema operativo ARM Mbed, ciò significa che la nostra scheda Arduino Nano 33 supporta il sistema operativo in tempo reale (RTOS). Con la programmazione del sistema operativo Mbed possiamo eseguire più thread contemporaneamente nel programma per eseguire il multi-tasking. Inoltre, il consumo energetico della scheda sarà notevolmente ridotto, ogni volta che chiamiamo la funzione di ritardo la scheda entrerà in modalità solletico durante il tempo di ritardo per risparmiare energia e tornerà in funzione una volta terminato il ritardo. È stato riferito che questa operazione consumerà 4,5uA in meno rispetto a una normale operazione di ritardo di Arduino.
Detto questo, l'integrazione del sistema operativo Mbed con l'IDE di Arduino è relativamente nuova e ci vorrà del tempo prima di poter utilizzare appieno la piena potenza del sistema operativo Mbed con l'IDE di Arduino. Quindi, per un rapido avvio, scriveremo un programma per leggere tutti i valori del sensore e visualizzarli sui monitor seriali.
Preparazione del tuo IDE Arduino per Arduino Nano 33 BLE sense
Avvia il tuo IDE Arduino e vai su Strumenti -> Schede -> Gestione schede per avviare il gestore della scheda Arduino. Ora cerca "Mbed OS" e installa il pacchetto. Il completamento dell'installazione dovrebbe richiedere del tempo.
Al termine dell'installazione, chiudi la finestra di dialogo e collega la tua scheda Arduino 33 utilizzando un cavo micro USB con il tuo laptop. Non appena si collega la scheda, Windows inizierà automaticamente l'installazione dei driver richiesti per la scheda. Quindi apri il tuo IDE Arduino e seleziona Strumenti -> Scheda -> Arduino Nano 33. Quindi seleziona anche la porta COM giusta selezionando Strumenti -> Porta, la mia è collegata alla porta COM3 ma la tua potrebbe variare. Dopo aver selezionato la porta, l'angolo in basso a destra dell'IDE dovrebbe essere simile a questo
Ora per verificare velocemente se tutto funziona possiamo usare un programma di esempio, proviamo quello fornito in File -> Esempi -> PDM -> PDMSerialPlotter. Questo programma utilizzerà il microfono di bordo per ascoltare l'audio e tracciarlo su un plotter seriale. Puoi caricare il programma e controllare se la scheda e l'IDE funzionano.
Ora, se si verifica una compilazione ridicolmente lenta, non sei solo, molte persone, me compreso, affrontano questo problema e al momento della stesura di questo articolo, sembra che non ci sia soluzione. Mi ci vogliono circa 2-3 minuti per compilare e caricare programmi semplici e quando ho provato alcuni programmi BLE o ho provato a lavorare con Mbed OS il tempo di compilazione è aumentato a più di 10 minuti, il che non mi ha incoraggiato a provare ulteriormente. Ciò è dovuto all'integrazione del sistema operativo Mbed con l'IDE di Arduino, speriamo che qualcuno della meravigliosa comunità di Arduino trovi una soluzione per questo.
Programma per leggere i dati del sensore e visualizzarli su Serial Monitor
Se non usiamo le funzionalità BLE o Mbed OS di base della scheda, il tempo di compilazione è ragionevole. Quindi ho scritto un semplice schizzo per leggere tutti i valori del sensore e visualizzarli sul monitor seriale come mostrato di seguito
Il codice completo per fare lo stesso è fornito in fondo a questa pagina, ma assicurati di aver installato tutte le librerie sopra menzionate. La spiegazione del codice è la seguente.
Avvia il programma includendo tutti i file di intestazione richiesti. Qui useremo tutti e quattro i sensori tranne il microfono
#include // Includi la libreria per IMU a 9 assi #include // Includi libreria per leggere Pressione #include // Includi libreria per leggere Temperatura e umidità #include // Includi libreria per colore, prossimità e riconoscimento dei gesti
All'interno della funzione di setup inizializziamo il monitor seriale a 9600 baud rate per visualizzare tutti i valori dei sensori e inizializziamo anche tutte le librerie richieste. Il codice all'interno della configurazione è mostrato di seguito
void setup () {Serial.begin (9600); // Monitor seriale per visualizzare tutti i valori del sensore se (! IMU.begin ()) // Inizializza sensore IMU {Serial.println ("Impossibile inizializzare IMU!"); while (1);} if (! BARO.begin ()) // Inizializza sensore di pressione {Serial.println ("Impossibile inizializzare il sensore di pressione!"); while (1);} if (! HTS.begin ()) // Inizializza il sensore di temperatura e umidità {Serial.println ("Impossibile inizializzare il sensore di temperatura e umidità!"); while (1);} if (! APDS.begin ()) // Inizializza il sensore di colore, prossimità e gesto {Serial.println ("Impossibile inizializzare il sensore di colore, prossimità e gesto!"); while (1);}}
All'interno della funzione loop, leggiamo i valori dei sensori richiesti dalla libreria e poi li stampiamo sul monitor seriale. La sintassi può essere riferita dal programma esempio di ogni libreria, abbiamo letto i valori di accelerometro, giroscopio, magnetometro, pressione, temperatura, umidità e sensore di prossimità e li abbiamo visualizzati sul monitor seriale. Il codice per misurare il valore dell'accelerometro è mostrato di seguito, allo stesso modo, possiamo misurare per tutti i sensori.
// Valori dell'accelerometro 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); } ritardo (200);
Arduino Nano 33 BLE- Caricamento del codice
Il caricamento del codice su Nano 33 è simile a qualsiasi altra scheda, ma tieni presente che la scheda ha due porte COM. Quando si fa clic sul pulsante di caricamento, l'IDE di Arduino compila il codice e quindi ripristina automaticamente la scheda tramite un comando software, questo metterà la scheda in modalità boot loader e caricherà il codice. Per questo motivo, una volta completato il caricamento, potresti notare che l'IDE di Arduino ha cambiato automaticamente la sua porta COM con un numero diverso e potresti volerlo cambiare prima di aprire il monitor seriale.
Quindi questa è praticamente la mia esperienza con la scheda Arduino Nano 33 finora, proverò a costruire qualcosa con i suoi sensori e le funzionalità BLE in un secondo momento in futuro. Come è stata la tua esperienza con il consiglio? Cosa vorresti che costruissi con esso? Lascia le risposte nella sezione commenti e discuteremo di più.