- Arduino Nano 33 BLE Sense
- Prehľad hardvéru Arduino Nano 33 BLE Sense
- Softvérové vylepšenia s Arduino Nano 33 BLE sense
- Príprava vášho Arduino IDE na Arduino Nano 33 BLE sense
- Naprogramujte načítanie údajov senzora a ich zobrazenie na Serial Monitor
- Arduino Nano 33 BLE - nahrávanie kódu
Arduino je vývojová platforma pre rýchle prototypovanie a overovanie nápadov. Mnoho z nás by začalo s vývojovou radou Arduino UNO, ale dnes, keď postupujeme smerom k internetu vecí, počítačovému videniu, umelej inteligencii, strojovému učeniu a ďalším futuristickým technológiám, už by sa pokorné Arduino UNO nedokázalo vyrovnať so svojimi 8 -bitový mikrokontrolér. Vyžiadalo si to uvedenie nových dosiek s výkonnejšími procesormi, ktoré majú zabudované Wi-Fi, Bluetooth, GSM a ďalšie bezdrôtové funkcie, ako sú populárne MKR1000 alebo MKR GSM 1400. V tejto súvislosti spoločnosť Arduino nedávno uviedla na trh novú verziu svojho Nano s názvom Arduino Nano 33.
Existujú úplne dva typy dosiek Arduino Nano 33, a to Arduino Nano 33 IoT a Arduino Nano 33 BLE sense. Hlavný rozdiel medzi oboma modulmi spočíva v tom, že snímací modul Arduino Nano 33 BLE má niektoré zabudované snímače (k podrobnostiam sa dostaneme neskôr), zatiaľ čo Arduino Nano 33 IoT ich nemá. V tomto článku preskúmame senzorovú dosku Arduino Nano 33 BLE, predstavíme vám jej vlastnosti a funkcie a nakoniec napíšeme vzorový kód na načítanie hodnôt senzora a ich zobrazenie na sériovom monitore. Poďme sa teda učiť…!
Arduino Nano 33 BLE Sense
Názov „Arduino Nano 33 BLE Sense“ je síce sústo, ale samotný názov uvádza niekoľko dôležitých informácií. To je nazývané "Nano", pretože rozmery, Pinout a tvarový faktor je veľmi podobná klasickému Arduino Nano, to je vlastne plánoval byť použité ako náhrada za Arduino Nano vo vašich existujúcich projektoch, ale úlovok je, že tento nový modul pracuje 3,3 V, zatiaľ čo klasický Nano pracuje na 5V. Takže si myslím, že tu práve pribudol názov „33“, ktorý naznačuje, že doska funguje na 3,3V. Názov „BLE“ potom naznačuje, že modul podporuje Bluetooth Low Energy (BLE5 5.0)a názov „sense“ znamená, že má zabudované snímače, ako sú akcelerometer, gyroskop, magnetometer, snímač teploty a vlhkosti, snímač tlaku, snímač vzdialenosti, snímač farieb, snímač gest a dokonca aj zabudovaný mikrofón. K podrobnostiam o BLE a ďalších snímačoch sa dostaneme neskôr, ale zatiaľ to tak vyzerá, keď snímacia doska Arduino Nano 33 BLE vyzerá priamo z rozbalenia.
Prehľad hardvéru Arduino Nano 33 BLE Sense
Pri prvom pohľade na dosku môžete nájsť veľa komponentov preplnených na vrchu, z ktorých väčšina sú senzory, ktoré som už skôr povedal. Hlavný mozog je ale skrytý za kovovým krytom na pravej strane. Toto puzdro obsahuje procesor Nordic nRF52840, ktorý obsahuje výkonný procesor Cortex M4F a modul NINA B306 pre komunikáciu BLE a Bluetooth 5. To umožňuje doske pracovať s veľmi nízkym výkonom a komunikovať pomocou Bluetooth 5, čo je ideálne riešenie pre sieťové aplikácie s nízkym výkonom v domácej automatizácii a iných pripojených projektoch. Pretože procesor nRF podporuje OS ARM MbedPoskytuje tiež niektoré softvérové vylepšenia, o ktorých sa zmienime neskôr. Senzory, LED, tlačidlá a ďalšie dôležité prvky, ktoré by ste mali na svojej doske poznať, sú označené na obrázku nižšie.
Ako vidíte na vyššie uvedenom obrázku, doska je nabitá senzormi, ktoré vám môžu pomôcť pri zostavovaní pravej strany skrinky, bez toho aby ste ju museli pripájať k akýmkoľvek externým senzorom. Doska je určená na použitie v prenosných zariadeniach a iných inteligentných prenosných zariadeniach, ako sú fitnes pásky, monitorovanie glukózy, krokomery, inteligentné hodinky, meteorologická stanica, zabezpečenie domácnosti atď., Kde budete väčšinu týchto senzorov používať. Ako vždy, všetky tieto snímače majú vopred pripravené knižnice pre Arduino, ktoré môžete ľahko používať. Na konci tohto článku si prečítame hodnoty zo všetkých týchto senzorov a zobrazíme ich na sériovom monitore. Podrobnosti o snímači na snímacej doske Arduino Nano 33 BLE spolu s požadovanými knižnicami sú uvedené nižšie
Názov snímača |
Parametre |
Odkazy |
LSM9DSI - ST mikroelektronika |
Akcelerometer, gyroskop, magnetometer |
Technický list LSMDSI Knižnica Arduino_LSM9DS1 |
LPS22HB - ST mikroelektronika |
Tlak |
LPS22HB Dátový list Knižnica Arduino_LPS22HB |
HTS221 - ST mikroelektronika |
Teplota a vlhkosť |
LPS22HB Dátový list Knižnica Arduino_HTS221 |
APDS9960 - Avago Tech. |
Blízkosť, svetlo, farba, gesto |
LPS22HB Dátový list Knižnica Arduino_APDS9960 |
MP34DT05 - ST mikroelektronika |
Mikrofón |
MP34DT05 Datasheet Vstavaná knižnica PDM |
Väčšina z týchto snímačov je od spoločnosti ST Microelectronics a podporujú nízkoenergetický chod, čo je ideálne riešenie pre batérie napájané. Len málo ľudí už môže byť oboznámených so snímačom APDS9960, pretože je už k dispozícii ako spate modul a predtým sme snímač APDS9960 používali aj s Arduinom. Viac informácií o týchto senzoroch nájdete v príslušnom údajovom liste. Tiež sa uistite, že ste do svojho Arduino IDE pridali celú poskytovanú knižnicu a začali ste ich používať so svojou doskou Arduino Nano 33 BLE. Ak chcete pridať knižnicu, pomocou daného odkazu sa dostanete na príslušnú stránku GitHub a stiahnete si súbor ZIP. Potom použite Skica -> Zahrnúť knižnicu -> Pridať.ZIP knižnica alebo môžete tiež použiť správcu knižníc na Arduino IDE a pridať tieto knižnice.
Arduino Nano 33 BLE sense Board Technické špecifikácie:
Doska Arduino Nano 44 BLE, poháňaná severským procesorom nRF52840, má nasledujúce technické špecifikácie
- Prevádzkové napätie: 3,3 V
- USB vstupné napätie: 5V
- Napätie vstupného kolíka: 4,5 V až 21 V.
- Čip: NINA-B3 - RF52840
- Hodiny: 64 MHz
- Blesk: 1 MB
- SRAM: 256 kB
- Bezdrôtové pripojenie: Bluetooth 5.0 / BLE
- Rozhrania: USB, I2C, SPI, I2S, UART
- Digitálne I / O piny: 14
- PWM piny: 6 (8-bitové rozlíšenie)
- Analógové piny: 8 (10-bitový alebo 12-bitový konfigurovateľný)
Softvérové vylepšenia s Arduino Nano 33 BLE sense
Rovnako ako všetky existujúce dosky Arduino, aj Arduino Nano 33 BLE sense je možné programovať pomocou Arduino IDE. Skôr ako začnete, musíte však použiť správcu nástenky a pridať do IDE podrobnosti nástenky. Ako vieme, nRF 52840 je možné programovať pomocou ARM Mbed OS, to znamená, že naša doska Arduino Nano 33 podporuje Real-Time Operating System (RTOS). S programovaním Mbed OS môžeme v programe spúšťať viac vlákien súčasne, aby sme mohli vykonávať viac úloh. Taktiež sa výrazne zníži spotreba energie dosky, zakaždým, keď zavoláme funkciu oneskorenia, doska vstúpi do režimu šteklenia počas doby oneskorenia, aby šetrila energiu, a po ukončení oneskorenia by skočila späť do prevádzky. Uvádza sa, že táto operácia spotrebuje o 4,5 uA menej ako normálna operácia oneskorenia Arduina.
Ako už bolo povedané, integrácia Mbed OS s Arduino IDE je relatívne nová a bude trvať nejaký čas, kým budeme môcť plne využiť plný výkon Mbed OS s Arduino IDE. Pre rýchle spustenie teda napíšeme program, ktorý načíta všetky hodnoty senzora a zobrazí ho na sériových monitoroch.
Príprava vášho Arduino IDE na Arduino Nano 33 BLE sense
Spustite svoje Arduino IDE a prejdite na Nástroje -> Dosky -> Správca dosiek, aby ste spustili správcu vašej dosky Arduino. Teraz vyhľadajte „Mbed OS“ a nainštalujte balík. Dokončenie inštalácie by malo chvíľu trvať.
Po dokončení inštalácie zatvorte dialógové okno a pripojte svoju dosku Arduino 33 pomocou kábla micro USB k prenosnému počítaču. Ihneď po pripojení k doske sa automaticky spustí inštalácia potrebných ovládačov pre dosku. Potom otvorte svoje Arduino IDE a vyberte Tools -> Board -> Arduino Nano 33. Potom tiež vyberte správny COM port zaškrtnutím Tools -> Port, mine je pripojený k portu COM3, ale váš sa môže líšiť. Po výbere portu by vaše IDE v pravom dolnom rohu malo vyzerať takto
Teraz, aby sme rýchlo skontrolovali, či všetko funguje, môžeme použiť ukážkový program, vyskúšajme program uvedený v ponuke Súbor -> Príklady -> PDM -> PDMSerialPlotter. Tento program použije palubný mikrofón na počúvanie zvuku a jeho vykreslenie na sériovom plotri. Môžete nahrať program a skontrolovať, či doska a IDE fungujú.
Ak teraz zažijete smiešne pomalé zostavovanie, nie ste sami, tomuto problému čelí mnoho ľudí vrátane mňa a v čase písania tohto článku sa zdá, že neexistuje žiadne riešenie. Zostavenie a nahranie jednoduchých programov mi trvá asi 2 - 3 minúty, a keď som vyskúšal niektoré programy BLE alebo som skúsil pracovať s Mbed OS, čas kompilácie sa zvýšil na viac ako 10 minút, čo ma už nepodnecovalo k ďalšiemu skúšaniu. Je to kvôli integrácii Mbed OS s Arduino IDE, dúfajme, že niekto z nádhernej komunity Arduino pre toto príde s riešením.
Naprogramujte načítanie údajov senzora a ich zobrazenie na Serial Monitor
Pokiaľ nepoužívame BLE alebo základné Mbed OS funkcie dosky, čas kompilácie bol rozumný. Napísal som teda jednoduchý náčrt, aby som prečítal všetky hodnoty senzorov a zobrazil ich na sériovom monitore, ako je to zobrazené nižšie
Celý kód, ktorý umožňuje urobiť to isté, je uvedený v dolnej časti tejto stránky. Uistite sa však, že máte nainštalované všetky vyššie uvedené knižnice. Vysvetlenie kódu je nasledovné.
Spustite program zahrnutím všetkých požadovaných súborov hlavičiek. Tu budeme používať všetky štyri senzory okrem mikrofónu
#include // Zahrnutie knižnice pre 9-osovú IMU #include // Zahrnutie knižnice na čítanie tlaku # Zahrnutie // Zahrnutie knižnice na čítanie teploty a vlhkosti # Zahrnutie // Zahrnutie knižnice pre rozpoznávanie farieb, blízkosti a gest
Vo vnútri funkcie nastavenia inicializujeme sériový monitor na prenosovú rýchlosť 9600, aby sme zobrazili všetky hodnoty senzorov a tiež inicializovali všetky požadované knižnice. Kód vo vnútri nastavenia je uvedený nižšie
void setup () {Serial.begin (9600); // Sériový monitor na zobrazenie všetkých hodnôt senzora if (! IMU.begin ()) // Inicializácia senzora IMU {Serial.println ("Inicializácia IMU!"); while (1);} if (! BARO.begin ()) // Inicializovať tlakový senzor {Serial.println ("Inicializácia tlakového senzora sa nepodarila!"); while (1);} if (! HTS.begin ()) // Inicializácia senzora teploty a vlhkosti {Serial.println ("Inicializácia senzora teploty a vlhkosti!"); while (1);} if (! APDS.begin ()) // Inicializácia senzora farieb, priblíženia a gest {Serial.println ("Inicializácia senzora farieb, priblíženia a gest!"); while (1);}}
Vo vnútri funkcie slučky načítame požadované hodnoty senzorov z knižnice a potom ich vytlačíme na sériovom monitore. Syntax sa dá odkázať z ukážkového programu každej knižnice, načítali sme hodnoty akcelerometra, gyroskopu, magnetometra, tlaku, teploty, vlhkosti a senzora priblíženia a zobrazovali ich na sériovom monitore. Kód na meranie hodnoty akcelerometra je uvedený nižšie, rovnako môžeme merať pre všetky snímače.
// Hodnoty akcelerometra if (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); } oneskorenie (200);
Arduino Nano 33 BLE - nahrávanie kódu
Nahrávanie kódu do Nano 33 je podobné ako do iných dosiek, nezabudnite však, že doska má dva porty COM. Keď kliknete na tlačidlo nahrávania, Arduino IDE skompiluje kód a potom automaticky resetuje dosku pomocou softvérového príkazu, čím sa doska prepne do režimu bootloaderu a nahrá sa váš kód. Z tohto dôvodu, akonáhle je nahrávanie hotové, môžete si všimnúť, že Arduino IDE automaticky zmenilo svoj COM port na iné číslo a možno ho budete chcieť zmeniť späť skôr, ako otvoríte sériový monitor.
Takže zatiaľ mám dosť skúseností s doskou Arduino Nano 33, niečo s jeho senzormi a funkciami BLE sa pokúsim postaviť niekedy neskôr v budúcnosti. Aké boli vaše skúsenosti s predstavenstvom? Čo by si chcel, aby som s tým vytvoril? Odpovede nechajte v sekcii komentárov a budeme ešte diskutovať.