アルペンスキータイミングシステム開発中

アルペンスキー用のタイム測定器を開発しようとしています。

NFC リーダー SONY Pasori RC-S380を接続

選手がスタートするときに簡単にビブを入力したいので考えていると、nfcタグが安く変えることを発見。 そこでnfcリーダーを接続してみる。

リーダーはPasoriがみなさん使っているようなのでこれを選択。 でも、機種がいろいろあるけどとりあえず新しそうなRC-S380にした。

www.sony.co.jp

接続してみる

Raspberry Piに接続するとsyslogに次のように出る。

kernel: [  784.864501] usb 1-1.2: new full-speed USB device number 4 using dwc_otg
kernel: [  784.967826] usb 1-1.2: New USB device found, idVendor=054c, idProduct=06c3
kernel: [  784.967846] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=4
kernel: [  784.967859] usb 1-1.2: Product: RC-S380/P
kernel: [  784.967872] usb 1-1.2: Manufacturer: SONY
kernel: [  784.967884] usb 1-1.2: SerialNumber: 0388264

どうやって使うかいろいろ調べていると、いろんなやり方があるようだけどlibnfcは古い機種しかダメなようだ。 S380はnfcpyが使えそう。

Python module for near field communication — nfcpy latest documentation

nfcpyのインストール

pip

pipというやつでlibusb1 をインストールしろとある。

pipはpythonのパッケージ管理ツールのようだ。

aptでもインストールできるようだが探す前にpipのサイトにあるように次のようにインストールした。

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

libusb1

pip install libusb1 pyserial

nfcpy

次にnfcpyをインストールしようと思ってInstallationの通りにやろうと思ったけど、トップページにはGitHubでと書いてあるのにInstallationではbazzerを使っている。

しかもpipでインストールできるとも書いてある。

http://nfcpy.readthedocs.io/en/latest/topics/get-started.html#installation

なのでpipでインストールした。

pip install -U nfcpy

動作確認

動作確認がまだだけどソースにサンプルがあるので結局ソースをダウンロードする。

git clone https://github.com/nfcpy/nfcpy.git

example/tagtool.pyを実行してみる。

pi@raspberrypi:~/src/nfcpy/nfcpy/examples $ sudo ./tagtool.py --device usb:054c:06c3
[nfc.clf] searching for reader on path usb:054c:06c3
[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:001:004
** waiting for a tag **

タグがないのでまだ読み込んでいないけどとりあえず動作してそうだ。

Raspberry Pi Zero 購入

f:id:gixxer750l:20160608192205j:plain

本番はRaspberry Pi Zero で作ろうとしているのでとりあえず購入しようと思ったけどどこにも売ってない。

しかしpimoroniにはPi Zero + Adaptors + Pibow Zero Caseが売っていたので購入した。

Raspberry Pi Zero - Max 1 Pi Zero Per Customer!shop.pimoroni.com

Subtotal : £10.42 GBP

Shipping : £5.50 GBP

Total : £15.92 GBP

カードの請求額は\2,613

HDMIの変換アダプターは最初は必要なのでまあいいか。

5/27に発注して6/3にポストに投函されていた。

SDカードやwifiアダプター、USBハブなどを購入してrasbian jessie-liteで起動。

SDカードにjessie-liteの書き込みはDD for Windows - Tech Infoで書き込んだ。

USBハブを介してキーボードとwifiアダプターをさして電源を入れると普通に起動してきた。

でも、Pi3と比べると画面のスクロールから遅い。

早速ログインしてみようとすると1回キーを押すごとに5回キーが押される。 再起動しても同じ、たまにうまくいくけど多分電源が怪しいとおもい、wifiアダプターを外して起動、今度はうまくいった。 その状態でwifiの設定をする。

/etc/wpa_supplicant/wpa_supplicant.confにwifi設定を追加。

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="MYSSID"
        #psk="MYPRESHAREDKEY"
        psk=............
}
~       

wpa_passphraseコマンドで上の設定内容が出力されるのでviで:r! wpa_passphrase で行ける。

あとはaptの設定にtestingを追加したりsshの設定をすればキーボードもいらなくなる。

あとはピンヘッダーつけてからかな

ファイルシステムの保護

ファイルシステムの保護のためルートをリードオンリーでマウントするのにaufsなどを使用する事例が多数ある。

でも、よく考えると常に書き込むのは/var,/tmpぐらいそれも頻繁に特に頻繁なのは/var/logなので/var/logをtmpfsでマウントしてみた。

/etc/fstabに下記を追加

tmpfs           /var/log        tmpfs   defaults,noatime,mode=0755      0       0

再起動してdfで確認

pi@raspberrypi:/var $ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         15G  3.8G  9.9G   28% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            463M     0  463M    0% /dev/shm
tmpfs            463M  6.4M  457M    2% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            463M     0  463M    0% /sys/fs/cgroup
tmpfs            463M  180K  463M    1% /var/log
/dev/mmcblk0p1    60M   34M   27M   56% /boot

とりあえずお手軽にある程度ガードはできると思う。

次のページを参考にさせていただいた。

oils-of-life.com