Skip to main content

A Python programming interface for MicroDAQ DAQ devices.

Project description

Microdaq

This package allows users to use data acquisition under MicroDAQ hardware with Python2.7 and Python 3. It provides an interface between the MLink driver and Python application. The package works with Windows x86/x64, Linux x86/x64, MacOS x64 and EABI ARM machines.

Installation

pip install microdaq

If already installed, upgrading could be done by
pip install microdaq --upgrade

Examples

Sample programs are located in examples directory. In order to run them, connect MicroDAQ device to your computer and run chosen script without any additional steps. For example: python exmaples/ai-demo.py

Scripts from 'examples/complex' require additional packages to work.
They could be installed via pip install -r requirements/examples.txt command.


LED control example

Turn on and turn off LED 1.

import time
import microdaq

mdaq = microdaq.Device(ip='10.10.1.1')
mdaq.led_write(led=1, state=True)
time.sleep(1.0)
mdaq.led_write(led=1, state=False)

Analog input

Read analog input channels 1 and 2.

import microdaq

mdaq = microdaq.Device(ip='10.10.1.1')
data = mdaq.ai_read(channels=[1, 2], ai_range=[-10, 10])

for i, volt in enumerate(data):
    print('Channel[%d]: %f V' % (i, volt))

Continuous data acquisition

Read analog input from channel 1, 100 kHz sampling period for a 0.1 second. Expected 10 000 samples.

import microdaq

mdaq = microdaq.Device("10.10.1.1")
mdaq.ai_scan_init(
    channels=[1], 
    ai_range=[-10, 10], 
    is_differential=[False], 
    rate=100000, 
    duration=0.1)

data = mdaq.ai_scan(
    scan_count=10000, 
    timeout=True)

for sample in data:
    print('%f V' % sample)

Analog output

Set 1.0V and 2.0V to analog output channels 1 and 2 respectively. Used range 0-5 volts.

import microdaq

mdaq = microdaq.Device(ip='10.10.1.1')
mdaq.ao_write(
    channels=[1, 2],
    ao_range=microdaq.AORange.AO_5V_UNI,
    data=[1.0, 2.0])

PWM

Generate PWM signal on two channels A and B (PWM module 1).
PWM

import microdaq

mdaq = microdaq.Device(ip='10.10.1.1')
mdaq.pwm_init(module=1, period=1000)
mdaq.pwm_write(module=1, duty_a=25, duty_b=50)

Encoder

Read encoder position.

import time
import microdaq

mdaq = microdaq.Device(ip='10.10.1.1')
mdaq.enc_init(module=1, init_value=0)

for i in range(30):
    time.sleep(0.1)
    enc = mdaq.enc_read(module=1)
    print('position: %d\tdir: %d' % (enc[0], enc[1]))

DSP with Scilab XCOS model

Load and run application generated by MicroDAQ Toolbox for Scilab.
Toolbox available is here: https://atoms.scilab.org/toolboxes/microdaq/1.2.2

Application overview:
signal-model-view

import os
import microdaq

mdaq = microdaq.Device(ip='10.10.1.1')

model = os.path.join("resources", "signal-model.out")
mdaq.dsp_init(dsp_application=model, rate=100, duration=-1)
mdaq.dsp_start()

print("DSP is running: %s" % mdaq.dsp_is_done())
mdaq.dsp_stop()
print("DSP is running: %s" % mdaq.dsp_is_done())

Tests

This sections is meant to be for package's developers/contributors. Tests for API layer which does not required connected MicroDAQ device could be triggered by pytest tests/test_api.py.

Additional requirements needed:
pip install -r requirements/tests.txt

License

The BSD license. For more information read LICENSE.md file.

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

microdaq-1.4.0.tar.gz (18.4 kB view hashes)

Uploaded Source

Built Distribution

microdaq-1.4.0-py2.py3-none-any.whl (261.1 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page