再起動時にUSBシリアル/UARTインターフェイスに一貫した名前を保持させるにはどうすればよいですか?

再起動時にUSBシリアル/UARTインターフェイスに一貫した名前を保持させるにはどうすればよいですか?

当社のシステムには、機器に接続された2つのモータと2つのLiDARセンサがあります。これでこれを制御し、Pythonでポートをハードコードできます。すべてがMac OSを実行しているMac Miniに接続されています。

時にはセンサーに問題があるため、プラグを抜いたり、機械を再起動する必要があります。しかし、他の理由でマシンを再起動する必要があるかもしれません。 (別の質問)。

デバイスの再起動と再接続/接続中にコンピュータのUSBポートが変更され、ハードコードされたポートが機能しなくなりました。もっと良い方法がありますか?コンピュータの物理ポートに静的ポート名を割り当てる方法はありますか?たとえば、

Port 1: '/dev/tty.usbmodem143401'
Port 2: '/dev/tty.usbmodem143402'
Port 3: '/dev/tty.usbmodem143403'
Port 4: '/dev/tty.usbmodem143404'

それでは、少なくとも私たちが使用しているポートを確認できますか?それとも、このようなことをするより良い方法はありますか?

私はこのUSBポートに名前とエイリアスを割り当てるソリューションを探しましたが、何も機能しないようです。

これで、次のポートを含む構成/定数ファイルが作成されました。

MOTOR_PORT = '/dev/tty.usbmodem143401'
PHONE_LIDAR_PORT = '/dev/tty.usbserial11'
READER_LIDAR_PORT = '/dev/tty.usbserial'

これは理想的ではありません。私たちはこの問題を排除したり、少なくとも接続されたデバイスを確実にする方法を探したいと思います。

我々は、再起動の間など、特定の時間にどのデバイスがどのポートに接続されているかを確実に知ることができるようにしたいです。

答え1

最後に、Adafruit FTDI TTLシリアルコンバータを使用してこの問題を解決しました。彼らは決して変わらないようなユニークなシリーズを持っています。私たちにとってはそれで十分です。みんなありがとうございます!

関連情報