- Arduino Nano 33 BLE Sense
- Arduino Nano 33 Pangkalahatang-ideya ng BLE Sense Hardware
- Mga pagpapabuti ng software na may Arduino Nano 33 BLE kahulugan
- Paghahanda ng iyong Arduino IDE para sa Arduino Nano 33 BLE sense
- Programa upang basahin ang data ng sensor at ipakita sa Serial Monitor
- Arduino Nano 33 BLE- Pag-upload ng code
Ang Arduino ay naging go-to development platform para sa mabilis na prototype at pagpapatunay ng ideya. Marami sa atin ay nagsisimula sana sa Arduino UNO development board, ngunit ngayon habang sumusulong tayo patungo sa Internet ng mga bagay, Computer Vision, Artipisyal na Intelihente, pag-aaral ng Machine, at iba pang mga futuristic na teknolohiya, ang mapagpakumbabang Arduino UNO ay hindi na makaya ang 8 -bit Microcontroller. Nanawagan ito para sa paglulunsad ng mga bagong board na may mas malakas na mga processor na may built-in na Wi-Fi, Bluetooth, GSM at iba pang mga wireless na kakayahan, tulad ng tanyag na MKR1000 o MKR GSM 1400. Sa kontekstong ito, inilunsad kamakailan ng Arduino ang isang bagong bersyon ng Nano nito na tinawag na Arduino Nano 33.
Mayroong ganap na dalawang uri ng Arduino Nano 33 boards, katulad ng Arduino Nano 33 IoT at Arduino Nano 33 BLE sense. Ang pangunahing pagkakaiba sa pagitan ng parehong mga module ay ang Arduino Nano 33 BLE module ng kahulugan ay may ilang mga built-in na sensor (makukuha sa mga detalye sa ibang pagkakataon) habang ang Arduino Nano 33 IoT ay wala sa kanila. Sa artikulong ito susuriin namin ang Arduino Nano 33 BLE sense board, ipakilala ka sa mga tampok at pag-andar nito at sa wakas ay magsulat ng isang sample na code upang mabasa ang mga halaga ng sensor at ipakita sa serial monitor. Kaya't matuto tayo…..!
Arduino Nano 33 BLE Sense
Ang pangalang "Arduino Nano 33 BLE Sense" ay masigasig, ngunit ang pangalan mismo ay naglalagay ng ilang mahalagang impormasyon. Tinawag itong "Nano" dahil ang mga sukat, pinout at form factor ay halos kapareho ng klasikong Arduino Nano, talagang balak itong magamit bilang kapalit ng Arduino Nano sa iyong mga mayroon nang proyekto, ngunit ang nakuha ay ang bagong modyul na ito ay nagpapatakbo sa 3.3V habang ang klasikong Nano ay nagpapatakbo sa 5V. Kaya sa palagay ko dito napupunta ang pangalang "33", upang ipahiwatig na ang board ay nagpapatakbo sa 3.3V. Pagkatapos ang pangalang "BLE" ay nagpapahiwatig na sinusuportahan ng module ang Bluetooth Low Energy (BLE5 5.0)at ang pangalang "sense" ay nagpapahiwatig na mayroon itong mga on-board sensor tulad ng accelerometer, gyroscope, magnetometer, temperatura at halumigmig sensor, Pressure sensor, Proximity sensor, Color sensor, Gesture sensor, at kahit isang built-in na mikropono. Malalaman natin ang mga detalye ng BLE at iba pang mga sensor sa paglaon ngunit sa ngayon ito ay kung paano ang isang Arduino Nano 33 BLE sense board ay mukhang tuwid sa un-boxing.
Arduino Nano 33 Pangkalahatang-ideya ng BLE Sense Hardware
Sa unang hitsura ng board maaari kang makahanap ng maraming mga sangkap na masikip sa tuktok, na ang karamihan ay mga sensor na sinabi ko kanina. Ngunit ang pangunahing utak ay nakatago sa likod ng metal na pambalot sa kanang bahagi. Ang casing na ito ay humahawak sa Nordic nRF52840 processor na naglalaman ng isang malakas na Cortex M4F at ang NINA B306 module para sa BLE at Bluetooth 5 na komunikasyon. Pinapayagan nitong gumana ang lupon sa napakababang lakas at makipag-usap gamit ang paggawa ng Bluetooth 5 para sa perpekto para sa mababang aplikasyon ng network ng mesh na kapangyarihan sa automation ng bahay at iba pang mga konektadong proyekto. Gayundin dahil sinusuportahan ng processor ng nRF ang ARM Mbed OSnagbibigay din ito ng ilang mga pagpapabuti ng software na tatalakayin namin sa paglaon. Ang mga sensor, LED, pushbutton at iba pang mahahalagang bagay na dapat mong malaman sa iyong board ay minarkahan sa larawan sa ibaba.
Tulad ng nakikita mo mula sa imahe sa itaas, ang board ay naka-pack na may mga sensor na makakatulong sa iyo sa pagbuo ng kanan ng kahon nang hindi mo na ikonekta ang board sa anumang mga panlabas na sensor. Nilalayon ang board na magamit sa mga naisusuot na aparato at iba pang mga smart portable device tulad ng Fitness band, monitoring ng Glucose, Pedometers, smartwatch, istasyon ng panahon, seguridad sa bahay atbp kung saan mo gagamitin ang karamihan sa mga sensor At tulad ng lagi ang lahat ng mga sensor na ito ay may paunang built na mga aklatan para sa Arduino na maaari mong madaling gamitin. Sa pagtatapos ng artikulong ito mababasa namin ang mga halaga mula sa lahat ng mga sensor na ito at ipakita ito sa serial monitor. Ang mga detalye ng sensor sa Arduino Nano 33 BLE sense board kasama ang mga kinakailangang aklatan ay naka-tabulate sa ibaba
Pangalan ng Sensor |
Mga Parameter |
Mga link |
LSM9DSI - ST Microelectronics |
Accelerometer, Gyroscope, Magnetometer |
LSMDSI Datasheet Arduino_LSM9DS1 Library |
LPS22HB - ST Microelectronics |
Presyon |
LPS22HB Datasheet Arduino_LPS22HB Library |
HTS221 - ST Microelectronics |
Temperatura at Humidity |
LPS22HB Datasheet Arduino_HTS221 Library |
APDS9960 - Avago Tech. |
Kalapitan, ilaw, kulay, kilos |
LPS22HB Datasheet Arduino_APDS9960 Library |
MP34DT05 - ST Microelectronics |
Mikropono |
MP34DT05 Datasheet Inbuilt-PDM Library |
Karamihan sa mga sensor na ito ay mula sa ST Microelectronics at sinusuportahan nila ang mababang operasyon ng kuryente na ginagawang perpekto para sa mga disenyo na pinapatakbo ng baterya. Ilang tao ang maaaring pamilyar sa sensor ng APDS9960 dahil magagamit na ito bilang isang module ng spate at ginamit din namin ang sensor ng APDS9960 na may Arduino dati. Para sa karagdagang impormasyon sa mga sensor na ito, maaari mong bisitahin ang kani-kanilang datasheet at tiyaking idinagdag mo ang buong ibinigay na library sa iyong Arduino IDE upang simulang gamitin ang mga ito sa iyong Arduino Nano 33 BLE sense board. Upang magdagdag ng isang library maaari mong gamitin ang naibigay na link upang makapunta sa kani-kanilang pahina ng GitHub at i-download ang ZIP file, pagkatapos ay gamitin ang Sketch -> Isama ang Library -> Magdagdag. ZIP Library o maaari mo ring gamitin ang manager ng library sa Arduino IDE at idagdag ang mga ito aklatan.
Arduino Nano 33 BLE sense Board Teknikal na Mga Pagtukoy:
Pinapagana ng Nordic nRF52840 Processor ang Arduino Nano 44 BLE board ay may mga sumusunod na panteknikal na pagtutukoy
- Operating Boltahe: 3.3V
- Boltahe ng USB-Input: 5V
- Input-pin na Boltahe: 4.5V hanggang 21V
- Chip: NINA-B3 - RF52840
- Orasan: 64MHz
- Flash: 1MB
- SRAM: 256 KB
- Pagkakakonekta ng Wireless: Bluetooth 5.0 / BLE
- Mga interface: USB, I2C, SPI, I2S, UART
- Mga Digital I / O Pin: 14
- PWM Pins: 6 (resolusyon ng 8-bit)
- Mga Analog Pins: 8 (10-bit o 12-bit na mai-configure)
Mga pagpapabuti ng software na may Arduino Nano 33 BLE kahulugan
Tulad ng lahat ng mga board ng Arduino doon, ang Arduino Nano 33 BLE sense ay maaaring mai-program sa Arduino IDE. Ngunit, kailangan mong gamitin ang board manager at idagdag ang mga detalye ng board sa iyong IDE bago ka magsimula. Tulad ng alam namin na ang nRF 52840 ay maaaring mai-program gamit ang ARM Mbed OS, nangangahulugan ito na sinusuportahan ng aming Arduino Nano 33 board ang Real-Time Operating System (RTOS). Sa pagprogram ng Mbed OS maaari naming patakbuhin ang maraming mga thread nang sabay-sabay sa programa upang maisagawa ang multi-tasking. Gayundin, ang pagkonsumo ng kuryente ng board ay lubos na mabawasan, sa tuwing tatawagin namin ang pagpapaandar na pagpapaandar ang board ay papasok sa mode ng tickles sa oras ng pagkaantala upang makatipid ng kuryente at babalik sa pagpapatakbo kapag natapos na ang pagkaantala. Naiulat na ang operasyon na ito ay tatupok ng 4.5uA mas mababa sa isang normal na operasyon ng pagkaantala ng Arduino.
Sinabi na, ang pagsasama ng Mbed OS sa Arduino IDE ay medyo bago at magtatagal bago namin ganap na magamit ang buong lakas ng Mbed OS sa Arduino IDE. Kaya para sa isang mabilis na pagsisimula, magsusulat kami ng isang programa upang basahin ang lahat ng mga halaga ng sensor at ipakita ito sa mga serial monitor.
Paghahanda ng iyong Arduino IDE para sa Arduino Nano 33 BLE sense
Ilunsad ang iyong Arduino IDE at pumunta sa Tools -> Board -> Board Manger upang ilunsad ang iyong Arduino Board manager. Ngayon maghanap para sa "Mbed OS" at i-install ang package. Dapat tumagal ng ilang oras bago makumpleto ang pag-install.
Kapag tapos na ang pag-install, isara ang dialog box at ikonekta ang iyong Arduino 33 board gamit ang isang micro USB cable sa iyong laptop. Sa sandaling ikonekta mo ang board windows ay awtomatikong magsisimulang mai-install ang kinakailangang mga driver para sa board. Pagkatapos buksan ang iyong Arduino IDE at piliin ang Mga Tool -> Lupon -> Arduino Nano 33. Pagkatapos ay piliin din ang tamang COM port sa pamamagitan ng pag-check sa Mga Tool -> Port, ang minahan ay konektado sa port COM3 ngunit maaaring mag-iba ang iyo. Matapos mapili ang port ay dapat ganito ang hitsura ng iyong IDE sa kanang sulok sa ibaba
Ngayon upang mabilis na suriin kung gumagana ang lahat maaari nating magamit ang isang halimbawa ng programa, subukan natin ang isang ibinigay sa File -> Mga Halimbawa -> PDM -> PDMSerialPlotter. Gagamitin ng programang ito ang on-board microphone upang makinig para sa audio at i-plot ito sa isang serial plotter. Maaari mong i-upload ang programa at suriin kung gumagana ang board at ang IDE.
Ngayon kung nakakaranas ka ng isang nakakatawang mabagal na pag-iipon pagkatapos ay hindi ka nag-iisa, maraming mga tao kasama ako ang nakaharap sa isyung ito at sa oras ng pagsulat ng artikulong ito, tila walang solusyon. Inaabot ako ng humigit-kumulang 2-3 minuto upang mag-ipon at mag-upload ng mga simpleng programa at kapag sinubukan ko ang ilang mga programa na BLE o sinubukan na gumana sa Mbed OS ang oras ng pagtitipon ay tumaas sa higit sa 10 minuto na hindi hinihikayat akong subukan ang anumang mas malayo. Ito ay dahil sa pagsasama ng Mbed OS sa Arduino IDE, inaasahan natin na may isang tao mula sa kahanga-hangang Arduino Community na magkaroon ng isang solusyon para dito.
Programa upang basahin ang data ng sensor at ipakita sa Serial Monitor
Kung hindi namin gagamitin ang BLE o pangunahing pag-andar ng Mbed OS ng board ang oras ng pag-ipon ay makatwiran. Kaya't nagsulat ako ng isang simpleng sketch upang mabasa ang lahat ng mga halaga ng sensor at ipakita ito sa serial monitor tulad ng palabas sa ibaba
Ang kumpletong code upang gawin ang pareho ay ibinibigay sa ilalim ng pahinang ito, ngunit tiyaking na-install mo ang lahat ng mga library na nabanggit sa itaas. Ang paliwanag ng code ay ang mga sumusunod.
Simulan ang programa sa pamamagitan ng pagsasama ng lahat ng kinakailangang mga file ng header. Dito ay gagamitin namin ang lahat ng apat na sensor maliban sa mikropono
#include // Isama ang silid-aklatan para sa 9-axis IMU # isama // // Isama ang library na basahin ang Presyon
Sa loob ng pag-andar ng pag-setup ay pinasimulan namin ang serial monitor sa 9600 baud rate upang maipakita ang lahat ng mga halaga ng sensor at simulan din ang lahat ng kinakailangang mga aklatan. Ang code sa loob ng pag-setup ay ipinapakita sa ibaba
void setup () {Serial.begin (9600); // Serial monitor upang maipakita ang lahat ng mga halaga ng sensor kung (! IMU.begin ()) // Initialize IMU sensor {Serial.println ("Nabigong simulan ang IMU!"); habang (1);} kung (! BARO.begin ()) // Initialize Pressure sensor {Serial.println ("Nabigong simulan ang Pressure Sensor!"); habang (1);} kung (! HTS.begin ()) // Initialize Temperature and Humidity sensor {Serial.println ("Nabigong simulan ang Temperatura at Humidity Sensor!"); habang (1);} kung (! APDS.begin ()) // Initialize Color, Proximity and Gesture sensor {Serial.println ("Nabigong simulan ang Kulay, Proximity at Gesture Sensor!"); habang (1);}}
Sa loob ng pag-andar ng loop, binasa namin ang kinakailangang mga halaga ng sensor mula sa library at pagkatapos ay i-print ang mga ito sa serial monitor. Maaaring i-refer ang syntax mula sa halimbawang programa ng bawat silid-aklatan, nabasa namin ang mga rate ng accelerometer, gyroscope, magnetometer, presyon, temperatura, halumigmig at proximity sensor at ipinakita ang mga ito sa serial monitor. Ang code upang sukatin ang halaga ng accelerometer ay ipinapakita sa ibaba, gayun din, maaari naming sukatin para sa lahat ng mga sensor.
// Mga halaga ng Accelerometer kung (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); } pagkaantala (200);
Arduino Nano 33 BLE- Pag-upload ng code
Ang pag-upload ng code sa Nano 33 ay katulad sa anumang iba pang mga board, ngunit tandaan na ang board ay may dalawang COM port. Kapag nag-click ka sa pindutan ng pag-upload ang Arduino IDE ay nagtatala ng code at pagkatapos ay awtomatikong i-reset ang board sa pamamagitan ng utos ng software, ilalagay nito ang board sa boot loader mode at i-upload ang iyong code. Dahil dito, kapag tapos na ang pag-upload maaari mong mapansin na ang Arduino IDE ay awtomatikong binago ang COM port nito sa ibang numero at baka gusto mong baguhin ito bago buksan ang iyong serial monitor.
Kaya't ito ang karanasan ko sa board ng Arduino Nano 33 sa ngayon, susubukan kong bumuo ng isang bagay kasama ang mga sensor at tampok na BLE sa paglaon sa hinaharap. Kumusta ang iyong karanasan sa pisara? Ano ang gusto mong buuin ko kasama nito? Iwanan ang mga sagot sa seksyon ng komento at tatalakayin pa namin ang higit pa.