下林明正のブログ

個人的かつ雑多なブログです。

Mac OSX(10.8)でUSBRHを動かせ…ませんでした

みさわ

USBRHが余ったので会社のMacから利用できないかと思って試行錯誤してみたけどダメだった。途中経過まで残しておく。

usbrh温度計を組み立てる、その2。pyusbとubuntu 10.04とbulkRead - dullhikoのだるい日記

を動かしてみようと思った。 何も考えずにコピペしてpip install pyusbして動かすと、当然のように動かなかった。色々とあったけど結果をまとめると、

  • pyusbのバージョンは0.4.3でなければならない
    • pipでは1.0.0a1以降のパッケージしか存在しないので、自前で0.4.3をビルドする必要がある
      • SourceForgeからソースをダウンロードすれば良い。python setup.py install
    • このとき、brew install libusbしているとビルドできない。brew install libusb-compatしておく必要がある

ということだった(蛇足だけど、pipはパッケージのインストール可能なバージョンの一覧を出してくれても良いのではないだろうか…)。

しかし、その上で動かしてみたところ、

/Users/akimasa/hacks/usbrh-osx% sudo python test.py
Password:
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    t.open()
  File "/Users/akimasa/hacks/usbrh-osx/usbrh.py", line 87, in open
    self.handle.claimInterface(self.iface)
USBError: Permission denied
Traceback (most recent call last):
  File "test.py", line 17, in <module>
    t.close()
  File "/Users/akimasa/hacks/usbrh-osx/usbrh.py", line 93, in close
    self.handle.releaseInterface()
ValueError: No interface claimed
Exception ValueError: ValueError('No interface claimed',) in <bound method Usbrh.__del__ of <usbrh.Usbrh instance at 0x1016cf200>> ignored
/Users/akimasa/hacks/usbrh-osx%

とかなんとかで、要するにPermission deniedでデバイスにアクセスできない。しかし何故かLEDの制御だけはできる。よく分からん。何か他の変なプロセスが勝手に握ってるとかだろうか。

とまあそんなところで、これ以上深入りするくらいだったらRaspberry Piを利用してみんながやっているようにLinuxからアクセスするなり、別途Windowsマシンを用意するなり、USBRHのセンサーをぶち抜いてArduinoに食わせてやった方が楽だろうという感じがしてきたので、止めることにした。

うまく動かせている人がいたら教えて欲しい。