未知の物体までの距離を測定する方法の 1 つは、物体から光のパルスを反射し、その反射を検出することです。送信されたパルスと受信されたパルスの時間差を計算し、これに光の速度を掛けると、光が物体から往復した総距離が算出されます。この方法は飛行時間測定と呼ばれ、レーダーや LiDAR アプリケーションでよく使用されます。 

このアプリケーションノートでは、 Moku:Goは、Liquid Instruments の FPGA ベースのデバイスで、再構成可能な一連のテストおよび測定機器を提供し、市販の測距装置と組み合わせて正確な飛行時間測定を実行します。測距装置は赤外線パルスを発して検出し、シリアル データのストリームを Moku:Go デバイスに提供します。Moku:Go は、測距センサーから提供されるシリアル データの電力源およびデコーダとしても機能します。Moku と Moku の両方を使用してこのシリアル データを視覚化する方法を紹介します。 オシロスコープ の三脚と ロジックアナライザ/パターンジェネレーター 最後に、 もくPython API.  

必要な材料

この実験を実行するには、以下に挙げる機器が必要です。図 1 の図解ガイドを参照してください。

もく:Go: この設定では特に Moku:Go このデバイスは、プログラム可能な電源を内蔵しているため、最適です。ここでは、LiDAR 距離センサーに電力を供給するためにこれを使用します。別の Moku ハードウェアをお持ちの場合は、5V DC 電源も必要になります。 

バナナプラグからワニ口クリップまでのワイヤー 2 本: これらは Moku:Go に接続され、距離計に 5 V の DC 電源を供給します。 

BNC-ワニ口クリップ線 1 本: これは、レンジファインダーからのシリアルデータを Moku:Go の入力に渡すために使用されます。

LiDAR距離センサー: この実験に使用している距離計は TFルナ ベネワケから。TFルナは赤外線のパルス列の飛行時間を計算して距離を測定します。このデータはその後、受信機に送信されます。 UARTシリアルエンコーディングこのデバイスのドキュメントへのリンクは、記事の最後にある「参考資料」セクションにあります。TF Luna には 1 本の接続線がありますが、ここでは電源、アース、および Tx 線のみを使用します。これらの接続は、図 XNUMX にラベル付けされています。 

飛行時間デモに必要な機器。左: TF Luna、3 つの接続にラベルが付いています。中央: BNC からワニ口への接続線。右: バナナ プラグからワニ口クリップへの接続線

図 1: 飛行時間デモに必要な機器。左: TFルナ3 つの接続にラベルが付いています。中央: BNC からワニ口への接続ワイヤ。右: バナナ プラグからワニ口クリップへの接続ワイヤ。

機器のセットアップ

これらの手順は、機器間で行われるすべての接続の概要を示しています。完全な回路図は図 2 に示されています。 

  • LiDAR距離センサーを準備します。 TF Lunaの場合は、コネクタの片方の端を取り外し、ワイヤーストリッパーを使用してワニ口クリップを接続できる部分を露出させる必要があります。 別のセンサーを使用する場合は、後続の手順を実行するときに、そのセンサーのドキュメントを手元に用意しておいてください。 
  • 距離センサーを電源に接続します。 ワニ口クリップを Vpp ワイヤ (赤) に取り付け、バナナプラグを Moku:Go の背面にある Power 1 に挿入します。次のワイヤでも同じ手順を繰り返し、クリップを GND ワイヤ (黒) に固定し、バナナプラグを Power 1 と Power 2 の共有グランドに接続します。 
  • データ伝送ケーブルを接続します。 データ転送ケーブルの BNC 端子を Moku:Go の入力 1 に差し込みます。赤いワニ口クリップ (またはケーブルによってはプローブ) を距離センサーの Tx ワイヤに接続します。ケーブルに接地クリップも付いている場合は、それを距離センサーの GND ピンに固定して、距離センサーと電源が共通の接地を共有できるようにします。 
LiDAR距離センサーとMoku:Goの接続を示す図

図2:測距センサーとMoku:Goの接続。デバイスの内蔵電源はセンサーに5Vの電源信号を供給します。センサーのTxピンはMoku:Goの入力1にシリアルデータを送ります。

出力の検証と表示 

これらの手順では、Mokuの設定方法を説明します。 オシロスコープ 距離センサーから送信された信号を表示します。 

1. Moku オシロスコープを起動します。 Moku ソフトウェアのメイン画面で、オシロスコープをクリックして、単一計測器モードで起動します。メインのオシロスコープ画面では、センサーにまだ電力が供給されていないため、チャネル A に信号が表示されません。

2. 電源をオンにします。 Moku 画面で、左上隅のメニュー アイコン (1 本の平行線) をクリックします。次に、「電源」をクリックします。画面に新しいメニュー ウィンドウが表示されます。PPSU 5.000 の横にあるスライダーをクリックして有効にし、電圧値を「50」に変更します。図 3 に示すように、距離センサーが Moku:Go から電流 (約 XNUMX mA) を消費し始めるのがわかります。

3. オシロスコープで出力を表示します。 電源が投入されたら、オシロスコープ画面に戻ります。図3に示すような繰り返しパターンが表示されるはずです。これは、測距センサーからUART形式でエンコードされたシリアルデータです。各パケットには複数のデータビットが含まれており、ビットの値は電圧が高い(3.3V)か低い(約200mV)かによって決まります。測距センサーが正常に動作していることを確認したので、Mokuロジックアナライザ/パターンジェネレータを使用してこのシリアルデータを解釈します。

Mokuオシロスコープと電源、UARTシリアルデータのバーストを表示

図 3: UART シリアル データのバーストを表示する Moku オシロスコープと電源。

シリアル出力のデコード 

Mokuをセットアップします ロジックアナライザ/パターンジェネレーター UART シリアルデータをデコードします。 

1. Mokuロジックアナライザ/パターンジェネレータを起動する Moku ソフトウェアのメイン画面から、ロジック アナライザ / パターン ジェネレーターをクリックして、シングル インストルメント モードで起動します。これにより Moku:Go FPGA が再構成されるため、距離センサーに電力を供給するためにデバイスの電源を再度有効にする必要があります。これを行うには、上記のセクションで概説した手順に従ってください。

2. 取得を設定します。 画面の右側に、[Acquisition] メニューが表示されます。ソースを [Analog inputs] に変更すると、16 ビット デジタル I/O がバイパスされ、アナログ入力 1 と 2 が 1 ビット データとして使用されます。UART はバイナリ形式なので、これは許容範囲です。プロットの右側にある [X] をクリックして、ビット 1.5 の表示を削除します。[Timebase setting] で、時間範囲を 300 ms に、オフセットを -0 𝛍s に設定します。距離センサーの電源がオンになっている場合は、図 4 に示すように、ビット XNUMX プロットにシリアル パターンが表示されます。

Mokuロジックアナライザ/パターンジェネレータ、UARTシリアルデータのシーケンスを表示

図 4: Moku ロジック アナライザ/パターン ジェネレーター。図 3 の例と同様に、UART シリアル データのシーケンスを表示します。

3. プロトコルデコーダーを追加します。 Moku ロジック アナライザ/パターン ジェネレータは、シリアル データを 5 進形式に変換する UART を含む、多数の標準プロトコルをデコードできます。デコーダを追加するには、図 XNUMX に示すように、画面の左上にあるプラス記号をクリックします。

図 5: UART シリアル データ用のプロトコル デコーダーの追加。

4. プロトコルデコーダーを構成します。 データを正しくデコードするには、UART シーケンスに含まれる情報のビット数と、情報の到着速度 (ボー レートとも呼ばれます) を計測器が認識している必要があります。これは、距離計の正確な性質によって異なります。TF Luna を使用している場合、構成は図 6 のようになります。データ幅は 8 ビットでストップ ビットは 1 で、パリティ チェックはなく、デフォルトのボー レートは 115200 です。デコーダー設定がトランスミッターの設定と一致している場合は、図 6 に示すように、UART デコーダー ラインに XNUMX 進数が表示されます。

UARTシリアルデータを16進数に変換

図 6: XNUMX 進数に変換された UART シリアル データ。 

7. データを解釈します。 Moku:Go によってデコードされた数値データを理解するには、距離センサーのドキュメントを参照してください。TF Luna の場合、デフォルトの 9 バイト データ シーケンスは図 7 に示されています。最初の 59 バイトは常に 2 であり、これはデコードされたデータによって確認されます。この場合、バイト 3 と XNUMX はセンチメートル単位の距離情報を提供します。距離センサーの上に手を置くと、この値が適切に変化するのを確認できます。

TF Luna データシート抜粋

図 7: TF Luna データシートからの抜粋は、結果を解釈するのに役立ちます。 

Pythonで測定を自動化する 

残念ながら、 16進数 距離の知覚には直感的ではありません。このセクションでは、 もくPython API データを継続的に更新する自動距離測定ツールを作成します。次のスクリプトはLiquid Instrumentsから入手できます。 githubの Moku Python APIの設定に関するチュートリアルが利用可能です こちら

1. インポートして接続します。 必要な「標準」インポートに加えて、図 8 に示すように、Moku:Go に展開する予定のすべての計測器をインポートする必要があります。この例では、Moku ロジック アナライザー/パターン ジェネレーターのインスタンスを作成し、デバイスの IP アドレスを指定します。 

デバイスの IP アドレスを指定して、Moku Logic Analyzer をインポートして接続するための Python コード。

図 8: コードをインポートして接続します。

2. 電源をセットアップします。 DC 電源を含む Moku ソフトウェアのあらゆる機能は、API を使用して実行することもできます。図 9 に示すように、必要な電源と最大電圧値および電流値を指定します。

Python を使用して DC 電源をセットアップします。

図9: DC電源をセットアップします。 

3. Moku ロジック アナライザー/パターン ジェネレーターをセットアップします。 これには、データ幅、ストップ幅、ボーレート、チャネル番号など、前に指定したのと同じ情報をプロトコル デコーダーに提供するためのいくつかのコマンドを使用するだけです。「get_data」は生データのトレース全体を返すため、「pa1」というラベルの付いたプロトコル アナライザー データのみを要求することに注意してください。

Python を使用してプロトコル デコーダーを設定します。

図 10: プロトコル デコーダーを設定します。

4. データを表示します。 データ配列内では、状態変数が「アイドル」と「データ」を交互に切り替えていることがわかります。配列の3番目の要素に対応する5番目のデータビットを確認したいと思います。この辞書内では、「データ」キーに添付された値が必要です。これは、センチメートル単位の距離値を提​​供します。この値を回復した後、 キンター パッケージを使用して、最新の測定距離値で更新される表示を作成します。コードとサンプル ウィンドウを図 11 に示します。    

図 11: 継続的に更新されるディスプレイの配列の Python コードとディスプレイ自体。 

図 11: 継続的に更新されるディスプレイのコードとディスプレイ自体。 

結論

Moku:Go は、電子テストおよび測定アプリケーション向けの強力で柔軟なマルチツールです。このデモでは、Moku:Go を距離センサーと組み合わせて使用​​し、飛行時間距離測定を実行しました。Moku:Go の柔軟性により、デバイスのプログラム可能な電源でセンサーに電力を供給できるほか、Moku オシロスコープとロジック アナライザー/パターン ジェネレーター機器を使用してシリアル データを表示およびデコードできます。また、Moku Python API を使用して、継続的に更新される距離測定スクリプトも実装しました。 

Mokuプラットフォームの詳細については、 こちら無料で楽器を探索するには、 デスクトップアプリ デモモードを選択します。 

ご質問がある場合

ナレッジベースのFAQから回答を見つけてください

デバイスの機能や機器の機能について質問がある場合は、当社の広範な情報を確認してください。 ナレッジベース 探している答えを見つけるために。また、人気の記事をすぐに確認したり、製品やトピックごとに検索を絞り込んだりすることもできます。

ユーザーフォーラムに参加してください

新しい機能をリクエストしたいですか?共有できるサポートのヒントがありますか?使用例から新機能の発表など、 ユーザーフォーラム 製品のアップデートだけでなく、Liquid Instruments や当社のグローバル ユーザー コミュニティとのつながりも提供するワンストップ ショップです。

参考情報

Benewake TF Luna のドキュメント: https://en.benewake.com/DataDownload/index_pid_20_lcid_21.html


Mokuをデモモードで試す

macOSとWindows用のMoku:アプリをダウンロードできます こちら.


よくある質問への回答

デバイスや機器に関する質問と回答は、 ナレッジベース .


Mokuユーザーとつながる

プログラムに参加する(英語) ユーザーフォーラム 新しい機能をリクエストしたり、サポートのヒントを共有したり、世界中のユーザー コミュニティとつながったりできます。