Helper scripts and interactive shell for measuring Triboelectric Nanogenerator-based sensor output with a Keithley 2611B SMU or an Arduino
Go to file
2023-06-27 15:23:48 +02:00
m_teng fixed import 2023-06-27 15:22:48 +02:00
.gitignore .gitignore 2023-06-26 19:35:52 +02:00
99-usbtmc.rules added udev rule 2023-06-27 15:23:48 +02:00
LICENSE Added test mode and save pickle 2023-04-13 11:09:40 +02:00
MANIFEST.in renamed to m-teng 2023-06-18 17:38:10 +02:00
pyproject.toml reorder 2023-06-26 22:08:10 +02:00
readme.md added udev rule 2023-06-27 15:23:48 +02:00

m-TENG

Helper scripts and shell for measuring Triboelectric Nanogenerator-based sensor output with a Keithley 2611B SMU or an Arduino

Features

Interactive (shell) mode

  • Live view
  • Press button to stop
  • Save and load settings (default interval, data directory...)
  • Easily run arbitrary command on device

Useful functions for scripts

  • Measure voltage and/or current
  • Transfer buffer from measurement device to host
  • Save/load as csv
  • Run lua script on Keithley SMU
  • Auto-filenames

Available backends

keithley

Use a Keithley 2611B Source-Measure-Unit via *pyvisa*. This backend allows measuring both voltage and current simultaneously.

arduino

Use a Bluetooth capable Arduino with [https://git.quintern.xyz/MatthiasQuintern/teng-arduino](this software on the arduino).
This backend only allows measuring voltage using an Arduinos analog input pin (0 - 3.3 V, 12 bit resolution).

testing

Use the shell without measuring TENG output. When starting a measurement, sample data will be generated.

Shell mode

It is recommended to run the shell with ipython:

ipython -i k_teng_interactive.py -- -*X*

Substitute X for -k for keithley backend, -a for arduino backend or -t for testing backend.

In the shell, run help() to get a list of available commands

Installation

Keithley

On linux: Install the udev rule in /etc/udev/rules.d/ and run sudo udevadm control --reload to force the usbtmc driver to be used with the Keithley SMU. The ATTRS{product_id} needs to match the id shown by lsusb.