- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense aparatūras pārskats
- Programmatūras uzlabojumi ar Arduino Nano 33 BLE sense
- Sagatavojiet savu Arduino IDE Arduino Nano 33 BLE jēgai
- Programma sensora datu nolasīšanai un rādīšanai seriālajā monitorā
- Arduino Nano 33 BLE - koda augšupielāde
Arduino ir bijusi attīstības platforma ātrai prototipu veidošanai un ideju apstiprināšanai. Daudzi no mums būtu sākuši ar Arduino UNO izstrādes padomi, taču šodien, virzoties uz lietu internetu, datorvīziju, mākslīgo intelektu, mašīnmācīšanos un citām futūristiskām tehnoloģijām, pazemīgais Arduino UNO vairs nevarēja tikt galā ar savu 8 -bit mikrokontrolleris. Tas prasīja uzsākt jaunu dēļu ar jaudīgākiem procesoriem, kuriem ir iebūvētas Wi-Fi, Bluetooth, GSM un citas bezvadu iespējas, piemēram, populārās MKR1000 vai MKR GSM 1400. Šajā kontekstā Arduino nesen ir laidis klajā jaunu sava Nano versiju ar nosaukumu Arduino Nano 33.
Ir pilnīgi divu veidu Arduino Nano 33 dēļi, proti, Arduino Nano 33 IoT un Arduino Nano 33 BLE sense. Galvenā atšķirība starp abiem moduļiem ir tā, ka Arduino Nano 33 BLE maņu modulī ir daži iebūvēti sensori (vēlāk tiks detalizēti iekļauti detaļās), savukārt Arduino Nano 33 IoT to nav. Šajā rakstā mēs pārskatīsim Arduino Nano 33 BLE sensoru paneli, iepazīstināsim jūs ar tā īpašībām un funkcijām un, visbeidzot, uzrakstīsim koda paraugu, lai nolasītu sensoru vērtības un parādītu seriālajā monitorā. Tātad mācīsimies…!
Arduino Nano 33 BLE Sense
Nosaukums “Arduino Nano 33 BLE Sense” ir garšīgs, taču pats nosaukums sniedz svarīgu informāciju. To sauc par "Nano", jo izmēri, pinout un formas faktors ir ļoti līdzīga klasiskās Arduino Nano, tas ir faktiski plānots izmantot kā aizstājēju Arduino Nano esošajiem projektiem, bet loms ir tas, ka šis jaunais modulis darbojas 3.3V, kamēr klasiskais Nano darbojas ar 5V. Tāpēc es domāju, ka šeit parādās nosaukums “33”, lai norādītu, ka tāfele darbojas ar 3,3 V. Tad nosaukums “BLE” norāda, ka modulis atbalsta Bluetooth Low Energy (BLE5 5.0)nosaukums “sense” norāda, ka tajā ir iebūvēti sensori, piemēram, akselerometrs, žiroskops, magnetometrs, temperatūras un mitruma sensors, spiediena sensors, tuvuma sensors, krāsu sensors, žestu sensors un pat iebūvēts mikrofons. Mēs vēlāk iedziļināsimies BLE un citu sensoru detaļās, taču pagaidām šādi Arduino Nano 33 BLE maņu dēlis izskatās taisni no boksēšanas.
Arduino Nano 33 BLE Sense aparatūras pārskats
Pirmajā dēļa skatījumā jūs varat atrast daudz komponentu, kas ir pārpildīti augšpusē, no kuriem lielākā daļa ir sensori, kurus es teicu iepriekš. Bet galvenās smadzenes ir paslēptas aiz metāla apvalka labajā pusē. Šajā korpusā ir Nordic nRF52840 procesors, kas satur jaudīgu Cortex M4F un NINA B306 moduli BLE un Bluetooth 5 sakariem. Tas ļauj panelim darboties ar ļoti mazu enerģijas patēriņu un sazināties, izmantojot Bluetooth 5, kas ir ideāli piemērots mazjaudas tīkla tīkla lietojumiem mājas automatizācijā un citos saistītos projektos. Arī tāpēc, ka nRF procesors atbalsta ARM Mbed OStas nodrošina arī dažus programmatūras uzlabojumus, kurus mēs apspriedīsim vēlāk. Sensori, gaismas diodes, spiedpogas un cita svarīga informācija, kas jums jāzina uz kuģa, ir atzīmēti zemāk esošajā attēlā.
Kā redzat no iepriekš minētā attēla, dēlis ir piepildīts ar sensoriem, kas var palīdzēt veidot kastes labo pusi, pat nepievienojot plāksni pie ārējiem sensoriem. Dēli paredzēts izmantot valkājamās ierīcēs un citās viedās pārnēsājamās ierīcēs, piemēram, fitnesa joslās, glikozes kontrolē, pedometros, viedpulkstenī, meteoroloģiskajā stacijā, mājas drošībā utt., Kur izmantosiet lielāko daļu šo sensoru. Kā jau vienmēr, visiem šiem sensoriem ir iepriekš izveidotas Arduino bibliotēkas, kuras varat ērti izmantot. Šī raksta beigās mēs nolasīsim visu šo sensoru vērtības un parādīsim seriālajā monitorā. Sensoru informācija par Arduino Nano 33 BLE sensoru paneli kopā ar nepieciešamajām bibliotēkām ir dota zemāk
Sensora nosaukums |
Parametri |
Saites |
LSM9DSI - ST mikroelektronika |
Akselerometrs, žiroskops, magnetometrs |
LSMDSI datu lapa Arduino_LSM9DS1 bibliotēka |
LPS22HB - ST mikroelektronika |
Spiediens |
LPS22HB datu lapa Arduino_LPS22HB bibliotēka |
HTS221 - ST mikroelektronika |
Temperatūra un mitrums |
LPS22HB datu lapa Arduino_HTS221 bibliotēka |
APDS9960 - Avago Tech. |
Tuvums, gaisma, krāsa, žests |
LPS22HB datu lapa Arduino_APDS9960 bibliotēka |
MP34DT05 - ST mikroelektronika |
Mikrofons |
MP34DT05 datu lapa Iebūvēta PDM bibliotēka |
Lielākā daļa šo sensoru ir no ST Microelectronics, un tie atbalsta mazjaudas darbību, padarot to ideāli piemērotu ar akumulatoru darbināmiem modeļiem. Daži cilvēki jau varētu būt pazīstami ar APDS9960 sensoru, jo tas jau ir pieejams kā plūdu modulis, un mēs jau iepriekš izmantojām APDS9960 sensoru ar Arduino. Lai iegūtu papildinformāciju par šiem sensoriem, varat apmeklēt attiecīgo datu lapu un pārliecināties, vai esat pievienojis visu nodrošināto bibliotēku savam Arduino IDE, lai sāktu tos izmantot ar savu Arduino Nano 33 BLE sensoru paneli. Lai pievienotu bibliotēku, varat izmantot norādīto saiti, lai nokļūtu attiecīgajā GitHub lapā un lejupielādētu ZIP failu, pēc tam izmantojiet Sketch -> Include Library -> Add.ZIP Library vai arī varat izmantot Arduino IDE bibliotēkas pārvaldnieku un pievienot šos bibliotēkas.
Arduino Nano 33 BLE sense Board tehniskās specifikācijas:
Ar Nordic nRF52840 procesora palīdzību Arduino Nano 44 BLE plāksnei ir šādas tehniskās specifikācijas
- Darba spriegums: 3.3V
- USB ieejas spriegums: 5V
- Ievades kontakta spriegums: no 4,5V līdz 21V
- Mikroshēma: NINA-B3 - RF52840
- Pulkstenis: 64MHz
- Zibspuldze: 1 MB
- SRAM: 256 KB
- Bezvadu savienojamība: Bluetooth 5.0 / BLE
- Saskarnes: USB, I2C, SPI, I2S, UART
- Digitālās I / O tapas: 14
- PWM tapas: 6 (8 bitu izšķirtspēja)
- Analogās tapas: 8 (10 bitu vai 12 bitu konfigurējams)
Programmatūras uzlabojumi ar Arduino Nano 33 BLE sense
Tāpat kā visus tur esošos Arduino dēļus, arī Arduino Nano 33 BLE sajūtu var ieprogrammēt ar Arduino IDE. Pirms sākat, jums ir jāizmanto dēļu pārvaldnieks un jāpievieno informācija par dēli IDE. Tā kā mēs zinām, ka nRF 52840 var ieprogrammēt, izmantojot ARM Mbed OS, tas nozīmē, ka mūsu Arduino Nano 33 dēlis atbalsta reāllaika operētājsistēmu (RTOS). Izmantojot Mbed OS programmēšanu, programmā var vienlaikus palaist vairākus pavedienus, lai veiktu daudzuzdevumus. Arī dēļa enerģijas patēriņš tiks ievērojami samazināts, katru reizi, kad mēs izsauksim kavēšanās funkciju, dēlis kavēšanās laikā ieslēgsies kutināšanas režīmā, lai taupītu enerģiju, un pēc kavēšanās beigām atkal darbotos. Tiek ziņots, ka šī operācija patērēs par 4,5uA mazāk nekā parastā Arduino kavēšanās darbība.
Tas nozīmē, ka Mbed OS integrācija ar Arduino IDE ir salīdzinoši jauna, un paies zināms laiks, līdz mēs varēsim pilnībā izmantot visu Mbed OS jaudu ar Arduino IDE. Tāpēc ātrai palaišanai mēs uzrakstīsim programmu, lai nolasītu visas sensora vērtības un parādītu to sērijveida monitoros.
Sagatavojiet savu Arduino IDE Arduino Nano 33 BLE jēgai
Palaidiet savu Arduino IDE un dodieties uz Tools -> Boards -> Board Manger, lai palaistu savu Arduino Board manager. Tagad meklējiet “Mbed OS” un instalējiet pakotni. Instalēšanas pabeigšanai vajadzētu būt zināmam laikam.
Kad instalēšana ir pabeigta, aizveriet dialoglodziņu un pievienojiet savu Arduino 33 dēli, izmantojot mikro USB kabeli, ar klēpjdatoru. Tiklīdz jūs pievienosiet dēļa logus, automātiski sāks instalēt nepieciešamos draivera draiverus. Pēc tam atveriet savu Arduino IDE un atlasiet Rīki -> Dēlis -> Arduino Nano 33. Pēc tam atlasiet arī pareizo COM portu, atzīmējot Rīki -> Ports, mans ir savienots ar portu COM3, bet jūsu var atšķirties. Pēc porta izvēles jūsu IDE apakšējā labajā stūrī jāizskatās šādi
Tagad, lai ātri pārbaudītu, vai viss darbojas, mēs varam izmantot programmas paraugu, izmēģināsim to, kas sniegts File -> Piemēri -> PDM -> PDMSerialPlotter. Šī programma izmantos borta mikrofonu, lai klausītos audio un uzzīmētu to sērijveida ploterī. Jūs varat augšupielādēt programmu un pārbaudīt, vai tāfele un IDE darbojas.
Tagad, ja jums rodas smieklīgi lēna kompilācija, jūs neesat viens, daudzi cilvēki, ieskaitot mani, saskaras ar šo problēmu, un šī raksta rakstīšanas laikā, šķiet, nav risinājuma. Lai sastādītu un augšupielādētu vienkāršas programmas, man vajag apmēram 2-3 minūtes, un, kad es izmēģināju dažas BLE programmas vai mēģināju strādāt ar Mbed OS, sastādīšanas laiks palielinājās līdz vairāk nekā 10 minūtēm, kas mani nemudināja mēģināt kaut ko turpināt. Tas ir saistīts ar Mbed OS integrāciju ar Arduino IDE, cerēsim, ka kāds no brīnišķīgās Arduino kopienas nāks klajā ar risinājumu.
Programma sensora datu nolasīšanai un rādīšanai seriālajā monitorā
Ja mēs neizmantojam paneļa BLE vai galvenās Mbed OS funkcijas, kompilēšanas laiks bija saprātīgs. Tāpēc es uzrakstīju vienkāršu skici, lai nolasītu visas sensora vērtības un parādītu to sērijveida monitorā, kā parādīts zemāk
Pilns kods, lai izdarītu to pašu, ir norādīts šīs lapas apakšdaļā, taču pārliecinieties, vai esat instalējis visas iepriekš minētās bibliotēkas. Kods ir izskaidrots šādi.
Sāciet programmu, iekļaujot visus nepieciešamos galvenes failus. Šeit mēs izmantosim visus četrus sensorus, izņemot mikrofonu
#include // Iekļaut bibliotēku 9 asu IMU #include // Iekļaut bibliotēku, lai lasītu Pressure #include // Iekļaut bibliotēku, lai lasītu temperatūru un mitrumu #include // Iekļaut bibliotēku krāsu, tuvuma un žestu atpazīšanai
Iestatīšanas funkcijas ietvaros mēs inicializējam sērijveida monitoru ar 9600 bitu pārraides ātrumu, lai parādītu visas sensora vērtības, kā arī inicializējam visas nepieciešamās bibliotēkas. Iestatījumā iekļautais kods ir parādīts zemāk
void setup () {Sērijas.sākt (9600); // Seriālais monitors, lai parādītu visas sensora vērtības, ja (! IMU.begin ()) // Inicializējiet IMU sensoru {Serial.println ("Neizdevās inicializēt IMU!"); while (1);} if (! BARO.begin ()) // Inicializēt spiediena sensoru {Serial.println ("Neizdevās inicializēt spiediena sensoru!"); while (1);} if (! HTS.begin ()) // Inicializēt temperatūras un mitruma sensoru {Serial.println ("Neizdevās inicializēt temperatūras un mitruma sensoru!"); while (1);} if (! APDS.begin ()) // Inicializēt krāsu, tuvuma un žestu sensoru {Serial.println ("Neizdevās inicializēt krāsu, tuvuma un žestu sensoru!"); kamēr (1);}}
Cilpas funkcijas iekšpusē mēs bibliotēkā nolasām nepieciešamās sensora vērtības un pēc tam izdrukājam seriālajā monitorā. Sintaksei var atsaukties no katras bibliotēkas paraugprogrammas, mēs esam izlasījuši akselerometra, žiroskopa, magnetometra, spiediena, temperatūras, mitruma un tuvuma sensora vērtības un parādījuši tos seriālajā monitorā. Akselerometra vērtības mērīšanas kods ir parādīts zemāk, tāpat mēs varam izmērīt visus sensorus.
// Akselerometra vērtības, ja (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Akselerometrs ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } kavēšanās (200);
Arduino Nano 33 BLE - koda augšupielāde
Koda augšupielāde Nano 33 ir līdzīga visām citām plāksnēm, taču ņemiet vērā, ka dēlim ir divas COM porti. Noklikšķinot uz augšupielādes pogas, Arduino IDE apkopo kodu un pēc tam automātiski atiestata dēli, izmantojot programmatūras komandu, tā paneli pārslēgs sāknēšanas iekrāvēja režīmā un augšupielādēs kodu. Tāpēc, kad augšupielāde ir pabeigta, jūs varat pamanīt, ka Arduino IDE ir automātiski nomainījis savu COM portu uz citu numuru, un pirms sērijveida monitora atvēršanas, iespējams, vēlēsities to mainīt.
Tāpēc šī ir mana līdzšinējā pieredze ar Arduino Nano 33 dēli, es mēģināšu kaut ko vēlāk izveidot kaut ko ar tā sensoriem un BLE funkcijām. Kāda bija jūsu pieredze ar dēli? Ko jūs vēlaties, lai es ar to uzbūvētu? Atstājiet atbildes komentāru sadaļā, un mēs apspriedīsim vairāk.