M5Stack 超音波測距ユニット(U098)

概要

M5Stack社の超音波計測ユニットを紹介したいと思います。電子工作ではウルトラソニックセンサーとして定番ですが、なぜかこれまでユニットとしては販売されていませんでした。

商品

比較的新しい商品ですが、すでに日本でも販売されています。

ちょっとこれまでとケースのデザインが変更になっていますね。

センサーが2つ並んでいます。上から超音波を出して、対象物に当たって反射した超音波を下で受信します。その時間を計測して距離を計算している仕組みです。コネクタが赤なのでI2Cですね。ウルトラソニックでI2Cは珍しいと思います。

裏側には2センチから150センチまでの距離が計測できると書いてありますね。

類似品

定番の超音波センサーを使った記事です。この記事のときには今回のセンサーはすでに開発中でしたね。いまのと比べるとセンサーの間隔が狭かったみたいですね。

似たようなものでToRセンサーもあります。こちらのほうが精度は高いはずです。ただし値段もかなり高いです、、、

スケッチ例

#include "Wire.h"

float readEUS() {
  uint32_t data;
  Wire.beginTransmission(0x57);
  Wire.write(0x01);
  Wire.endTransmission();
  delay(120);
  Wire.requestFrom(0x57, 3);
  data = (Wire.read() << 16);
  data += (Wire.read() << 8);
  data += Wire.read();
  return float(data) / 1000;
}

void setup() {
  Serial.begin(115200);

  Wire.begin(32, 33); // M5StickC
}

void loop() {
  float newvalue = readEUS();

  if ((newvalue < 1500) && (newvalue > 20)) {
    Serial.printf("%.2fmm\n", newvalue);
  }
  delay(100);
}

こんな感じのコードで動きました。RCWL-9600というICを使って、赤外線センサーからの値をI2Cで取得しているようでした。ライブラリ化はされていないようですが上記のようにベタでデータを取得するだけで動きます。

まとめ

I2Cになっているので、複数のセンサーをI2Cハブなどを使って同時に使うことができます。この手のセンサーは厳密な距離よりはPIRのような接近センサーで使うことが多いとは思います。

コメント

タイトルとURLをコピーしました