0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

T-mini PlusをWindowsで動かす

0
Posted at

T-mini PlusというLiDARをWindowsPCにUSBで接続して値を読む方法について紹介します。

この記事は Tuton Advent Calender 2025 の14日目の記事です。

T-mini Plusとは

YDLIDARというメーカーのLiDARです。LiDARというのは360°の距離情報をToFセンサ(測距センサ)で取得し、点群データとして出力することのできるセンサです。

T-mini Plusはサイズも価格も比較的手頃で、秋月電子やスイッチサイエンスで販売されているので日本での入手性もよいです。

T-mini Plusは本体側面のコネクタから3.3VレベルのUARTでデータを出力します。マイコンに接続する場合はそのままUARTピンにつなげ、PC等に接続する場合は付属のUSB変換ボードを使用してください。

WindowsでT-mini Plus

それでは、WindowsのPCでT-mini Plusのセンサの値を読み取る方法について紹介します。

ドライバのインストール

USBシリアル変換のCP2102というICのドライバをインストールします。

こちらのページからUART BOARD DRIVER-CP210x_VCP_Windows.zipをダウンロードし、展開したあとexeファイルを実行してドライバをインストールしてください。

動作確認用ソフトウェアで確認してみる

先ほどと同じこちらのページから、EaiLidarTest-V1.12.6-20250612.zipをダウンロード・展開し、EaiLidarTest.exeを実行してください。

このような画面が出たら詳細情報から実行を押します。

image.png

するとこのようなソフトウェアが起動します。

image.png

System ConfigでCOMポート等を指定して、正常に読み取れたら成功です。
ここで読み取れない場合は、ドライバのインストールなどで失敗している可能性があるので確認してみてください。

Python用のSDKを用意する

それでは、Pythonでデータを扱えるようにしていきましょう。

YDLIDARのSDKがこちらで公開されているので、これを利用します。

こちらの記事の1.~3.に従ってSDKをビルドし、5.の通りpip install .をしてインストールしてください。

pip installができたら以下のPythonのコードで動作確認ができます。
(表示にmatplotlibを使用しています。インストールしていなければpip install matplotlibでインストールしてください。)

import os
import ydlidar
import time
import sys
from matplotlib.patches import Arc
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

RMAX = 32.0


fig = plt.figure()
fig.canvas.set_window_title('YDLidar LIDAR Monitor')
lidar_polar = plt.subplot(polar=True)
lidar_polar.autoscale_view(True,True,True)
lidar_polar.set_rmax(RMAX)
lidar_polar.grid(True)
ports = ydlidar.lidarPortList();
port = "COM5"; # T-mini PlusのPort
    
laser = ydlidar.CYdLidar();
laser.setlidaropt(ydlidar.LidarPropSerialPort, port);
laser.setlidaropt(ydlidar.LidarPropSerialBaudrate, 230400);
laser.setlidaropt(ydlidar.LidarPropLidarType, ydlidar.TYPE_TRIANGLE);
laser.setlidaropt(ydlidar.LidarPropDeviceType, ydlidar.YDLIDAR_TYPE_SERIAL);
laser.setlidaropt(ydlidar.LidarPropScanFrequency, 10.0);
laser.setlidaropt(ydlidar.LidarPropSampleRate, 4);
laser.setlidaropt(ydlidar.LidarPropSingleChannel, False);
laser.setlidaropt(ydlidar.LidarPropMaxAngle, 180.0);
laser.setlidaropt(ydlidar.LidarPropMinAngle, -180.0);
laser.setlidaropt(ydlidar.LidarPropMaxRange, 16.0);
laser.setlidaropt(ydlidar.LidarPropMinRange, 0.02);
laser.setlidaropt(ydlidar.LidarPropIntenstiy, True);


scan = ydlidar.LaserScan();

def animate(num):
    
    r = laser.doProcessSimple(scan);
    if r:
        angle = []
        ran = []
        intensity = []
        for point in scan.points:
            angle.append(point.angle);
            ran.append(point.range);
            intensity.append(point.intensity);
        lidar_polar.clear()
        lidar_polar.scatter(angle, ran, c=intensity, cmap='hsv', alpha=0.95)

ret = laser.initialize();
if ret:
    ret = laser.turnOn();
    if ret:
        ani = animation.FuncAnimation(fig, animate, interval=50)
        plt.show()
    laser.turnOff();
laser.disconnecting();
plt.close();

IntensityではなくIntenstiyとなっているところがありますが、ライブラリがそのようになっているのでそのままで大丈夫なようです。

このように動作すれば成功です!

あとはこのライブラリを使って自由にプログラムを作成してください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?