- Arduino Nano 33 BLE Sense
- Pregled hardvera Arduino Nano 33 BLE Sense
- Poboljšanja softvera u smislu Arduino Nano 33 BLE
- Priprema vašeg Arduino IDE-a za Arduino Nano 33 BLE sense
- Program za čitanje podataka senzora i prikaz na serijskom monitoru
- Arduino Nano 33 BLE- Učitavanje koda
Arduino je razvojna platforma za brzo prototipiranje i provjeru valjanosti ideja. Mnogi od nas trebali bi započeti s Arduino UNO razvojnom pločom, ali danas kako napredujemo prema Internetu stvari, Computer Visionu, umjetnoj inteligenciji, strojnom učenju i drugim futurističkim tehnologijama, skromni Arduino UNO više se nije mogao nositi sa svojih 8 -bitni mikrokontroler. To je zahtijevalo lansiranje novih ploča s moćnijim procesorima koji imaju ugrađene Wi-Fi, Bluetooth, GSM i druge bežične mogućnosti, poput popularnih MKR1000 ili MKR GSM 1400. U tom kontekstu, Arduino je nedavno lansirao novu verziju svog Nanoa pod nazivom Arduino Nano 33.
Postoje potpuno dvije vrste ploča Arduino Nano 33, i to Arduino Nano 33 IoT i Arduino Nano 33 BLE sense. Glavna razlika između oba modula je u tome što Arduino Nano 33 BLE sens modul ima neke ugrađene senzore (o detaljima će se kasnije govoriti) dok ih Arduino Nano 33 IoT nema. U ovom ćemo članku pregledati Arduino Nano 33 BLE sens ploču, upoznati vas s njezinim značajkama i funkcionalnostima i na kraju napisati uzorak koda za očitavanje vrijednosti senzora i prikaz na serijskom monitoru. Pa krenimo s učenjem…!
Arduino Nano 33 BLE Sense
Ime „Arduino Nano 33 BLE Sense“ je malo, ali samo ime iznosi neke važne informacije. Zove se "Nano" jer su dimenzije, pinout i faktor oblika vrlo slični klasičnom Arduino Nanou, zapravo se planira koristiti kao zamjena za Arduino Nano u vašim postojećim projektima, ali kvaka je u tome što ovaj novi modul djeluje na 3,3 V dok klasični Nano radi na 5 V. Dakle, mislim da je tu mjesto "33", što ukazuje na to da ploča radi na 3.3V. Tada naziv "BLE" označava da modul podržava Bluetooth Low Energy (BLE5 5.0)a naziv "sense" označava da ima ugrađene senzore poput akcelerometra, žiroskopa, magnetometra, senzora temperature i vlažnosti, senzora tlaka, senzora blizine, senzora u boji, senzora gesta, pa čak i ugrađeni mikrofon. Kasnije ćemo ući u detalje BLE-a i ostalih senzora, ali za sada je to kako Arduino Nano 33 BLE sense board izgleda ravno kao da se ne boksa.
Pregled hardvera Arduino Nano 33 BLE Sense
Na prvi pogled ploče možete pronaći puno komponenata prepunih na vrhu, od kojih su većina senzori o kojima sam ranije govorio. Ali glavni mozak skriven je iza metalnog kućišta s desne strane. Ovo kućište sadrži nordijski procesor nRF52840 koji sadrži snažni Cortex M4F i NINA B306 modul za BLE i Bluetooth 5 komunikaciju. To omogućuje ploči da radi na vrlo malo energije i komunicira pomoću Bluetootha 5 što je idealno za mrežne mrežne programe male snage u kućnoj automatizaciji i drugim povezanim projektima. Također budući da nRF procesor podržava ARM Mbed OSnudi i neka poboljšanja softvera o kojima ćemo kasnije razgovarati. Senzori, LED, tipke i ostale važne stvari koje biste trebali znati na ploči označeni su na donjoj slici.

Kao što možete vidjeti sa gornje slike, ploča je napajana senzorima koji vam mogu pomoći u izgradnji desne strane kutije, a da ploču čak ni ne morate povezati s bilo kojim vanjskim senzorima. Ploča je namijenjena upotrebi u nosivim uređajima i ostalim pametnim prijenosnim uređajima kao što su fitnes vrpce, nadzor glukoze, brojači koraka, pametni sat, meteorološka stanica, kućna sigurnost itd., Gdje ćete koristiti većinu ovih senzora. Kao i uvijek svi ovi senzori imaju unaprijed izgrađene knjižnice za Arduino koje možete lako koristiti. Na kraju ovog članka čitat ćemo vrijednosti svih ovih senzora i prikazati ih na serijskom monitoru. Pojedinosti o senzorima na Arduino Nano 33 BLE osjetilnoj ploči, zajedno s potrebnim knjižnicama, tablice su navedene u nastavku
| Naziv senzora | Parametri | Veze | 
| LSM9DSI - ST Mikroelektronika | Akcelerometar, žiroskop, magnetometar | LSMDSI tablica podataka Biblioteka Arduino_LSM9DS1 | 
| LPS22HB - ST mikroelektronika | Pritisak | LPS22HB Datasheet Biblioteka Arduino_LPS22HB | 
| HTS221 - ST mikroelektronika | Temperatura i vlaga | LPS22HB Datasheet Biblioteka Arduino_HTS221 | 
| APDS9960 - Avago Tech. | Blizina, svjetlost, boja, gesta | LPS22HB Datasheet Biblioteka Arduino_APDS9960 | 
| MP34DT05 - ST mikroelektronika | Mikrofon | MP34DT05 Tehnički list Ugrađena PDM knjižnica | 
Većina ovih senzora dolazi iz tvrtke ST Microelectronics i podržavaju rad male snage što ga čini idealnim za dizajn na baterije. Malo je ljudi možda već upoznato sa APDS9960 senzorom jer je već dostupan kao modul za spate, a mi smo i ranije koristili APDS9960 senzor s Arduinom. Za više informacija o ovim senzorima možete posjetiti odgovarajuću tablicu podataka, a također provjerite jeste li dodali cijelu osiguranu biblioteku u svoj Arduino IDE kako biste ih počeli koristiti sa svojom Arduino Nano 33 BLE sense pločom. Da biste dodali biblioteku, pomoću dane veze možete doći do odgovarajuće GitHub stranice i preuzeti ZIP datoteku, a zatim upotrijebiti Sketch -> Include Library -> Add.ZIP Library ili možete koristiti upravitelj knjižnice na Arduino IDE i dodati ih knjižnice.
Tehničke specifikacije ploče Arduino Nano 33 BLE sense:
Pokretan nordijskim procesorom nRF52840, ploča Arduino Nano 44 BLE ima sljedeće tehničke specifikacije
- Radni napon: 3.3V
- Ulazni USB napon: 5V
- Napon ulaznog pina: 4,5V do 21V
- Čip: NINA-B3 - RF52840
- Takt: 64MHz
- Flash: 1 MB
- SRAM: 256 KB
- Bežična povezanost: Bluetooth 5.0 / BLE
- Sučelja: USB, I2C, SPI, I2S, UART
- Digitalni I / O pinovi: 14
- PWM pinovi: 6 (8-bitna razlučivost)
- Analogni pinovi: 8 (10-bitni ili 12-bitni konfigurabilni)
Poboljšanja softvera u smislu Arduino Nano 33 BLE
Kao i sve Arduino ploče, Arduino Nano 33 BLE sense može se programirati s Arduino IDE. Ali, prije nego što započnete, morate upotrijebiti upravitelj ploče i dodati detalje o ploči u svoj IDE. Kao što znamo da se nRF 52840 može programirati pomoću ARM Mbed OS-a, to znači da naša ploča Arduino Nano 33 podržava operativni sustav u stvarnom vremenu (RTOS). S Mbed OS programiranjem možemo istodobno pokretati više niti u programu za obavljanje više zadataka. Također, potrošnja energije ploče bit će znatno smanjena, svaki put kada pozovemo funkciju odgode ploča će tijekom vremena kašnjenja ući u način golicanja radi uštede energije i vratila bi se u rad nakon što kašnjenje završi. Izviješteno je da će ova operacija potrošiti 4,5uA manje od uobičajene radnje odgode Arduino.
To je rečeno, integracija Mbed OS-a s Arduino IDE-om relativno je nova i trebat će neko vrijeme prije nego što u potpunosti iskoristimo punu snagu Mbed OS-a s Arduino IDE-om. Stoga ćemo za brzo pokretanje napisati program za očitavanje svih vrijednosti senzora i prikazivanje na serijskim monitorima.
Priprema vašeg Arduino IDE-a za Arduino Nano 33 BLE sense
Pokrenite svoj Arduino IDE i idite na Alati -> Ploče -> Upravitelj ploča da biste pokrenuli svoj upravitelj Arduino ploče. Sada potražite "Mbed OS" i instalirajte paket. Instalacija bi trebala proći neko vrijeme.

Po završetku instalacije zatvorite dijaloški okvir i spojite ploču Arduino 33 pomoću mikro USB kabela s prijenosnim računalom. Čim povežete ploču, prozori će automatski početi instalirati potrebne upravljačke programe za ploču. Zatim otvorite svoj Arduino IDE i odaberite Alati -> Ploča -> Arduino Nano 33. Zatim također odaberite pravi COM port provjerom Alati -> Ulaz, moj je povezan s priključkom COM3, ali vaš se može razlikovati. Nakon odabira priključka, vaš IDE donji desni kut trebao bi izgledati ovako

Sada da bismo brzo provjerili radi li sve, možemo upotrijebiti primjer programa, isprobajmo onaj iz Datoteka -> Primjeri -> PDM -> PDMSerialPlotter. Ovaj će program koristiti ugrađeni mikrofon za slušanje zvuka i crtanje na serijskom ploteru. Možete učitati program i provjeriti rade li ploča i IDE.
Ako naiđete na smiješno sporo sastavljanje, onda niste sami, mnogi ljudi, uključujući mene, suočavaju se s tim problemom, a u vrijeme pisanja ovog članka, čini se da nema rješenja. Trebaju mi oko 2-3 minute za sastavljanje i slanje jednostavnih programa, a kada sam isprobao neke BLE programe ili pokušao raditi s Mbed OS-om, vrijeme kompilacije se povećalo na više od 10 minuta što me nije potaknulo na daljnje pokušaje. To je zbog integracije Mbed OS-a s Arduino IDE-om, nadamo se da će netko iz prekrasne Arduino zajednice smisliti rješenje za to.
Program za čitanje podataka senzora i prikaz na serijskom monitoru
Ako ne koristimo BLE ili osnovne Mbed OS funkcionalnosti ploče, vrijeme sastavljanja bilo je razumno. Stoga sam napisao jednostavnu skicu kako bih pročitao sve vrijednosti senzora i prikazao ih na serijskom monitoru kao što je prikazano u nastavku

Kompletni kôd da to učinite nalazi se na dnu ove stranice, ali provjerite jeste li instalirali sve gore spomenute knjižnice. Objašnjenje koda je sljedeće.
Pokrenite program uključivanjem svih potrebnih datoteka zaglavlja. Ovdje ćemo koristiti sva četiri senzora, osim mikrofona
#include // Uključi biblioteku za 9-osni IMU #include // Uključi biblioteku za čitanje Pritisak #include // Uključi biblioteku za čitanje Temperature i vlažnosti #include // Uključi biblioteku za prepoznavanje boja, blizine i gesta
Unutar funkcije postavljanja inicijaliziramo serijski monitor brzinom od 9600 baud podataka da bi se prikazale sve vrijednosti senzora, a također inicijaliziramo sve potrebne knjižnice. Kôd unutar postavki prikazan je u nastavku
void setup () {Serial.begin (9600); // Serijski monitor za prikaz svih vrijednosti senzora ako (! IMU.begin ()) // Inicijalizirajte IMU senzor {Serial.println ("Inicijalizacija IMU-a nije uspjela!"); while (1);} if (! BARO.begin ()) // Inicijalizirajte senzor tlaka {Serial.println ("Inicijalizacija senzora tlaka nije uspjela!"); while (1);} if (! HTS.begin ()) // Inicijalizirajte senzor temperature i vlage {Serial.println ("Nije uspjelo pokretanje senzora temperature i vlažnosti!"); while (1);} if (! APDS.begin ()) // Inicijalizirajte senzor boje, blizine i geste {Serial.println ("Nije uspjelo pokretanje senzora boje, blizine i gesta!"); dok (1);}}
Unutar funkcije petlje čitamo potrebne vrijednosti senzora iz knjižnice, a zatim ih ispisujemo na serijski monitor. Sintaksa se može uputiti iz primjera programa svake knjižnice, pročitali smo vrijednosti akcelerometra, žiroskopa, magnetometra, tlaka, temperature, vlažnosti i blizine te ih prikazali na serijskom monitoru. Kôd za mjerenje vrijednosti akcelerometra prikazan je u nastavku, isto tako, možemo mjeriti za sve senzore.
// Vrijednosti akcelerometra if (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Akcelerometar ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } kašnjenje (200);
Arduino Nano 33 BLE- Učitavanje koda

Prijenos koda na Nano 33 sličan je bilo kojoj drugoj ploči, ali imajte na umu da ploča ima dva COM porta. Kada kliknete na gumb za prijenos, Arduino IDE sastavlja kôd, a zatim resetira ploču automatski pomoću softverske naredbe, to će ploču staviti u način učitavanja i prenijeti vaš kôd. Zbog toga ćete, nakon završetka prijenosa, primijetiti da je Arduino IDE automatski promijenio COM priključak na drugi broj i možda ćete ga htjeti vratiti prije otvaranja serijskog monitora.
Dakle, ovo je uglavnom moje dosadašnje iskustvo s pločom Arduino Nano 33, pokušat ću izgraditi nešto sa njegovim senzorima i BLE značajkama nešto kasnije u budućnosti. Kakvo je bilo vaše iskustvo s pločom? Što biste željeli da gradim s tim? Ostavite odgovore u odjeljku za komentare i razgovarat ćemo o tome više.

