Raspberry Pi 3B に Raspbian Buster の最新版(Version September 2019)をインストールし直したので、FeliCa カードを読むために Python 用の NFC デバイスコントロールモジュールである nfcpy も再インストールした。
前回は Python 2 用のモジュールを入れて、その後 Python 3 用にインストールし直すなどバタバタしたが(記事「Python3 で tagtool.py を実行する」参照)、今後は基本的に Python 3 での開発しかせんだろうなぁ・・・ということで、Python 3 用にのみインストール実施。
まず、Felica 用のカードリーダーを USB ポートにつなぎ、認識しているか確認。
pi@raspberrypi:~ $ lsusb|grep SonyBus 001 Device 004: ID 054c:06c3 Sony Corp. RC-S380
ばっちり認識しているようだ。
では、インストールを。
pi@raspberrypi:~ $ pip3 list|grep usbpi@raspberrypi:~ $ sudo pip3 install nfcpyLooking in indexes: https://pypi.org/simple, https://www.piwheels.org/simpleCollecting nfcpyDownloading https://files.pythonhosted.org/packages/7e/ed/3b3a00ada844f8a9229c8a79f460a1a13e870b767a1eb0ee0caf99740e9d/nfcpy-1.0.3-py3-none-any.whl (186kB)100% |????????????????????????????????| 194kB 952kB/sCollecting libusb1 (from nfcpy)Downloading https://www.piwheels.org/simple/libusb1/libusb1-1.7.1-py3-none-any.whl (59kB)100% |????????????????????????????????| 61kB 102kB/sCollecting ndeflib (from nfcpy)Downloading https://files.pythonhosted.org/packages/c9/80/bbc9a4818cd74807f914d225611cd724d8c0e56237b952a9a4aa6d583f5c/ndeflib-0.3.3-py2.py3-none-any.whl (56kB)100% |????????????????????????????????| 61kB 1.3MB/sRequirement already satisfied: pyserial in /usr/lib/python3/dist-packages (from nfcpy) (3.4)Collecting pydes (from nfcpy)Downloading https://www.piwheels.org/simple/pydes/pyDes-2.0.1-py2.py3-none-any.whlInstalling collected packages: libusb1, ndeflib, pydes, nfcpySuccessfully installed libusb1-1.7.1 ndeflib-0.3.3 nfcpy-1.0.3 pydes-2.0.1pi@raspberrypi:~/nfcpy/examples $ pip3 list|grep usblibusb1 1.7.1
インストールされたことが確認できた。
続けて、サンプルプログラムを GitHub から取得する。
pi@raspberrypi:~ $ git clone https://github.com/nfcpy/nfcpy.git
無事取得が成功したら、サンプルを動かしてみる。
pi@raspberrypi:~ $ cd /home/pi/nfcpy/examples/pi@raspberrypi:~/nfcpy/examples $ sudo python3 tagtool.py[nfc.clf] searching for reader on path usb[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:001:004** waiting for a tag **Type3Tag 'FeliCa Lite-S (RC-S966)' ID=012E4CD257C68AB3 PMM=00F1000000014300 SYS=88B4
読めた。簡単だったな。