Contents
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のシリアルプロッタで表示させたものです。