Nano 33 BLE Senseの内蔵RGBセンサーを用いて、物体のおもな原色を視覚化する方法を学びます。
このチュートリアルでは、内蔵APDS9960センサーを使い、環境にある物体から投射される光の主成分を測定するのに、Arduino Nano 33 BLE Senseボードを使います。
目的
このプロジェクトの目的は以下の通りです。
- APDS9960センサーがどのように動作するかを学びます。
- APDS9960ライブラリを使用します。
- Arduino Nano 33 BLE Senseから生のセンサーデータを出力する方法を学びます。
- 近接検出モニターを作ります。
- 近接データの値を使い、RGB LEDを制御する方法を学びます。
必要なハードウェアとソフトウェア
- このプロジェクトでは、外部のセンサーや機器を利用しません。
- このチュートリアルでは、ボードのプログラムを記述するのに、Arduino Cloudエディタを利用します。
APDS9960センサー

APDSS9960センサー
APDS9960センサーは、高度なジェスチャー検出、近接検出、デジタル周辺光検出(ALS: Ambient Light Sense)、色検出(RGBC)を提供する多目的デバイスです。APDS9960センサーの非常に人気のあるアプリケーションは、スマートフォン内にあり、ユーザーがスマートフォンを耳に使づけるとスクリーンを消すのに使われています。
APDS9960センサーモジュールの詳細を知りたければ、こちらを参照してください。
カラーセンサ―

カラーセンサーの動作
白色は、実際には虹の全ての色で構成されていて、すべての波長を含んでいるので、多色光と説明されます。カラーセンサーは4つの異なるチャネル(赤と緑、青、透明光強度)に別れています。各チャネルには、紫外線と赤外線のブロックフィルターと同時にデータを読むためのデータ変換器で構成されます。
以下の機能を提供します。
- 4つの異なるチャネルから異なる色データを取得する
- 16ビットデータを同時に生成する
- 周辺光と認識光の正確な測定
プログラム作成
- 設定
Arduino Cloudエディタを開き、Librariesタブをクリックし、APDS9960ライブラリを探します。その後、> Examplesで、ColorSensorスケッチを開きます。開いた後は、Light_compositionという名前に変更します。

Cloudエディタでライブラリを探す
- ボードを接続する
次に、Arduino Nano 33 BLE SenseをPCに接続し、Cloudエディタが認識することを確認します。すると、ポートとボードが以下の図で示すように現れます。現れない場合は、指示に従いエディタがボードを認識するためのプラグインをインストールしてください。

ボードを選択する
- コードウォークスルー
APDS9960ライブラリをインクルードする必要があります。これにより、センサー制御が可能となります。このためには、以下のコードをsetup()関数の前に追加します。
|
|
setup()部分はそのままにして、さらに、APDS.begin()をif文の中に書きます。これは、カラーセンサーを初期化し、センサーが正常に初期化されなければ、シリアルモニターにメッセージを表示します。表示する文字列は任意に設定してください。
|
|
loop()では、colorAvailable()関数を使い、センサーが取得可能な色データを検出したか確認します。そして、APDS.readColor()を使い、色データをrとg、bという変数に格納します。APDS.readColor()関数の後、光の主成分が何かを知るために、if...else文を使う必要があります。それに従い、digitalWrite()関数で、RGB LEDを点灯します。
|
|
最後に、Serial.print()とSerial.println()を使い、測定した色をシリアルモニタに表示します。
- 完全なコード
|
|
テスト
スケッチの検証とボードへのアップロードが成功したら、左側のメニューからシリアルモニタを開きます。以下の図のように新しい値が表示されていきます。

シリアルモニタの出力
動作しているかをテストしたければ、異なる色の物体にボードを近づけて、値が増減したり、RGB LEDの色が変わるか確認します。

RGB LEDが物体の色と一致する
トラブルシュート
エラーが起きることもあります。コードが動作しないときはいくつかの共通の問題があり、解決できます。
- 括弧やセミコロンが抜けている。
- Arduinoボードが認識されなければ、CreateプラグインがPC上で適切に動作していることを確認する。
- 部屋が暗すぎる。
おわりに
このチュートリアルでは、APDS9960ライブラリを使い、APDS9960センサーから、色の値を読み取る方法と、Arduino Nano 33 BLE Sense内蔵のセンサーを使い、環境の色の値を測定しシリアルモニタに表示し、これらの値をRGB LEDに反映し、主成分となる原色を表示する方法を学びました。
オリジナルのページ
https://docs.arduino.cc/tutorials/nano-33-ble-sense/rgb-sensor/
最終更新日
August 16, 2026