表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。

真夜中のToF(Time of flight)

 諸君。私はセンサが好きだ。

 諸君。私はセンサが好きだ。

 諸君。私はセンサが大好きだ。


 光センサが好きだ。

 加速度センサが好きだ。

 ジャイロセンサが好きだ。

 方位センサが好きだ。

 温度センサが好きだ。

 湿度センサが好きだ。

 磁気センサが好きだ。

 臭いセンサが好きだ。

 電圧センサが好きだ。

 電流センサが好きだ。

 静電容量センサが好きだ。

 距離センサが好きだ。


 事務所で 工場で

 河川で  山間部で

 道路で  農地で

 海上で  地下で

 上空で  水中で


 この世界に活用されるありとあらゆるセンサが大好きだ。


 というわけで、いろんなセンサをDigiKeyやMouserで買い集めて動かして楽しむのを趣味としている私だが、最近アツいのは距離センサ。特に光を使ったToFセンサがアツい。


 ToFというのはTime of Flightの略で、飛行時間型という意味だ。光を発射してから、帰ってくるまでの時間を見ることで距離を測定するもの。光を使った測距方式は数あるが、その中でも比較的新しい部類の原理だ。 

 考え方はレーダーとほぼ同じ。


 光の速度は秒速30万キロメートル。1秒で30万キロメートル進む。

 ということは、1ミリ秒で300キロメートル

 1マイクロ秒で300メートル

 1ナノ秒で30センチメートル

 1ピコ秒で0.3ミリメートル


 光を発射してから帰ってくるまでの時間を、ピコ秒オーダーで測ることができれば、距離が分かるという寸法だ。

 言うのは簡単だが、そんなことが本当に出来るのかとか思ってしまう。

 でも、実際にそれが出来ており、高級なスマホや、ちょっと前に流行った、手を近づけると消毒液が出てくるアレとかに組み込まれて生活の中に溶け込んでる。

 

 そんなすごい機能を持つ部品。部品単体としても市販されており、米粒ぐらいのサイズで部品単体だと千円しないぐらいの価格で買える。 


 この種の部品で有名なのはSTのVL53シリーズだが、その辺はわりと遊び倒したので今度は違う物で遊びたい。そう考えていろいろ探したら、別メーカから似たようなものが出ているじゃないですか。イェイ。


…………


 見つけた以上は遊びたい。何かを作るわけでもなく、何かに使うわけでは無い。面白そうな部品を買って弄りたいだけだ。趣味の電子工作なんてそんなもんだ。


 そして、今回のターゲットはAMS社製の【TMF8821】。

 エリア別検知とヒストグラム出力ができるらしい。FOVが60°近くと、STの品揃えに例えるとVL53L5に相当しそうな感じ。

 この種の部品はパッケージ小型化のために、リフローでないと実装できないようなパッケージになっている。だから、部品だけ買っても遊べない。

 実装済みの適当なボードを探す。メーカー純正の開発ボード【TMF882X-EVM】もあるにはあるが、\50,756-とちょっと高いので、素子を乗せて配線を出せるようにしただけぐらいの簡単なものを探す。

 いろいろ探すと【1568-SEN-19451-ND】が丁度良かった。DigiKeyで\3,403-だ。円安の悪影響が若干出ているような気もするが、趣味の玩具としては許容範囲だ。他に気になる物もまとめてポチる。


…………

 

 CPUには【ATOM Lite】を使う。加速度センサとか搭載していないシンプルな構成なので、I2Cを好き放題使いたいときには重宝する。

 WiFiも付いているので、PC側でソフト作ったらデータロガーみたいな使い方もできてなおよし。


 【1568-SEN-19451-ND】側の電源電圧は素子直結で3.3Vなので、【ATOM Lite】のGroveコネクタを使うわけにはいかない。かつて買い漁った余り部品に【ATOM Mate】があったので、それ付属の基板を使うことにした。

 ケーブルもQWIIC用の【C-15885】が余っていたのでそれを使う。長年電子工作を趣味にしていると、こういう小さい部品が部品箱の隅から出てきたりして助かったりする。まぁ、おかげで部屋が片付かないんだけど。


結線はこんな感じ。

 

GND  G   ……黒…… QWIIC Pin1

電源 3V3   ……赤…… QWIIC Pin2

SDA GPIO25 ……青…… QWIIC Pin3 

SCL GPIO21 ……黄…… QWIIC Pin4



 家族が寝ている深夜未明に、テーブルにはんだごてを広げて即席ではんだ付け。趣味人間なオッサンの幸せタイム。はんだ付けの際にはダイニングのテーブルを焦がさないように注意が必要だ。

 滅多に使わないはんだごてだが、いいモノを用意している。白光の【FX-600】に、C2のコテ先【T18-C2】を付けたものだ。面実装部品にも対応できるいいモノだ。


…………


 簡単な配線作業が終わったら、ソフトを作成する。使うのはArduinoだ。

 コレは大きいものを作ろうとするといろいろ不足しがちだが、ちょっと弄るぐらいならちょうどいい。Webでリポジトリとか調べて、必要なボード情報とライブラリをインストール。

 ToFセンサのライブラリは、メーカー公開のソースコードを元に【とても素晴らしい人】がArduinoに移植してくれていたりする。とてもありがたい話だ。

 

 ライブラリは【SparkFun_Qwiic_TMF882X_Arduino_Library】をインストール。ドキュメント読んで真面目にコーディングするのはめんどくさいので、付属のサンプルを改造する。

 ライブラリをインストールするとサンプルもインストールされて、スケッチ例のメニューから呼び出せる。

 そこから【Example-11_Histogram】を読みだす。CPUが純正のArduinoではなく【ATOM Lite】なのでちょっと工夫が必要。とくにI2Cのインターフェイスのあたり。


 setup関数で、シリアルポートをした後に以下の行を追加。


Wire.begin(25,21);


 そして、ToFセンサを初期化するコードを以下のように書き換え。


前:if(!myTMF882X.begin())

後:if(!myTMF882X.begin(Wire))


 こうすることで、結線したI2Cの配線に合わせてToFセンサが初期化される。やりたい放題するためにもドライバの内容は解読したいけど、今はとりあえず動かすのが先。わくわくだ。


 コンパイルすると、あっさり通って書き込みが始まる。


…………


 シリアルモニタからヒストグラムが出力される。TMF8821は3×3のエリア検知で動いているので、ヒストグラムは10系統出力されるようだ。0番がセンサ内部のクロストーク参照用。0点補正のようなもので、短い時間にピークがある。

 残り9系統は、3×3のエリアそれぞれのヒストグラム。


 高さ約70cmのテーブルから床にかざして測定。5番が中心なので、0番と5番のヒストグラムはこんかなんじ。


時番号 , 0番 , 5番

1 , 6 , 424

2 , 5 , 408

3 , 6 , 463

4 , 7 , 450

5 , 2 , 396

6 , 3 , 403

7 , 4 , 394

8 , 6 , 415

9 , 5 , 423

10 , 6 , 394

11 , 5 , 415

12 , 5 , 420

13 , 9 , 477

14 , 11 , 429

15 , 13207 , 458

16 , 36050 , 467

17 , 12407 , 435

18 , 5746 , 429

19 , 3248 , 373

20 , 1937 , 496

21 , 1206 , 548

22 , 779 , 610

23 , 561 , 476

24 , 437 , 515

25 , 334 , 439

26 , 287 , 440

27 , 242 , 455

28 , 194 , 7412

29 , 150 , 9515

30 , 138 , 2140

31 , 117 , 942

32 , 121 , 670

33 , 86 , 535

34 , 69 , 472

35 , 64 , 454

36 , 62 , 399

37 , 45 , 393

38 , 36 , 437

39 , 44 , 400

40 , 36 , 412

41 , 28 , 374

42 , 26 , 421

43 , 22 , 403

44 , 21 , 409

45 , 13 , 418

46 , 9 , 399

47 , 10 , 406

48 , 10 , 363

49 , 14 , 435

50 , 7 , 396

51 , 8 , 437

52 , 9 , 412

53 , 7 , 362

54 , 13 , 405

55 , 11 , 399

56 , 7 , 356

57 , 11 , 377

58 , 4 , 406

59 , 6 , 402

60 , 8 , 412

61 , 5 , 377

62 , 8 , 383

63 , 4 , 421

64 , 4 , 416

65 , 3 , 388

66 , 6 , 366

67 , 4 , 381

68 , 5 , 397

69 , 6 , 403

70 , 5 , 400

71 , 3 , 404

72 , 3 , 383

73 , 7 , 391

74 , 5 , 367

75 , 9 , 411

76 , 3 , 399

77 , 7 , 414

78 , 1 , 389

79 , 7 , 375

80 , 6 , 379

81 , 3 , 386

82 , 3 , 379

83 , 5 , 363

84 , 10 , 432

85 , 9 , 401

86 , 8 , 381

87 , 6 , 384

88 , 5 , 370

89 , 9 , 380

90 , 5 , 381

91 , 4 , 391

92 , 5 , 386

93 , 4 , 370

94 , 8 , 400

95 , 5 , 410

96 , 3 , 365

97 , 14 , 381

98 , 8 , 398

99 , 10 , 357

100 , 4 , 394

101 , 3 , 346

102 , 4 , 423

103 , 6 , 382

104 , 6 , 377

105 , 5 , 337

106 , 4 , 370

107 , 8 , 370

108 , 9 , 370

109 , 6 , 352

110 , 5 , 365

111 , 7 , 396

112 , 7 , 341

113 , 10 , 421

114 , 4 , 367

115 , 8 , 340

116 , 3 , 365

117 , 4 , 368

118 , 7 , 373

119 , 7 , 359

120 , 2 , 383

121 , 6 , 355

122 , 6 , 372

123 , 11 , 397

124 , 6 , 405

125 , 6 , 374

126 , 7 , 349

127 , 7 , 377

128 , 2 , 320


 0番と5番のピーク位置の差分から距離を求めるような原理かな。時番号16番がセンサ内部の距離ゼロのピークで、29番が床からの反射光のピークと考えると、時番号1あたり5cmぐらいかな。ちょっと分解能荒いのかな? 設定変更でそこを変えることもできるのかもしれん。、まぁ、今回は動いただけでもよしとしよう。

 データシート熟読していろいろ遊ぶのはこれからだ。STのデバイスではヒストグラムの生データ出力とか無かったから、これはこれでオモロイ使い方ができるかもしれん。


…………


 何かに使うわけではない。何かを作るわけではない。ただ部品を動かしてみたい。そんな趣味の電子工作。ちょっと小銭をはたいて最新技術に触れる愉しみ。

 アラフォーオッサンの趣味人間の夜は明けていく。

 いや、コレ小説じゃないだろ。とか、Qiitaでやれとか、そういう話かもしれん。でもまぁ、エッセイの一種と考えれば許容範囲なのかどうなのか。


 ロマンあふれるトンデモ原理なデバイスが小銭で買えるこのご時世。ある種の電気屋として、そんなものがあるよということを書いてみたかった。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
 百均の商品をパーツとして見るようになっていた時期があり、半田とコテの良し悪しは確実に作業効率を左右するので私にも解ります。  電通大のパーツ店で買い物中、商品を問う会話からも検出器に魅せられた方々の…
[一言] 5番の配線色が緑なのは鉄板らしいw 五月みどり ググるなよ 絶対ググるなよ ლ(´❥`ლ)
[一言] 改めて読み返すと ラジオライフのヘビーユーザー な気がして仕方無い もしかして 某有料放送の解除のアレを使ってる? あっ、何か怪しいメールが、、、
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ