@chirimen/as7341
v1.0.0
Published
CHIRIMEN driver for AS7341 sensor
Keywords
Readme
@chirimen/as7341
CHIRIMEN driver for AS7341 (11-channel spectral color sensor)
ams-OSRAM製の11チャンネル分光カラーセンサー AS7341 用のCHIRIMENドライバです。 本ドライバの read() では、可視光域をカバーする8つの分光チャンネル(F1〜F8: 415nm〜680nm)に加え、Clear(全可視光)とNIR(近赤外)の計10チャンネルの値を取得できます。 光の色成分・スペクトル分析、色識別、光源の種類判定などの用途に利用できます。 測定時間(ATIME/ASTEP)とゲイン(0.5倍〜512倍)を設定可能です。
主な仕様
| 項目 | 内容 | | ---------------- | ---------------------------------- | | 型番 | AS7341 | | インターフェース | I2C | | I2Cアドレス | 0x39 | | 測定チャンネル | F1〜F8(415nm〜680nm)、Clear、NIR |
Installation
npm install @chirimen/as7341Usage
import { requestI2CAccess } from "node-web-i2c";
import AS7341 from "@chirimen/as7341";
const sleep = (msec) => new Promise((resolve) => setTimeout(resolve, msec));
const i2cAccess = await requestI2CAccess();
const as7341 = new AS7341(i2cAccess.ports.get(1));
await as7341.init();
while (true) {
// f1〜f8(各波長の強度)、clear(全可視光)、nir(近赤外)
const { f1, f2, f3, f4, f5, f6, f7, f8, clear, nir } = await as7341.read();
console.dir({ f1, f2, f3, f4, f5, f6, f7, f8, clear, nir });
await sleep(1000);
}API
new AS7341(i2cPort, slaveAddress = 0x39)
ドライバのインスタンスを生成します。
i2cPort:requestI2CAccess()で取得したI2CポートslaveAddress: I2Cアドレス(省略可。デフォルト値:0x39)
async init()
センサーを初期化します。チップIDの確認・電源ONの後、測定条件のデフォルト値
(ATIME=100、ASTEP=999、ゲイン=256倍)を設定します。
初期化に失敗した場合は null を返します。
async setATIME(value)
積分時間パラメータ ATIME を設定します(0〜255)。
範囲外の値を渡した場合は null を返します。
async setASTEP(value)
積分ステップ時間パラメータ ASTEP を設定します(0〜65534)。
範囲外の値を渡した場合は null を返します。
async setGain(gain)
ADCのゲイン(倍率)を設定します。指定できる値は
0.5, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 のいずれかです。
無効な値を渡した場合は null を返します。
async read()
全チャンネルの測定を行い、結果をオブジェクトで返します。 SMUXの切り替えを伴う2回の測定(F1〜F4系→F5〜F8系)を内部で実行します。
{
f1: number, // 415nm
f2: number, // 445nm
f3: number, // 480nm
f4: number, // 515nm
f5: number, // 555nm
f6: number, // 590nm
f7: number, // 630nm
f8: number, // 680nm
clear: number, // 全可視光
nir: number // 近赤外
}データシート
参考
- Adafruit_AS7341(参考にした実装元)
