Interested_Spresenseのアイコン画像
Interested_Spresense 2023年12月19日作成 (2023年12月19日更新) © CC0 1+
セットアップや使用方法 セットアップや使用方法 閲覧数 213
Interested_Spresense 2023年12月19日作成 (2023年12月19日更新) © CC0 1+ セットアップや使用方法 セットアップや使用方法 閲覧数 213

ToFセンサー for SPRESENSE を使ってみよう!

ToFセンサー for SPRESENSE を使ってみよう!

初めに

本当は、今日のカレンダーの内容は、WiSUNのネタを書こうと思ったんだけど、
間に合わなくって、今回は、すでに作ってたSpresense向けのToFについて書きます。

用意するもの

SpresenseはMainボードだけで良いです。

SPRESENSEメインボード[CXD5602PWBMAIN1]
https://www.switch-science.com/catalog/3900/

キャプションを入力できます

Spresense向けのToFセンサーは、MM-S50V。

[ToFセンサーボード(SPRESENSE用)【MM-S50MV】
https://www.marutsu.co.jp/pc/i/1558728/)
キャプションを入力できます

なんと、値段が上がっていますね。

これだけです。

ブログ(元ネタ)

この記事は、以下のブログに過去に投稿したもののまとめです。

ToFセンサー for SPRESENSE を使ってみよう!
http://spresense.livedoor.blog/archives/34265597.html

Arduino向けライブラリ

MM-S50Vは、データーシートも、昔は公開されていたのですが、
今は取得に、登録が必要になっています。
このライブラリは、その時の公開情報に基づいて作成しました。

https://github.com/Interested-In-Spresense/MM-S50MV

※かなりプリミティブなものですみません。

こちらは、Arduino ライブラリにも登録しているので、
ライブラリの検索すれば、ライブラリマネージャからinstallできます。

キャプションを入力できます

サンプルプログラム

この中の単純な距離測位のサンプルの紹介をします。
こちらは、距離を計測し、それに合わせてモジュールが持っているLEDの色を変えるものです。

examples/OneDMesure/OneDMesure.ino

※もともとサンハヤトさんが公開していたものです。

まずは、setupでの初期から、

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

  MMS50MV.skip(256);
  delay(500);
  MMS50MV.set(MMS50MV_CMD_MODE, MMS50MV_MODE_SYNC);  // sync mode.
  delay(500);
  MMS50MV.skip(256);
  MMS50MV.sync();                                    // sync.
  MMS50MV.set(MMS50MV_CMD_MODE, MMS50MV_MODE_NOMAL); // normal mode. 
  delay(500);

  MMS50MV.set(0x10, 0); // 256frames/s
  delay(500);
  MMS50MV.skip(256);
}

デバイスは、仕様上256バイトを捨てるようになっているので、一旦、256バイト破棄した後、
同期モードにし、同期モード中にsyncで同期をとります。
その後、計測のモード(MMS50MV_MODE_NOMAL)、フレームレートを設定します。
設定後、仕様上256バイトを捨てるようになっています。

void loop()
{

  int32_t dis = MMS50MV.get();

  MMS50MV.led(ledr,ledg,ledb);
  printf("dis=%ld(mm)\n",dis);

後は、loopで、getを呼ぶと距離が取得できるので、それに合わせてLEDを光らせるだけです。
非常に簡単に使えます。

キャプションを入力できます

※サンハヤト提供の写真です。

その他、8x4だけど、実質4x3ぐらいの面での距離も計測ができるので次回はそちらを書こうかな。

ログインしてコメントを投稿する