距離を正確に測る その4 TFMini

 TFMiniは、赤外線を使ったToF (Time of Flight) タイプの距離センサです。赤外線を発して対象物にぶつかって戻ってくる時間を測定することで、距離を測ります。外形は43×15×16mmと小型、測定範囲は30cmから12mと広めで解像度は5mmです。

 Sparkfunから購入しましたが、スイッチサイエンスでも扱っています。利用方法は、こちらのページを参照しました。

TFMiniのおもなスペック

  • 動作電圧;4.5~6V
  • 消費電力;120mW以下
  • UARTの信号レベル;3.3V
  • 通信速度;115200ボー、8ビット・データ、パリティなし、1ストップ・ビット
  • 解像度;5mm
  • 確度;6m以下では1%、6~12mでは2%

接続

 本体には、4ピンのコネクタで接続するケーブルが付属しています。Tx/Rxの信号レベルは3.3Vなので、Arduino UNOとの接続ではロジック・レベル変換器が必要です。ここでは抵抗分圧で対応しました。UART専用の3.3V-5Vレベル変換モジュールも入手できます。

1ピン(緑) 2ピン(白) 3ピン(赤) 4ピン(黒)
Tx Rx +5V GND

データ・フォーマット

 モジュールの出力は9バイトで構成されており、1、2バイトは目印で、9バイト目はチェック・サムです。それぞれ16進のデータです。

byte1 byte2 byte3 byte4 byte5 byte6 byte7 byte8 byte9
0x59 0x59 距離データ下位バイト 距離データ上位バイト 信号強度下位バイト 信号強度上位バイト 予約 元の信号品質の程度 チェックサム

Arduino用ライブラリ

 GitHubからPeter JansenのArduino TFMiniライブラリをダウンロードし、ライブラリに追加します。サンプルのBasicReading.inoを利用してテストします。

 ZIPファイルをダウンロードします。

 Web EditorのLibrariesからCustomのタブにあるupload...をクリックします。

 ダウンロード・フォルダにあるtfmini-master.zipを指定して読み込みます。

 LibrariesのCustomから、新たに追加されたTfminiのExamplesの中にあるBasicReadingを読み込みます。

接続

 5Vとセンサの3.3Vのレベル変換は抵抗分割で行います。TFMiniの緑色のリード線はTxなので、抵抗を通してArduino Rxの10番ピンへ、白色はRxなので、抵抗を通してArduino Txの11番ピンへつなぎます。

信号レベルとタイミング

 センサのRxの信号です。約3.2Vです。R2は2.2kでほぼ3.3Vに近い電圧になりました。

 センサのTx信号です。約3.2Vです。

 UARTのシリアル・デコード結果です。ヘッダの0x59から始まっています。

 実行時のモニタの表示です。反射物にもよりますが、センサを向けた方向の距離がほぼ正確に測れているように見えます。

前へ

Arduino夏休み<架空>ワークショップ 3回で読み切りの番外編「たくさんのLED」

次へ

距離を正確に測る その5 LIDAR-Lite v3HP