Lab(PSLab)はオシロスコープやマルチメーター,ロジックアナライザー,シグナルジェネレーターなど多くの機能を備えた,スマートフォンからも操作できるシングルボードコンピューターです。今回はこのPSLabをUbuntuから操作してみましょう。Lab(PSLab)の最大の特徴のひとつが「オープンソースハードウェア」を謳っていることです。ソフトウェアだけでなくハードウェアやファームウェアの仕様やコードも公開されているため,ユーザーが必要に応じて改造・拡張しやすい作りになっているのです。機能としてはオシロスコープやマルチメーターだけでなく,ロジックアナライザーやシグナルジェネレーター,電源などとして利用できますし,I2C/SPI/UARTの口もあるのでそれらのバスにつながった外部デバイスの制御もできます。Pythonライブラリが公開されているので,USBに接続したシリアルコンソール経由でプログラマブルに操作することも可能です。Piよりも一回り小さく作られています。ディスプレイと操作はスマートフォンを,電源はUSBケーブルを利用できるため,ハードウェア自体はとても小さくて済むのです。最低限必要なのはプローブ用のピンヘッダーに接続するケーブル類とAndroidベースのスマートフォンもしくはPCだけです。スマートフォンに接続する場合は,USB-OTGケーブルである必要があります。いわゆるスマートフォンにマウスやUSBメモリーのようなUSBデバイスを接続して動かせるようになるケーブルです。デスクトップ向けアプリケーションのインストールPSLabにはAndroid向けのアプリケーションとは別に「Windows/Linux向けのデスクトップアプリケーション」が用意されています。実体はElectronベースのアプリケーションではあるものの,デバイスとの通信はPythonを用いています。言い方を変えれば,これらが動く環境であればOS・ディストリビューションを問わず動作する見込みです。ガスセンサーなどの情報取得機能や,Andorid版程度の使いやすいUIが不足しているという印象です。OTGケーブルが入手できなかったり,Androidに余計なアプリを入れたくなかったり,どうしてもデスクトップLinuxを使いたい場合でない限りは,Android版をおすすめします。ちなみに各種センサーは,PSLabで直接計測できるわけではなく,Android版は接続したスマートフォンのデバイスから情報を取得しているようです。I2C/SPI/UARTのデータバスを持っているため,自分でセンサー系ICを接続し,Pythonスクリプトを記述すれば,情報を取得することが可能になるはずです。具体的な実装例はPSLabのPythonライブラリを参照してください。LTSにデスクトップアプリケーション版のPSLabをインストールしましょう。選択肢は次の3つです。LFSの問題かは不明ですが,パッケージファイルをダウンロードできません。よって一番簡単なのは開発版のdebファイルをダウンロード・インストールする方法です。debファイルはフロントエンドの,つまりはElectronアプリケーションを動かすための依存関係は記述されていますが,バックエンドのPythonライブラリについては記述されていません。よってバックエンド部分は別途自分でインストールしなければなりません。IDEをUbuntuで動かす」のように,LXD上でPSLabデスクトップアプリケーションを動かす方法もあります。デスクトップアプリケーション専用のコンテナを作ってしまいましょう。LXDを使わない場合は以下のコマンドはスキップしてください。ubuntuここから先の手順は,LXDを使う場合はコンテナの中で,使わない場合はホスト上で実行するものとします。フロントエンドのパッケージをダウンロード・インストールします。./pslab-desktop-development-linux.deb次にバックエンドを動かすに当たって足りない依存関係およびバックエンドそのものをインストールします。そこで上記ではこのスクリプトが利用するNumPy・PySerialと,バックエンドビルド時に利用するであろうpip,ビルドツール一式をインストールしています。NumPyとPySerialはpipからインストールしてもかまいません。最後の2行はPSLabのバックエンドをクローンし,ビルド・インストールしているだけです。これでデスクトップアプリケーションであるPSLabを起動する準備が整いました。アプリケーションは次のコマンドで起動できます。/opt/PSLab/pslabLXDの中にインストールした場合は,ホスト側からだと次のように実行します。