> For the complete documentation index, see [llms.txt](https://minowa.gitbook.io/python/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://minowa.gitbook.io/python/ku.md).

# 計測機器制御（20211212更新, 書きかけ）

## 計測機器用のインターフェース

計測機器をPCで制御する際に使われるインターフェースには何種類かあります。比較的よく使われるのは、RS232C, GPIB, ethernet, USBなどです。そこで、pythonをつかって計測機器を制御するには、

* pythonで各インターフェースを使えるようにPC側の準備をする
* pythonから各計測機器に命令を与えて、制御する

という2つの作業が必要になります。この2つの作業を行うために3つの可能性があります。メーカー側がすべてお膳立てして提供してくれている場合、あるいは世界の誰かが作ってくれたパッケージを利用する場合、そして自分で全部やる場合です。それぞれ、以下に説明をしていきます。

ここ十数年の間にmacの人気は非常に高まりましたが、計測機器の制御という観点からはwindows PCを使うほうがよいでしょう。この解説でも、linuxやmacでの計測機器制御については説明しません。

## 公式マニュアルに従う

一番簡単なのは計測機器メーカーが公式にpythonによる制御方法を提供してくれている場合です。この場合は、素直にメーカーの推奨する方法でpythonを使った計測機器制御を行いましょう。例えば光学機器メーカーで言えば、thorlabs社のパワーメーター（PM100シリーズ）や駿河精機社のステージコントローラ（DS2000A）、Toptica社のレーザー群など、最近は公式にpythonでの制御方法を提供している場合が多くなってきました。他にも[NI社のDAQシステム](https://nidaqmx-python.readthedocs.io/en/latest/#)、[pico technologies社のpicoscope](https://github.com/picotech/picosdk-python-wrappers)など、多くの実験装置がpythonで制御できる様になってきています。pythonの人気の高まりとともに、今後もpythonによる計測機器制御が公式提供される機会が増えていくと思われます。

## パッケージを探す

使いたい実験装置名とpythonで検索してみると、案外、適切なパッケージが見つかるものです。私自身が使ったことがあるものをいくつか以下に紹介します。パッケージのドキュメンテーションを参考にして、制御を試みてみましょう。

* [thorlabsのCMOSカメラを制御できるInstrumental](https://instrumental-lib.readthedocs.io/en/stable/)
* [thorlabsのシャッターやステージを制御できるMSL-Equipment](https://msl-equipment.readthedocs.io/en/latest/index.html)

## 自分でやる

公式にpythonによる制御方法が提供されておらず、既存のパッケージも使えないとなると、自分自身でやるしかありません。一般に、自分自身で制御の仕組みを作るのは大変ですが、汎用のインターフェースを使った制御方法がマニュアルなどで公開されている場合があります。このときは、比較的簡単に装置制御が可能になります（そうではない場合は、、、あきらめましょう）。まず、自分が使おうと思っている実験装置のマニュアルをチェックしてみましょう。マニュアルに以下のような単語があれば、pythonによる制御が簡単にできる可能性が高いです。

* GPIB
* RS232C
* シリアル通信
* ボーレート(baudrate)
* COMポート
* VXI-11
* SCIPコマンド

VISA
