編集履歴一覧に戻る
Interested_Spresenseのアイコン画像

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/) ![キャプションを入力できます](https://camo.elchika.com/893e308fae6d2d9beaba4c44e9f4747325764c39/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35313935656231352d393966302d346438342d383363652d6562366533343062303533642f38383161616164642d373035362d346461352d396130392d393037306438343533653333/) Spresense向けのToFセンサーは、MM-S50V。 [**ToFセンサーボード(SPRESENSE用)【MM-S50MV】** https://www.marutsu.co.jp/pc/i/1558728/) ![キャプションを入力できます](https://camo.elchika.com/e189ff1918e7422f374e4a6c8b94849f984d5583/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35313935656231352d393966302d346438342d383363652d6562366533343062303533642f31346663616639622d643132332d343635372d393631392d616538373765643062323032/) なんと、値段が上がっていますね。 これだけです。 # ブログ(元ネタ) この記事は、以下のブログに過去に投稿したもののまとめです。 [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できます。 ![キャプションを入力できます](https://camo.elchika.com/3dd0852154b37330d4a0fe59cfc9af50a75302ce/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35313935656231352d393966302d346438342d383363652d6562366533343062303533642f63613335653162332d376265362d343336372d613031322d623761313936373934303865/) # サンプルプログラム この中の単純な距離測位のサンプルの紹介をします。 こちらは、距離を計測し、それに合わせてモジュールが持っている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を光らせるだけです。 非常に簡単に使えます。 ![キャプションを入力できます](https://camo.elchika.com/195fdc35c7315c4a2c77cd1edbbe4c70293e162c/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35313935656231352d393966302d346438342d383363652d6562366533343062303533642f65336637323130632d633131622d346530352d396430332d306364346534626437313166/) ※サンハヤト提供の写真です。 その他、8x4だけど、実質4x3ぐらいの面での距離も計測ができるので次回はそちらを書こうかな。