# instrulink
This python package provides built-in classes to interface diverse laboratory instruments, including:
- **waveform generators**: [Rigol DG 1022Z](https://www.rigolna.com/products/waveform-generators/dg1000z/) (`RigolDG1022Z`)
- **oscilloscopes**: [B&K Precision 2555](https://www.bkprecision.com/products/oscilloscopes/2555) (`BK2555`), [Rigol DS 1054Z](https://www.rigolna.com/products/digital-oscilloscopes/1000z/) (`RigolDS1054Z`)
- **micro-manipulators**: [Sutter Instruments MP-285A](https://www.sutter.com/MICROMANIPULATION/mp285_frame.html) (`SutterMP285A`)
- **infrared cameras**: [FLIR cameras](https://www.flir.com/browse/industrial/machine-vision-cameras/) (`Camera`)
- **acquisition systems**: [NI DAQmx](https://www.ni.com/docs/en-US/bundle/ni-daqmx/page/daqhelp/nidaqoverview.html) for pulse triggers
## Software dependencies
To interface VISA instruments (i.e., waveforms generators and oscilloscopes), you will need to:
- Download and install [IVI Compliance Package 21.0](https://www.ni.com/en-us/support/downloads/drivers/download.ivi-compliance-package.html#460618)
When installing, opt to include .NET Adapters and COM adapters as well (these are not selected by default)
- Download and install the [NI Package Manager](https://www.ni.com/en-us/support/downloads/software-products/download.package-manager.html#322516). Through the NI package manager, also install the NI-VISA Driver.
To interface Rigol instruments specifically, you will also need to download and install the associated [Rigol driver](https://www.rigolna.com/products/waveform-generators/dg1000z/)
To interface FLIR cameras, you will need to download and install the [FlyCapture SDK](https://www.flir.com/products/flycapture-sdk/)
You will also need to install `Python 3.6` (for compliance with FlyCapture SDK), preferably as part of an environment manager such as [Anaconda](https://www.anaconda.com/products/individual).
## Installation
This package can be directly installed from PyPI:
```
pip install instrulink
```
However, if you wish to edit the code base, you can also clone this repo and install it locally as an editable package:
```
git clone https://github.com/tjjlemaire/instrulink.git
cd instrulink
pip install -e .
```
## Usage
### Connecting to instruments
Instruments can be easily connected to via generic `grab_camera`, `grab_generator`, `grab_oscilloscope` and `grab_manipulator` functions. By default, these functions will automatically detect the first available instrument connected to the PC. Optionally, you can also provide an instrument `key` to connect to a specific model type (e.g. `grab_osciloscope(key='bk')` to specifically connect to a B&K Precision oscilloscope).
### Using instruments
Example scripts are located in the `/scripts` subfolder.
## Authors
This package is written and maintained by [Theo Lemaire](mailto:theo.lemaire1@gmail.com).
Raw data
{
"_id": null,
"home_page": "https://github.com/tjjlemaire/instrulink",
"name": "instrulink",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "laboratory instrument interface python",
"author": "Theo Lemaire",
"author_email": "theo.lemaire1@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7a/bb/d8127780bf16f163d3bbe7bdb0e13d27dc9a9a4d0a4ea43e577b9a389cae/instrulink-1.0.5.tar.gz",
"platform": null,
"description": "# instrulink\n\nThis python package provides built-in classes to interface diverse laboratory instruments, including:\n- **waveform generators**: [Rigol DG 1022Z](https://www.rigolna.com/products/waveform-generators/dg1000z/) (`RigolDG1022Z`)\n- **oscilloscopes**: [B&K Precision 2555](https://www.bkprecision.com/products/oscilloscopes/2555) (`BK2555`), [Rigol DS 1054Z](https://www.rigolna.com/products/digital-oscilloscopes/1000z/) (`RigolDS1054Z`)\n- **micro-manipulators**: [Sutter Instruments MP-285A](https://www.sutter.com/MICROMANIPULATION/mp285_frame.html) (`SutterMP285A`)\n- **infrared cameras**: [FLIR cameras](https://www.flir.com/browse/industrial/machine-vision-cameras/) (`Camera`)\n- **acquisition systems**: [NI DAQmx](https://www.ni.com/docs/en-US/bundle/ni-daqmx/page/daqhelp/nidaqoverview.html) for pulse triggers\n\n## Software dependencies\n\nTo interface VISA instruments (i.e., waveforms generators and oscilloscopes), you will need to:\n- Download and install [IVI Compliance Package 21.0](https://www.ni.com/en-us/support/downloads/drivers/download.ivi-compliance-package.html#460618)\n When installing, opt to include .NET Adapters and COM adapters as well (these are not selected by default)\n- Download and install the [NI Package Manager](https://www.ni.com/en-us/support/downloads/software-products/download.package-manager.html#322516). Through the NI package manager, also install the NI-VISA Driver.\n\nTo interface Rigol instruments specifically, you will also need to download and install the associated [Rigol driver](https://www.rigolna.com/products/waveform-generators/dg1000z/)\n\nTo interface FLIR cameras, you will need to download and install the [FlyCapture SDK](https://www.flir.com/products/flycapture-sdk/)\n\nYou will also need to install `Python 3.6` (for compliance with FlyCapture SDK), preferably as part of an environment manager such as [Anaconda](https://www.anaconda.com/products/individual).\n\n## Installation\n\nThis package can be directly installed from PyPI:\n\n```\npip install instrulink\n```\n\nHowever, if you wish to edit the code base, you can also clone this repo and install it locally as an editable package: \n\n```\ngit clone https://github.com/tjjlemaire/instrulink.git\ncd instrulink\npip install -e .\n```\n\n## Usage\n\n### Connecting to instruments\n\nInstruments can be easily connected to via generic `grab_camera`, `grab_generator`, `grab_oscilloscope` and `grab_manipulator` functions. By default, these functions will automatically detect the first available instrument connected to the PC. Optionally, you can also provide an instrument `key` to connect to a specific model type (e.g. `grab_osciloscope(key='bk')` to specifically connect to a B&K Precision oscilloscope).\n\n### Using instruments\n\nExample scripts are located in the `/scripts` subfolder.\n\n## Authors\n\nThis package is written and maintained by [Theo Lemaire](mailto:theo.lemaire1@gmail.com). \n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python package to interface diverse laboratory instruments",
"version": "1.0.5",
"project_urls": {
"Homepage": "https://github.com/tjjlemaire/instrulink"
},
"split_keywords": [
"laboratory",
"instrument",
"interface",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fcb76fe902d3cf113aef87313727be65f96e8f651f1a845cca01ccb39256771c",
"md5": "5e42f86ce9adfafdba8f83a83f26bf57",
"sha256": "db42efde3b3813635e3df8af3cd591c15c53100bbe2dcf3d3f828549ed534d3e"
},
"downloads": -1,
"filename": "instrulink-1.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5e42f86ce9adfafdba8f83a83f26bf57",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 72476,
"upload_time": "2024-06-13T17:18:24",
"upload_time_iso_8601": "2024-06-13T17:18:24.548654Z",
"url": "https://files.pythonhosted.org/packages/fc/b7/6fe902d3cf113aef87313727be65f96e8f651f1a845cca01ccb39256771c/instrulink-1.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7abbd8127780bf16f163d3bbe7bdb0e13d27dc9a9a4d0a4ea43e577b9a389cae",
"md5": "7595f49338a63e82893fb9c05bf0a696",
"sha256": "9f54731cdb7c990733ecb9d56036114e85e41eefe60645f7c2c0e547e37c08b1"
},
"downloads": -1,
"filename": "instrulink-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "7595f49338a63e82893fb9c05bf0a696",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63928,
"upload_time": "2024-06-13T17:18:25",
"upload_time_iso_8601": "2024-06-13T17:18:25.971020Z",
"url": "https://files.pythonhosted.org/packages/7a/bb/d8127780bf16f163d3bbe7bdb0e13d27dc9a9a4d0a4ea43e577b9a389cae/instrulink-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-13 17:18:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tjjlemaire",
"github_project": "instrulink",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "colorlog",
"specs": []
},
{
"name": "pyvisa",
"specs": []
},
{
"name": "pyserial",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "nidaqmx",
"specs": []
},
{
"name": "seaborn",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "scipy",
"specs": []
}
],
"lcname": "instrulink"
}