- Arduino Nano 33 BLE Sense
- Prezentare generală a hardware-ului Arduino Nano 33 BLE Sense
- Îmbunătățiri software cu Arduino Nano 33 BLE sense
- Pregătirea Arduino IDE pentru Arduino Nano 33 BLE sense
- Program pentru citirea datelor senzorului și afișarea pe monitorul serial
- Arduino Nano 33 BLE- Încărcarea codului
Arduino a fost platforma de dezvoltare pentru protejarea rapidă și validarea ideilor. Mulți dintre noi ar fi început cu bordul de dezvoltare Arduino UNO, dar astăzi, pe măsură ce progresăm spre internetul lucrurilor, viziunea computerizată, inteligența artificială, învățarea automată și alte tehnologii futuriste, umilul Arduino UNO nu a mai putut face față celor 8 Microcontroler cu biți. Acest lucru a necesitat lansarea de noi plăci cu procesoare mai puternice, care au Wi-Fi, Bluetooth, GSM și alte capabilități wireless încorporate, cum ar fi popularele MKR1000 sau MKR GSM 1400. În acest context, Arduino a lansat recent o nouă versiune a Nano-ului său numită Arduino Nano 33.
Există în total două tipuri de plăci Arduino Nano 33, și anume Arduino Nano 33 IoT și Arduino Nano 33 BLE sense. Principala diferență dintre ambele module este că modulul de detectare Arduino Nano 33 BLE are câțiva senzori încorporați (vor intra în detalii mai târziu), în timp ce Arduino Nano 33 IoT nu le are. În acest articol vom revizui placa senzorială Arduino Nano 33 BLE, vă vom prezenta caracteristicile și funcționalitățile sale și, în cele din urmă, vom scrie un eșantion de cod pentru a citi valorile senzorilor și a le afișa pe monitorul serial. Deci, să învățăm….!
Arduino Nano 33 BLE Sense
Numele „Arduino Nano 33 BLE Sense” este plin de viață, dar numele în sine prezintă câteva informații importante. Se numește „Nano” deoarece dimensiunile, pinout-ul și factorul de formă sunt foarte asemănătoare cu clasicul Arduino Nano, este de fapt planificat să fie folosit ca înlocuitor pentru Arduino Nano în proiectele dvs. existente, dar prinderea este că acest nou modul funcționează pe 3,3V în timp ce clasicul Nano funcționează pe 5V. Deci, cred că aici apare numele „33”, pentru a indica faptul că placa funcționează pe 3.3V. Apoi numele „BLE” indică faptul că modulul acceptă Bluetooth Low Energy (BLE5 5.0)iar numele „sense” indică faptul că are senzori la bord, precum accelerometru, giroscop, magnetometru, senzor de temperatură și umiditate, senzor de presiune, senzor de proximitate, senzor de culoare, senzor de gesturi și chiar un microfon încorporat. Vom intra în detaliile BLE și a altor senzori mai târziu, dar deocamdată așa arată o placă senzorială Arduino Nano 33 BLE directă de un-box.
Prezentare generală a hardware-ului Arduino Nano 33 BLE Sense
La prima privire a plăcii puteți găsi o mulțime de componente aglomerate în partea de sus, dintre care majoritatea sunt senzori despre care am spus mai devreme. Dar creierul principal este ascuns în spatele carcasei metalice din partea dreaptă. Această carcasă deține procesorul nordic nRF52840 care conține un puternic Cortex M4F și modulul NINA B306 pentru comunicații BLE și Bluetooth 5. Acest lucru permite plăcii să funcționeze cu o putere foarte mică și să comunice utilizând Bluetooth 5, ceea ce este ideal pentru aplicațiile de rețea cu plasă redusă de energie în automatizarea casei și alte proiecte conectate. De asemenea, deoarece procesorul nRF acceptă sistemul de operare ARM Mbedoferă, de asemenea, unele îmbunătățiri software pe care le vom discuta mai târziu. Senzorii, LED-urile, butoanele și alte lucruri importante pe care ar trebui să le cunoașteți pe placa dvs. sunt marcate în imaginea de mai jos.
După cum puteți vedea din imaginea de mai sus, placa este alimentată cu senzori care vă pot ajuta să construiți partea dreaptă a cutiei, fără a fi nevoie nici măcar să conectați placa la senzori externi. Placa este menită să fie utilizată în dispozitive portabile și alte dispozitive portabile inteligente, cum ar fi benzi de fitness, monitorizarea glucozei, pedometre, ceas inteligent, stație meteo, securitate la domiciliu etc., unde veți utiliza majoritatea acestor senzori. Și, ca întotdeauna, toți acești senzori au biblioteci pre-construite pentru Arduino, pe care le puteți folosi cu ușurință. La sfârșitul acestui articol vom citi valorile din toți acești senzori și le vom afișa pe monitorul serial. Detaliile senzorului de pe placa de detectare Arduino Nano 33 BLE împreună cu bibliotecile necesare sunt prezentate mai jos
Nume senzor |
Parametrii |
Link-uri |
LSM9DSI - ST Microelectronics |
Accelerometru, giroscop, magnetometru |
Foaie de date LSMDSI Biblioteca Arduino_LSM9DS1 |
LPS22HB - ST Microelectronics |
Presiune |
Foaie de date LPS22HB Biblioteca Arduino_LPS22HB |
HTS221 - ST Microelectronics |
Temperatura și umiditatea |
Foaie de date LPS22HB Biblioteca Arduino_HTS221 |
APDS9960 - Avago Tech. |
Apropiere, lumină, culoare, gest |
Foaie de date LPS22HB Biblioteca Arduino_APDS9960 |
MP34DT05 - ST Microelectronics |
Microfon |
MP34DT05 Foaie de date Bibliotecă PDM încorporată |
Majoritatea acestor senzori provin de la ST Microelectronics și acceptă funcționarea cu consum redus de energie, făcându-l ideal pentru proiectele cu baterie. Puțini oameni s-ar putea să fie deja familiarizați cu senzorul APDS9960, deoarece acesta este deja disponibil ca modul spate și am folosit și senzorul APDS9960 cu Arduino anterior. Pentru mai multe informații despre acești senzori, puteți vizita fișa tehnică respectivă și, de asemenea, asigurați-vă că ați adăugat întreaga bibliotecă furnizată la ID-ul dvs. Arduino pentru a începe să le utilizați cu placa de detectare Arduino Nano 33 BLE. Pentru a adăuga o bibliotecă, puteți utiliza linkul dat pentru a ajunge la pagina GitHub respectivă și pentru a descărca fișierul ZIP, apoi utilizați Sketch -> Include Library -> Add.ZIP Library sau puteți utiliza, de asemenea, managerul de bibliotecă pe Arduino IDE și adăugați aceste biblioteci.
Specificații tehnice ale plăcii Arduino Nano 33 BLE sense:
Alimentat de procesorul nordic nRF52840, placa Arduino Nano 44 BLE are următoarele specificații tehnice
- Tensiune de operare: 3.3V
- Tensiune de intrare USB: 5V
- Tensiunea pinului de intrare: 4,5V la 21V
- Cip: NINA-B3 - RF52840
- Ceas: 64MHz
- Bliț: 1 MB
- SRAM: 256 KB
- Conectivitate wireless: Bluetooth 5.0 / BLE
- Interfețe: USB, I2C, SPI, I2S, UART
- Pinuri I / O digitale: 14
- Pinii PWM: 6 (rezoluție de 8 biți)
- Pinii analogici: 8 (configurabil pe 10 biți sau pe 12 biți)
Îmbunătățiri software cu Arduino Nano 33 BLE sense
La fel ca toate plăcile Arduino de acolo, Arduino Nano 33 BLE sense poate fi programat cu Arduino IDE. Dar, trebuie să utilizați managerul de bord și să adăugați detaliile de bord la IDE înainte de a începe. După cum știm, nRF 52840 poate fi programat utilizând ARM Mbed OS, aceasta înseamnă că placa noastră Arduino Nano 33 acceptă sistemul de operare în timp real (RTOS). Cu programarea Mbed OS putem rula mai multe fire în același timp în program pentru a efectua multi-tasking. De asemenea, consumul de energie al plăcii va fi redus foarte mult, de fiecare dată când apelăm funcția de întârziere, placa va intra în modul de gâdilare în timpul întârzierii pentru a economisi energie și ar reveni în funcțiune odată cu întârzierea. Este raportat că această operațiune va consuma cu 4,5 uA mai puțin decât o operație normală de întârziere Arduino.
Acestea fiind spuse, integrarea sistemului de operare Mbed cu Arduino IDE este relativ nouă și va dura ceva timp până când vom putea utiliza pe deplin întreaga putere a sistemului de operare Mbed cu Arduino IDE. Deci, pentru o pornire rapidă, vom scrie un program pentru a citi toate valorile senzorului și îl vom afișa pe monitoarele seriale.
Pregătirea Arduino IDE pentru Arduino Nano 33 BLE sense
Lansați ID-ul Arduino și accesați Instrumente -> Panouri -> Board Manger pentru a lansa managerul dvs. Arduino Board. Acum căutați „Mbed OS” și instalați pachetul. Instalarea ar trebui să dureze ceva timp.
După instalare, închideți caseta de dialog și conectați placa Arduino 33 folosind un cablu micro USB cu laptopul. De îndată ce vă conectați, ferestrele plăcii vor începe automat să instaleze driverele necesare pentru placă. Apoi deschideți ID-ul dvs. Arduino și selectați Instrumente -> Placă -> Arduino Nano 33. Apoi selectați și portul COM potrivit bifând Instrumente -> Port, al meu este conectat la portul COM3, dar al dvs. poate varia. După selectarea portului, colțul din dreapta jos al IDE ar trebui să arate astfel
Acum, pentru a verifica rapid dacă totul funcționează, putem folosi un exemplu de program, să încercăm cel furnizat la Fișier -> Exemple -> PDM -> PDMSerialPlotter. Acest program va utiliza microfonul de la bord pentru a asculta audio și a-l grafica pe un plotter serial. Puteți încărca programul și puteți verifica dacă placa și IDE funcționează.
Acum, dacă vă confruntați cu o compilare ridicol de lentă, atunci nu sunteți singuri, mulți oameni, inclusiv eu, se confruntă cu această problemă și la momentul scrierii acestui articol, nu pare să existe nicio soluție. Îmi iau aproximativ 2-3 minute pentru a compila și încărca programe simple și când am încercat unele programe BLE sau am încercat să lucrez cu sistemul de operare Mbed, timpul de compilare a crescut la mai mult de 10 minute, ceea ce nu m-a încurajat să încerc ceva mai departe. Acest lucru se datorează integrării sistemului de operare Mbed cu Arduino IDE, să sperăm că cineva din minunata Comunitate Arduino vine cu o soluție pentru acest lucru.
Program pentru citirea datelor senzorului și afișarea pe monitorul serial
Dacă nu folosim funcționalitățile BLE sau de bază Mbed OS ale plăcii, timpul de compilare a fost rezonabil. Așa că am scris o schiță simplă pentru a citi toate valorile senzorului și a le afișa pe monitorul serial, așa cum se arată mai jos
Codul complet pentru a face același lucru este dat în partea de jos a acestei pagini, dar asigurați-vă că ați instalat toate bibliotecile menționate mai sus. Explicația codului este următoarea.
Porniți programul prin includerea tuturor fișierelor antet necesare. Aici vom folosi toți cei patru senzori, cu excepția microfonului
În interiorul funcției de configurare inițializăm monitorul serial la 9600 baud rate pentru a afișa toate valorile senzorului și, de asemenea, inițializa toate bibliotecile necesare. Codul din interiorul configurării este prezentat mai jos
void setup () {Serial.begin (9600); // Monitor serial pentru a afișa toate valorile senzorului dacă (! IMU.begin ()) // Inițializați senzorul IMU {Serial.println ("Nu s-a inițializat IMU!"); while (1);} if (! BARO.begin ()) // Inițializați senzorul de presiune {Serial.println ("Nu a putut inițializa senzorul de presiune!"); while (1);} if (! HTS.begin ()) // Inițializați senzorul de temperatură și umiditate {Serial.println („Nu s-a inițializat senzorul de temperatură și umiditate!”); while (1);} if (! APDS.begin ()) // Inițializați senzorul de culoare, proximitate și gest {Serial.println („Nu s-a inițializat senzorul de culoare, proximitate și gest!”); while (1);}}
În interiorul funcției buclă, citim valorile necesare ale senzorului din bibliotecă și apoi le imprimăm pe monitorul serial. Sintaxa poate fi menționată din programul de exemplu al fiecărei biblioteci, am citit valorile accelerometrului, giroscopului, magnetometrului, presiunii, temperaturii, umidității și proximității și le-am afișat pe monitorul serial. Codul pentru măsurarea valorii accelerometrului este prezentat mai jos, la fel, putem măsura pentru toți senzorii.
// Valorile accelerometrului dacă (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Accelerometru ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } întârziere (200);
Arduino Nano 33 BLE- Încărcarea codului
Încărcarea codului pe Nano 33 este similară cu orice alte plăci, dar rețineți că placa are două porturi COM. Când faceți clic pe butonul de încărcare, ID-ul Arduino compilează codul și apoi resetează placa automat prin comanda software, aceasta va pune placa în modul de încărcare și va încărca codul. Din această cauză, odată ce încărcarea sa terminat, s-ar putea să observați că IDE-ul Arduino și-a schimbat automat portul COM într-un număr diferit și este posibil să doriți să îl schimbați înainte de a deschide monitorul serial.
Deci, aceasta este cam experiența mea cu placa Arduino Nano 33 de până acum, voi încerca să construiesc ceva cu senzorii și caracteristicile sale BLE cândva mai târziu în viitor. Cum a fost experiența dvs. cu consiliul? Ce ai vrea să construiesc cu ea? Lăsați răspunsurile în secțiunea de comentarii și vom discuta mai multe.