Nano 33 BLE Senseの設定方法、構成要素の概要、ピンに関する情報、異なるシリアル通信(SPI、I2C、UART)と無線(Wi-Fi、Bluetooth®)プロトコルの使い方を学習します。
AUTHOR: Benjamin Dannegård、LAST REVISION: 2023/02/20 18:07
この記事は、ガイドとAPI呼び出し、ライブラリ、チュートリアルのまとめです。Nano 33 BLE Senseボードを使い始めるのに役に立ちます。
Nano 33 BLE Sense用ドキュメントも参照してください。
コア
Nano 33 BLE Senseは、Arduino Mbed OS Nano Boards coreを使用しています。
データシート
完全なデータシートは、以下のリンクからダウンロードできるPDFとして提供されています。
Download the Arduino Nano 33 BLE Sense datasheet
インストール
Arduino IDE 1.8.X
Nano 33 BLE Seseは、伝統的なArduino IDE 1.8.Xでプログラムすることができます。ボードをインストールにするには、以下のガイドを参照してください。
Arduino IDE 2.0.X
Nano 33 BLE Seseは、Arduino IDE 2.0.Xでプログラムすることができます。ボードをインストールにするには、以下のガイドを参照してください。
Webエディタ
Nano 33 BLE Seseは、Webエディタでプログラムすることができます。ボードを使い始めるのに必要なのは、以下のガイドで説明しているプラグインをインストールすることだけです。
OpenMV IDEを使う
ボードで、MicroPythonとOpenMVを使うのであれば、以下のチュートリアルに従ってください。
MicroPythonの機能や特徴の概要を知りたいのであれば、以下のチュートリアルを参照してください。
強制ブートローダー起動
アップロード中にアップロードプロセスが止まってしまう可能性があります。このときは、リセットボタンを2回押し、強制的にブートローダーを起動することができます。
ピン
アナログピン
Nano 33 BLE Senseには、8本のアナログピンがあります。これらは、analogRead()
関数を利用します。
|
|
PWMピン
D2-D12とA0-A7では、PWM(Pulse Width Modulation: パルス幅変調)を利用できます。
|
|
デジタルピン
合計14本のデジタルピンがあります。
これらを使うには、まず、スケッチのvoid setup()
関数内で定義する必要があります。
|
|
デジタルピンの状態を読むには、
|
|
デジタルピンに状態を書くには、
|
|
5Vピン
Arduino Nano 33 BLE Senseのマイクロコントローラーは3.3Vで動作します。このため、デジタルピンやアナログピンに3.3Vを超える電圧をかけてはいけません。センサーやアクチュエーターを接続するときは、この3.3Vの制限を超えないことを保証するよう注意が必要です。他のArduinoボードでよく利用される5Vのような高電圧の信号を接続すると、Arduino Nano 33 BLE Senseが壊れるかもしれません。
Nanoを抜き取り、新しいNano 33 BLE Senseに置き換えるような既存のプロジェクトでこのようなリスクを避けるために、ヘッダのRSTとA7の間にある5Vピンは工場出荷時のデフォルトでは接続していません。ピンから5Vを取得するような設計をしているときは、すぐには動作しません。デジタル入力とアナログ入力が3.3Vに適合していることに注意を払ってもらうための予防措置です。
5Vピンは、以下の2つの条件が満たされたときにだけ有効です。VUSBと記されたパッド間をはんだブリッジすることと、Nano 33 BLE SenseにUSBポート経由で給電することです。VINピンからボードに給電したときは、安定化した5Vは出力されません。このため、はんだブリッジをしても、5Vピンからは何も出力されません。一方、3.3Vは常に利用可能で、センサーを駆動するのに十分な電流を供給します。センサーとアクチュエーターが3.3Vを入力し、3.3VのデジタルIOレベルで動作するように設計してください。今や、5Vは多くのモジュールではオプションで、電子ICでは3.3Vが標準電圧になっています。
IMU
LSM9DS1
慣性測定ユニットLSM9DS1は、3D加速度センサーとジャイロスコープ、磁気センサーを備え、プロジェクトで、姿勢や動き、振動を検出することができます。
LSM9DS1ライブラリ
LSM9DS1モジュールからデータを取得するには、LSM9DS1ライブラリをインストールする必要があります。このライブラリには、Nano 33 BLE Senseでそのまま利用できるスケッチ例が付属しています。
このライブラリは、IDEのライブラリマネージャ―から直接インストールすることができます。このライブラリを利用するには、スケッチの先頭でインクルードする必要があります。
|
|
ライブラリを初期化するには、void setup()
で以下のコマンドを使います。
|
|
加速度センサー
加速度センサーのデータは、以下のコマンドで取得します。
|
|
ジャイロスコープ
ジャイロスコープのデータは、以下のコマンドで取得します。
|
|
磁気センサー
磁気センサーのデータは、以下のコマンドで取得します。
|
|
チュートリアル
このIMUの使い方を詳細に知りたい場合は、以下のチュートリアルを参照してください。
- Nano 33 BLE Senseのジャイロスコープデータを取得する/Accessing IMU gyroscope data with Nano 33 BLE Sense
- Nano 33 BLE Senseの加速度センサーデータを取得する/Accessing IMU accelerometer data with Nano 33 BLE Sense
- Nano 33 BLE Senseの磁気センサーデータを取得する/Accessing IMU magnetometer data with Nano 33 BLE Sense
近接・ジェスチャー検知
APDS9960
APDS9960チップは、色(RGB)とジェスチャーだけでなく、デジタル近接と環境光も検出することができます。
APDS9960ライブラリ
APDS9960モジュールからデータを取得するには、APDS9960ライブラリをインストールする必要があります。このライブラリには、Nano 33 BLE Senseでそのまま利用できるスケッチ例が付属しています。
このライブラリは、IDEのライブラリマネージャ―から直接インストールすることができます。このライブラリを利用するには、スケッチの先頭でインクルードする必要があります。
|
|
ライブラリを初期化するには、void setup()
で以下のコマンドを使います。
|
|
その後、近接センサーのデータが利用可能か確認します。利用可能であれば、シリアルモニタに表示します。データの値は0から255で、0が近くて、255が遠いです。値が-1のときは、エラーです。
|
|
チュートリアル
この近接センサーの使い方を詳細に知りたい場合は、以下のチュートリアルを参照してください。
- Nano 33 BLE Senseで近接検出/Proximity Detection with the Nano 33 BLE Sense
- Nano 33 BLE Senseでジェスチャー認識/Gesture Recognition with the Nano 33 BLE Sense
温湿度センサ―
HTS221
HTS221静電容量式デジタルセンサーは、温度と相対湿度を測定します。温度の精度は±0.5℃(15度から40度)で、周囲温度の測定に最適です。
HTS221ライブラリ
HTS221モジュールからデータを取得するには、HTS221ライブラリをインストールする必要があります。このライブラリには、Nano 33 BLE Senseでそのまま利用できるスケッチ例が付属しています。
このライブラリは、IDEのライブラリマネージャ―から直接インストールすることができます。このライブラリを利用するには、スケッチの先頭でインクルードする必要があります。
|
|
ライブラリを初期化するには、void setup()
で以下のコマンドを使います。
|
|
その後、温度と湿度を確認するためにシリアルモニターに値を表示することができます。
|
|
チュートリアル
この温湿度センサーの使い方を詳細に知りたい場合は、以下のチュートリアルを参照してください。
大気圧センサ―
LPS22HB
LPS22HBは大気圧を取得し、260から1260hPaの間の大気圧データを24ビットで出力します。このデータは現在値の海抜の計算に利用することができます。
LPS22HBライブラリ
LPS22HBモジュールからデータを取得するには、LPS22HBライブラリをインストールする必要があります。このライブラリには、Nano 33 BLE Senseでそのまま利用できるスケッチ例が付属しています。
このライブラリは、IDEのライブラリマネージャ―から直接インストールすることができます。このライブラリを利用するには、スケッチの先頭でインクルードする必要があります。
|
|
ライブラリを初期化するには、void setup()
で以下のコマンドを使います。
|
|
その後、以下のコードを使ってセンサーから値を読み取ることができます。
|
|
チュートリアル
この大気圧センサーの使い方を詳細に知りたい場合は、以下のチュートリアルを参照してください。
マイク
MP34DT05
MP34DT05は、小型で低消費電力のICインターフェイス付き無指向性デジタルMEMSマイクです。SN比は64dBで、音波を検出することができ-40℃から85℃の温度で動作することができます。
PDMライブラリ
MP34DT05からデータを取得するには、Arduino Mbed OS Nanoボードコアに付属のPDMライブラリをインストールする必要があります。コアをインストールしたら、動作するスケッチ例は、ファイル > スケッチ例 > PDM > PDMSerialPlotterにあります。
|
|
チュートリアル
このマイクの使い方を詳細に知りたい場合は、以下のチュートリアルを参照してください。
RGB
ピクセルをONにするには、LEDにHIGH
を書き込んでください。
|
|
ピクセルをOFFにするには、LEDにLOW
を書き込んでください。
|
|
LEDに255から0の値を書くこともできます。
|
|
通信
他のArduino®製品と同様、Nano 33 BLE Senseは異なるプロトコル用に特定のピンが割り当てられています。
SPI
Nano 33 BLE Senseで、SPI(Serial Peripheral Interface)に使われるピンは以下の通りです。
- (CIPO) - D12
- (COPI) - D11
- (SCK) - D13
- (CS/SS) - 任意のGPIO
SPIを使うには、まず、SPIライブラリをインクルードします。
|
|
void setup()
内でライブラリを初期化する必要があります。
|
|
その後、デバイスに書き込みます。
|
|
I2C
Nano 33 BLE Senseで、I2C(Inter-Integrated Circuit)に使われるピンは以下の通りです。
- (SDA) - A4
- (SCL) - A5
I2Cを使うには、Wireを使います。スケッチの先頭でインクルードする必要があります
|
|
void setup()
内でライブラリを初期化する必要があります。
|
|
その後、I2C経由で接続されているデバイスに何かを書くときは、以下のコマンドを利用します。
|
|
UART
UART(Universal asynchronous receiver-transmitter)に使われるピンは以下の通りです。
- (Rx) - D0
- (Tx) - D1
UART経由でデータを送受信するには、最初にvoid setup()
内でボーレートを設定する必要があります。
|
|
入力データを読み取るには、whileループを使って個々の文字を読み取り、文字列に追加していきます。
|
|
何かを書き込むには、以下のコマンドを使います。
|
|
接続性
Nano 33 BLE Senseは、u-blox NINA-B306モジュールにより、Bluetooth®をサポートしています。このモジュールを使うには、Arduino BLEライブラリを使います。
Bluetooth®
Nano 33 BLE SenseでBluetooth®を有効化するには、Arduino BLEライブラリを使い、スケッチの先頭でインクルードします。
|
|
サービスとキャラクタリスティックを設定します。
|
|
アドバタイズ名とサービスを設定します。
|
|
アドバタイジングを始めます。
|
|
Bluetooth® Low Energy周辺機器が接続するのを待ちます。
|
|
チュートリアル
USBキーボード
ボードをキーボードとして使うには、コア内にあるUSBHIDライブラリを参照します。
ライブラリをインクルードし、オブジェクトを生成します。
|
|
何かを書き込むには、以下のコマンドを使います。
|
|
オリジナルのページ
https://docs.arduino.cc/tutorials/nano-33-ble-sense/cheat-sheet
最終更新日
November 12, 2023