弊社USBアダプタをLinuxで使うには(2019版)

Posted on 2019.01.31 in

 

  • はじめに

近年、RaspberryPiなど小型のシングルボードコンピュータが普及し、Linux環境でロボットを動作させる機会が増えてきました。弊社ロボット(RCB-4)もUSBアダプタのドライバをLinux上にインストールすることでロボットと通信することができるようになります。

Linuxで弊社USBアダプターをご利用いただく方法を掲載した記事「シリアルUSBアダプターをLinuxで使うには」を以前にご紹介しましたが、情報がかなり古くドライバの関連付けができないので、この記事で改めて紹介いたします。

なお、弊社製品はWindows OS以外での動作保証をしておりませんので、この記事の内容は参考にお読みください。

 

  • 確認時の動作環境

Raspberry Pi 3 Model B
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.4 (stretch)
Release: 9.4
Codename: stretch

FTDIのカーネル自体は、Raspbianに含まれていましたので割愛はしますが、下記ページをご覧ください。

 

  • 認識方法

①USBアダプタを挿す

②dmesgでデバイスの情報を取得する

下記はDUAL USB Adapter HSを挿入したときに表示されるメッセージ例になります。

USBアダプタが認識されると、

/dev/ttyUSB*

で認識されますが今回はメッセージが表示されていないので、認識はされていません。

③FTDIのカーネルと弊社USBアダプタを関連付ける

まずは、modprobeを使用してFTDIのカーネルftdi-sioをロード(取り込み)します。

/sys/bus/usb-serial/drivers/ftdi_sio/new_idにベンダIDとプロダクトIDを書き込むことでFTDIのカーネルと関連付けるようになります。

コマンドとしては、

vvvv:ベンダID

pppp:プロダクトID

書き込むにはroot権限(スーパーユーザー権限)で変更する必要があります。

root権限がない場合、DUAL USB Adapter HSを認識させる場合は下記コマンドになります。

なお、ベンダID、プロダクトIDですが、

ベンダID プロダクトID デバイス名 製品名
165C

0006

ICS USB ADAPTER HS ICS USB アダプターHS
165C 0008 Dual USB ADAPTER HS Dual USB アダプター HS
165C 0009 RS485 USB/SERIAL CONVERTER RS485 USB/シリアル変換アダプター

 

うまく認識された場合、dmesgでメッセージを表示させると、

ttyUSB0で認識されるようになりました。

 

  • 自動起動

先ほどの状態ですと、再起動をかけた場合コマンドを実行されないので再びコマンドを入力する必要があります。

毎回同じコマンドを打つのは手間なので、自動起動をするように設定します。

自動起動の設定方法は、

/etc/rc.local

にあるファイルにコマンドを記載します。 なお、rc.localはroot権限でしか書き換えることができないので、注意が必要です。 /etc/rc.localを開いていただいて、一番最後に下記を追記します。

rc.local内にほかにもいろいろ記載がありますが、起動しなくなるので変更しないようにします。

Dual USB アダプタしか記載はしませんでしたが、RS485 USB/シリアル変換アダプター等もベンダ、プロダクトID部分に変更したり、追記もできます。

再起動を行ってUSBを挿して認識されていれば成功です。

 

  • FTDIのドライバ(カーネル)が入ってない場合

RaspberryPiではFTDIのカーネルがインストールされていました。他のLinuxマシンではUSBのカーネルが入っていない場合があります。

下記FTDIのホームページからカーネル(ドライバ)をダウンロードしてください。

https://www.ftdichip.com/Drivers/D2XX.htm

Linuxのドライバがあるので、CPUに対応したカーネルをインストールしてください。

 

関連記事

 RCB-4 Library for Python ver.1.0.0B

 RCB-4とRaspberryPiの接続方法

 RaspberryPiとRCB-4との連携について

 RCB-4 Library Arduino版(V1.1)とPython版(V1.0.0B)の違いについて

 RCB-4の外部からモーションを再生させる方法について

 RCB-4でモーションとは別に個別にサーボを動かす方法

 RaspberryPi搭載用パーツ 3Dデータ(KXR用)

 

RS485USB/シリアル変換アダプターの詳細をみる Dual USBアダプターHSの詳細をみる の詳細をみる KXR アドバンスセットA Ver.2の詳細をみる KXR-A5 アーム型 Ver.2の詳細をみる KXR-L4T-R カメ型・ローバー型 Ver.2(アカデミックパック)の詳細をみる KXR アドバンスセットBの詳細をみる KXR-L2 ヒューマノイド型の詳細をみる KMR-M6 Ver.2 リフェバッテリー付きセットの詳細をみる