距離を正確に測る その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から始まっています。
実行時のモニタの表示です。反射物にもよりますが、センサを向けた方向の距離がほぼ正確に測れているように見えます。