- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense Hardware Översikt
- Programvaruförbättringar med Arduino Nano 33 BLE sense
- Förbereda din Arduino IDE för Arduino Nano 33 BLE sense
- Program för att läsa sensordata och visa på Serial Monitor
- Arduino Nano 33 BLE- Ladda upp koden
Arduino har varit utvecklingsplattformen för snabb prototypning och idévalidering. Många av oss skulle ha börjat med Arduino UNO: s utvecklingsstyrelse, men idag när vi går mot sakernas internet, datorvision, artificiell intelligens, maskininlärning och andra futuristiska tekniker kunde den ödmjuka Arduino UNO inte längre klara av sina 8 -bit Microcontroller. Detta krävde lanseringen av nya kort med kraftfullare processorer som har inbyggd Wi-Fi, Bluetooth, GSM och andra trådlösa funktioner, som populära MKR1000 eller MKR GSM 1400. I detta sammanhang har Arduino nyligen lanserat en ny version av sin Nano som heter Arduino Nano 33.
Det finns totalt två typer av Arduino Nano 33-kort, nämligen Arduino Nano 33 IoT och Arduino Nano 33 BLE sense. Huvudskillnaden mellan båda modulerna är att Arduino Nano 33 BLE sense- modulen har några inbyggda sensorer (kommer att komma in i detaljer senare) medan Arduino Nano 33 IoT inte har dem. I den här artikeln kommer vi att granska Arduino Nano 33 BLE-sensorkortet, presentera dess funktioner och funktioner och slutligen skriva en provkod för att läsa sensorvärdena och visa på seriell bildskärm. Så låt oss lära oss….!
Arduino Nano 33 BLE Sense
Namnet “Arduino Nano 33 BLE Sense” är munnfullt, men själva namnet lägger ut viktig information. Det kallas "Nano" eftersom dimensionerna, pinout och formfaktor liknar den klassiska Arduino Nano, det är faktiskt planerat att användas som ersättning för Arduino Nano i dina befintliga projekt, men fångsten är att den här nya modulen fungerar på 3.3V medan den klassiska Nano fungerar på 5V. Så jag tror att det är här namnet “33” kommer in, för att indikera att kortet fungerar på 3,3V. Sedan anger namnet “BLE” att modulen stöder Bluetooth Low Energy (BLE5 5.0)och namnet “sense” indikerar att det har inbyggda sensorer som accelerometer, gyroskop, magnetometer, temperatur- och luftfuktighetssensor, trycksensor, närhetssensor, färgsensor, gestsensor och till och med en inbyggd mikrofon. Vi kommer att gå in på detaljerna i BLE och andra sensorer senare men för tillfället är det så här ett Arduino Nano 33 BLE-sensortavla ser rakt ut ur un-boxning.
Arduino Nano 33 BLE Sense Hardware Översikt
Vid kortets första blick kan du hitta många komponenter trångt på toppen, varav de flesta är sensorer som jag berättade tidigare. Men huvudhjärnan är gömd bakom metallhöljet på höger sida. Detta hölje innehåller den nordiska nRF52840-processorn som innehåller en kraftfull Cortex M4F och NINA B306- modulen för BLE- och Bluetooth 5-kommunikation. Detta gör att styrelsen kan arbeta med mycket låg effekt och kommunicera med Bluetooth 5, vilket gör den idealisk för nätverksapplikationer med låg effekt i hemautomation och andra anslutna projekt. Också eftersom nRF-processorn stöder ARM Mbed OSdet ger också några programförbättringar som vi kommer att diskutera senare. Sensorerna, lysdioderna, tryckknapparna och andra viktiga saker som du borde veta på ditt bräde är markerade i bilden nedan.
Som du kan se från bilden ovan är brädan kraftfull med sensorer som kan hjälpa dig att bygga höger om lådan utan att ens behöva ansluta kortet till några externa sensorer. Tavlan är avsedd att användas i bärbara enheter och andra smarta bärbara enheter som fitnessband, glukosövervakning, stegräknare, smartwatch, väderstation, hemsäkerhet etc där du kommer att använda de flesta av dessa sensorer. Och som alltid har alla dessa sensorer förbyggda bibliotek för Arduino som du enkelt kan använda. I slutet av den här artikeln kommer vi att läsa värden från alla dessa sensorer och visa det på den seriella bildskärmen. Sensordetaljerna på Arduino Nano 33 BLE-avkänningskort tillsammans med dess nödvändiga bibliotek tabelleras nedan
Sensorns namn |
Parametrar |
Länkar |
LSM9DSI - ST Mikroelektronik |
Accelerometer, gyroskop, magnetometer |
LSMDSI-datablad Arduino_LSM9DS1-bibliotek |
LPS22HB - ST Mikroelektronik |
Tryck |
LPS22HB Datablad Arduino_LPS22HB-bibliotek |
HTS221 - ST Mikroelektronik |
Temperatur och luftfuktighet |
LPS22HB Datablad Arduino_HTS221-bibliotek |
APDS9960 - Avago Tech. |
Närhet, ljus, färg, gest |
LPS22HB Datablad Arduino_APDS9960-bibliotek |
MP34DT05 - ST Mikroelektronik |
Mikrofon |
MP34DT05 Datablad Inbyggt PDM-bibliotek |
De flesta av dessa sensorer är från ST Microelectronics och de stöder drift med låg effekt vilket gör den idealisk för batteridrivna konstruktioner. Få personer kanske redan känner till APDS9960-sensorn eftersom den redan finns som en spate-modul och vi har också använt APDS9960-sensorn med Arduino tidigare. För mer information om dessa sensorer kan du besöka respektive datablad och också se till att du har lagt till hela det medföljande biblioteket till din Arduino IDE för att börja använda dem med ditt Arduino Nano 33 BLE sensorkort. För att lägga till ett bibliotek kan du använda den givna länken för att komma till respektive GitHub-sida och ladda ner ZIP-filen, använd sedan Sketch -> Inkludera bibliotek -> Add.ZIP-bibliotek eller så kan du också använda bibliotekshanteraren på Arduino IDE och lägga till dessa bibliotek.
Arduino Nano 33 BLE sense Board Tekniska specifikationer:
Drivs av den nordiska nRF52840-processorn har Arduino Nano 44 BLE-kortet följande tekniska specifikationer
- Driftspänning: 3,3V
- USB-ingångsspänning: 5V
- Ingångsstift Spänning: 4,5V till 21V
- Chip: NINA-B3 - RF52840
- Klocka: 64MHz
- Blixt: 1 MB
- SRAM: 256 kB
- Trådlös anslutning: Bluetooth 5.0 / BLE
- Gränssnitt: USB, I2C, SPI, I2S, UART
- Digitala I / O-stift: 14
- PWM-stift: 6 (8-bitars upplösning)
- Analoga stift: 8 (10-bitars eller 12-bitars konfigurerbar)
Programvaruförbättringar med Arduino Nano 33 BLE sense
Precis som alla Arduino-kort där ute, kan Arduino Nano 33 BLE-känslan programmeras med Arduino IDE. Men du måste använda styrelsechefen och lägga till styrelsedetaljerna i din IDE innan du kan börja. Som vi vet kan nRF 52840 programmeras med ARM Mbed OS, det betyder att vårt Arduino Nano 33-kort stöder realtidsoperativsystem (RTOS). Med Mbed OS-programmering kan vi köra flera trådar samtidigt i programmet för att utföra multitasking. Kortets strömförbrukning kommer också att minskas kraftigt, varje gång vi anropar fördröjningsfunktionen kommer kortet att gå in i kittlingläge under fördröjningstiden för att spara ström och skulle hoppa tillbaka i drift när förseningen är över. Det rapporteras att denna operation kommer att förbruka 4,5uA mindre än en normal Arduino-fördröjningsoperation.
Med detta sagt är Mbed OS-integrationen med Arduino IDE relativt ny och det kommer att ta lite tid innan vi fullt ut kan utnyttja den fulla effekten av Mbed OS med Arduino IDE. Så för en snabb start kommer vi att skriva ett program för att läsa alla sensorns värden och visa det på seriemonitorerna.
Förbereda din Arduino IDE för Arduino Nano 33 BLE sense
Starta din Arduino IDE och gå till Verktyg -> Boards -> Board Manger för att starta din Arduino Board manager. Sök nu efter “Mbed OS” och installera paketet. Det bör ta lite tid för installationen att slutföra.
När installationen är klar stänger du dialogrutan och ansluter ditt Arduino 33-kort med en mikro-USB-kabel till din bärbara dator. Så snart du ansluter startar styrelsen automatiskt installationen av de drivrutiner som krävs för kortet. Öppna sedan din Arduino IDE och välj Verktyg -> Kort -> Arduino Nano 33. Välj sedan också rätt COM-port genom att markera Verktyg -> Port, min är ansluten till port COM3 men din kan variera. När porten har valts ska ditt IDE nedre högra hörn se ut så här
För att snabbt kontrollera om allt fungerar kan vi använda ett exempelprogram, låt oss prova det som tillhandahålls under Arkiv -> Exempel -> PDM -> PDMSerialPlotter. Detta program använder den inbyggda mikrofonen för att lyssna efter ljud och plotta den på en serieplotter. Du kan ladda upp programmet och kontrollera om styrelsen och IDE fungerar.
Nu om du upplever en löjligt långsam sammanställning är du inte ensam, många människor inklusive jag står inför denna fråga och vid tidpunkten för att skriva den här artikeln verkar det inte finnas någon lösning. Det tar ungefär 2-3 minuter att kompilera och ladda upp enkla program och när jag testade några BLE-program eller försökte arbeta med Mbed OS ökade kompileringstiden till mer än 10 minuter vilket inte uppmuntrade mig att försöka något längre. Detta beror på Mbed OS-integrationen med Arduino IDE, låt oss hoppas att någon från den underbara Arduino Community kommer med en lösning för detta.
Program för att läsa sensordata och visa på Serial Monitor
Om vi inte använder kortets BLE- eller core Mbed OS-funktioner var kompileringstiden rimlig. Så jag skrev en enkel skiss för att läsa alla sensorvärden och visa den på seriemonitorn som visas nedan
Den fullständiga koden för att göra detsamma ges längst ner på den här sidan, men se till att du har installerat alla bibliotek som nämns ovan. Förklaringen till koden är som följer.
Starta programmet genom att inkludera alla nödvändiga rubrikfiler. Här kommer vi att använda alla fyra sensorerna förutom mikrofonen
# inkludera // Inkludera biblioteket för 9-axlig IMU # inkludera // Inkludera bibliotek för att läsa Tryck # inkludera // Inkludera bibliotek för att läsa Temperatur och luftfuktighet # inkludera // Inkludera bibliotek för färg, närhet och gestigenkänning
Inuti installationsfunktionen initialiserar vi den seriella bildskärmen till 9600 baudhastighet för att visa alla sensorvärden och initierar också alla nödvändiga bibliotek. Koden i installationen visas nedan
ogiltig installation () {Serial.begin (9600); // Seriell bildskärm för att visa alla sensorvärden om (! IMU.begin ()) // Initiera IMU-sensor {Serial.println ("Det gick inte att initialisera IMU!"); while (1);} if (! BARO.begin ()) // Initialize Pressure sensor {Serial.println ("Det gick inte att initialisera trycksensorn!"); while (1);} if (! HTS.begin ()) // Initialisera temperatur- och luftfuktighetssensorn {Serial.println ("Det gick inte att initiera temperatur- och luftfuktighetssensorn!"); while (1);} if (! APDS.begin ()) // Initiera färg-, närhets- och gestsensor {Serial.println ("Det gick inte att initialisera färg-, närhets- och gestsensor!"); medan (1);}}
Inuti loopfunktionen läser vi de nödvändiga sensorvärdena från biblioteket och skriver sedan ut dem på den seriella bildskärmen. Syntaxen kan hänvisas från exempelprogrammet för varje bibliotek, vi har läst värdena för accelerometer, gyroskop, magnetometer, tryck, temperatur, fuktighet och närhetssensor och visat dem på seriemonitorn. Koden för att mäta accelerometervärdet visas nedan, på samma sätt kan vi mäta för alla sensorer.
// Accelerometer värden om (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); } fördröjning (200);
Arduino Nano 33 BLE- Ladda upp koden
Att ladda upp koden till Nano 33 liknar alla andra kort, men notera att kortet har två COM-portar. När du klickar på uppladdningsknappen sammanställer Arduino IDE koden och återställer sedan kortet automatiskt via programvarukommandot, detta kommer att sätta styrelsen i startladdarläge och ladda upp din kod. På grund av detta kanske du, när uppladdningen är klar, märker att Arduino IDE automatiskt har ändrat sin COM-port till ett annat nummer och du kanske vill ändra tillbaka innan du öppnar din seriella bildskärm.
Så detta är ganska mycket min erfarenhet av Arduino Nano 33-kortet hittills, jag kommer att försöka bygga något med sina sensorer och BLE-funktioner någon gång senare i framtiden. Hur var din upplevelse med styrelsen? Vad vill du att jag ska bygga med det? Lämna svaren i kommentarsektionen så diskuterar vi mer.