This package was originally designed for using experimental devices for data acquisition and as a signal generator, particularly during experiments like step-response tests.
However, PYDAQ can be used to acquire and send signals from any system using various boards. You can explore more in the jupyter notebook examples folder. Users can interact with PYDAQ through a Graphical User Interface (GUI) or the command line, enabling the generation of customized signals that can be easily applied to a system.
It's important to highlight that this application simplifies data acquisition and empirical experiments, making them quicker and more intuitive. This becomes particularly crucial when users require empirical data to construct both linear and nonlinear black-box models, which are commonly used in research projects for forecasting and model-based control schemes.
The provided code allows users to save acquired data in .dat files to a specified path (or to the Desktop if no path is provided). Additionally, users can send their own data, which could be any nonlinear input signal. It's strongly advised to check the documentation for more details.
Below, you will find:
- Installation and Requirements
- Quick View and Main Features
- Using the Graphical User Interfaces
- Screenshots
The most straightforward method to install PYDAQ is via pip:
pip install pydaq
For PYDAQ to function correctly, the following requirements must be met:
- The appropriate driver for the board in use (either Arduino or National Instruments NIDAQ).
nidaqmx
(>=0.6.5): For data acquisition from National Instruments Boards.matplotlib
(>=3.5.3): For visualization.numpy
(>=1.22.3): For data processing.PySimpleGUI
(>=4.60.3): Provides the Graphical User Interface.PyQt5
: Serves as the backend for PySimpleGUI.pyserial
(>=3.5): For managing data transfer with Arduino.
Feature | Description |
---|---|
Send Data (NIDAQ) | Allows users to send data via any NIDAQ board using a graphical user interface. |
Send Data (Arduino) | Allows users to send data via any Arduino board using a graphical user interface. |
Get Data (NIDAQ) | Users can retrieve data from a NIDAQ board, utilizing various terminal configurations (Diff, RSE, NRSE), and sample time, among others. The acquired data can be saved and plotted for additional applications. |
Get Data (Arduino) | Users can retrieve data from an Arduino board, with several available options. Acquired data can be saved and plotted for subsequent applications. |
Step Response (NIDAQ) | Enables users to conduct an automatic step response experiment using a NIDAQ board. The data generated by the experiment can be saved for further applications, such as deriving linear and nonlinear models. |
Step Response (Arduino) | Enables users to conduct an automatic step response experiment using an Arduino board. The data generated by the experiment can be saved for subsequent applications, such as deriving linear and nonlinear models. |
Using GUIs (more details in documentation and jupyter notebook examples):
from pydaq.get_data import Get_data
g = Get_data()
g.get_data_nidaq_gui()
from pydaq.get_data import Get_data
g = Get_data()
g.get_data_arduino_gui()
from pydaq.send_data import Send_data
s = Send_data()
s.send_data_nidaq_gui()
from pydaq.send_data import Send_data
s = Send_data()
s.send_data_arduino_gui()
from pydaq.step_response import Step_response
s = Step_response()
s.step_response_nidaq_gui()
from pydaq.step_response import Step_response
s = Step_response()
s.step_response_arduino_gui()
You are more than welcome to make your contribution and submit a pull request. To contribute, read this guide.