pyftdiを動かしてみました。環境はいつもの LinuxMint19 64bit です。
pyftdiのインストール
まずは、インストールドキュメントをベースに進めます。
$ sudo apt-get install libusb-1.0
引き続き、/etc/udev/rules.d/11-ftdi.rules に udev ルールを追加します。
# /etc/udev/rules.d/11-ftdi.rules SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6011", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6015", GROUP="plugdev", MODE="0666"
以下の内容を実行して再認識させます・・・が、再認識したのかどうかよくわからなかったので、USBケーブルを抜き差ししました。
$ sudo udevadm control --reload-rules $ sudo udevadm trigger
pyftdiを使うため、以下のコマンドを実行します。
$ sudo adduser $USER plugdev
・・・が、すでに、plugdevのメンバーになっている旨、表示されました。
テスト用環境の構築
以下のようにして Python3 の仮想環境を作ります。
$ mkdir ~/python3 $ cd ~/python3 $ sudo apt-get install python3-venv $ python3 -m venv pyftdi-test $ cd pyftdi-test $ source ./bin/activate (pyftdi-test) $ python -V Python 3.6.8 (pyftdi-test) $ pip install --upgrade pip (pyftdi-test) $ pip install pyusb pyserial pyftdi
GPIOテストの実施
テスト用のスクリプトがあったのでダウンロードしてきます。
$ wget https://github.com/eblot/pyftdi/raw/master/pyftdi/tests/gpio.py
107-108行目の以下の部分をコメントアウトします。
(コメントアウトしないと、ここで必ずテストエラーになるような気がするのですが??)
else: self.assertTrue(bool((1 << gp) & mask))
で、
$ python gpio.y
としてテストを実行すると、AD7に接続したLEDが消灯⇒点灯しました。