- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense Hardware-Übersicht
- Softwareverbesserungen mit Arduino Nano 33 BLE sense
- Vorbereiten Ihrer Arduino IDE für Arduino Nano 33 BLE sense
- Programm zum Lesen von Sensordaten und Anzeigen auf dem seriellen Monitor
- Arduino Nano 33 BLE- Den Code hochladen
Arduino war die bevorzugte Entwicklungsplattform für schnelles Prototyping und Ideenvalidierung. Viele von uns hätten mit dem Entwicklungsausschuss der Arduino UNO begonnen, aber heute, als wir uns dem Internet der Dinge, Computer Vision, künstlicher Intelligenz, maschinellem Lernen und anderen futuristischen Technologien zuwenden, konnte die bescheidene Arduino UNO ihre 8 nicht mehr bewältigen -bit Mikrocontroller. Dies erforderte die Einführung neuer Karten mit leistungsstärkeren Prozessoren mit integriertem Wi-Fi, Bluetooth, GSM und anderen drahtlosen Funktionen wie dem beliebten MKR1000 oder MKR GSM 1400. In diesem Zusammenhang hat Arduino kürzlich eine neue Version seines Nano namens Arduino Nano 33 auf den Markt gebracht.
Es gibt zwei Arten von Arduino Nano 33-Boards, nämlich Arduino Nano 33 IoT und Arduino Nano 33 BLE sense. Der Hauptunterschied zwischen beiden Modulen besteht darin, dass das Arduino Nano 33 BLE- Erfassungsmodul einige eingebaute Sensoren hat (wird später näher erläutert), während das Arduino Nano 33 IoT diese nicht hat. In diesem Artikel werden wir das Arduino Nano 33 BLE-Sensorboard überprüfen, Ihnen seine Merkmale und Funktionen vorstellen und schließlich einen Beispielcode schreiben, um die Sensorwerte zu lesen und auf dem seriellen Monitor anzuzeigen. Also lasst uns lernen…!
Arduino Nano 33 BLE Sense
Der Name "Arduino Nano 33 BLE Sense" ist mundvoll, aber der Name selbst enthält einige wichtige Informationen. Es heißt „Nano“, da die Abmessungen, die Pinbelegung und der Formfaktor dem klassischen Arduino Nano sehr ähnlich sind. Es ist eigentlich geplant, es in Ihren bestehenden Projekten als Ersatz für Arduino Nano zu verwenden, aber der Haken ist, dass dieses neue Modul funktioniert 3,3 V, während der klassische Nano mit 5 V betrieben wird. Ich denke, hier kommt der Name „33“ ins Spiel, um anzuzeigen, dass das Board mit 3,3 V betrieben wird. Der Name „BLE“ zeigt dann an, dass das Modul Bluetooth Low Energy (BLE5 5.0) unterstützt.und der Name "sense" zeigt an, dass Sensoren wie Beschleunigungsmesser, Gyroskop, Magnetometer, Temperatur- und Feuchtigkeitssensor, Drucksensor, Näherungssensor, Farbsensor, Gestensensor und sogar ein eingebautes Mikrofon an Bord sind. Wir werden später auf die Details von BLE und anderen Sensoren eingehen, aber im Moment sieht ein Arduino Nano 33 BLE-Sensorboard so aus, als würde es nicht ausgepackt.
Arduino Nano 33 BLE Sense Hardware-Übersicht
Auf den ersten Blick auf der Platine sind oben viele Komponenten überfüllt, von denen die meisten Sensoren sind, die ich zuvor erwähnt habe. Das Haupthirn ist jedoch hinter dem Metallgehäuse auf der rechten Seite versteckt. Dieses Gehäuse enthält den nordischen nRF52840-Prozessor, der einen leistungsstarken Cortex M4F und das NINA B306- Modul für die BLE- und Bluetooth 5-Kommunikation enthält. Dies ermöglicht es der Karte, mit sehr geringem Stromverbrauch zu arbeiten und über Bluetooth 5 zu kommunizieren. Dies ist ideal für Netzanwendungen mit geringem Stromverbrauch in der Heimautomation und anderen verbundenen Projekten. Auch da der nRF-Prozessor das ARM Mbed OS unterstütztEs bietet auch einige Software-Verbesserungen, die wir später diskutieren werden. Die Sensoren, LEDs, Drucktasten und andere wichtige Dinge, die Sie auf Ihrem Board wissen sollten, sind im folgenden Bild markiert.
Wie Sie auf dem obigen Bild sehen können, ist die Platine mit Sensoren ausgestattet, die Ihnen beim Aufbau des Rechts der Box helfen können, ohne dass Sie die Platine an externe Sensoren anschließen müssen. Das Board ist für die Verwendung in tragbaren Geräten und anderen intelligenten tragbaren Geräten wie Fitnessbändern, Glukoseüberwachung, Schrittzählern, Smartwatch, Wetterstation, Sicherheit zu Hause usw. vorgesehen, bei denen Sie die meisten dieser Sensoren verwenden. Und wie immer verfügen alle diese Sensoren über vorgefertigte Bibliotheken für Arduino, die Sie problemlos verwenden können. Am Ende dieses Artikels lesen wir die Werte aller dieser Sensoren und zeigen sie auf dem seriellen Monitor an. Die Sensordetails auf der Arduino Nano 33 BLE-Sensorplatine sowie die erforderlichen Bibliotheken sind unten aufgeführt
Sensorname |
Parameter |
Links |
LSM9DSI - ST Mikroelektronik |
Beschleunigungsmesser, Gyroskop, Magnetometer |
LSMDSI-Datenblatt Arduino_LSM9DS1 Bibliothek |
LPS22HB - ST Mikroelektronik |
Druck |
LPS22HB Datenblatt Arduino_LPS22HB Bibliothek |
HTS221 - ST Mikroelektronik |
Temperatur und Luftfeuchtigkeit |
LPS22HB Datenblatt Arduino_HTS221 Bibliothek |
APDS9960 - Avago Tech. |
Nähe, Licht, Farbe, Geste |
LPS22HB Datenblatt Arduino_APDS9960 Bibliothek |
MP34DT05 - ST Mikroelektronik |
Mikrofon |
MP34DT05 Datenblatt Eingebaute PDM-Bibliothek |
Die meisten dieser Sensoren stammen von ST Microelectronics und unterstützen den Betrieb mit geringem Stromverbrauch, was sie ideal für batteriebetriebene Designs macht. Nur wenige Leute kennen den APDS9960-Sensor möglicherweise bereits, da er bereits als Spate-Modul erhältlich ist und wir den APDS9960-Sensor bereits mit Arduino verwendet haben. Weitere Informationen zu diesen Sensoren finden Sie im jeweiligen Datenblatt. Stellen Sie außerdem sicher, dass Sie die gesamte bereitgestellte Bibliothek zu Ihrer Arduino IDE hinzugefügt haben, um sie mit Ihrem Arduino Nano 33 BLE-Sensorboard zu verwenden. Um eine Bibliothek hinzuzufügen, können Sie über den angegebenen Link zur entsprechenden GitHub-Seite gelangen und die ZIP-Datei herunterladen. Verwenden Sie dann Sketch -> Include Library -> Add.ZIP Library oder verwenden Sie den Bibliotheksmanager in Arduino IDE und fügen Sie diese hinzu Bibliotheken.
Arduino Nano 33 BLE sense Board Technische Daten:
Angetrieben vom nordischen nRF52840-Prozessor verfügt die Arduino Nano 44 BLE-Karte über die folgenden technischen Spezifikationen
- Betriebsspannung: 3,3V
- USB-Eingangsspannung: 5V
- Eingangs-Pin-Spannung: 4,5 V bis 21 V.
- Chip: NINA-B3 - RF52840
- Takt: 64 MHz
- Flash: 1 MB
- SRAM: 256 KB
- Drahtlose Konnektivität: Bluetooth 5.0 / BLE
- Schnittstellen: USB, I2C, SPI, I2S, UART
- Digitale E / A-Pins: 14
- PWM-Pins: 6 (8-Bit-Auflösung)
- Analoge Pins: 8 (10-Bit oder 12-Bit konfigurierbar)
Softwareverbesserungen mit Arduino Nano 33 BLE sense
Wie alle Arduino-Boards kann auch der Arduino Nano 33 BLE sense mit der Arduino IDE programmiert werden. Sie müssen jedoch den Board-Manager verwenden und die Board-Details zu Ihrer IDE hinzufügen, bevor Sie beginnen können. Wie wir wissen, kann der nRF 52840 mit ARM Mbed OS programmiert werden. Dies bedeutet, dass unsere Arduino Nano 33-Karte das Echtzeitbetriebssystem (RTOS) unterstützt. Mit der Mbed OS-Programmierung können wir mehrere Threads gleichzeitig im Programm ausführen, um Multitasking durchzuführen. Außerdem wird der Stromverbrauch der Karte erheblich reduziert. Jedes Mal, wenn wir die Verzögerungsfunktion aufrufen, wechselt die Karte während der Verzögerungszeit in den Tickles-Modus, um Strom zu sparen, und springt nach Ablauf der Verzögerung wieder in Betrieb. Es wird berichtet, dass diese Operation 4,5 uA weniger verbraucht als eine normale Arduino-Verzögerungsoperation.
Abgesehen davon ist die Integration von Mbed OS in Arduino IDE relativ neu und es wird einige Zeit dauern, bis wir die volle Leistung von Mbed OS mit Arduino IDE voll ausschöpfen können. Für einen schnellen Start schreiben wir ein Programm, um alle Sensorwerte zu lesen und auf den seriellen Monitoren anzuzeigen.
Vorbereiten Ihrer Arduino IDE für Arduino Nano 33 BLE sense
Starten Sie Ihre Arduino IDE und gehen Sie zu Tools -> Boards -> Board Manager, um Ihren Arduino Board Manager zu starten. Suchen Sie nun nach "Mbed OS" und installieren Sie das Paket. Es sollte einige Zeit dauern, bis die Installation abgeschlossen ist.
Schließen Sie nach Abschluss der Installation das Dialogfeld und verbinden Sie Ihre Arduino 33-Karte mit einem Micro-USB-Kabel mit Ihrem Laptop. Sobald Sie die Karte anschließen, installiert Windows automatisch die erforderlichen Treiber für die Karte. Öffnen Sie dann Ihre Arduino IDE und wählen Sie Tools -> Board -> Arduino Nano 33. Wählen Sie dann auch den richtigen COM-Port aus, indem Sie Tools -> Port aktivieren. Mein Port ist mit Port COM3 verbunden, aber Ihr Port kann variieren. Nachdem der Port ausgewählt wurde, sollte Ihre IDE unten rechts so aussehen
Um schnell zu überprüfen, ob alles funktioniert, können wir ein Beispielprogramm verwenden. Probieren Sie das unter Datei -> Beispiele -> PDM -> PDMSerialPlotter bereitgestellte aus. Dieses Programm verwendet das integrierte Mikrofon, um Audio zu hören und es auf einem seriellen Plotter zu zeichnen. Sie können das Programm hochladen und prüfen, ob das Board und die IDE funktionieren.
Wenn Sie eine lächerlich langsame Kompilierung erleben, sind Sie nicht allein. Viele Leute, einschließlich mir, sind mit diesem Problem konfrontiert, und zum Zeitpunkt des Schreibens dieses Artikels scheint es keine Lösung zu geben. Ich brauche ungefähr 2-3 Minuten, um einfache Programme zu kompilieren und hochzuladen. Als ich einige BLE-Programme ausprobierte oder versuchte, mit Mbed OS zu arbeiten, erhöhte sich die Kompilierungszeit auf mehr als 10 Minuten, was mich nicht dazu ermutigte, etwas weiter zu versuchen. Dies liegt an der Integration des Mbed-Betriebssystems in Arduino IDE. Hoffen wir, dass jemand aus der wunderbaren Arduino-Community eine Lösung dafür findet.
Programm zum Lesen von Sensordaten und Anzeigen auf dem seriellen Monitor
Wenn wir die BLE- oder Kernfunktionen des Mbed-Betriebssystems der Karte nicht verwenden, war die Kompilierungszeit angemessen. Also habe ich eine einfache Skizze geschrieben, um alle Sensorwerte zu lesen und auf dem seriellen Monitor anzuzeigen, wie unten gezeigt
Den vollständigen Code dazu finden Sie unten auf dieser Seite. Stellen Sie jedoch sicher, dass Sie alle oben genannten Bibliotheken installiert haben. Die Erklärung des Codes lautet wie folgt.
Starten Sie das Programm, indem Sie alle erforderlichen Header-Dateien einschließen. Hier werden wir alle vier Sensoren außer dem Mikrofon verwenden
#include // Bibliothek für 9-Achsen-IMU einschließen #include // Bibliothek zum Lesen einschließen Druck #include // Bibliothek zum Lesen von Temperatur und Luftfeuchtigkeit einschließen #include // Bibliothek für Farb-, Näherungs- und Gestenerkennung einschließen
Innerhalb der Setup-Funktion initialisieren wir den seriellen Monitor mit einer Baudrate von 9600, um alle Sensorwerte anzuzeigen und alle erforderlichen Bibliotheken zu initialisieren. Der Code im Setup ist unten dargestellt
void setup () {Serial.begin (9600); // Serieller Monitor zur Anzeige aller Sensorwerte if (! IMU.begin ()) // IMU-Sensor initialisieren {Serial.println ("IMU konnte nicht initialisiert werden!"); while (1);} if (! BARO.begin ()) // Drucksensor initialisieren {Serial.println ("Drucksensor konnte nicht initialisiert werden!"); while (1);} if (! HTS.begin ()) // Temperatur- und Feuchtigkeitssensor initialisieren {Serial.println ("Temperatur- und Feuchtigkeitssensor konnte nicht initialisiert werden!"); while (1);} if (! APDS.begin ()) // Farb-, Näherungs- und Gestensensor initialisieren {Serial.println ("Farb-, Näherungs- und Gestensensor konnte nicht initialisiert werden!"); while (1);}}
Innerhalb der Schleifenfunktion lesen wir die erforderlichen Sensorwerte aus der Bibliothek und drucken sie dann auf dem seriellen Monitor aus. Die Syntax kann aus dem Beispielprogramm jeder Bibliothek entnommen werden. Wir haben die Werte für Beschleunigungsmesser, Gyroskop, Magnetometer, Druck, Temperatur, Luftfeuchtigkeit und Näherungssensor gelesen und auf dem seriellen Monitor angezeigt. Der Code zum Messen des Beschleunigungsmesserwerts ist unten gezeigt. Ebenso können wir für alle Sensoren messen.
// Beschleunigungsmesserwerte 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); } delay (200);
Arduino Nano 33 BLE- Den Code hochladen
Das Hochladen des Codes auf Nano 33 ähnelt allen anderen Karten, beachten Sie jedoch, dass die Karte über zwei COM-Anschlüsse verfügt. Wenn Sie auf die Schaltfläche zum Hochladen klicken, kompiliert die Arduino IDE den Code und setzt die Karte dann automatisch über einen Softwarebefehl zurück. Dadurch wird die Karte in den Bootloader-Modus versetzt und Ihr Code hochgeladen. Aus diesem Grund stellen Sie nach dem Hochladen möglicherweise fest, dass die Arduino IDE ihren COM-Anschluss automatisch auf eine andere Nummer geändert hat, und möchten ihn möglicherweise wieder ändern, bevor Sie Ihren seriellen Monitor öffnen.
Das ist so ziemlich meine Erfahrung mit dem Arduino Nano 33-Board. Ich werde später in der Zukunft versuchen, etwas mit seinen Sensoren und BLE-Funktionen zu bauen. Wie war deine Erfahrung mit dem Board? Was soll ich damit bauen? Lassen Sie die Antworten im Kommentarbereich und wir werden mehr diskutieren.