Arbitrary Temperature Waveform Generator for Climate Chambers
Project description
ATWG
Arbitrary Temperature Waveform Generator
A various waveform shapes creating python script to control a climate chamber via PC.
Releases
Version | Date | Source | Change log |
---|---|---|---|
latest | latest.zip | ||
v0.1.5 | 2021-07-05 | v0.1.5.zip | revised CLI interface and defaults |
v0.1.4 | 2021-01-17 | v0.1.4.zip | added missing files to python package |
v0.1.3 | 2021-01-17 | v0.1.3.zip | atwg-cli is registered as command |
v0.1.1 | 2021-01-02 | v0.1.1.zip | pypi.org published |
v0.1.0 | 2020-03-09 | v0.1.0.zip | initial draft |
Supported climate chambers
- Espec Corp SH-641
- RS232 communication interface
- Espec S-2 controller
Install
pip
- Install :
python3.7 -m pip install ATWG
- Update :
python3.7 -m pip install --upgrade ATWG
Github
git clone https://github.com/akaeba/ATWG.git
Command line interface
Options
Option | Description | Args |
---|---|---|
--sine | select sine as used waveform | |
--trapezoid | select trapezoid as used waveform | |
--minTemp=myVal | sets minimal temperature value | |
--maxTemp=myVal | sets maximal temperature value | |
[--invert] | start with lower part of wave | |
[--period=1h] | period of waveform | d:hh:mm:ss, h, m, s |
[--startTemp=25] | waves start temperature | start temperature of wave |
[--riseTime=0] | positive slew rate, used by '--trapezoid' | degree/time, T(min->max); 5C/h, 120min |
[--fallTime=0] | negative slew rate, used by '--trapezoid' | degree/time, T(max->min); 5C/h, 120min |
[--chamber=SIM] | chamber type | SIM, ESPEC_SH641 |
[--port=] | chamber interfacing port | SH641 default: WinNT: COM1 Linux: /dev/ttyUSB0 |
Run
Call
Platform | Command |
---|---|
Windows | python3 ./atwg-cli [ARGS] |
Linux | atwg-cli [ARGS] |
Anaconda | run ./atwg-cli [ARGS] |
[ARGS]: --sine --chamber=SIM --minTemp=10 --maxTemp=60 --startTemp=30 --period=1h
This example starts the waveform generator in the simulation mode. The sine wave has a minimal value of 10°C, a maximum of 60°C and s start value of 30°C. A full period needs one hour.
Output
Following output is written to the command line interface while the script is active:
Arbitrary Temperature Waveform Generator
Chamber
State : Run /
Type : SIM
Tmeas : +30.02 °C
Tset : +30.06 °C
Waveform
Shape : sine
Tmin : +10.00 °C
Tmax : +60.00 °C
Period : 1h
Gradient : +2.566 °C/m
Press 'CTRL + C' for exit
Permission denied error on Linux
In Linux has only the root and dialout group proper rights to open /dev/ttyUSB* devices. Adding the current user to the dialout group allows ATWG to run without root permissions.
sudo usermod -a -G dialout $USER # add login user to dialout group
sudo reboot # apply settings
Chamber driver
How-to add
The architecture of the ATWG allows the fast integration of a new chamber driver. Therefore is only the import in the ATWG open procedure necessary. As starting point of a new driver can the class simChamber serve. There are all ATWG mandatory procedures as simulation example implemented.
Espec SH641
sh641.py realizes the interface to the climate chamber. Following instruction listing controls the chamber:
from ATWG.driver.espec.sh641 import especShSu # import driver
myChamber = especShSu() # call class constructor
myChamber.open() # open with interface defaults
print(myChamber.get_clima()) # get current clima
myChamber.start() # start chamber
myChamber.set_clima(clima={'temperature': 25}) # set temperature value
myChamber.stop() # stop chamber
myChamber.close() # close handle
The open procedure accepts as argument a .yml file with the chamber (RS232) configuration. In case of no argument defaults are used.
References
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ATWG-0.1.5.tar.gz
.
File metadata
- Download URL: ATWG-0.1.5.tar.gz
- Upload date:
- Size: 33.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4723434746fc15be754407c80956af4978134b6dceec80a93b05a3cf1f6c131 |
|
MD5 | 803d6d94c76b1e73fd6b946a2648fb56 |
|
BLAKE2b-256 | 1d9760fc806927e507b55e510d1eb9e62dbf187ec18d9eabe9f28357f336ee90 |
File details
Details for the file ATWG-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: ATWG-0.1.5-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1553246cc25ce3b37b08c0fda37d458c6eed5eeaaec8034e3006c7c10ca0b4b |
|
MD5 | 2b96b2e3289b46c7963464ca201ee1b7 |
|
BLAKE2b-256 | d905a1b24202c9788057d4affe4c0a6325cb2367241b3d207bc7b777f761bba9 |