Arduino Nano 33 BLE シリーズ(マイコン+センサ+BLE)

Arduino Nano 33 BLEシリーズは、R-MSMと同様に、マイコンとセンサを小型ボードの上に搭載したマイコンボードです。2023年10月現在、以下の3つの種類がArduinoのHP(Nano Family)に掲載されています。

今回、Nano 33 BLEとNano 33 BLE Senseを入手したので、動作確認を行います。

1. シリーズ比較

1.1. 搭載センサの比較

搭載しているセンサの比較を仕様書を基に行いました。以下に示します。

Nano 33 BLE

Nano 33 BLE Sense

Nano 33 BLE Sense Rev2

マイコンモジュール

NINA B306 Module(64 MHz Arm® Cortex-M4F (with FPU)

1 MB Flash + 256 KB RAM

Bluetooth® 5 multiprotocol radio

Full-speed 12 Mbps USB

9軸IMU

LSM9DS1

LSM9DS1

6軸IMU

BMI270

3軸IMU

BMM150

気圧/温度

LPS22HB

LPS22HB

湿度/温度

HTS221

HS3003

近接/照度/カラー/

ジェスチャー

APDS-9960

APDS-9960

デジタルマイクロフォン

MP34DT05

MP34DT06JTR

1.2. 外観

外観から、Nano 33 BLEとNano 33 BLE Senseは同一基板であり、センサが実装されているかいないかの差であることが分かる。

 

1.3. 部品配置図

仕様書から部品配置図を比べる。Nano 33 BLE Sense Rev2は、 Nano 33 BLE Senseとは異なる基板であることが分かる。

左側:Arduino Nano 33 BLE Sense
右側:Arduino Nano 33 BLE

Arduino Nano 33 BLE Sense Rev2

1.4. 端子配置

ボードの端子配置は共通です。電源電圧は3.3Vです。 USBからの+5Vで動作しますが、左下のVINからの+5V印加でも動作します。
IOは、High出力=3.3V、Low出力=0Vです。

2. Arduino Nano 33 BLE Sense搭載センサの動作確認

搭載されている5つのセンサの動作確認を行います。出力は、Arduinoのシリアルモニタの画面で行います。

2.1. 環境設定

① Arduino IDEの「ツール」→「ボード」→「ボードマネージャー」から、“Arduino Mbed OS Nano Boards”をインストールします。

② ボード情報のインストールが完了したら、「ツール」→「ボード」→「Arduino Mbed OS Nano Boards」から“Arduino Nano 33 BLE”を選択します。

 

③ 「ツール」→「シリアルポート」→COM**(Arduino Nano 33 BLE)を選択します。(**の部分は各PCによって異なります)

 

2.2. 9軸センサ(LSM9DS1)の動作確認

2.2.1. ライブラリのインストール

”Arduino_LSM9DS1”をライブラリマネージャからインストールします。

2.2.2. 動作確認プログラムの作成

ライブラリ“Arduino_LSM9DS1”のフォルダにある“examples”のフォルダのプログラムを参考に、加速度、ジャイロ、磁気を0.5秒毎に読み出すプログラムを作成します。
プログラムは、「2.2.4. LSM9DS1の動作確認プログラム」を参照ください。

2.2.3. 動作の確認

LSM9DS1は、Nano 33 BLE senseとNano 33 BLEの両方に搭載されています。両方にプログラムの書込みを行い、動作を確認しました。結果、どちらでも動作することを確認しました。

2.2.4. LSM9DS1の動作確認プログラム

2.3. 温・湿度センサ(HTS221)の動作確認

2.3.1. ライブラリのインストール

”Arduino_HTS221”をライブラリマネージャからインストールします。

2.3.2. 動作確認プログラムの作成

ライブラリ“Arduino_HTS221”のフォルダにある“examples”のフォルダにある“ReadSensors.ino”を読み込んでコンパイルします。このプログラムは、1秒毎に温度と湿度をセンサから取得して表示します。

2.3.3. 動作の確認

結果を下に載せます。
標準機の温度:27.1℃、湿度:54.4%に比べ、温度が高めで、その分湿度が低めに出ている結果となりました。

2.4. 大気圧センサ(LPS22HB)の動作確認

2.4.1. ライブラリのインストール

”Arduino_LPS22HB”をライブラリマネージャからインストールします。

2.4.2. 動作確認プログラムの作成

ライブラリ“Arduino_LPS22HB”のフォルダにある“examples”のフォルダにある“ReadPressure.ino”を読み込んでコンパイルします。このプログラムは、1秒毎に気圧と温度をセンサから取得して表示します。
プログラムの元は、気圧が”kPa”で表示されていましたので、1kPa = 10hPaから10倍するようにプログラムを変更しましした。

2.4.3. 動作の確認

結果を下に載せます。
標準機の温度:27.3℃に比べ、温度が高めな結果となりました。

2.5. 近接・ジェスチャセンサ(APDS9960)の動作確認

2.5.1. ライブラリのインストール

”Arduino_APDS9960”をライブラリマネージャからインストールします。

2.5.2. 動作確認プログラムの作成

ライブラリ“Arduino_APDS9960”の“examples”のフォルダにある“FullExample.ino”を読み込んでコンパイルします。このプログラムは、100msごとに近接(Proximity)と色(RGB)とジェスチャを検出して表示します。

2.5.3. 動作の確認

結果を下に載せます。
左側の結果は、センサに手をかざした時の変化です。近接(PR)の値が急激に
小さくなります。色も変化します。
右側の結果は、センサの前で手を振った場合の結果です。LEFTやDOWNと
いったジェスチャが検出されています。

2.6. デジタルマイクロフォン(MP34DT05)の動作確認

2.6.1. ライブラリのインストール

ライブラリは、ボード“Arduino Mbed OS Nano Boards”をインストールした時点で読み込まれています。

2.6.2.動作確認プログラムの作成

動作確認プログラムは、Arduino-IDEの「ファイル」→「スケッチ例」→「PDM」→「PDMSerialPlotter」を使用します。

2.6.3. 動作の確認

結果を下に載せます。

シリアルモニタに読み出されたデータは、下の図のように数値の羅列です。1chのみのモノラル出力です。
他のセンサは、I2C出力ですが、マイクロフォンの出力は、19kHzサンプリングした16bitの符号あり整数です。
そのため、他のセンサの出力とかなりスピードが異なります。

次の絵は、マイクの出力をデータで読み込ませ、Arduino-IDEのシリアルプロッタで表示させたものです。