- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense hardver áttekintés
- Szoftverfejlesztések az Arduino Nano 33 BLE sense segítségével
- Az Arduino IDE előkészítése az Arduino Nano 33 BLE érzékhez
- Program az érzékelő adatainak olvasására és a soros monitoron történő megjelenítésére
- Arduino Nano 33 BLE - A kód feltöltése
Az Arduino a gyors prototípus-készítés és az ötletellenőrzés fejlesztője. Sokan kezdtük volna az Arduino UNO fejlesztői testületével, de ma, amikor haladunk a dolgok internetének, a számítógépes látásmódnak, a mesterséges intelligenciának, a gépi tanulásnak és más futurisztikus technológiáknak az irányába, a szerény Arduino UNO már nem tudott megbirkózni a 8 -bit mikrovezérlő. Ez új táblák elindítását tette szükségessé, nagyobb teljesítményű processzorokkal, amelyek beépített Wi-Fi, Bluetooth, GSM és egyéb vezeték nélküli képességekkel rendelkeznek, mint például a népszerű MKR1000 vagy MKR GSM 1400. Ebben az összefüggésben az Arduino nemrégiben piacra dobta Nano új verzióját, Arduino Nano 33 néven.
Teljesen kétféle Arduino Nano 33 tábla létezik, nevezetesen az Arduino Nano 33 IoT és az Arduino Nano 33 BLE érzékelő. A fő különbség mindkét modul között az, hogy az Arduino Nano 33 BLE érzékelő modul tartalmaz néhány beépített érzékelőt (később a részletekbe kerül), míg az Arduino Nano 33 IoT nem rendelkezik velük. Ebben a cikkben áttekintjük az Arduino Nano 33 BLE érzékelő táblát, megismertetjük annak jellemzőivel és funkcióival, és végül írunk egy mintakódot az érzékelő értékeinek és a soros monitoron történő megjelenítéséhez. Tehát tanuljunk….
Arduino Nano 33 BLE Sense
Az „Arduino Nano 33 BLE Sense” elnevezés ínycsiklandó, de maga a név fontos információkat tartalmaz. Ez az úgynevezett „Nano”, mert a méretek, pinout és kialakítás nagyon hasonlít a klasszikus Arduino Nano, valójában tervezik használni, mint helyettesítő Arduino Nano a meglévő projektek, de a fogás, hogy ez az új modul működik 3.3V, míg a klasszikus Nano 5V-on működik. Tehát azt hiszem, itt jön be a „33” név, jelezve, hogy az alaplap 3,3 V-on működik. Ezután a „BLE” név azt jelzi, hogy a modul támogatja a Bluetooth Low Energy (BLE5 5.0)az „sense” név pedig azt jelzi, hogy olyan fedélzeti érzékelőkkel rendelkezik, mint gyorsulásmérő, giroszkóp, magnetométer, hőmérséklet- és páratartalom-érzékelő, nyomásérzékelő, közelségérzékelő, színérzékelő, gesztusérzékelő és még egy beépített mikrofon is. Később belemerülünk a BLE és más érzékelők részleteibe, de egyelőre így néz ki egy Arduino Nano 33 BLE érzékelő tábla a boksz nélkül.
Arduino Nano 33 BLE Sense hardver áttekintés
A tábla első pillantása során rengeteg alkatrész található a tetején, amelyek nagy része érzékelők, amelyeket korábban elmondtam. De a fő agy a jobb oldali fém burkolat mögött van elrejtve. Ez a burkolat a skandináv nRF52840 processzort tartalmazza, amely egy erős Cortex M4F-et és a BLE és Bluetooth 5 kommunikációhoz szükséges NINA B306 modult tartalmaz. Ez lehetővé teszi, hogy a kártya nagyon alacsony energiafogyasztással működjön, és a Bluetooth 5 használatával kommunikáljon, így ideális az otthoni automatizálás és más kapcsolódó projektek alacsony fogyasztású hálós alkalmazásaihoz. Továbbá, mivel az nRF processzor támogatja az ARM Mbed OS rendszertemellett tartalmaz néhány szoftverfejlesztést, amelyeket később megbeszélünk. Az érzékelők, a LED-ek, a nyomógombok és más fontos dolgok, amelyeket tudnia kell a táblán, az alábbi képen vannak jelölve.
Amint a fenti képen látható, a tábla tele van érzékelőkkel, amelyek segítséget nyújthatnak a doboz jobb oldalán, anélkül, hogy a táblát bármilyen külső érzékelőhöz kellene csatlakoztatni. A táblát arra tervezték, hogy hordható eszközökben és más intelligens hordozható készülékekben, például fitnesz sávokban, glükózmegfigyelésben, lépésszámlálókban, okosórában, időjárás-állomáson, otthoni biztonságban stb. Használják, ahol a legtöbb ilyen érzékelőt használni fogja. És mint mindig, ezek az érzékelők előre felépített könyvtárakkal rendelkeznek az Arduino számára, amelyeket könnyen használhat. A cikk végén leolvassuk az összes érzékelő értékét és megjelenítjük a soros monitoron. Az Arduino Nano 33 BLE érzékelő táblán található szenzor részleteit a szükséges könyvtárakkal együtt az alábbiakban soroljuk fel
Érzékelő neve |
Paraméterek |
Linkek |
LSM9DSI - ST mikroelektronika |
Gyorsulásmérő, giroszkóp, magnetométer |
LSMDSI adatlap Arduino_LSM9DS1 könyvtár |
LPS22HB - ST mikroelektronika |
Nyomás |
LPS22HB adatlap Arduino_LPS22HB könyvtár |
HTS221 - ST mikroelektronika |
Hőmérséklet és páratartalom |
LPS22HB adatlap Arduino_HTS221 könyvtár |
APDS9960 - Avago Tech. |
Közelség, fény, szín, gesztus |
LPS22HB adatlap Arduino_APDS9960 könyvtár |
MP34DT05 - ST mikroelektronika |
Mikrofon |
MP34DT05 adatlap Beépített PDM könyvtár |
Ezen érzékelők többsége az ST Microelectronics cégtől származik, és támogatják az alacsony fogyasztású működést, így ideálisak akkumulátorral működtetett kivitelekhez. Kevesen ismerhetik már az APDS9960 érzékelőt, mivel az már elérhető spate modulként, és korábban már használtuk az APDS9960 érzékelőt az Arduino-val is. Ha további információt szeretne kapni ezekről az érzékelőkről, keresse fel a megfelelő adatlapot, és ellenőrizze, hogy a teljes könyvtárat hozzáadta-e az Arduino IDE-hez, hogy el tudja kezdeni használni őket az Arduino Nano 33 BLE érzékelő táblával. Könyvtár hozzáadásához használhatja a megadott linket a megfelelő GitHub oldalra való letöltéshez és a ZIP fájl letöltéséhez, majd a Sketch -> Könyvtár beillesztése -> Add.ZIP könyvtár használatával, vagy használhatja az Arduino IDE könyvtárkezelőjét is, és ezeket hozzáadhatja. könyvtárak.
Arduino Nano 33 BLE sense Board műszaki specifikációk:
A skandináv nRF52840 processzor hajtja az Arduino Nano 44 BLE kártyát a következő műszaki specifikációkkal rendelkezik
- Üzemi feszültség: 3,3 V
- USB bemeneti feszültség: 5V
- Bemeneti tű feszültség: 4,5 V-tól 21 V-ig
- Chip: NINA-B3 - RF52840
- Óra: 64 MHz
- Flash: 1 MB
- SRAM: 256 KB
- Vezeték nélküli kapcsolat: Bluetooth 5.0 / BLE
- Interfészek: USB, I2C, SPI, I2S, UART
- Digitális I / O csapok: 14
- PWM csapok: 6 (8 bites felbontás)
- Analóg csapok: 8 (10 vagy 12 bites konfigurálható)
Szoftverfejlesztések az Arduino Nano 33 BLE sense segítségével
Csakúgy, mint az összes Arduino tábla, az Arduino Nano 33 BLE érzékelő programozható az Arduino IDE-vel. De meg kell kezdenie a fórumkezelőt, és hozzá kell adnia a fórum részleteit az IDE-hez. Mint tudjuk, az nRF 52840 programozható ARM Mbed OS használatával, ez azt jelenti, hogy Arduino Nano 33 alaplapunk támogatja a valós idejű operációs rendszert (RTOS). Az Mbed OS programozással egyszerre több szálat is futtathatunk a programban a többfeladatos feladatok elvégzéséhez. Ezenkívül a tábla energiafogyasztása nagymértékben csökken, minden alkalommal, amikor meghívjuk a késleltetési funkciót, a tábla a késleltetési idő alatt csiklandozó üzemmódba lép, hogy energiát takarítson meg, és a késés letelte után újra működésbe lépjen. Úgy tűnik, hogy ez a művelet 4,5uA-val kevesebbet fog fogyasztani, mint egy normál Arduino késleltetési művelet.
Ennek ellenére az Mbed OS integrálása az Arduino IDE-vel viszonylag új, és időbe telik, mire teljes mértékben kihasználhatjuk az Mbed OS teljes erejét az Arduino IDE-vel. Tehát a gyors indításhoz írunk egy programot, amely leolvassa az érzékelő összes értékét és megjeleníti a soros monitorokon.
Az Arduino IDE előkészítése az Arduino Nano 33 BLE érzékhez
Indítsa el Arduino IDE-jét, és lépjen az Eszközök -> Táblák -> Tábla-kezelő menüpontba az Arduino Tábla-kezelő elindításához. Most keressen rá az „Mbed OS” kifejezésre, és telepítse a csomagot. A telepítés befejezéséhez el kell telnie egy kis időnek.
A telepítés befejezése után zárja be a párbeszédpanelt, és micro USB-kábellel csatlakoztassa Arduino 33 lapját a laptophoz. Amint csatlakoztatja a táblát, az ablakok automatikusan elkezdik telepíteni a táblához szükséges illesztőprogramokat. Ezután nyissa meg az Arduino IDE-t, és válassza az Eszközök -> Tábla -> Arduino Nano 33 lehetőséget. Ezután válassza az Eszközök -> Port elemet is kiválasztva a megfelelő COM-portot, az enyém a COM3-os porthoz csatlakozik, de a tiéd változhat. A port kiválasztása után az IDE jobb alsó sarkának így kell kinéznie
Most, hogy gyorsan ellenőrizzük, hogy minden működik, használhatunk-e egy példa programot, próbáljuk ki a Fájl -> Példák -> PDM -> PDMSerialPlotter menüpontban megadottat. Ez a program a fedélzeti mikrofont használja a hang meghallgatására és a soros plotteren való ábrázolására. Feltöltheti a programot, és ellenőrizheti, hogy működik-e a tábla és az IDE.
Ha nevetségesen lassú összeállítást tapasztalsz, akkor nem vagy egyedül, sok ember, köztük én is, szembesül ezzel a kérdéssel, és a cikk írásakor úgy tűnik, hogy nincs megoldás. Körülbelül 2-3 percet vesz igénybe az egyszerű programok összeállítása és feltöltése, és amikor megpróbáltam néhány BLE programot, vagy megpróbáltam az Mbed OS-szel dolgozni, a fordítási idő több mint 10 percre nőtt, ami nem ösztönzött arra, hogy bármit tovább próbálkozzak. Ennek oka az Mbed OS integrálása az Arduino IDE-vel, reméljük, hogy a csodálatos Arduino közösségből valaki talál megoldást erre.
Program az érzékelő adatainak olvasására és a soros monitoron történő megjelenítésére
Ha nem használjuk a tábla BLE vagy core Mbed OS funkcióit, a fordítási idő ésszerű volt. Szóval írtam egy egyszerű vázlatot, hogy elolvassam az összes érzékelő értékét, és megjelenítsem a soros monitoron, mint az alábbi ábra
Az ehhez szükséges teljes kódot az oldal alján találja meg, de ellenőrizze, hogy telepítette-e az összes fent említett könyvtárat. A kód magyarázata a következő.
Indítsa el a programot az összes szükséges fejlécfájl hozzáadásával. Itt mind a négy érzékelőt használni fogjuk, kivéve a mikrofont
#include // A 9-tengelyes IMU könyvtárának beillesztése #include // A könyvtár beolvasása a nyomás beolvasására #include // Könyvtár beillesztése a hőmérséklet és páratartalom beolvasására #include // Könyvtár beillesztése a szín, a közelség és a gesztusfelismerés érdekében
A beállítási funkción belül a soros monitort 9600 baud sebességgel inicializáljuk, hogy megjelenítsük az összes szenzorértéket, és inicializáljuk az összes szükséges könyvtárat is. A telepítésen belüli kód az alábbiakban látható
void setup () {Soros.kezdés (9600); // Soros monitor az összes érzékelőérték megjelenítéséhez, ha (! IMU.begin ()) // Inicializálja az IMU érzékelőt {Serial.println ("Nem sikerült inicializálni az IMU-t!"); while (1);} if (! BARO.begin ()) // A nyomásérzékelő inicializálása {Serial.println ("Nem sikerült inicializálni a nyomásérzékelőt!"); while (1);} if (! HTS.begin ()) // A hőmérséklet- és páratartalom-érzékelő inicializálása {Serial.println ("Nem sikerült inicializálni a hőmérséklet- és páratartalom-érzékelőt!"); while (1);} if (! APDS.begin ()) // A szín-, közelség- és gesztusérzékelő inicializálása {Serial.println ("Nem sikerült inicializálni a szín-, közelség- és gesztusérzékelőt!"); míg (1);}}
A hurokfunkción belül kiolvassuk a szükséges érzékelőértékeket a könyvtárból, majd kinyomtatjuk őket a soros monitoron. A szintaxis az egyes könyvtárak példaprogramjából hivatkozható, elolvashattuk a gyorsulásmérő, a giroszkóp, a magnetométer, a nyomás, a hőmérséklet, a páratartalom és a közelség érzékelő értékeit és megjelenítettük azokat a soros monitoron. Az alábbiakban látható a gyorsulásmérő értékének mérésére szolgáló kód, hasonlóan minden érzékelőhöz mérhetünk.
// Gyorsulásmérő értékei, ha (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Gyorsulásmérő ="); Soros.print (accel_x); Serial.print (","); Soros.print (accel_y); Soros.print (","); Soros.println (accel_z); } késés (200);
Arduino Nano 33 BLE - A kód feltöltése
A kód feltöltése a Nano 33-ba hasonlóan hasonlít minden más táblához, de vegye figyelembe, hogy a táblának két COM portja van. Ha rákattint a feltöltés gombra, az Arduino IDE lefordítja a kódot, majd a szoftveres parancs segítségével automatikusan visszaállítja a táblát, ez indítópanel módba kapcsolja a táblát és feltölti a kódot. Emiatt, miután a feltöltés megtörtént, észreveheti, hogy az Arduino IDE automatikusan megváltoztatta COM-portját egy másik számra, és érdemes visszaváltoztatnia, mielõtt megnyitná a soros monitort.
Szóval nagyjából ez az eddigi tapasztalatom az Arduino Nano 33 táblával, megpróbálok valamivel később a jövőben felépíteni valamit az érzékelőivel és a BLE funkcióival. Milyen volt a tapasztalata a táblával kapcsolatban? Mit akarsz, hogy építsek vele? Hagyja a válaszokat a megjegyzés részben, és még többet megbeszélünk.