電子工作の知識がゼロであっても、USBを使っていろいろなセンサーをつないで、PythonやJavaなどで適当なコードを書くと、簡単にセンサーの値が取れちゃう、そんなフレームワークが「Phidgets」です。そして、LANポートが付いたボードにOSが乗っていて、Linuxが動くのが「Phidgets SBC」です。

最近、Phidgets SBCを使う機会があり、ここにそのとき調べた資料をまとめておきます。

本家の資料 *

大抵は、上記の本家を見れば事足ります。Phidgets SBCに載っているLinuxはDebian GNU/Linuxです。apt-getでささっと、いろいろなものをインストールすることができます。

SBCを買って初めにみるべき資料です。apt-getでいろいろインストールする方法も親切に書かれています。

ところで、Phidgets SBCに対して、USBストレージをポートに刺すと、すぐにストレージとして認識してくれました。各種センサーを取るだけじゃなくて、普通に小型のLinuxサーバーとして遊べそうです。Raspberry PIもそうですが、最近は、安くて小さなLinuxマシンが至るところで入手できるので素晴らしい限りです。

まだまだ、Phidgetsを利用する予定なので、面白いことが分かった時点で、このページに資料を追加していきます。

SBCを工場出荷状態に戻す *

SBCは小さなLinuxです。コマンドを打ち間違えて、大事なファイルを消してしまったりすると、不具合が生じることがあります。なにをどう間違えたか、分からなくなったら、工場出荷状態に戻すのが楽です。

上記に書かれていますが、リセットボタンを20秒以上長押して、緑のランプがゆっくり点滅右素早く点滅の状態まで待ちます。これだけで、工場初期化状態に戻すことができます。ちなみに、Mac OS XからSSHで接続しているのですが、SSHのキーがクライアントにキャッシュされてしまっているので「~/.ssh/known_hosts」を開いてエントリを削除する必要がありました。Webインターフェイスにつないで、パスワードなどを設定します。

Webサーバーのドキュメントルート *

Webサーバーのドキュメントルートは「/var/www」にあります。Pythonなどでプログラムを作って、Webサーバーから実行したい場合、「/var/www/cgi-bin」にプログラムを配置します。

サーボモータの操作で苦戦 *

サーボモータの操作で苦戦しました。Pythonで操作しているのですが、ある端末では、setPosition()した直後に、getPosition()で、操作が完了したかどうかを調べることができるのですが、操作が完了した後でないと、getPosition()できない端末があります。また、基本的に、getPosittion()は、一度、setPosition()した後でないとエラーになります。

Phidgets SBCのPythonサポート *

手元のPhidgets SBCでは、本家からダウンロードしたPythonやJavaのサンプルの一部が動かず四苦八苦しました。よくよくユーザーガイドを見ると、JavaあるいはC/C++での開発が可能と書かれています。

とは言え、センサーの値を読み込む、あるいは、サーボモータの値を設定するだけであれば、問題なくSBC上でも、Pythonが動作します。

ちなみに、サンプルのサイトからDLしたPythonのサンプルが動かないので、Pythonを入れ直そうと思って、Pythonを「apt-get remove python」してしまったのが間違いの始まりで、その後、Pythonの再インストールがうまくいかず、上記の手順でSBCを初期化することになりました。。。