- Arduino Nano 33 BLE Sense
- Pregled strojne opreme Arduino Nano 33 BLE Sense
- Izboljšave programske opreme z občutkom Arduino Nano 33 BLE
- Priprava vašega Arduino IDE za Arduino Nano 33 BLE sense
- Program za branje podatkov senzorjev in prikaz na serijskem monitorju
- Arduino Nano 33 BLE - Nalaganje kode
Arduino je razvojna platforma za hitro prototipiranje in preverjanje idej. Mnogi od nas bi začeli z razvojnim odborom Arduino UNO, a danes, ko napredujemo v smeri interneta stvari, računalniškega vida, umetne inteligence, strojnega učenja in drugih futurističnih tehnologij, skromni Arduino UNO ni mogel več obvladati svojih 8 -bitni mikrokrmilnik. To je zahtevalo lansiranje novih plošč z zmogljivejšimi procesorji, ki imajo vgrajene Wi-Fi, Bluetooth, GSM in druge brezžične zmogljivosti, kot sta priljubljena MKR1000 ali MKR GSM 1400. V tem okviru je Arduino pred kratkim predstavil novo različico svojega Nano-a, imenovano Arduino Nano 33.
Obstajata popolnoma dve vrsti plošč Arduino Nano 33, in sicer Arduino Nano 33 IoT in Arduino Nano 33 BLE sense. Glavna razlika med obema moduloma je v tem, da ima modul Arduino Nano 33 BLE nekaj vgrajenih senzorjev (o podrobnostih bodo pozneje), medtem ko jih Arduino Nano 33 IoT nima. V tem članku bomo pregledali senzorsko ploščo Arduino Nano 33 BLE, vam predstavili njene značilnosti in funkcionalnosti ter na koncu napisali vzorčno kodo za branje vrednosti senzorja in prikaz na serijskem monitorju. Učimo se torej…!
Arduino Nano 33 BLE Sense
Ime "Arduino Nano 33 BLE Sense" je zalogaj, a samo ime daje nekaj pomembnih informacij. Imenuje se "Nano", ker so dimenzije, izrez in faktor oblike zelo podobni klasičnemu Arduino Nano, v resnici pa naj bi ga uporabili kot nadomestek za Arduino Nano v vaših obstoječih projektih, a ulov je v tem, da ta novi modul deluje 3,3 V, medtem ko klasični Nano deluje na 5 V. Torej mislim, da je tu ime "33", ki označuje, da plošča deluje na 3.3V. Nato ime “BLE” pomeni, da modul podpira Bluetooth Low Energy (BLE5 5.0)in ime "smisel" pomeni, da ima vgrajene senzorje, kot so merilnik pospeška, žiroskop, magnetometer, senzor temperature in vlage, senzor tlaka, senzor bližine, barvni senzor, senzor gesta in celo vgrajen mikrofon. Podrobnosti o BLE in drugih senzorjih bomo preučili pozneje, zaenkrat pa je tako Arduino Nano 33 BLE čutna plošča videti naravnost kot da se ne boksa.
Pregled strojne opreme Arduino Nano 33 BLE Sense
Na prvi pogled plošče lahko najdete veliko komponent, natrpanih na vrhu, med katerimi so večinoma senzorji, ki sem jih povedal prej. Toda glavni možgani so skriti za kovinskim ohišjem na desni strani. V tem ohišju je nameščen nordijski procesor nRF52840, ki vsebuje zmogljiv Cortex M4F in modul NINA B306 za komunikacijo BLE in Bluetooth 5. To omogoča plošči, da deluje z zelo nizko porabo in komunicira z uporabo Bluetooth 5, kar je idealno za mrežne mrežne aplikacije z nizko porabo energije v avtomatizaciji domov in druge povezane projekte. Tudi ker procesor nRF podpira OS ARM Mbedponuja tudi nekaj izboljšav programske opreme, o katerih bomo razpravljali kasneje. Senzorji, LED, gumbi in druge pomembne stvari, ki jih morate vedeti na plošči, so označeni na spodnji sliki.
Kot lahko vidite iz zgornje slike, je plošča opremljena s senzorji, ki vam lahko pomagajo zgraditi desni del škatle, ne da bi morali ploščo priključiti na zunanje senzorje. Tabla je namenjena za uporabo v nosljivih napravah in drugih pametnih prenosnih napravah, kot so fitnes pasovi, nadzor glukoze, števci korakov, pametna ura, vremenska postaja, varnost doma, itd., Kjer boste uporabljali večino teh senzorjev. Kot vsi ti senzorji imajo vnaprej vgrajene knjižnice za Arduino, ki jih lahko takoj uporabite. Na koncu tega članka bomo prebrali vrednosti vseh teh senzorjev in jih prikazali na serijskem monitorju. Podrobnosti o senzorju na čutni plošči Arduino Nano 33 BLE skupaj z zahtevanimi knjižnicami so navedene v spodnji tabeli
Ime senzorja |
Parametri |
Povezave |
LSM9DSI - ST Mikroelektronika |
Merilec pospeška, žiroskop, magnetometer |
Podatkovni list LSMDSI Knjižnica Arduino_LSM9DS1 |
LPS22HB - ST Mikroelektronika |
Pritisk |
Podatkovni list LPS22HB Knjižnica Arduino_LPS22HB |
HTS221 - ST mikroelektronika |
Temperatura in vlažnost |
Podatkovni list LPS22HB Knjižnica Arduino_HTS221 |
APDS9960 - Avago Tech. |
Bližina, svetloba, barva, gesta |
Podatkovni list LPS22HB Knjižnica Arduino_APDS9960 |
MP34DT05 - ST mikroelektronika |
Mikrofon |
Podatkovni list MP34DT05 Vgrajena knjižnica PDM |
Večina teh senzorjev je iz podjetja ST Microelectronics in podpirajo delovanje z nizko porabo energije, zato je idealen za zasnove na baterije. Senzor APDS9960 morda že pozna malo ljudi, saj je že na voljo kot modul za spate, senzor APDS9960 pa smo že uporabljali tudi z Arduinom. Za več informacij o teh senzorjih lahko obiščete ustrezen podatkovni list in se prepričate, da ste v Arduino IDE dodali celotno knjižnico, da jih začnete uporabljati s svojo Arduino Nano 33 BLE smiselno ploščo. Če želite dodati knjižnico, lahko s pomočjo dane povezave pridete do ustrezne strani GitHub in prenesete datoteko ZIP, nato uporabite Sketch -> Include Library -> Add.ZIP Library ali pa uporabite tudi upravitelja knjižnic v Arduino IDE in dodate te knjižnice.
Tehnične specifikacije Arduino Nano 33 BLE sense Board:
Plošča Arduino Nano 44 BLE, ki jo poganja nordijski procesor nRF52840, ima naslednje tehnične specifikacije
- Delovna napetost: 3.3V
- Vhodna napetost USB: 5V
- Napetost vhodnega zatiča: 4,5V do 21V
- Čip: NINA-B3 - RF52840
- Ura: 64MHz
- Flash: 1 MB
- SRAM: 256 KB
- Brezžična povezljivost: Bluetooth 5.0 / BLE
- Vmesniki: USB, I2C, SPI, I2S, UART
- Digitalni I / O zatiči: 14
- Zatiči PWM: 6 (8-bitna ločljivost)
- Analogni zatiči: 8 (10-bitni ali 12-bitni nastavljivi)
Izboljšave programske opreme z občutkom Arduino Nano 33 BLE
Tako kot vse plošče Arduino, je tudi Arduino Nano 33 BLE mogoče programirati z Arduino IDE. Preden začnete, morate uporabiti upravitelja plošče in dodati podrobnosti plošče v svoj IDE. Ker vemo, da je nRF 52840 mogoče programirati z OS ARM Mbed, to pomeni, da naša plošča Arduino Nano 33 podpira operacijski sistem v realnem času (RTOS). S programiranjem Mbed OS lahko v programu zaženemo več niti hkrati za izvajanje večopravilnosti. Prav tako se bo močno zmanjšala poraba energije plošče, vsakič, ko pokličemo funkcijo zakasnitve, bo plošča v času zakasnitve prešla v način tikljanja, da prihrani energijo in bi po končani zakasnitvi spet začela delovati. Poročali so, da bo ta operacija porabila 4,5uA manj kot običajna zakasnitev Arduino.
Glede na to je integracija Mbed OS z Arduino IDE razmeroma nova in bo trajalo nekaj časa, preden bomo lahko v celoti izkoristili vso moč Mbed OS z Arduino IDE. Za hiter zagon bomo torej napisali program za branje vseh vrednosti senzorja in prikaz na serijskih monitorjih.
Priprava vašega Arduino IDE za Arduino Nano 33 BLE sense
Zaženite svoj Arduino IDE in pojdite na Orodja -> Plošče -> Board Manger, da zaženete upravitelja Arduino Board. Zdaj poiščite »Mbed OS« in namestite paket. Namestitev bi morala trajati nekaj časa.
Ko je namestitev končana, zaprite pogovorno okno in povežite ploščo Arduino 33 s kablom micro USB s prenosnikom. Takoj ko povežete ploščo, se bodo okna samodejno začela nameščati potrebne gonilnike za ploščo. Nato odprite svoj Arduino IDE in izberite Orodja -> Plošča -> Arduino Nano 33. Nato izberite tudi ustrezna vrata COM, tako da potrdite Orodja -> Vrata, moj je povezan s priključkom COM3, vaš pa se lahko razlikuje. Ko so vrata izbrana, mora biti vaš spodnji desni kot IDE videti tako
Zdaj, da hitro preverimo, ali vse deluje, lahko uporabimo primer programa, poskusimo s programom File -> Examples -> PDM -> PDMSerialPlotter. Ta program bo z vgrajenim mikrofonom poslušal zvok in ga narisal na serijski risalnik. Program lahko naložite in preverite, ali plošča in IDE delujeta.
Zdaj, če doživite smešno počasno sestavljanje, potem niste sami, mnogi ljudje, vključno z mano, se soočajo s to težavo in v času pisanja tega članka ni videti rešitve. Za sestavljanje in nalaganje preprostih programov potrebujem približno 2-3 minuti in ko sem preizkusil nekaj programov BLE ali poskusil delati z Mbed OS, se je čas zbiranja povečal na več kot 10 minut, kar me ni spodbudilo, da bi poskusil še kaj več. To je zaradi integracije Mbed OS z Arduino IDE, upajmo, da bo nekdo iz čudovite skupnosti Arduino našel rešitev za to.
Program za branje podatkov senzorjev in prikaz na serijskem monitorju
Če ne uporabimo BLE ali jedrnih funkcij Mbed OS na plošči, je bil čas prevajanja razumen. Zato sem napisal preprosto skico, s katero sem prebral vse vrednosti senzorjev in jih prikazal na serijskem monitorju, kot je prikazano spodaj
Popolna koda za enako velja na dnu te strani, vendar se prepričajte, da ste namestili vse zgoraj omenjene knjižnice. Razlaga kode je naslednja.
Zaženite program z vključitvijo vseh zahtevanih datotek glave. Tu bomo uporabili vse štiri senzorje, razen mikrofona
#include // Vključi knjižnico za 9-osni IMU #include // Vključi knjižnico za branje Tlak #include // Vključi knjižnico za branje temperature in vlažnosti #include // Vključi knjižnico za prepoznavanje barv, bližine in kretenj
Znotraj nastavitvene funkcije inicializiramo serijski monitor s hitrostjo 9600 baudov, da prikaže vse vrednosti senzorja in inicializiramo tudi vse potrebne knjižnice. Koda znotraj namestitve je prikazana spodaj
void setup () {Serial.begin (9600); // Serijski monitor za prikaz vseh vrednosti senzorja, če (! IMU.begin ()) // Inicializirajte senzor IMU {Serial.println ("Inicializacija IMU ni uspela!"); while (1);} if (! BARO.begin ()) // Inicializirajte senzor tlaka {Serial.println ("Inicializacija senzorja tlaka ni uspela!"); while (1);} if (! HTS.begin ()) // Inicializirajte senzor temperature in vlage {Serial.println ("Senzorja temperature in vlažnosti ni bilo mogoče inicializirati!"); while (1);} if (! APDS.begin ()) // Inicializirajte senzor za barvo, bližino in kretnje {Serial.println ("Senzor za barvo, bližino in kretnje ni uspel inicializirati!"); medtem ko (1);}}
Znotraj funkcije zanke iz knjižnice preberemo zahtevane vrednosti senzorjev in jih nato natisnemo na serijski monitor. Sintaksa se lahko sklicuje na primer programa vsake knjižnice, prebrali smo merilnike pospeška, žiroskopa, magnetometra, vrednosti senzorja tlaka, temperature, vlažnosti in bližine ter jih prikazali na serijskem monitorju. Koda za merjenje vrednosti merilnika pospeška je prikazana spodaj, prav tako lahko merimo za vse senzorje.
// Vrednosti merilnika pospeška, če (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); } zamuda (200);
Arduino Nano 33 BLE - Nalaganje kode
Nalaganje kode na Nano 33 je podobno kot pri drugih ploščah, vendar upoštevajte, da ima plošča dva COM vhoda. Ko kliknete gumb za nalaganje, Arduino IDE prevede kodo in nato samodejno ponastavi ploščo s programskim ukazom, kar bo ploščo preneslo v način zagonskega nalagalnika in naloži vašo kodo. Ko je nalaganje končano, boste morda opazili, da je Arduino IDE samodejno spremenil vrata COM na drugo številko in ga boste morda želeli spremeniti nazaj, preden odprete serijski monitor.
Torej, to je v bistvu moja izkušnja s ploščo Arduino Nano 33 do zdaj, nekaj kasneje v prihodnosti bom poskusil zgraditi s senzorji in funkcijami BLE. Kakšne so bile vaše izkušnje z desko? Kaj bi želeli, da zgradim z njim? Odgovore pustite v oddelku za komentarje in o njih bomo še razpravljali.