- Arduino Nano 33 BLE Sense
- Přehled hardwaru Arduino Nano 33 BLE Sense
- Softwarová vylepšení s Arduino Nano 33 BLE sense
- Příprava IDE Arduino na smysl Arduino Nano 33 BLE
- Naprogramujte čtení dat ze snímače a jejich zobrazení na sériovém monitoru
- Arduino Nano 33 BLE - nahrávání kódu
Arduino je vývojová platforma pro rychlé prototypování a ověřování nápadů. Mnoho z nás by začalo s vývojovou radou Arduino UNO, ale dnes, když postupujeme směrem k internetu věcí, počítačovému vidění, umělé inteligenci, strojovému učení a dalším futuristickým technologiím, pokorný Arduino UNO se už nedokázal vyrovnat s jeho 8 -bitový mikrokontrolér. To vyžadovalo uvedení nových desek s výkonnějšími procesory, které mají vestavěné Wi-Fi, Bluetooth, GSM a další bezdrátové funkce, jako jsou populární MKR1000 nebo MKR GSM 1400. V této souvislosti společnost Arduino nedávno uvedla na trh novou verzi svého Nano nazvanou Arduino Nano 33.
Existují zcela dva typy desek Arduino Nano 33, jmenovitě Arduino Nano 33 IoT a Arduino Nano 33 BLE sense. Hlavní rozdíl mezi oběma moduly spočívá v tom, že senzorový modul Arduino Nano 33 BLE má některé vestavěné senzory (k podrobnostem se dostaneme později), zatímco Arduino Nano 33 IoT je nemá. V tomto článku přezkoumáme desku Arduino Nano 33 BLE, seznámíme vás s jejími funkcemi a funkcemi a nakonec napíšeme ukázkový kód pro čtení hodnot senzoru a zobrazení na sériovém monitoru. Pojďme se tedy učit…!
Arduino Nano 33 BLE Sense
Název „Arduino Nano 33 BLE Sense“ je plný, ale samotný název obsahuje některé důležité informace. Nazývá se „Nano“, protože rozměry, pinout a tvarový faktor jsou velmi podobné klasickému Arduino Nano, ve skutečnosti se plánuje, že bude použit jako náhrada za Arduino Nano ve vašich stávajících projektech, ale háčkem je, že tento nový modul funguje na 3,3 V, zatímco klasický Nano pracuje na 5V. Takže si myslím, že právě zde je název „33“, což znamená, že deska pracuje na 3,3V. Název „BLE“ pak označuje, že modul podporuje Bluetooth Low Energy (BLE5 5.0)a název „sense“ znamená, že má integrované senzory, jako je akcelerometr, gyroskop, magnetometr, senzor teploty a vlhkosti, tlakový senzor, senzor přiblížení, barevný senzor, senzor gest a dokonce i vestavěný mikrofon. O podrobnostech BLE a dalších senzorech se dostaneme později, ale prozatím takhle vypadá deska Arduino Nano 33 BLE přímo z rozbalování.
Přehled hardwaru Arduino Nano 33 BLE Sense
Při prvním pohledu na desku najdete nahoře přeplněnou řadu komponent, z nichž většina jsou senzory, které jsem řekl dříve. Ale hlavní mozek je skryt za kovovým pláštěm na pravé straně. Toto pouzdro obsahuje procesor Nordic nRF52840, který obsahuje výkonný Cortex M4F a modul NINA B306 pro komunikaci BLE a Bluetooth 5. To umožňuje desce pracovat na velmi nízkou spotřebu energie a komunikovat pomocí technologie Bluetooth 5, což je ideální pro síťové aplikace s nízkou spotřebou energie v domácí automatizaci a dalších připojených projektech. Také proto, že procesor nRF podporuje OS ARM Mbedposkytuje také některá softwarová vylepšení, o kterých budeme diskutovat později. Senzory, LED diody, tlačítka a další důležité věci, které byste měli na své desce znát, jsou označeny na následujícím obrázku.
Jak můžete vidět z výše uvedeného obrázku, deska je nabitá senzory, které vám mohou pomoci při budování pravé části krabice, aniž byste ji museli připojovat k jakýmkoli externím senzorům. Deska je určena k použití v nositelných zařízeních a dalších chytrých přenosných zařízeních, jako jsou fitness pásy, monitorování glukózy, krokoměry, inteligentní hodinky, meteorologická stanice, domácí zabezpečení atd., Kde budete většinu těchto senzorů používat. A jako vždy mají všechny tyto senzory předem připravené knihovny pro Arduino, které můžete snadno použít. Na konci tohoto článku načteme hodnoty ze všech těchto senzorů a zobrazíme je na sériovém monitoru. Níže jsou uvedeny údaje o senzoru na desce smyslů Arduino Nano 33 BLE spolu s požadovanými knihovnami
Název senzoru |
Parametry |
Odkazy |
LSM9DSI - ST Microelectronics |
Akcelerometr, gyroskop, magnetometr |
LSMDSI Datasheet Knihovna Arduino_LSM9DS1 |
LPS22HB - ST Microelectronics |
Tlak |
LPS22HB Datasheet Knihovna Arduino_LPS22HB |
HTS221 - ST mikroelektronika |
Teplota a vlhkost |
LPS22HB Datasheet Knihovna Arduino_HTS221 |
APDS9960 - Avago Tech. |
Blízkost, světlo, barva, gesto |
LPS22HB Datasheet Knihovna Arduino_APDS9960 |
MP34DT05 - ST Microelectronics |
Mikrofon |
MP34DT05 Datový list Integrovaná knihovna PDM |
Většina z těchto snímačů pochází od společnosti ST Microelectronics a podporují provoz s nízkou spotřebou, takže jsou ideální pro konstrukce napájené z baterie. Jen málo lidí už může být s APDS9960 senzorem obeznámeno, protože je již k dispozici jako spate modul a dříve jsme také s APU9960 používali senzor APDS9960. Další informace o těchto senzorech najdete v příslušném datovém listu a také se ujistěte, že jste do svého Arduino IDE přidali celou poskytovanou knihovnu, abyste je mohli začít používat se senzorovou deskou Arduino Nano 33 BLE. Chcete-li přidat knihovnu, můžete pomocí daného odkazu přejít na příslušnou stránku GitHub a stáhnout soubor ZIP, poté použít Sketch -> Include Library -> Add.ZIP Library nebo můžete také použít správce knihoven na Arduino IDE a přidat tyto knihovny.
Arduino Nano 33 BLE sense Board Technické specifikace:
Deska Arduino Nano 44 BLE, poháněná procesorem Nordic nRF52840, má následující technické specifikace
- Provozní napětí: 3,3 V
- Vstupní napětí USB: 5V
- Napětí vstupního kolíku: 4,5 V až 21 V.
- Čip: NINA-B3 - RF52840
- Hodiny: 64 MHz
- Flash: 1 MB
- SRAM: 256 KB
- Bezdrátové připojení: Bluetooth 5.0 / BLE
- Rozhraní: USB, I2C, SPI, I2S, UART
- Digitální I / O piny: 14
- PWM piny: 6 (8bitové rozlišení)
- Analogové piny: 8 (10bitový nebo 12bitový konfigurovatelný)
Softwarová vylepšení s Arduino Nano 33 BLE sense
Stejně jako všechny ostatní desky Arduino lze i Arduino Nano 33 BLE sense programovat pomocí Arduino IDE. Než však budete moci začít, musíte použít správce desky a přidat podrobnosti desky na své IDE. Jak víme, že nRF 52840 lze programovat pomocí ARM Mbed OS, znamená to, že naše deska Arduino Nano 33 podporuje operační systém v reálném čase (RTOS). S programováním Mbed OS můžeme v programu spouštět více vláken současně, abychom mohli provádět více úkolů. Také se výrazně sníží spotřeba energie desky, pokaždé, když zavoláme funkci zpoždění, deska vstoupí do režimu lechtání během doby zpoždění, aby šetřila energii, a po uplynutí zpoždění by skočila zpět do provozu. Uvádí se, že tato operace spotřebuje o 4,5 uA méně než normální operace zpoždění Arduino.
Jak již bylo řečeno, integrace Mbed OS s Arduino IDE je relativně nová a bude nějakou dobu trvat, než budeme moci plně využít plný výkon Mbed OS s Arduino IDE. Pro rychlé spuštění tedy napíšeme program, který načte všechny hodnoty snímače a zobrazí jej na sériových monitorech.
Příprava IDE Arduino na smysl Arduino Nano 33 BLE
Spusťte své Arduino IDE a přejděte do Nástroje -> Desky -> Board Manger a spusťte svého správce Arduino Board. Nyní vyhledejte „Mbed OS“ a nainstalujte balíček. Dokončení instalace by mělo nějakou dobu trvat.
Po dokončení instalace zavřete dialogové okno a připojte desku Arduino 33 pomocí kabelu micro USB k notebooku. Jakmile se připojíte na desku, Windows automaticky zahájí instalaci požadovaných ovladačů pro desku. Poté otevřete své Arduino IDE a vyberte Nástroje -> Deska -> Arduino Nano 33. Poté také vyberte správný port COM zaškrtnutím Nástroje -> Port, důl je připojen k portu COM3, ale váš se může lišit. Po výběru portu by měl váš pravý dolní roh IDE vypadat takto
Nyní, abychom rychle zkontrolovali, zda vše funguje, můžeme použít ukázkový program, vyzkoušejte program uvedený v nabídce Soubor -> Příklady -> PDM -> PDMSerialPlotter. Tento program použije palubní mikrofon k poslechu zvuku a vykreslení na sériovém plotru. Můžete nahrát program a zkontrolovat, zda deska a IDE fungují.
Nyní, pokud se setkáte se směšně pomalým sestavováním, nejste sami, mnoho lidí včetně mě čelí tomuto problému a v době psaní tohoto článku se zdá, že neexistuje žádné řešení. Zkompilovat a nahrát jednoduché programy mi zabere asi 2–3 minuty, a když jsem zkusil nějaké BLE programy nebo se pokusil pracovat s Mbed OS, doba kompilace se zvýšila na více než 10 minut, což mě nepřimělo k dalšímu zkoušení. Je to kvůli integraci OS Mbed s Arduino IDE, doufejme, že někdo z báječné komunity Arduino pro to přijde s řešením.
Naprogramujte čtení dat ze snímače a jejich zobrazení na sériovém monitoru
Pokud nepoužíváme BLE nebo základní funkce Mbed OS desky, doba kompilace byla rozumná. Napsal jsem tedy jednoduchý náčrt, který přečetl všechny hodnoty senzorů a zobrazil je na sériovém monitoru, jako je show níže
Úplný kód, který umožňuje provést totéž, je uveden ve spodní části této stránky, ale ujistěte se, že jste nainstalovali všechny výše uvedené knihovny. Vysvětlení kódu je následující.
Spusťte program zahrnutím všech požadovaných hlavičkových souborů. Zde budeme používat všechny čtyři senzory kromě mikrofonu
#include // Zahrnout knihovnu pro 9osou IMU # Zahrnout // Zahrnout knihovnu pro čtení Tlak # Zahrnout // Zahrnout knihovnu pro čtení Teplota a Vlhkost # Zahrnout // Zahrnout knihovnu pro rozpoznávání barev, blízkosti a gest
Uvnitř funkce nastavení inicializujeme sériový monitor s přenosovou rychlostí 9600, abychom zobrazili všechny hodnoty senzorů a také inicializovali všechny požadované knihovny. Kód uvnitř instalace je uveden níže
void setup () {Serial.begin (9600); // Sériový monitor pro zobrazení všech hodnot senzorů if (! IMU.begin ()) // Inicializovat senzor IMU {Serial.println ("Inicializace IMU!") Se nezdařila; while (1);} if (! BARO.begin ()) // Inicializovat tlakový senzor {Serial.println ("Nepodařilo se inicializovat tlakový senzor!"); while (1);} if (! HTS.begin ()) // Inicializace senzoru teploty a vlhkosti {Serial.println ("Inicializace senzoru teploty a vlhkosti!"); while (1);} if (! APDS.begin ()) // Inicializace senzoru barev, blízkosti a gest {Serial.println ("Inicializace senzoru barev, blízkosti a gest!"); while (1);}}
Uvnitř funkce smyčky načteme požadované hodnoty senzorů z knihovny a poté je vytiskneme na sériovém monitoru. Syntaxi lze odkázat z ukázkového programu každé knihovny, načetli jsme hodnoty akcelerometru, gyroskopu, magnetometru, tlaku, teploty, vlhkosti a přibližovacího senzoru a zobrazili je na sériovém monitoru. Níže je uveden kód pro měření hodnoty akcelerometru, stejně tak můžeme měřit pro všechny senzory.
// Hodnoty akcelerometru 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); } zpoždění (200);
Arduino Nano 33 BLE - nahrávání kódu
Nahrávání kódu do Nano 33 je podobné jako u jiných desek, ale pamatujte, že deska má dva porty COM. Když kliknete na tlačítko nahrávání, Arduino IDE zkompiluje kód a poté automaticky resetuje desku pomocí softwarového příkazu, tím se deska dostane do režimu zavaděče a nahraje váš kód. Z tohoto důvodu, jakmile je nahrávání dokončeno, můžete si všimnout, že Arduino IDE automaticky změnilo svůj port COM na jiné číslo a možná budete chtít jej změnit zpět, než otevřete sériový monitor.
Takže tohle je doposud moje zkušenost s deskou Arduino Nano 33, někdy později v budoucnu zkusím něco postavit pomocí jejích senzorů a funkcí BLE. Jaké byly vaše zkušenosti s výborem? Co bys chtěl, abych s tím vytvořil? Odpovědi nechte v sekci komentáře a budeme diskutovat o dalších.