- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense -laitteiston yleiskatsaus
- Ohjelmistoparannukset Arduino Nano 33 BLE sense -tekniikalla
- Arduino IDE: n valmistelu Arduino Nano 33 BLE -tunnistusta varten
- Ohjelma lukemaan anturitiedot ja näyttämään Serial Monitor
- Arduino Nano 33 BLE - Koodin lataaminen
Arduino on ollut kehitysalusta nopeaan prototyyppien tekemiseen ja ideoiden validointiin. Monet meistä olisivat aloittaneet Arduino UNO -kehityslautakunnan kanssa, mutta tänään kun edistymme kohti esineiden Internetiä, tietokonenäköä, tekoälyä, koneoppimista ja muita futuristisia tekniikoita, nöyrä Arduino UNO ei enää kyennyt selviytymään 8 -bitinen mikrokontrolleri. Tämä vaati uusien levyjen käynnistämistä tehokkaammilla prosessoreilla, joissa on sisäänrakennettu Wi-Fi, Bluetooth, GSM ja muut langattomat ominaisuudet, kuten suosittu MKR1000 tai MKR GSM 1400. Tässä yhteydessä Arduino on hiljattain lanseerannut uuden version Nano-nimeltään Arduino Nano 33.
Arduino Nano 33 -kortteja on täysin kahden tyyppisiä, nimittäin Arduino Nano 33 IoT ja Arduino Nano 33 BLE -tunnistus. Suurin ero molempien moduulien välillä on, että Arduino Nano 33 BLE -tunnistusmoduulissa on joitain sisäänrakennettuja antureita (pääset yksityiskohtiin myöhemmin), kun taas Arduino Nano 33 IoT: llä ei ole niitä. Tässä artikkelissa tarkastelemme Arduino Nano 33 BLE -tunnistuskorttia, tutustutaan sen ominaisuuksiin ja toimintoihin ja kirjoitetaan lopuksi näytekoodi anturiarvojen lukemiseen ja näytön näyttämiseen sarjassa. Joten oppitaan….!
Arduino Nano 33 BLE Sense
Nimi “Arduino Nano 33 BLE Sense” on herkullinen, mutta nimi itsessään tuo esiin tärkeitä tietoja. Sitä kutsutaan "nanoksi", koska mitat, pinout ja muoto ovat hyvin samanlaisia kuin perinteinen Arduino Nano, sitä on tarkoitus käyttää korvaamaan Arduino Nano nykyisissä projekteissasi, mutta kiinni on, että tämä uusi moduuli toimii 3,3 V, kun taas klassinen Nano toimii 5 V: lla. Joten luulen, että tässä tulee nimi "33", mikä osoittaa, että kortti toimii 3,3 V: n jännitteellä. Sitten nimi “BLE” osoittaa, että moduuli tukee Bluetooth Low Energy -toimintoa (BLE5 5.0)ja nimi "sense" osoittaa, että siinä on sisäisiä antureita, kuten kiihtyvyysanturi, gyroskooppi, magnetometri, lämpötila- ja kosteusanturi, paineanturi, läheisyysanturi, värianturi, eleanturi ja jopa sisäänrakennettu mikrofoni. Aiomme tutustua BLE: n ja muiden antureiden yksityiskohtiin myöhemmin, mutta toistaiseksi Arduino Nano 33 BLE -tuntolevy näyttää suoraan nyrkkeilystä.
Arduino Nano 33 BLE Sense -laitteiston yleiskatsaus
Taulun ensimmäisestä ulkoasusta löydät paljon komponentteja, jotka ovat täynnä yläosaa, joista suurin osa on antureita, jotka kerroin aiemmin. Mutta pääaivot ovat piilossa metallikotelon takana oikealla puolella. Tässä kotelossa on pohjoismainen nRF52840-prosessori, joka sisältää tehokkaan Cortex M4F: n ja NINA B306 -moduulin BLE- ja Bluetooth 5 -yhteyksiä varten. Tämän ansiosta kortti voi toimia hyvin pienellä virralla ja kommunikoida Bluetooth 5: n avulla, mikä on ihanteellinen pienitehoisille verkkoverkkosovelluksille koti-automaatiossa ja muissa liitetyissä projekteissa. Myös koska nRF-prosessori tukee ARM Mbed OS -käyttöjärjestelmääse tarjoaa myös joitain ohjelmistoparannuksia, joista keskustelemme myöhemmin. Anturit, LEDit, painikkeet ja muut tärkeät asiat, jotka sinun tulisi tietää pöydällesi, on merkitty alla olevaan kuvaan.
Kuten yllä olevasta kuvasta näet, kortti on täynnä antureita, jotka voivat auttaa sinua rakentamaan laatikon oikeanpuoleisen ilman, että sinun tarvitsee edes liittää korttia ulkoisiin antureihin. Lauta on tarkoitettu käytettäväksi puettavissa laitteissa ja muissa älykkäissä kannettavissa laitteissa, kuten kuntokeskuksissa, glukoosimonitoroinnissa, askelmittareissa, älykellossa, sääasemassa, kodin turvallisuudessa jne., Joissa käytät suurinta osaa näistä antureista. Ja kuten aina, kaikilla näillä antureilla on valmiiksi rakennetut kirjastot Arduinolle, joita voit käyttää helposti. Tämän artikkelin lopussa luemme arvot kaikista näistä antureista ja näytämme ne sarjamoduulissa. Arduino Nano 33 BLE -tunnistuskortin anturitiedot ja tarvittavat kirjastot on taulukoitu alla
Anturin nimi |
Parametrit |
Linkit |
LSM9DSI - ST-mikroelektroniikka |
Kiihtyvyysmittari, gyroskooppi, magnetometri |
LSMDSI-tietolomake Arduino_LSM9DS1-kirjasto |
LPS22HB - ST-mikroelektroniikka |
Paine |
LPS22HB-tietolomake Arduino_LPS22HB-kirjasto |
HTS221 - ST-mikroelektroniikka |
Lämpötila ja kosteus |
LPS22HB-tietolomake Arduino_HTS221-kirjasto |
APDS9960 - Avago Tech. |
Läheisyys, valo, väri, ele |
LPS22HB-tietolomake Arduino_APDS9960-kirjasto |
MP34DT05 - ST-mikroelektroniikka |
Mikrofoni |
MP34DT05-tietolomake Sisäänrakennettu PDM-kirjasto |
Suurin osa näistä antureista on ST Microelectronicsilta, ja ne tukevat pienitehoista toimintaa, mikä tekee siitä ihanteellisen paristokäyttöisille malleille. Harvat ihmiset saattavat jo tuntea APDS9960-anturin, koska se on jo saatavana spate-moduulina ja olemme myös aiemmin käyttäneet APDS9960-anturia Arduinon kanssa. Lisätietoja näistä antureista voit käydä vastaavassa datalehdessä ja varmista myös, että olet lisännyt koko toimitetun kirjaston Arduino IDE -laitteeseesi aloittaaksesi niiden käytön Arduino Nano 33 BLE -tunnistuskortin kanssa. Voit lisätä kirjaston käyttämällä annettua linkkiä päästäksesi vastaavalle GitHub-sivulle ja lataamalla ZIP-tiedoston. Käytä sitten Sketch -> Sisällytä kirjasto -> Add.ZIP-kirjasto tai voit myös käyttää kirjastohallintaa Arduino IDE: ssä ja lisätä nämä kirjastot.
Arduino Nano 33 BLE sense Board -tekniset tiedot:
Pohjoismaisen nRF52840-prosessorin virtana Arduino Nano 44 BLE -levyllä on seuraavat tekniset tiedot
- Käyttöjännite: 3,3 V
- USB-tulojännite: 5V
- Tuloliittimen jännite: 4,5 V - 21 V
- Siru: NINA-B3 - RF52840
- Kello: 64 MHz
- Salama: 1 Mt
- SRAM: 256 kt
- Langaton yhteys: Bluetooth 5.0 / BLE
- Liitännät: USB, I2C, SPI, I2S, UART
- Digitaaliset I / O-nastat: 14
- PWM-nastat: 6 (8-bittinen tarkkuus)
- Analogiset nastat: 8 (10-bittinen tai 12-bittinen konfiguroitavissa)
Ohjelmistoparannukset Arduino Nano 33 BLE sense -tekniikalla
Aivan kuten kaikki Arduino-levyt, Arduino Nano 33 BLE -tunnistus voidaan ohjelmoida Arduino IDE: llä. Mutta sinun on käytettävä levynhallintaohjelmaa ja lisättävä levyn tiedot IDE-tunnisteeseesi ennen kuin voit aloittaa. Koska tiedämme, että nRF 52840 voidaan ohjelmoida ARM Mbed OS -käyttöjärjestelmällä, tämä tarkoittaa, että Arduino Nano 33 -kortti tukee reaaliaikaista käyttöjärjestelmää (RTOS). Mbed OS -ohjelmoinnilla voimme suorittaa useita ketjuja samanaikaisesti ohjelmassa monitehtävien suorittamiseksi. Myös piirilevyn virrankulutus pienenee huomattavasti, aina kun kutsumme viivetoimintoa, levy siirtyy kutitusmoodiin viiveajan aikana virran säästämiseksi ja hyppää takaisin toimintaan viiveen jälkeen. On sanottu, että tämä toiminto kuluttaa 4,5uA vähemmän kuin normaali Arduino-viiveoperaatio.
Tästä huolimatta Mbed OS: n integrointi Arduino IDE: n kanssa on suhteellisen uusi, ja kestää jonkin aikaa, ennen kuin voimme hyödyntää Mbed OS: n koko tehon Arduino IDE: n kanssa. Joten nopeaa käynnistystä varten kirjoitamme ohjelman lukemaan kaikki anturin arvot ja näyttämään sen sarjavalvontalaitteissa.
Arduino IDE: n valmistelu Arduino Nano 33 BLE -tunnistusta varten
Käynnistä Arduino IDE ja siirry kohtaan Tools -> Boards -> Board Manger käynnistääksesi Arduino Board Managerin. Etsi nyt ”Mbed OS” ja asenna paketti. Asennuksen suorittamisen pitäisi kestää jonkin aikaa.
Kun asennus on valmis, sulje valintaikkuna ja yhdistä Arduino 33 -kortti kannettavaan tietokoneeseen mikro-USB-kaapelilla. Heti kun liität piirilevyn, Windows aloittaa automaattisesti tarvittavien ohjaimien asentamisen. Avaa sitten Arduino IDE ja valitse Työkalut -> Lauta -> Arduino Nano 33. Valitse sitten myös oikea COM-portti valitsemalla Työkalut -> Portti, minun on liitetty porttiin COM3, mutta sinun saattaa vaihdella. Kun portti on valittu, IDE: n oikean alakulman pitäisi näyttää tältä
Nyt voimme nopeasti tarkistaa, toimiiko kaikki, voimme käyttää esimerkkiohjelmaa, kokeilemme tiedostoa, joka on annettu Tiedosto -> Esimerkit -> PDM -> PDMSerialPlotter. Tämä ohjelma käyttää sisäistä mikrofonia kuuntelemaan ääntä ja piirtämään sen sarjapiirturiin. Voit ladata ohjelman ja tarkistaa, toimivatko kortti ja IDE.
Jos koet naurettavan hitaasti kääntämisen, et ole yksin, monet ihmiset, myös minä, kohtaavat tämän ongelman, ja tämän artikkelin kirjoittamisen aikana ei näytä olevan ratkaisua. Kestää noin 2-3 minuuttia yksinkertaisten ohjelmien kokoamiseen ja lataamiseen, ja kun yritin joitain BLE-ohjelmia tai yritin työskennellä Mbed OS: n kanssa, kokoamisaika kasvoi yli 10 minuuttiin, mikä ei kannustanut minua kokeilemaan mitään muuta. Tämä johtuu Mbed OS -integraatiosta Arduino IDE: n kanssa, toivottavasti joku upeasta Arduino-yhteisöstä keksi ratkaisun tähän.
Ohjelma lukemaan anturitiedot ja näyttämään Serial Monitor
Jos emme käytä levyn BLE- tai Mbed OS -toimintoja, kääntöaika oli kohtuullinen. Joten kirjoitin yksinkertaisen luonnoksen lukemaan kaikki anturiarvot ja näyttämään sen sarjamoduulissa kuten alla olevassa ohjelmassa
Koko koodi saman tekemiseksi on tämän sivun alaosassa, mutta varmista, että olet asentanut kaikki yllä mainitut kirjastot. Koodi selitetään seuraavasti.
Käynnistä ohjelma sisällyttämällä kaikki tarvittavat otsikkotiedostot. Tässä käytetään kaikkia neljää anturia mikrofonia lukuun ottamatta
#include // Sisällytä 9-akselisen IMU: n kirjasto #include // Sisällytä kirjasto lukemaan Paine #include // Sisällytä kirjasto lukemaan lämpötila ja kosteus #include // Sisällytä kirjasto värien, läheisyyden ja eleiden tunnistamiseksi
Asennustoiminnon sisällä alustamme sarjamoduulin 9600 baudinopeudella näyttämään kaikki anturiarvot ja myös kaikki tarvittavat kirjastot. Asetuksen sisällä oleva koodi näkyy alla
void setup () {Sarja.alku (9600); // Sarjamonitori näyttää kaikki anturiarvot, jos (! IMU.begin ()) // Initialize IMU sensor {Serial.println ("IMU: n alustaminen epäonnistui!"); while (1);} if (! BARO.begin ()) // Alusta paineanturi {Serial.println ("Paineanturin alustaminen epäonnistui!"); while (1);} if (! HTS.begin ()) // Alusta lämpötila- ja kosteusanturi {Serial.println ("Lämpötila- ja kosteusanturin alustaminen epäonnistui!"); while (1);} if (! APDS.begin ()) // Initialize Color, Proximity and Gesture sensor {Serial.println ("Väri-, läheisyys- ja eletunnistimen alustaminen epäonnistui!"); kun (1);}}
Loop-toiminnon sisällä luemme vaaditut anturiarvot kirjastosta ja tulostamme ne sitten sarjamonitorille. Syntaksi voidaan viitata jokaisen kirjaston esimerkkiohjelmasta, olemme lukeneet kiihtyvyysmittarin, gyroskoopin, magnetometrin, paineen, lämpötilan, kosteuden ja läheisyyden tunnistimen arvot ja näyttäneet ne sarjamonitorissa. Kiihtyvyysanturin arvon mittauskoodi on esitetty alla, samoin voimme mitata kaikille antureille.
// Kiihtyvyysmittarin arvot if (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Kiihtyvyysanturi ="); Serial.print (accel_x); Sarja.tulos (","); Sarja.tulos (kiihtyvyys); Sarja.tulos (","); Sarja.tulostus (","); } viive (200);
Arduino Nano 33 BLE - Koodin lataaminen
Koodin lataaminen Nano 33: een on samanlainen kuin kaikki muut levyt, mutta huomaa, että levyllä on kaksi COM-porttia. Kun napsautat latauspainiketta, Arduino IDE kääntää koodin ja nollaa levyn automaattisesti ohjelmistokomennon avulla, tämä asettaa levyn käynnistyslataustilaan ja lähettää koodisi. Tämän takia, kun lataus on valmis, saatat huomata, että Arduino IDE on muuttanut COM-porttinsa automaattisesti toiseen numeroon ja haluat ehkä vaihtaa sen takaisin ennen sarjamonitorin avaamista.
Joten tämä on melkein kokemukseni Arduino Nano 33 -levystä toistaiseksi, yritän rakentaa jotain sen antureilla ja BLE-ominaisuuksilla joskus myöhemmin tulevaisuudessa. Millainen oli kokemuksesi taulusta? Mitä haluaisit minun rakentavan sen kanssa? Jätä vastaukset kommenttiosioon ja keskustelemme lisää.