超音波距離計は超音波センサーの前に膜など何らかの空気以外の物体があるとそこで音が反射されたり減衰したりして上手く計れない。そこでLiDAR距離計を試してみる事にした。LiDARは赤外線を使って反射物までの光の往復時間を測ることで距離を求める。1nsに光が進む距離は30cmだから往復で見ると15cm。1cmの分解能で距離を測るためには1/15nsの時間分解能が必要である。
秋月で売っているLiDAR距離計を見てみると、水平スキャンが出来るタイプと出来ないタイプの2種類あり、前者はロボット掃除機に使われているようなもので探知距離が1m程度と短い割に試すには高価である。そこで水平スキャン機能の無い単純なTSD-10というものを買った。これは最大10mまで計れるもので5m以内の精度は±5cm、それより以遠は1%である。大雑把に言うと1/3ns単位で時間を測定しているという事か。
指向性については超音波距離計の半値幅が30度あるのに対しTSD-10は3度しかないので ペンシルビームみたいな特性で、ターゲットの方向に正確に向けないと正しく計れない。
TSD-10を使う上でもう1つ検討を要するのはUARTインターフェイスの通信速度である。デフォルトで460,800bpsと高速だ(これは9600bpsの48倍)。UARTを動作をさせるためには通信速度の16倍の周期のクロックが必要になる。460,800bpsの場合を計算してみると、14.7MHzのクロックが必要だ。PICの内蔵発信器で得られる周波数で最も近い周波数は16MHzなので8%の誤差がある。秋月では外付けの水晶で14.31818MHzの物を売っていて、これを使うと誤差は2.6%となる。内蔵発信器で上手く行かない場合は外付け水晶を使ってみるか。
使うPICの種別であるが、TDS-10とHOSTの両方ともUARTインターフェイスを使うので2つのUARTを内蔵して手頃なPIC16F15325を使うこととし、回路を設計すると共に基板を発注した。
なお、回路・基板の設計に当たっては、この基板を超音波距離計にもそのまま流用できるようピン配置の共通化を図っている。つまり14ピンのPIC16F15325を8ピンのPIC16F18313に挿し替えることでそのまま超音波距離計にも使えるようにした。
発注後、2日で基板は出来上がったが、その後春節と重なったため配送業者のピックアップが1週間ほど遅れている。以前と同じだ。結局、発注から半月ほどかかって届いた。
届いた基板を組み立てると、とんでもない間違いに気づいた。センサーと接続するコネクタを逆向きに設計していた。これでは超音波センサーが後向きになってしまう。 そこで修正して再発注した。送料込みで3.3ドル、この安さがチェックを疎かにしてミスを誘発する原因かもしれない。なお上の回路図は修正版に挿し替えている。
(続く)