TIPS 2025年4月24日

ラズパイと距離センサを使って人がいるいないを判別してみる

はじめに

この記事では、小型のレーザー距離センサ「TDSN5200E」もしくは「TDSN5200」を使って、「そこに誰かいるのか?」をRaspberry Piで判定してみます。

このセンサはUSB接続で使えて、最大6mまでの距離を測ることができます。しかもとってもコンパクト。人の出入りの検知や、ロボットの前に何かあるかを調べるのにぴったりです。

用意するもの

アイテム 説明
Raspberry Pi(OSインストール済み) Pi 4 または 5 推奨。Raspberry Pi OSが入ってること
TDSN5200 距離センサ USB-miniB ケーブルで接続します
インターネット 必須。ツールのインストールやソースの取得で使います

まずはツールを準備しよう

Raspberry Pi のソフトをアップデートしてから、必要な開発ツールやライブラリをインストールします。

 sudo apt update && sudo apt upgrade -y
 sudo apt install -y git build-essential libusb-dev

センサにアクセスするためのUSB設定

センサを使うには、USBのアクセス権限を調整する必要があります。

以下のコマンドで「udev」ルールを作って、一般ユーザーからもセンサにアクセスできるようにしましょう:

 sudo tee /etc/udev/rules.d/99-usb-tokyodevices.rules <<EOF
 SUBSYSTEM=="usb", ATTR{idVendor}=="32ee", ATTR{idProduct}=="177c", MODE="0666"
 EOF

変更を反映します。

 sudo udevadm control --reload-rules
 sudo udevadm trigger

TD-USBツールをインストールしよう

センサを操作するには、「TD-USB」という公式のコマンドラインツールを使います。以下の手順でビルドできます:

 git clone https://github.com/tokyodevices/td-usb.git
 cd td-usb
 make

ちゃんと動くか試してみましょう。

 ./td-usb
 # → バージョン情報が表示されれば成功!

Pythonで動かしてみよう

ここでは、Pythonでセンサからリアルタイムに距離を取得して、人が「近くにいるか」「離れたか」を判定するスクリプトを書いてみます。以下のコードを含む presense.py というファイルを作成してください:

 #!/usr/bin/env python3
 import subprocess, time
 THRESHOLD = 100
 CMD = ['td-usb', 'tdsn5200', 'listen', '--loop']
 proc = subprocess.Popen(CMD, stdout=subprocess.PIPE, text=True)
 state = None
 for line in proc.stdout:
     try:
         dist = int(line.strip())
     except ValueError:
         continue
     now_present = dist < THRESHOLD
     if state is None:
         state = now_present
     if now_present and not state:
         print(f'[{time.strftime("%H:%M:%S")}] 近くに何かある!({dist} mm)')
     elif not now_present and state:
         print(f'[{time.strftime("%H:%M:%S")}] 離れたっぽい({dist} mm)')
     state = now_present

実行してみよう

 $ python3 presence.py
 [12:03:15] 近くに何かある!(78 mm)
 [12:03:19] 離れたっぽい(65535 mm)
 [12:03:25] 近くに何かある!(63 mm)

おわりに

どうでしたか?
センサで「人がいる・いない」を検知できると、いろんな応用ができそうですよね。たとえば:

  • 部屋に入ったら自動でライトON
  • 自販機の前に立ったらLEDが光る
  • ロボットの前に障害物があるか判断

今回使った「TDSN5200」はコンパクトで扱いやすいので、センサ初体験の人にもおすすめです。ぜひ自分のアイデアを実装してみてください!

この記事に関連する商品

この記事をシェア

最近のTIPS