今年の2月に、ルネサス製の空気速度センサモジュール FS3000 を搭載した SparkFun のブレイクアウトボードを試した時のメモ。FS3000 は高感度の MEMS熱電対で、12bit の分解能で 0~7m/s までの FS3000-1005 と、0~15m/s までの FS3000-1015 の空気速度の測定が可能とのこと。今回のブレイクアウトボードには 7m/s までの測定が可能な FS3000-1005 が搭載されている。
- RENESAS FS3000 Air Velocity Sensor Module
- SparkFun Air Velocity Sensor Breakout – FS3000-1005 (Qwiic)
購入後すぐに M5Stack製の M5StickC で動作確認した時の様子は以下のような感じ。
動作確認環境
動作確認環境は以下の通り。
製品名 | 購入時の価格 | 最新価格(2022/12/24) |
---|---|---|
Qwiic – FS3000搭載 空気速度センサモジュール (SEN-18377) | 6,490円 (2022/2/4) Mouser | 11,210円 スイッチサイエンス |
Qwiicケーブル(Qwiic – 4ピンオス)150 mm (PRT-17912) | 180円 (2021/1/14) スイッチサイエンス | 259円 スイッチサイエンス |
M5StickC(本体のみ) | 1,650円 (2021/3/27) スイッチサイエンス | 2,750円 スイッチサイエンス |
FS3000ブレイクアウトボード と M5StickC との接続は以下の通り。
Qwiicシステムの詳細については こちら を参照。
SparkFun FS3000-1005 Qwiic | M5StickC Hat拡張端子 |
---|---|
GND 黒 | GND |
3.3V 赤 | G0 |
SDA 青 | G26 |
SCL 黄 | 3V3 |
動作確認プログラム
動作確認時のツール及び必要なライブラリは以下の通り。
- Arduino IDE: 1.8.19
- ボード([ツール]-[ボード]-[ボードマネージャ]): M5Stack 2.0.2
- ライブラリ([スケッチ]-[ライブラリをインクルード]-[ライブラリを管理])
- M5StickC: 0.2.5
- SparkFun_FS3000_Arduino_Library: 1.0.4
動作確認に使用したプログラムは以下の通り。
#include <SparkFun_FS3000_Arduino_Library.h>
#include <M5StickC.h>
FS3000 fs3000;
#define FONT 1
const int I2C_SCL_PIN = 26;
const int I2C_SDA_PIN = 0;
void setup() {
M5.begin();
M5.Lcd.setRotation(3);
M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);
M5.Lcd.setCursor(2,2,FONT);
M5.Lcd.print("Air Velocity: FS3000-1005");
M5.Lcd.setCursor(2,11,FONT);
Serial.begin(115200);
Wire.begin(I2C_SDA_PIN,I2C_SCL_PIN);
Wire.setClock(400000); // fSCL = 400kHz
if (fs3000.begin() == false) {
Serial.println("The sensor did not respond. Please check wiring.");
while(1); //Freeze
}
Serial.println("Sensor is connected properly.");
}
void loop(){
char valStrRawData[10];
char valStrMetersPerSecond[10];
char valStrKilometersPerHour[10];
uint16_t rawData = 0;
float metersPerSecond = 0.0;
float kilometersPerHour = 0.0;
rawData = fs3000.readRaw();
metersPerSecond = fs3000.readMetersPerSecond();
kilometersPerHour = metersPerSecond * 3.6;
sprintf(valStrRawData,"%4d",rawData);
dtostrf(metersPerSecond,2,2,valStrMetersPerSecond);
dtostrf(kilometersPerHour,2,2,valStrKilometersPerHour);
Serial.print(rawData);
Serial.print(", ");
Serial.print(metersPerSecond);
Serial.print(", ");
Serial.print(kilometersPerHour);
Serial.println();
M5.Lcd.setTextSize(2);
M5.Lcd.setCursor(8,20,FONT);
M5.Lcd.printf("%s m/s ",valStrMetersPerSecond);
M5.Lcd.setCursor(8,40,FONT);
M5.Lcd.printf("%s km/h ",valStrKilometersPerHour);
M5.Lcd.setCursor(8,60,FONT);
M5.Lcd.printf("%s Count ",valStrRawData);
delay(1000);
}
今後の予定
とりあえずの動作確認はできたので、今後は TouchDesigner との組み合わせで風の変化に応じた映像表現や、換気口の状態監視など、色々と試してみたいと思う。ただ、購入時に比べ価格が大幅に上がってしまっているので複数個で試すのはなかなか厳しいところ。