Interested_Spresense が 2023年12月19日03時20分57秒 に編集
初版
タイトルの変更
ToFセンサー for SPRESENSE を使ってみよう!
タグの変更
spresense
Arduino_IDE
ToF
記事種類の変更
セットアップや使用方法
ライセンスの変更
(CC0 1+) Creative Commons Public Domain Dedication version 1.0 or later
本文の変更
# 初めに 本当は、今日のカレンダーの内容は、WiSUNのネタを書こうと思ったんだけど、 間に合わなくって、今回は、すでに作ってたSpresense向けのToFについて書きます。 # 用意するもの SpresenseはMainボードだけで良いです。 [**SPRESENSEメインボード[CXD5602PWBMAIN1]** https://www.switch-science.com/catalog/3900/](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](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での初期から、 ```c 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バイトを捨てるようになっています。 ```c void loop() { int32_t dis = MMS50MV.get(); MMS50MV.led(ledr,ledg,ledb); printf("dis=%ld(mm)\n",dis); ``` 後は、loopで、getを呼ぶと距離が取得できるので、それに合わせてLEDを光らせるだけです。 非常に簡単に使えます。  ※サンハヤト提供の写真です。 その他、8x4だけど、実質4x3ぐらいの面での距離も計測ができるので次回はそちらを書こうかな。