- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLESenseハードウェアの概要
- Arduino Nano 33BLEセンスによるソフトウェアの改善
- Arduino Nano 33BLEセンス用のArduinoIDEの準備
- センサーデータを読み取り、シリアルモニターに表示するプログラム
- Arduino Nano 33BLE-コードのアップロード
Arduinoは、高速プロトタイピングとアイデア検証のための頼りになる開発プラットフォームです。私たちの多くはArduinoUNO開発ボードから始めていたでしょうが、今日、モノのインターネット、コンピュータービジョン、人工知能、機械学習、その他の未来的なテクノロジーに向かって進むにつれて、謙虚なArduinoUNOはもはやその8に対処できなくなりました。 -ビットマイクロコントローラー。これにより、Wi-Fi、Bluetooth、GSM、および人気のあるMKR1000やMKR GSM1400などの他のワイヤレス機能を内蔵したより強力なプロセッサを搭載した新しいボードの発売が求められました。この文脈では、Arduinoのは、最近、ナノの新バージョンを発売したと呼ばれるArduinoのナノ33。
Arduino Nano 33ボードには、Arduino Nano 33IoTとArduinoNano 33BLEセンスの2種類があります。両方のモジュールの主な違いは、Arduino Nano 33 BLEセンスモジュールにはいくつかのセンサーが組み込まれていることです(詳細は後で説明します)が、Arduino Nano 33IoTにはセンサーがありません。この記事では、Arduino Nano 33 BLEセンスボードを確認し、その特徴と機能を紹介し、最後にサンプルコードを記述して、センサー値を読み取り、シリアルモニターに表示します。では、学びましょう…。!
Arduino Nano 33 BLE Sense
「ArduinoNano33 BLE Sense」という名前は一口ですが、名前自体がいくつかの重要な情報を示しています。寸法、ピン配置、フォームファクターが従来のArduino Nanoと非常に似ているため、「Nano」と呼ばれます。実際には、既存のプロジェクトでArduino Nanoの代わりに使用する予定ですが、この新しいモジュールは従来のNanoは5Vで動作しますが3.3V。ですから、これが「33」という名前の由来だと思います。これは、ボードが3.3Vで動作することを示しています。次に、「BLE」という名前は、モジュールがBluetooth Low Energy(BLE5 5.0)をサポートしていることを示します。「センス」という名前は、加速度計、ジャイロスコープ、磁気計、温度および湿度センサー、圧力センサー、近接センサー、カラーセンサー、ジェスチャーセンサー、さらには内蔵マイクなどのセンサーが搭載されていることを示します。BLEやその他のセンサーの詳細については後で説明しますが、今のところ、これがArduino Nano 33BLEセンスボードが箱から出してすぐに見える方法です。
Arduino Nano 33 BLESenseハードウェアの概要
ボードを最初に見ると、上部にたくさんのコンポーネントが密集していることがわかります。そのほとんどは、前に説明したセンサーです。しかし、主な脳は右側の金属製のケーシングの後ろに隠れています。このケーシングには、強力なCortexM4FとBLEおよびBluetooth5通信用のNINAB306モジュールを含むNordicnRF52840プロセッサが搭載されています。これにより、ボードは非常に低電力で動作し、Bluetooth 5を使用して通信できるため、ホームオートメーションやその他の接続プロジェクトでの低電力メッシュネットワークアプリケーションに最適です。また、nRFプロセッサはARM MbedOSをサポートしているためまた、後で説明するいくつかのソフトウェアの改善も提供します。ボード上で知っておくべきセンサー、LED、プッシュボタン、その他の重要なものは、下の画像にマークされています。
上の画像からわかるように、ボードにはセンサーが搭載されており、ボードを外部センサーに接続しなくても、ボックスの右側を構築するのに役立ちます。このボードは、ウェアラブルデバイスや、フィットネスバンド、血糖値モニタリング、歩数計、スマートウォッチ、気象観測所、ホームセキュリティなど、これらのセンサーのほとんどを使用するその他のスマートポータブルデバイスでの使用を目的としています。そしていつものように、これらすべてのセンサーには、簡単に使用できるArduino用のビルド済みライブラリがあります。この記事の最後に、これらすべてのセンサーから値を読み取り、シリアルモニターに表示します。Arduino Nano 33BLEセンスボードのセンサーの詳細と必要なライブラリを以下に示します
センサー名 |
パラメーター |
リンク |
LSM9DSI –STマイクロエレクトロニクス |
加速度計、ジャイロスコープ、磁力計 |
LSMDSIデータシート Arduino_LSM9DS1ライブラリ |
LPS22HB –STマイクロエレクトロニクス |
圧力 |
LPS22HBデータシート Arduino_LPS22HBライブラリ |
HTS221 –STマイクロエレクトロニクス |
温度と湿度 |
LPS22HBデータシート Arduino_HTS221ライブラリ |
APDS9960 – AvagoTech。 |
近接、光、色、ジェスチャー |
LPS22HBデータシート Arduino_APDS9960ライブラリ |
MP34DT05 –STマイクロエレクトロニクス |
マイクロフォン |
MP34DT05データシート 内蔵-PDMライブラリ |
これらのセンサーのほとんどはSTMicroelectronics製であり、低電力動作をサポートしているため、バッテリー駆動の設計に最適です。 APDS9960センサーはすでにspateモジュールとして利用可能であり、Arduinoでも以前に使用したことがあるため、APDS9960センサーに精通している人はほとんどいないでしょう。これらのセンサーの詳細については、それぞれのデータシートにアクセスし、提供されているライブラリ全体をArduino IDEに追加して、Arduino Nano 33BLEセンスボードでの使用を開始してください。ライブラリを追加するには、指定されたリンクを使用してそれぞれのGitHubページにアクセスし、ZIPファイルをダウンロードしてから、[スケッチ]-> [ライブラリを含める]-> [Add.ZIPライブラリ]を使用するか、ArduinoIDEのライブラリマネージャーを使用してこれらを追加することもできます。ライブラリ。
Arduino Nano 33 BLEセンスボードの技術仕様:
NordicnRF52840プロセッサを搭載したArduinoNano 44BLEボードの技術仕様は次のとおりです。
- 動作電圧:3.3V
- USB入力電圧:5V
- 入力ピン電圧:4.5V〜21V
- チップ:NINA-B3 – RF52840
- クロック:64MHz
- フラッシュ:1MB
- SRAM:256 KB
- ワイヤレス接続:Bluetooth 5.0 / BLE
- インターフェース:USB、I2C、SPI、I2S、UART
- デジタルI / Oピン:14
- PWMピン:6(8ビット分解能)
- アナログピン:8(10ビットまたは12ビット構成可能)
Arduino Nano 33BLEセンスによるソフトウェアの改善
そこにあるすべてのArduinoボードと同じように、Arduino Nano 33BLEセンスはArduinoIDEでプログラムできます。ただし、開始する前に、ボードマネージャを使用してボードの詳細をIDEに追加する必要があります。 nRF52840はARMMbed OSを使用してプログラムできることがわかっているため、これは、Arduino Nano 33ボードがリアルタイムオペレーティングシステム(RTOS)をサポートしていることを意味します。 Mbed OSプログラミングを使用すると、プログラム内で同時に複数のスレッドを実行して、マルチタスクを実行できます。また、ボードの消費電力は大幅に削減されます。遅延関数を呼び出すたびに、ボードは遅延時間中にティックルモードに入り、電力を節約し、遅延が終了すると動作に戻ります。この操作は、通常のArduino遅延操作よりも4.5uA少ない消費量になると報告されています。
そうは言っても、MbedOSとArduinoIDEの統合は比較的新しく、ArduinoIDEでMbedOSの全機能を十分に活用できるようになるまでにはしばらく時間がかかります。したがって、すばやく起動するために、すべてのセンサーの値を読み取り、シリアルモニターに表示するプログラムを作成します。
Arduino Nano 33BLEセンス用のArduinoIDEの準備
Arduino IDEを起動し、[ツール]-> [ボード]-> [ボードマネージャー]に移動して、Arduinoボードマネージャーを起動します。次に、「Mbed OS」を検索して、パッケージをインストールします。インストールが完了するまで少し時間がかかります。
インストールが完了したら、ダイアログボックスを閉じ、マイクロUSBケーブルを使用してArduino33ボードをラップトップに接続します。ボードウィンドウを接続するとすぐに、ボードに必要なドライバーのインストールが自動的に開始されます。次に、Arduino IDEを開き、[ツール]-> [ボード]-> [Arduino Nano 33]を選択します。次に、[ツール]-> [ポート]をオンにして、適切なCOMポートを選択します。私のポートはCOM3に接続されていますが、異なる場合があります。ポートを選択すると、IDEの右下隅は次のようになります。
すべてが機能しているかどうかをすばやく確認するために、サンプルプログラムを使用して、[ファイル]-> [例]-> [PDM]-> [PDMSerialPlotter]にあるプログラムを試してみましょう。このプログラムは、オンボードマイクを使用してオーディオをリッスンし、シリアルプロッタにプロットします。プログラムをアップロードして、ボードとIDEが機能しているかどうかを確認できます。
コンパイルが途方もなく遅い場合は、あなただけではありません。私を含む多くの人がこの問題に直面しており、この記事を書いている時点では、解決策がないようです。簡単なプログラムをコンパイルしてアップロードするのに約2〜3分かかります。また、BLEプログラムを試したり、Mbed OSで作業したりすると、コンパイル時間が10分を超えてしまい、それ以上試すことはできませんでした。これは、MbedOSがArduinoIDEと統合されているためです。すばらしいArduinoコミュニティの誰かがこれに対する解決策を考え出すことを期待しましょう。
センサーデータを読み取り、シリアルモニターに表示するプログラム
ボードのBLEまたはコアMbedOS機能を使用しない場合、コンパイル時間は妥当でした。そこで、すべてのセンサー値を読み取り、以下に示すようにシリアルモニターに表示する簡単なスケッチを作成しました。
同じことを行うための完全なコードはこのページの下部にありますが、上記のすべてのライブラリがインストールされていることを確認してください。コードの説明は次のとおりです。
必要なすべてのヘッダーファイルをインクルードしてプログラムを開始します。ここでは、マイクを除く4つのセンサーすべてを使用します
#include // 9軸IMU用のライブラリを含める#include //圧力を読み取るためのライブラリを含める#include //温度と湿度を読み取るためのライブラリを含める#include //色、近接度、ジェスチャー認識用のライブラリを含める
セットアップ機能内で、シリアルモニターを9600ボーレートで初期化して、すべてのセンサー値を表示し、必要なすべてのライブラリも初期化します。セットアップ内のコードを以下に示します
void setup(){Serial.begin(9600); //すべてのセンサー値を表示するシリアルモニターif(!IMU.begin())// IMUセンサーを初期化します{Serial.println( "Failed to initialize IMU!"); while(1);} if(!BARO.begin())//圧力センサーの初期化{Serial.println( "圧力センサーの初期化に失敗しました!"); while(1);} if(!HTS.begin())//温度および湿度センサーを初期化する{Serial.println( "温度および湿度センサーの初期化に失敗しました!"); while(1);} if(!APDS.begin())//色、近接、ジェスチャーセンサーを初期化{Serial.println( "色、近接、ジェスチャーセンサーの初期化に失敗しました!"); while(1);}}
ループ関数内で、ライブラリから必要なセンサー値を読み取り、シリアルモニターに出力します。構文は、各ライブラリのサンプルプログラムから参照できます。加速度計、ジャイロスコープ、磁力計、圧力、温度、湿度、および近接センサーの値を読み取り、シリアルモニターに表示しました。加速度計の値を測定するためのコードを以下に示します。同様に、すべてのセンサーについて測定できます。
//加速度計の値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); }遅延(200);
Arduino Nano 33BLE-コードのアップロード
Nano 33へのコードのアップロードは他のボードと同様ですが、ボードには2つのCOMポートがあることに注意してください。アップロードボタンをクリックすると、Arduino IDEがコードをコンパイルし、ソフトウェアコマンドを使用してボードを自動的にリセットします。これにより、ボードがブートローダーモードになり、コードがアップロードされます。このため、アップロードが完了すると、Arduino IDEがCOMポートを別の番号に自動的に変更したことに気付く場合があり、シリアルモニターを開く前に元に戻すことができます。
これは、これまでのArduino Nano 33ボードでの私の経験とほぼ同じです。将来的には、センサーとBLE機能を使用して何かを構築してみます。ボードでの経験はいかがでしたか?それを使って何を作ってほしいですか?コメントセクションに回答を残してください。詳細について説明します。