Pocket Science Lab
オープソースハードウェア「Pocket Science Lab」
Pocket Science Lab
機能としてはオシロスコープやマルチメーターだけでなく、
さらに
つまり最低限必要なのはプローブ用のピンヘッダーに接続するケーブル類とAndroidベースのスマートフォンもしくはPCだけです。なお、
デスクトップ向けアプリケーションのインストール
PSLabにはAndroid向けのアプリケーションとは別に
ただしAndroid版に比べると、
ちなみに各種センサーは、
それでは実際に、
- 公式が配布する安定版のdebファイルをインストールする
- 公式が配布する開発版のdebファイルをインストールする
- GitHubからソースコード一式をインストールする
このうち安定版についてはCI/
debファイルはフロントエンドの、
第589回
$ lxc launch ubuntu:18.04 pslab $ lxc config set pslab raw.idmap 'both 1000 1000' $ echo -e "uid 1301 1000\ngid 200 1000" | lxc config set pslab raw.idmap - $ lxc config set pslab environment.DISPLAY ':0' $ lxc config device add pslab X0 disk path=/tmp/.X11-unix/X0 source=/tmp/.X11-unix/X0 $ lxc config device add pslab gpu gpu $ lxc exec pslab apt update $ lxc exec pslab apt full-upgrade $ lxc exec pslab -- apt install -y x11-apps x11-xserver-utils mesa-utils libasound2 $ lxc restart pslab $ lxc exec pslab -- sudo -i -u ubuntu
ここから先の手順は、
まずはフロントエンドのパッケージをダウンロード・
$ wget https://github.com/fossasia/pslab-desktop/raw/install/pslab-desktop-development-linux.deb $ sudo apt install ./pslab-desktop-development-linux.deb
次にバックエンドを動かすに当たって足りない依存関係およびバックエンドそのものをインストールします。
$ sudo apt install -y python3-numpy python3-serial python3-pip build-essential git $ git clone https://github.com/fossasia/pslab-python.git $ (cd pslab-python; make && sudo make install)
バックエンドはPython 3のスクリプトです。そこで上記ではこのスクリプトが利用するNumPy・
最後の2行はPSLabのバックエンドをクローンし、
これでデスクトップアプリケーションであるPSLabを起動する準備が整いました。アプリケーションは次のコマンドで起動できます。
$ /opt/PSLab/pslab
LXDの中にインストールした場合は、
$ lxc exec pslab -- sudo -i -u ubuntu /opt/PSLab/pslab

LXDの中からホストのUSBデバイスを見えるようにする
前述の手順でPSLabを起動した場合、

これはLXDコンテナを作っただけだと、
まずはUSBデバイスのIDを調べます。PSLabをホスト上に接続することで、/dev
以下に新しいttyXXX
」/dev/
」
$ udevadm test-builtin usb_id /sys/class/tty/ttyACM0 calling: test-builtin Load module index Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0: if_class 2 protocol 0 ID_VENDOR=Microchip_Technology_Inc. ID_VENDOR_ENC=Microchip\x20Technology\x20Inc. ID_VENDOR_ID=04d8 ID_MODEL=MCP2200_USB_Serial_Port_Emulator ID_MODEL_ENC=MCP2200\x20USB\x20Serial\x20Port\x20Emulator ID_MODEL_ID=00df ID_REVISION=0101 ID_SERIAL=Microchip_Technology_Inc._MCP2200_USB_Serial_Port_Emulator_0003077351 ID_SERIAL_SHORT=0003077351 ID_TYPE=generic ID_BUS=usb ID_USB_INTERFACES=:020201:0a0000:030000: ID_USB_INTERFACE_NUM=00 ID_USB_DRIVER=cdc_acm Unload module index Unloaded link configuration context.
もしくはsudo udevadm monitor -e
」
今回必要なのはID_
です。この特定のデバイスが接続されたら、/dev/
」/dev/
」/dev/
」
$ cat <<EOF | sudo tee -a /etc/udev/rules.d/68-pslab.rules ## For PSLab ACTION=="add", SUBSYSTEM=="tty", \\ ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="00df", \\ ATTRS{serial}=="0003077351", MODE="666", SYMLINK+="ttyPSLab" EOF
PSLabを接続し直すと、
$ ls -l /dev/ttyPSLab lrwxrwxrwx 1 root root 7 2月 8 16:02 /dev/ttyPSLab -> ttyACM0
次にこのファイルをコンテナの中からアクセスできるようにします。
$ lxc config device add pslab ttyPSLab unix-char \ source=/dev/ttyPSLab path=/dev/ttyACM0 \ required=false uid=1000 gid=1000 Device ttyPSLab added to pslab
「require=false
」
コンテナの中を確認すると、
$ lxc exec pslab -- ls -l /dev/ttyACM0 crw-rw---- 1 ubuntu ubuntu 166, 0 Feb 6 07:07 /dev/ttyACM0
ちなみにPSLabはデバイスファイルがttyUSBx
」ttyACMx
」
PSLabの使い方
デスクトップアプリケーション版のPSLabの作りはとてもシンプルです。よっていろいろ触ってみればすぐに使い方がわかることでしょう。
PSLabには信号生成機とオシロスコープの両方が備わっているので、
まずピンの配置を確認します。PSLabのトップ画面の右上のハンバーガーメニューをクリックすると、


このうちBack Layoutの
とりあえずは

ちなみに
トップ画面に戻ったら

これはつまりCH1が
このようにPSLabを使えば安価にオシロスコープを含むさまざまな計測器を実現できます。もちろん値段相応の精度・